about summary refs log tree commit diff stats
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/000init.subx90
-rw-r--r--linux/100.txt11
-rw-r--r--linux/101_write.subx53
-rw-r--r--linux/102test.subx106
-rw-r--r--linux/103kernel-string-equal.subx269
-rw-r--r--linux/104new-segment.subx88
-rw-r--r--linux/105string-equal.subx263
-rw-r--r--linux/106stream.subx74
-rw-r--r--linux/107trace.subx987
-rw-r--r--linux/108write.subx162
-rw-r--r--linux/109stream-equal.subx595
-rw-r--r--linux/110stop.subx214
-rw-r--r--linux/110stop.subx.231
-rw-r--r--linux/110stop.subx.0206
-rw-r--r--linux/111read.subx438
-rw-r--r--linux/112read-byte.subx418
-rw-r--r--linux/113write-stream.subx252
-rw-r--r--linux/114error.subx50
-rw-r--r--linux/115write-byte.subx477
-rw-r--r--linux/116write-buffered.subx226
-rw-r--r--linux/117write-int-hex.subx430
-rw-r--r--linux/118parse-hex-int.subx938
-rw-r--r--linux/119error-byte.subx90
-rw-r--r--linux/120allocate.subx967
-rw-r--r--linux/121new-stream.subx136
-rw-r--r--linux/122read-line.subx385
-rw-r--r--linux/123slice.subx1220
-rw-r--r--linux/124next-token.subx1925
-rw-r--r--linux/125write-stream-data.subx114
-rw-r--r--linux/126write-int-decimal.subx466
-rw-r--r--linux/127next-word.subx362
-rw-r--r--linux/128subx-words.subx623
-rw-r--r--linux/129emit-hex.subx241
-rw-r--r--linux/130emit.subx473
-rw-r--r--linux/131table.subx2147
-rw-r--r--linux/132slurp.subx158
-rw-r--r--linux/133subx-widths.subx243
-rw-r--r--linux/134emit-hex-array.subx140
-rw-r--r--linux/135next-word-or-string.subx416
-rw-r--r--linux/200.txt5
-rw-r--r--linux/201register-names.subx164
-rw-r--r--linux/202write-int.subx121
-rw-r--r--linux/203stack.subx416
-rw-r--r--linux/300.txt16
-rw-r--r--linux/301array-equal.subx423
-rw-r--r--linux/302stack_allocate.subx61
-rw-r--r--linux/303kernel-string.subx91
-rw-r--r--linux/304screen.subx460
-rw-r--r--linux/305keyboard.subx219
-rw-r--r--linux/306files.subx169
-rw-r--r--linux/307size.subx17
-rw-r--r--linux/308allocate-array.subx25
-rw-r--r--linux/309stream.subx214
-rw-r--r--linux/310copy-bytes.subx157
-rw-r--r--linux/311decimal-int.subx634
-rw-r--r--linux/312copy.subx68
-rw-r--r--linux/313index-bounds-check.subx86
-rw-r--r--linux/314divide.subx17
-rw-r--r--linux/315slice.subx14
-rw-r--r--linux/400.mu195
-rw-r--r--linux/401test.mu11
-rw-r--r--linux/402time.mu43
-rw-r--r--linux/403unicode.mu396
-rw-r--r--linux/404stream.mu69
-rw-r--r--linux/405screen.mu1445
-rw-r--r--linux/406int32.mu39
-rw-r--r--linux/407right-justify.mu14
-rw-r--r--linux/408float.mu23
-rw-r--r--linux/409print-float-hex.mu196
-rw-r--r--linux/410file.mu20
-rw-r--r--linux/411string.mu125
-rw-r--r--linux/412print-float-decimal.mu642
-rw-r--r--linux/README.md31
-rw-r--r--linux/advent2020/1a.mu97
-rw-r--r--linux/advent2020/1b.mu113
-rw-r--r--linux/advent2020/2a.mu92
-rw-r--r--linux/advent2020/2b.mu122
-rw-r--r--linux/advent2020/3a.mu107
-rw-r--r--linux/advent2020/3b.mu137
-rw-r--r--linux/advent2020/4a.mu75
-rw-r--r--linux/advent2020/4b.mu314
-rw-r--r--linux/advent2020/5a.mu79
-rw-r--r--linux/advent2020/5b.mu81
-rw-r--r--linux/advent2020/vimrc.vim2
-rw-r--r--linux/arith.mu258
-rwxr-xr-xlinux/assortbin0 -> 46815 bytes
-rw-r--r--linux/assort.subx1062
-rw-r--r--linux/bootstrap/000organization.cc164
-rw-r--r--linux/bootstrap/001help.cc271
-rw-r--r--linux/bootstrap/002test.cc123
-rw-r--r--linux/bootstrap/003trace.cc523
-rw-r--r--linux/bootstrap/003trace.cc.filter525
-rw-r--r--linux/bootstrap/003trace.cc.rotate537
-rw-r--r--linux/bootstrap/003trace.test.cc133
-rw-r--r--linux/bootstrap/010vm.cc411
-rw-r--r--linux/bootstrap/011run.cc453
-rw-r--r--linux/bootstrap/012elf.cc193
-rw-r--r--linux/bootstrap/013direct_addressing.cc1280
-rw-r--r--linux/bootstrap/014indirect_addressing.cc1005
-rw-r--r--linux/bootstrap/015immediate_addressing.cc1311
-rw-r--r--linux/bootstrap/016index_addressing.cc155
-rw-r--r--linux/bootstrap/017jump_disp8.cc407
-rw-r--r--linux/bootstrap/018jump_disp32.cc407
-rw-r--r--linux/bootstrap/019functions.cc122
-rw-r--r--linux/bootstrap/020byte_addressing.cc272
-rw-r--r--linux/bootstrap/021div.cc38
-rw-r--r--linux/bootstrap/022float.cc519
-rw-r--r--linux/bootstrap/029syscalls.cc126
-rw-r--r--linux/bootstrap/030translate.cc206
-rw-r--r--linux/bootstrap/031transforms.cc12
-rw-r--r--linux/bootstrap/032operands.cc641
-rw-r--r--linux/bootstrap/033check_operands.cc786
-rw-r--r--linux/bootstrap/034check_operand_bounds.cc143
-rw-r--r--linux/bootstrap/035compute_segment_address.cc86
-rw-r--r--linux/bootstrap/036labels.cc429
-rw-r--r--linux/bootstrap/037global_variables.cc305
-rw-r--r--linux/bootstrap/038literal_strings.cc362
-rw-r--r--linux/bootstrap/039debug.cc175
-rw-r--r--linux/bootstrap/040tests.cc95
-rw-r--r--linux/bootstrap/README.md7
-rwxr-xr-xlinux/bootstrap/bootstrap5
-rwxr-xr-xlinux/bootstrap/build105
-rwxr-xr-xlinux/bootstrap/build_and_test_until18
-rwxr-xr-xlinux/bootstrap/clean7
-rwxr-xr-xlinux/bootstrap/test_layers18
-rw-r--r--linux/bootstrap/tools/enumerate.cc26
-rw-r--r--linux/bootstrap/tools/tangle.cc1077
-rw-r--r--linux/bootstrap/tools/tangle.readme.md112
-rwxr-xr-xlinux/bracesbin0 -> 48870 bytes
-rw-r--r--linux/braces.subx359
-rw-r--r--linux/browse/README.md21
-rw-r--r--linux/browse/main.mu394
-rw-r--r--linux/browse/paginated-screen.mu661
-rw-r--r--linux/browse/vimrc.vim2
-rwxr-xr-xlinux/callsbin0 -> 53865 bytes
-rw-r--r--linux/calls.subx1876
-rw-r--r--linux/crenshaw2-1.subx556
-rw-r--r--linux/crenshaw2-1b.subx750
-rwxr-xr-xlinux/dquotesbin0 -> 50437 bytes
-rw-r--r--linux/dquotes.subx1939
-rw-r--r--linux/ex1.mu13
-rw-r--r--linux/ex1.subx18
-rw-r--r--linux/ex10.subx69
-rw-r--r--linux/ex11.subx355
-rw-r--r--linux/ex12.subx43
-rw-r--r--linux/ex13.subx25
-rw-r--r--linux/ex14.subx26
-rw-r--r--linux/ex2.mu19
-rw-r--r--linux/ex2.subx20
-rw-r--r--linux/ex3.2.mu33
-rw-r--r--linux/ex3.mu21
-rw-r--r--linux/ex3.subx36
-rw-r--r--linux/ex4.subx39
-rw-r--r--linux/ex5.subx40
-rw-r--r--linux/ex6.subx35
-rw-r--r--linux/ex7.subx98
-rw-r--r--linux/ex8.subx60
-rw-r--r--linux/ex9.subx52
-rw-r--r--linux/factorial.mu60
-rw-r--r--linux/factorial.subx153
-rw-r--r--linux/factorial2.subx122
-rw-r--r--linux/factorial3.subx80
-rw-r--r--linux/factorial4.subx88
-rw-r--r--linux/hello.mu10
-rwxr-xr-xlinux/hexbin0 -> 48995 bytes
-rw-r--r--linux/hex.subx1435
-rwxr-xr-xlinux/mubin0 -> 602318 bytes
-rw-r--r--linux/mu-init-test.subx37
-rw-r--r--linux/mu-init.subx62
-rw-r--r--linux/mu.subx38350
-rwxr-xr-xlinux/packbin0 -> 59505 bytes
-rw-r--r--linux/pack.subx6020
-rw-r--r--linux/parse-int.mu47
-rw-r--r--linux/print-file.mu39
-rw-r--r--linux/random.subx59
-rw-r--r--linux/raytracing/1.cc18
-rw-r--r--linux/raytracing/1.cc.028
-rw-r--r--linux/raytracing/1.mu31
-rw-r--r--linux/raytracing/1.ppm65539
-rw-r--r--linux/raytracing/2.mu86
-rw-r--r--linux/raytracing/2.ppm65539
-rw-r--r--linux/raytracing/3.expected.ppm90003
-rw-r--r--linux/raytracing/3.mu484
-rw-r--r--linux/raytracing/3.ppm90003
-rw-r--r--linux/raytracing/README.md1
-rw-r--r--linux/raytracing/color.h15
-rw-r--r--linux/raytracing/color.mu35
-rw-r--r--linux/raytracing/main.cc112
-rw-r--r--linux/raytracing/ray.h25
-rw-r--r--linux/raytracing/ray.mu24
-rw-r--r--linux/raytracing/vec.mu135
-rw-r--r--linux/raytracing/vec3.h102
-rw-r--r--linux/raytracing/vimrc.vim2
-rw-r--r--linux/rpn.mu148
-rwxr-xr-xlinux/sigilsbin0 -> 61239 bytes
-rw-r--r--linux/sigils.subx4661
-rw-r--r--linux/stats.txt73
-rw-r--r--linux/subx-params.subx19
-rwxr-xr-xlinux/survey_baremetalbin0 -> 51201 bytes
-rw-r--r--linux/survey_baremetal.subx2720
-rwxr-xr-xlinux/survey_elfbin0 -> 56486 bytes
-rw-r--r--linux/survey_elf.subx4691
-rwxr-xr-xlinux/test_apps424
-rwxr-xr-xlinux/test_apps_emulated295
-rwxr-xr-xlinux/testsbin0 -> 45606 bytes
-rw-r--r--linux/tests.subx312
-rw-r--r--linux/texture.mu58
-rw-r--r--linux/tile/README.md33
-rw-r--r--linux/tile/box.mu109
-rw-r--r--linux/tile/data.mu641
-rw-r--r--linux/tile/environment.mu2181
-rw-r--r--linux/tile/float-stack.mu64
-rw-r--r--linux/tile/gap-buffer.mu343
-rw-r--r--linux/tile/grapheme-stack.mu191
-rw-r--r--linux/tile/main.mu133
-rw-r--r--linux/tile/rpn.mu911
-rw-r--r--linux/tile/surface.mu412
-rw-r--r--linux/tile/table.mu165
-rw-r--r--linux/tile/value-stack.mu149
-rw-r--r--linux/tile/value.mu424
-rw-r--r--linux/tile/vimrc.vim2
-rw-r--r--linux/tile/word.mu573
-rwxr-xr-xlinux/translate8
-rwxr-xr-xlinux/translate_debug11
-rwxr-xr-xlinux/translate_emulated9
-rwxr-xr-xlinux/translate_subx38
-rwxr-xr-xlinux/translate_subx_debug30
-rwxr-xr-xlinux/translate_subx_emulated21
-rw-r--r--linux/tui.mu34
229 files changed, 425626 insertions, 0 deletions
diff --git a/linux/000init.subx b/linux/000init.subx
new file mode 100644
index 00000000..f151d80f
--- /dev/null
+++ b/linux/000init.subx
@@ -0,0 +1,90 @@
+# Some OS-specific preliminaries for Linux.
+
+# Memory layout
+#
+#          0 - 0x08047ffff - reserved for the kernel
+# 0x08048000 - 0xbffffffff - available for user programs
+# 0xc0000000 - 0xfffffffff - reserved for the kernel
+== code 0x09000000
+== data 0x0a000000
+
+# Syscalls
+#
+# We don't have libc, so we need to know Linux's precise syscall layout.
+# These are not real functions. Pass arguments in specific registers.
+== code
+
+# http://man7.org/linux/man-pages/man2/exit.2.html
+syscall_exit:  # status/ebx: int
+    b8/copy-to-eax 1/imm32
+    cd/syscall 0x80/imm8
+
+# http://man7.org/linux/man-pages/man2/read.2.html
+syscall_read:  # fd/ebx: int, buf/ecx: addr, size/edx: int -> nbytes-or-error/eax: int
+    b8/copy-to-eax 3/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+# http://man7.org/linux/man-pages/man2/write.2.html
+syscall_write:  # fd/ebx: int, buf/ecx: addr, size/edx: int -> nbytes-or-error/eax: int
+    b8/copy-to-eax 4/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+# http://man7.org/linux/man-pages/man2/open.2.html
+syscall_open:  # filename/ebx: (addr kernel-string), flags/ecx: int, dummy=0x180/edx -> fd-or-error/eax: int
+    b8/copy-to-eax 5/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+# http://man7.org/linux/man-pages/man2/close.2.html
+syscall_close:  # fd/ebx: int -> status/eax
+    b8/copy-to-eax 6/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+# http://man7.org/linux/man-pages/man2/lseek.2.html
+syscall_lseek:  # fd/ebx: int, offset/ecx: int, whence/edx: int
+    b8/copy-to-eax 0x13/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+# http://man7.org/linux/man-pages/man2/creat.2.html
+syscall_creat:  # filename/ebx: (addr kernel-string) -> fd-or-error/eax: int
+    b8/copy-to-eax 8/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+# http://man7.org/linux/man-pages/man2/unlink.2.html
+syscall_unlink:  # filename/ebx: (addr kernel-string) -> status/eax: int
+    b8/copy-to-eax 0xa/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+# http://man7.org/linux/man-pages/man2/rename.2.html
+syscall_rename:  # source/ebx: (addr kernel-string), dest/ecx: (addr kernel-string) -> status/eax: int
+    b8/copy-to-eax 0x26/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+# https://github.com/torvalds/linux/blob/fa121bb3fed6313b1f0af23952301e06cf6d32ed/mm/nommu.c#L1352
+syscall_mmap:  # arg/ebx: (addr mmap_arg_struct) -> status/eax: int
+    # the important thing: ebx+4 contains the 32-bit size to be allocated
+    b8/copy-to-eax 0x5a/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+syscall_ioctl:  # fd/ebx: int, cmd/ecx: int, arg/edx: (addr _)
+    b8/copy-to-eax 0x36/imm32
+    cd/syscall 0x80/imm8
+    c3/return
+
+syscall_nanosleep:  # req/ebx: (addr timespec)
+    b8/copy-to-eax 0xa2/imm32  # 162
+    cd/syscall 0x80/imm8
+    c3/return
+
+syscall_clock_gettime:  # clock/ebx: int, out/ecx: (addr timespec)
+    b8/copy-to-eax 0x109/imm32  # 265
+    cd/syscall 0x80/imm8
+    c3/return
diff --git a/linux/100.txt b/linux/100.txt
new file mode 100644
index 00000000..5d309194
--- /dev/null
+++ b/linux/100.txt
@@ -0,0 +1,11 @@
+We're now past C++ bootstrap.
+
+Layers in the 1xx series are in bare SubX, without any syntax sugar. They are
+intended to be used by the phases of the self-hosted translator to replicate
+the functionality of the C++ bootstrap:
+  apps/hex.subx
+  apps/survey_elf.subx
+  apps/pack.subx
+  apps/dquotes.subx
+  apps/assort.subx
+  apps/tests.subx
diff --git a/linux/101_write.subx b/linux/101_write.subx
new file mode 100644
index 00000000..2567f444
--- /dev/null
+++ b/linux/101_write.subx
@@ -0,0 +1,53 @@
+# _write: write to a file descriptor (fd)
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # just exit; can't test _write just yet
+    bb/copy-to-ebx  0/imm32
+    e8/call  syscall_exit/disp32
+
+_write:  # fd: int, s: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # syscall(write, fd, (data) s+4, (size) *s)
+    # . ebx = fd
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   8/disp8         .                 # copy *(ebp+8) to ebx
+    # . var data/ecx: (addr byte) = s+4
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    81          0/subop/add         3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # add to ecx
+    # . var size/edx: int = *s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           2/r32/edx   .               .                 # copy *edx to edx
+    # . syscall
+    e8/call  syscall_write/disp32
+    # if (eax < 0) abort
+    3d/compare-eax-with  0/imm32
+    0f 8c/jump-if-<  $_write:abort/disp32
+$_write:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$_write:abort:
+    # can't write a message here for risk of an infinite loop, so we'll use a special exit code instead
+    # . syscall(exit, 255)
+    bb/copy-to-ebx  0xff/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/102test.subx b/linux/102test.subx
new file mode 100644
index 00000000..04fbea24
--- /dev/null
+++ b/linux/102test.subx
@@ -0,0 +1,106 @@
+# Rudimentary test harness
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # manual test
+    # check-ints-equal(34, 34)
+    # . . push args
+    68/push  "error in check-ints-equal"/imm32
+    68/push  34/imm32
+    68/push  34/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+    e8/call  syscall_exit/disp32
+
+# print msg to stderr if a != b, otherwise print "."
+check-ints-equal:  # a: int, b: int, msg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    53/push-ebx
+    # load first 2 args into eax and ebx
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   0xc/disp8       .                 # copy *(ebp+12) to ebx
+    # if (eax == ebx) success
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # compare eax and ebx
+    75/jump-if-unequal  $check-ints-equal:else/disp8
+    # . _write(2/stderr, '.')
+    # . . push args
+    68/push  "."/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . return
+    eb/jump  $check-ints-equal:end/disp8
+    # otherwise print error message
+$check-ints-equal:else:
+    # . _write(2/stderr, msg)
+    # . . push args
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # copy *(ebp+16) to ecx
+    51/push-ecx
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . _write(2/stderr, Newline)
+    # . . push args
+    68/push  Newline/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # increment Num-test-failures
+    ff          0/subop/increment   0/mod/indirect  5/rm32/.disp32            .             .           .           Num-test-failures/disp32          # increment *Num-test-failures
+$check-ints-equal:end:
+    # . restore registers
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+# length-prefixed string containing just a single newline
+# convenient to have when printing messages and so on
+Newline:  # (array byte)
+    # size: int
+    1/imm32
+    # data
+    0a/newline
+
+# every test failure increments this counter
+Num-test-failures:  # int
+    0/imm32
+
+# length-prefixed string containing just a single space
+Space:  # (array byte)
+    # size: int
+    1/imm32
+    # data
+    20/space
+
+# length-prefixed string containing just a single slash
+Slash:  # (array byte)
+    # size: int
+    1/imm32
+    # data
+    2f/slash
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/103kernel-string-equal.subx b/linux/103kernel-string-equal.subx
new file mode 100644
index 00000000..7e1b9d6f
--- /dev/null
+++ b/linux/103kernel-string-equal.subx
@@ -0,0 +1,269 @@
+# Checking null-terminated strings.
+#
+# By default we create strings as arrays of bytes, and all arrays have a 4-byte
+# size prefix.
+#
+# However, we sometimes need to deal with null-terminated strings when
+# interacting with the Linux kernel. This layer implements a function for
+# comparing a null-terminated 'kernel string' with a size-prefixed 'SubX
+# string'.
+#
+# To run (from the subx directory):
+#   $ ./bootstrap translate 05[0-2]*.subx -o /tmp/tmp52
+#   $ ./bootstrap run /tmp/tmp52  # runs a series of tests
+#   ......  # all tests pass
+#
+# (We can't yet run the tests when given a "test" commandline argument,
+# because checking for it would require the function being tested! Breakage
+# would cause tests to not run, rather than to fail as we'd like.)
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run all tests
+    e8/call  run-tests/disp32  # 'run-tests' is a function created automatically by SubX. It calls all functions that start with 'test-'.
+    # syscall(exit, Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    e8/call  syscall_exit/disp32
+
+kernel-string-equal?:  # s: (addr kernel-string), benchmark: (addr array byte) -> result/eax: boolean
+    # pseudocode:
+    #   n = benchmark->size
+    #   s1 = s
+    #   s2 = benchmark->data
+    #   i = 0
+    #   while (i < n)
+    #     c1 = *s1
+    #     c2 = *s2
+    #     if (c1 == 0) return false
+    #     if (c1 != c2) return false
+    #     ++s1, ++s2, ++i
+    #   return *s1 == 0
+    #
+    # registers:
+    #   i: ecx
+    #   n: edx
+    #   s1: edi
+    #   s2: esi
+    #   c1: eax
+    #   c2: ebx
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var s1/edi: (addr byte) = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # var n/edx: int = benchmark->size
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           2/r32/edx   .               .                 # copy *edx to edx
+    # var s2/esi: (addr byte) = benchmark->data
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    81          0/subop/add         3/mod/direct    6/rm32/esi    .           .             .           .           .               4/imm32           # add to esi
+    # var i/ecx: int = 0
+    b9/copy-to-ecx  0/imm32/exit
+    # var c1/eax: byte = 0
+    b8/copy-to-eax  0/imm32
+    # var c2/ebx: byte = 0
+    bb/copy-to-ebx  0/imm32
+$kernel-string-equal?:loop:
+    # if (i >= n) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    7d/jump-if->=  $kernel-string-equal?:break/disp8
+    # c1 = *s1
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           0/r32/AL    .               .                 # copy byte at *edi to AL
+    # c2 = *s2
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           3/r32/BL    .               .                 # copy byte at *esi to BL
+    # if (c1 == 0) return false
+    3d/compare-eax-and  0/imm32/null
+    74/jump-if-=  $kernel-string-equal?:false/disp8
+    # if (c1 != c2) return false
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # compare eax and ebx
+    75/jump-if-!=  $kernel-string-equal?:false/disp8
+    # ++i
+    41/increment-ecx
+    # ++s1
+    47/increment-edi
+    # ++s2
+    46/increment-esi
+    eb/jump  $kernel-string-equal?:loop/disp8
+$kernel-string-equal?:break:
+    # return *s1 == 0
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           0/r32/AL    .               .                 # copy byte at *edi to AL
+    3d/compare-eax-and  0/imm32/null
+    75/jump-if-!=  $kernel-string-equal?:false/disp8
+$kernel-string-equal?:true:
+    b8/copy-to-eax  1/imm32
+    eb/jump  $kernel-string-equal?:end/disp8
+$kernel-string-equal?:false:
+    b8/copy-to-eax  0/imm32
+$kernel-string-equal?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# - tests
+
+test-compare-null-kernel-string-with-empty-array:
+    # eax = kernel-string-equal?(Null-kernel-string, "")
+    # . . push args
+    68/push  ""/imm32
+    68/push  Null-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compare-null-kernel-string-with-empty-array"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-null-kernel-string-with-non-empty-array:
+    # eax = kernel-string-equal?(Null-kernel-string, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  Null-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-null-kernel-string-with-non-empty-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-equal-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-equal-array"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-inequal-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "Adc")
+    # . . push args
+    68/push  "Adc"/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-equal-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-empty-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "")
+    # . . push args
+    68/push  ""/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-equal-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-shorter-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-shorter-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-longer-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "Abcd")
+    # . . push args
+    68/push  "Abcd"/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-longer-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+== data
+
+Null-kernel-string:  # (addr kernel-string)
+    00/null
+
+_test-Abc-kernel-string:  # (addr kernel-string)
+    41/A 62/b 63/c 00/null
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/104new-segment.subx b/linux/104new-segment.subx
new file mode 100644
index 00000000..4c249abe
--- /dev/null
+++ b/linux/104new-segment.subx
@@ -0,0 +1,88 @@
+# Create a new segment (pool of memory for allocating chunks from) in the form
+# of an *allocation descriptor* that can be passed to the memory allocator
+# (defined in a later layer).
+#
+# Currently an allocation descriptor consists of just the bounds of the pool of
+# available memory:
+#
+#   curr: address
+#   end: address
+#
+# This isn't enough information to reclaim individual allocations. We can't
+# support arbitrary reclamation yet.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:   # manual test
+    # var ad/ecx: allocation-descriptor
+    68/push  0/imm32/limit
+    68/push  0/imm32/curr
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # new-segment(0x1000, ad)
+    # . . push args
+    51/push-ecx
+    68/push  0x1000/imm32
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # var eax: (addr _) = ad->curr
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    # write to *eax to check that we have access to the newly-allocated segment
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0x34/imm32        # copy to *eax
+    # syscall(exit, eax)
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    e8/call  syscall_exit/disp32
+
+new-segment:  # len: int, ad: (addr allocation-descriptor)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    53/push-ebx
+    # copy len to _mmap-new-segment->len
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   $_mmap-new-segment:len/disp32     # copy eax to *$_mmap-new-segment:len
+    # mmap(_mmap-new-segment)
+    bb/copy-to-ebx  _mmap-new-segment/imm32
+    e8/call  syscall_mmap/disp32
+    # copy {eax, eax+len} to *ad
+    # . ebx = ad
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   0xc/disp8       .                 # copy *(ebp+12) to ebx
+    # . ad->curr = eax
+    89/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to *ebx
+    # . ad->end = eax+len
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # add *(ebp+8) to eax
+    89/copy                         1/mod/*+disp8   3/rm32/ebx    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(ebx+4)
+$new-segment:end:
+    # . restore registers
+    5b/pop-to-ebx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+# various constants used here were found in the Linux sources (search for file mman-common.h)
+_mmap-new-segment:  # mmap_arg_struct
+    # addr
+    0/imm32
+$_mmap-new-segment:len:
+    # len
+    0/imm32
+    # protection flags
+    3/imm32  # PROT_READ | PROT_WRITE
+    # sharing flags
+    0x22/imm32  # MAP_PRIVATE | MAP_ANONYMOUS
+    # fd
+    -1/imm32  # since MAP_ANONYMOUS is specified
+    # offset
+    0/imm32  # since MAP_ANONYMOUS is specified
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/105string-equal.subx b/linux/105string-equal.subx
new file mode 100644
index 00000000..d3f11402
--- /dev/null
+++ b/linux/105string-equal.subx
@@ -0,0 +1,263 @@
+# Comparing 'regular' size-prefixed strings.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run all tests
+#?     e8/call test-compare-equal-strings/disp32
+    e8/call  run-tests/disp32  # 'run-tests' is a function created automatically by SubX. It calls all functions that start with 'test-'.
+    # syscall(exit, Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    e8/call  syscall_exit/disp32
+
+string-equal?:  # s: (addr array byte), benchmark: (addr array byte) -> result/eax: boolean
+    # pseudocode:
+    #   if (s->size != benchmark->size) return false
+    #   return string-starts-with?(s, benchmark)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = benchmark
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # ecx = s->size
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+$string-equal?:sizes:
+    # if (ecx != benchmark->size) return false
+    39/compare                      0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # compare *edi and ecx
+    b8/copy-to-eax  0/imm32/false
+    75/jump-if-!=  $string-equal?:end/disp8
+$string-equal?:contents:
+    # string-starts-with?(s, benchmark)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  string-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$string-equal?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+string-starts-with?:  # s: (addr array byte), benchmark: (addr array byte) -> result/eax: boolean
+    # pseudocode:
+    #   if (s->size < benchmark->size) return false
+    #   currs = s->data
+    #   currb = benchmark->data
+    #   maxb = &benchmark->data[benchmark->size]
+    #   while currb < maxb
+    #     c1 = *currs
+    #     c2 = *currb
+    #     if (c1 != c2) return false
+    #     ++currs, ++currb
+    #   return true
+    #
+    # registers:
+    #   currs: esi
+    #   maxs: ecx
+    #   currb: edi
+    #   c1: eax
+    #   c2: ebx
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = benchmark
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # var bsize/ecx: int = benchmark->size
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy *edi to ecx
+$string-starts-with?:sizes:
+    # if (s->size < bsize) return false
+    39/compare                      0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare *esi with ecx
+    7c/jump-if-<  $string-starts-with?:false/disp8
+    # var currs/esi: (addr byte) = s->data
+    81          0/subop/add         3/mod/direct    6/rm32/esi    .           .             .           .           .               4/imm32           # add to esi
+    # var currb/edi: (addr byte) = benchmark->data
+    81          0/subop/add         3/mod/direct    7/rm32/edi    .           .             .           .           .               4/imm32           # add to edi
+    # var maxb/ecx: (addr byte) = &benchmark->data[benchmark->size]
+    01/add                          3/mod/direct    1/rm32/ecx    .           .             .           7/r32/edi   .               .                 # add edi to ecx
+    # var c1/eax: byte = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # var c2/edx: byte = 0
+    31/xor                          3/mod/direct    2/rm32/edx    .           .             .           2/r32/edx   .               .                 # clear edx
+$string-starts-with?:loop:
+    # if (currs >= maxs) return true
+    39/compare                      3/mod/direct    7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # compare edi with ecx
+    73/jump-if-addr>=  $string-starts-with?:true/disp8
+    # c1 = *currs
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           0/r32/AL    .               .                 # copy byte at *esi to AL
+    # c2 = *currb
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           2/r32/DL    .               .                 # copy byte at *edi to DL
+    # if (c1 != c2) return false
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax and edx
+    75/jump-if-!=  $string-starts-with?:false/disp8
+    # ++currs
+    46/increment-esi
+    # ++currb
+    47/increment-edi
+    eb/jump  $string-starts-with?:loop/disp8
+$string-starts-with?:true:
+    b8/copy-to-eax  1/imm32
+    eb/jump  $string-starts-with?:end/disp8
+$string-starts-with?:false:
+    b8/copy-to-eax  0/imm32
+$string-starts-with?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# - tests
+
+test-compare-empty-with-empty-string:
+    # eax = string-equal?("", "")
+    # . . push args
+    68/push  ""/imm32
+    68/push  ""/imm32
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compare-empty-with-empty-string"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-empty-with-non-empty-string:  # also checks size-mismatch code path
+    # eax = string-equal?("", "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  ""/imm32
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-empty-with-non-empty-string"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-equal-strings:
+    # eax = string-equal?("Abc", "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  "Abc"/imm32
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compare-equal-strings"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-inequal-strings-equal-sizes:
+    # eax = string-equal?("Abc", "Adc")
+    # . . push args
+    68/push  "Adc"/imm32
+    68/push  "Abc"/imm32
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-inequal-strings-equal-sizes"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+# helper for later tests
+check-strings-equal:  # s: (addr array byte), expected: (addr array byte), msg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # var eax: boolean = string-equal?(s, expected)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$check-strings-equal:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# test the helper
+test-check-strings-equal:
+    # check-strings-equal("Abc", "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  "Abc"/imm32
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/106stream.subx b/linux/106stream.subx
new file mode 100644
index 00000000..84d0580b
--- /dev/null
+++ b/linux/106stream.subx
@@ -0,0 +1,74 @@
+# streams: data structure for operating on arrays in a stateful manner
+#
+# A stream looks like this:
+#   write: int  # index at which writes go
+#   read: int  # index that we've read until
+#   data: (array byte)  # prefixed by size as usual
+#
+# some primitives for operating on streams:
+#   - clear-stream (clears everything but the data size)
+#   - rewind-stream (resets read pointer)
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+clear-stream:  # f: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # eax = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # var count/ecx: int = f->size
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(eax+8) to ecx
+    # var max/ecx: (addr byte) = &f->data[f->size]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   0xc/disp8       .                 # copy eax+ecx+12 to ecx
+    # f->write = 0
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # copy to *eax
+    # f->read = 0
+    c7          0/subop/copy        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         0/imm32           # copy to *(eax+4)
+    # - clear all stream data
+    # - this isn't strictly necessary, and it can slow things down *a lot*, but better safe than sorry.
+    # var curr/eax: (addr byte) = f->data
+    81          0/subop/add         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xc/imm32         # add to eax
+$clear-stream:loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
+    73/jump-if-addr>=  $clear-stream:end/disp8
+    # *curr = 0
+    c6          0/subop/copy-byte   0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm8            # copy byte to *eax
+    # ++curr
+    40/increment-eax
+    eb/jump  $clear-stream:loop/disp8
+$clear-stream:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+rewind-stream:  # f: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # eax = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # f->read = 0
+    c7          0/subop/copy        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         0/imm32           # copy to *(eax+4)
+$rewind-stream:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/107trace.subx b/linux/107trace.subx
new file mode 100644
index 00000000..457b77a0
--- /dev/null
+++ b/linux/107trace.subx
@@ -0,0 +1,987 @@
+# primitives for emitting traces to a 'trace' stream, and for tests to make assertions on its contents
+#
+# A trace stream looks like a regular stream:
+#   write: int  # index at which writes go
+#   read: int  # index that we've read until
+#   data: (array byte)  # prefixed by size as usual
+# Usually the trace stream will be in a separate segment set aside for the purpose.
+#
+# primitives for operating on traces (arguments in quotes):
+#   - initialize-trace-stream: populates Trace-stream with a new segment of the given 'size'
+#   - trace: adds a 'line' to Trace-stream
+#   - check-trace-contains: scans from Trace-stream's start for a matching 'line', prints a 'message' to stderr on failure
+#   - check-trace-scans-to: scans from Trace-stream's read pointer for a matching 'line', prints a 'message' to stderr on failure
+
+== data
+
+Trace-stream:  # (addr stream byte)  # TODO: make this a handle
+    0/imm32
+
+Trace-segment:
+    0/imm32/curr
+    0/imm32/limit
+
+# Fake trace-stream for tests.
+# Also illustrates the layout of the real trace-stream (segment).
+_test-trace-stream:  # (stream byte)
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    8/imm32
+    # data
+    00 00 00 00 00 00 00 00  # 8 bytes
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# Allocate a new segment for the trace stream, initialize its size, and save its address to Trace-stream.
+# The Trace-stream segment will consist of variable-length lines separated by newlines (0x0a)
+initialize-trace-stream:  # n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # ecx = n
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # Trace-segment = new-segment(n)
+    # . . push args
+    68/push  Trace-segment/imm32
+    51/push-ecx
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # copy Trace-segment->curr to *Trace-stream
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-segment/disp32              # copy *Trace-segment to eax
+#?     # watch point to catch Trace-stream leaks
+#? $watch-1:
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy eax to *Trace-stream
+    # Trace-stream->size = n - 12
+    # . ecx -= 12
+    81          5/subop/subtract    3/mod/direct    1/rm32/ecx    .           .             .           .           .               0xc/imm32         # subtract from ecx
+    # . Trace-stream->size = ecx
+    89/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   8/disp8         .                 # copy ecx to *(eax+8)
+$initialize-trace-stream:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Append a string to the given trace stream.
+# Silently give up if it's already full. Or truncate the string if there isn't enough room.
+trace:  # line: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var edi: (addr stream byte) = *Trace-stream
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           7/r32/edi   Trace-stream/disp32               # copy *Trace-stream to edi
+    # esi = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var ecx: int = t->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy *edi to ecx
+    # var edx: int = t->size
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(edi+8) to edx
+    # eax = _append-3(&t->data[t->write], &t->data[t->size], line)
+    # . . push line
+    56/push-esi
+    # . . push &t->data[t->size]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  2/index/edx   .           3/r32/ebx   0xc/disp8       .                 # copy edi+edx+12 to ebx
+    53/push-ebx
+    # . . push &t->data[t->write]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  1/index/ecx   .           3/r32/ebx   0xc/disp8       .                 # copy edi+ecx+12 to ebx
+    53/push-ebx
+    # . . call
+    e8/call  _append-3/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # if (eax == 0) return
+    3d/compare-eax-and  0/imm32
+    74/jump-if-=  $trace:end/disp8
+    # t->write += eax
+    01/add                          0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # add eax to *edi
+    # refresh ecx = t->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy *edi to ecx
+    # eax = _append-3(&t->data[t->write], &t->data[t->size], line)
+    # . . push line
+    68/push  Newline/imm32
+    # . . push &t->data[t->size]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  2/index/edx   .           3/r32/ebx   0xc/disp8       .                 # copy edi+edx+12 to ebx
+    53/push-ebx
+    # . . push &t->data[t->write]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  1/index/ecx   .           3/r32/ebx   0xc/disp8       .                 # copy edi+ecx+12 to ebx
+    53/push-ebx
+    # . . call
+    e8/call  _append-3/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # t->write += eax
+    01/add                          0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # add eax to *edi
+$trace:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-trace-single:
+    # push *Trace-stream
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # *Trace-stream = _test-trace-stream
+    b8/copy-to-eax  _test-trace-stream/imm32
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy eax to *Trace-stream
+    # clear-trace-stream()
+    e8/call  clear-trace-stream/disp32
+    # trace("Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(*_test-trace-stream->data, 41/A 62/b 0a/newline 00, msg)
+    # . . push args
+    68/push  "F - test-trace-single"/imm32
+    68/push  0x0a6241/imm32/Ab-newline
+    # . . push *_test-trace-stream->data
+    b8/copy-to-eax  _test-trace-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # pop into *Trace-stream
+    8f          0/subop/pop         0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # pop into *Trace-stream
+    # end
+    c3/return
+
+test-trace-appends:
+    # push *Trace-stream
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # *Trace-stream = _test-trace-stream
+    b8/copy-to-eax  _test-trace-stream/imm32
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy eax to *Trace-stream
+    # clear-trace-stream()
+    e8/call  clear-trace-stream/disp32
+    # trace("C")
+    # . . push args
+    68/push  "C"/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # trace("D")
+    # . . push args
+    68/push  "D"/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(*_test-trace-stream->data, 43/C 0a/newline 44/D 0a/newline, msg)
+    # . . push args
+    68/push  "F - test-trace-appends"/imm32
+    68/push  0x0a440a43/imm32/C-newline-D-newline
+    # . . push *_test-trace-stream->data
+    b8/copy-to-eax  _test-trace-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # pop into *Trace-stream
+    8f          0/subop/pop         0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # pop into *Trace-stream
+    # end
+    c3/return
+
+test-trace-empty-line:
+    # push *Trace-stream
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # *Trace-stream = _test-trace-stream
+    b8/copy-to-eax  _test-trace-stream/imm32
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy eax to *Trace-stream
+    # clear-trace-stream()
+    e8/call  clear-trace-stream/disp32
+    # trace("")
+    # . . push args
+    68/push  ""/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(*_test-trace-stream->data, 0, msg)
+    # . . push args
+    68/push  "F - test-trace-empty-line"/imm32
+    68/push  0/imm32
+    # . . push *_test-trace-stream->data
+    b8/copy-to-eax  _test-trace-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # pop into *Trace-stream
+    8f          0/subop/pop         0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # pop into *Trace-stream
+    # end
+    c3/return
+
+check-trace-contains:  # line: (addr string), msg: (addr string)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # rewind-stream(*Trace-stream)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-trace-scans-to(line, msg)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  check-trace-scans-to/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$check-trace-contains:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+check-trace-scans-to:  # line: (addr string), msg: (addr string)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # eax = trace-scan(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  trace-scan/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$check-trace-scans-to:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Start scanning from Trace-stream->read for 'line'. If found, update Trace-stream->read and return true.
+trace-scan:  # line: (addr array byte) -> result/eax: boolean
+    # pseudocode:
+    #   push Trace-stream->read
+    #   while true:
+    #     if Trace-stream->read >= Trace-stream->write
+    #       break
+    #     if next-line-matches?(Trace-stream, line)
+    #       skip-next-line(Trace-stream)
+    #       dump saved copy of Trace-stream->read
+    #       return true
+    #     skip-next-line(Trace-stream)
+    #   pop saved copy of Trace-stream->read
+    #   return false
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # esi = *Trace-stream
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           6/r32/esi   Trace-stream/disp32               # copy *Trace-stream to esi
+    # ecx = Trace-stream->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx                   .                 # copy *esi to ecx
+    # push Trace-stream->read
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+$trace-scan:loop:
+    # if (Trace-stream->read >= Trace-stream->write) return false
+    39/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # compare ecx with *(esi+4)
+    7d/jump-if->=  $trace-scan:false/disp8
+    # eax = next-line-matches?(Trace-stream, line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    56/push-esi
+    # . . call
+    e8/call  next-line-matches?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (eax == false) continue
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $trace-scan:continue/disp8
+$trace-scan:true:
+    # skip-next-line(Trace-stream)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  skip-next-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # dump saved copy of Trace-stream->read
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # return true
+    b8/copy-to-eax  1/imm32/true
+    eb/jump  $trace-scan:end/disp8
+$trace-scan:continue:
+    # skip-next-line(Trace-stream)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  skip-next-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    eb/jump  $trace-scan:loop/disp8
+$trace-scan:false:
+    # restore saved copy of Trace-stream->read
+    8f          0/subop/pop         1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # pop to *(esi+4)
+    # return false
+    b8/copy-to-eax  0/imm32/false
+$trace-scan:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-trace-scan-first:
+    # push *Trace-stream
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # setup
+    # . *Trace-stream = _test-trace-stream
+    b8/copy-to-eax  _test-trace-stream/imm32
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy eax to *Trace-stream
+    # . clear-trace-stream()
+    e8/call  clear-trace-stream/disp32
+    # . trace("Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # eax = trace-scan("Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    # . . call
+    e8/call  trace-scan/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-trace-scan-first"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # pop into *Trace-stream
+    8f          0/subop/pop         0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # pop into *Trace-stream
+    # . end
+    c3/return
+
+test-trace-scan-skips-lines-until-found:
+    # push *Trace-stream
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # setup
+    # . *Trace-stream = _test-trace-stream
+    b8/copy-to-eax  _test-trace-stream/imm32
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy eax to *Trace-stream
+    # . clear-trace-stream()
+    e8/call  clear-trace-stream/disp32
+    # . trace("Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . trace("cd")
+    # . . push args
+    68/push  "cd"/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # eax = trace-scan("cd")
+    # . . push args
+    68/push  "cd"/imm32
+    # . . call
+    e8/call  trace-scan/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-trace-scan-skips-lines-until-found"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # pop into *Trace-stream
+    8f          0/subop/pop         0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # pop into *Trace-stream
+    # . end
+    c3/return
+
+test-trace-second-scan-starts-where-first-left-off:
+    # push *Trace-stream
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # setup
+    # . *Trace-stream = _test-trace-stream
+    b8/copy-to-eax  _test-trace-stream/imm32
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy eax to *Trace-stream
+    # . clear-trace-stream()
+    e8/call  clear-trace-stream/disp32
+    # . trace("Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . eax = trace-scan("Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    # . . call
+    e8/call  trace-scan/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # second scan fails
+    # . eax = trace-scan("Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    # . . call
+    e8/call  trace-scan/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-trace-second-scan-starts-where-first-left-off"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # pop into *Trace-stream
+    8f          0/subop/pop         0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # pop into *Trace-stream
+    # . end
+    c3/return
+
+test-trace-scan-failure-leaves-read-index-untouched:
+    # push *Trace-stream
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # setup
+    # . *Trace-stream = _test-trace-stream
+    b8/copy-to-eax  _test-trace-stream/imm32
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy eax to *Trace-stream
+    # . clear-trace-stream()
+    e8/call  clear-trace-stream/disp32
+    # . trace("Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-ints-equal(_test-trace-stream->read, 0, msg)
+    # . . push args
+    68/push  "F - test-trace-scan-failure-leaves-read-index-untouched/precondition-failure"/imm32
+    68/push  0/imm32
+    b8/copy-to-eax  _test-trace-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # perform a failing scan
+    # . eax = trace-scan("Ax")
+    # . . push args
+    68/push  "Ax"/imm32
+    # . . call
+    e8/call  trace-scan/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # no change in read index
+    # . check-ints-equal(_test-trace-stream->read, 0, msg)
+    # . . push args
+    68/push  "F - test-trace-scan-failure-leaves-read-index-untouched"/imm32
+    68/push  0/imm32
+    b8/copy-to-eax  _test-trace-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # pop into *Trace-stream
+    8f          0/subop/pop         0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # pop into *Trace-stream
+    # . end
+    c3/return
+
+next-line-matches?:  # t: (addr stream byte), line: (addr array byte) -> result/eax: boolean
+    # pseudocode:
+    #   while true:
+    #     if (currl >= maxl) break
+    #     if (currt >= maxt) return false
+    #     if (*currt != *currl) return false
+    #     ++currt
+    #     ++currl
+    #   return *currt == '\n'
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # edx = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+    # var currl/esi: (addr byte) = line->data
+    # . esi = line/edx->data
+    8d/copy-address                 1/mod/*+disp8   2/rm32/edx    .           .             .           6/r32/esi   4/disp8         .                 # copy edx+4 to esi
+    # var maxl/ecx: (addr byte) = &line->data[line->size]
+    # . eax = line/edx->size
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .                         0/r32/eax   .               .                 # copy *edx to eax
+    # . maxl = &line->data[line->size]
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    6/base/esi  0/index/eax   .           1/r32/ecx   .               .                 # copy edx+eax to ecx
+    # edi = t
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # var ebx: (addr byte) = t->data
+    8d/copy-address                 1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   0xc/disp8       .                 # copy edi+12 to ebx
+    # var maxt/edx: (addr byte) = &t->data[t->write]
+    # . eax = t->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .                         0/r32/eax   .               .                 # copy *edi to eax
+    # . maxt = &t->data[t->write]
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    3/base/ebx  0/index/eax   .           2/r32/edx   .               .                 # copy ebx+eax to edx
+    # var currt/edi: (addr byte) = &t->data[t->read]
+    # . eax = t/edi->read
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .                         0/r32/eax   4/disp8         .                 # copy *(edi+4) to eax
+    # . currt = &t->data[t->read]
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    3/base/ebx  0/index/eax   .           7/r32/edi   .               .                 # copy ebx+eax to edi
+$next-line-matches?:loop:
+    # if (currl >= maxl) break
+    39/compare                      3/mod/direct    6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare esi and ecx
+    73/jump-if-addr>=  $next-line-matches?:break/disp8
+    # if (currt >= maxt) return false
+    # . eax = false
+    b8/copy-to-eax  0/imm32/false
+    39/compare                      3/mod/direct    7/rm32/edi    .           .             .           2/r32/edx   .               .                 # compare edi and edx
+    73/jump-if-addr>=  $next-line-matches?:end/disp8
+    # if (*currt != *currl) return false
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    31/xor                          3/mod/direct    3/rm32/eax    .           .             .           3/r32/eax   .               .                 # clear ebx
+    # . eax: byte = *currt
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .                         0/r32/eax   .               .                 # copy *edi to eax
+    # . ebx: byte = *currl
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .                         3/r32/ebx   .               .                 # copy *esi to ebx
+    # . eax >= ebx
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # compare eax and ebx
+    # . eax = false
+    b8/copy-to-eax  0/imm32/false
+    75/jump-if-!=  $next-line-matches?:end/disp8
+    # ++currt
+    47/increment-edi
+    # ++currl
+    46/increment-esi
+    eb/jump  $next-line-matches?:loop/disp8
+$next-line-matches?:break:
+    # return *currt == '\n'
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # . eax: byte = *currt
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .                         0/r32/eax   .               .                 # copy *edi to eax
+    3d/compare-eax-and  0xa/imm32/newline
+    # . eax = false
+    b8/copy-to-eax  1/imm32/true
+    74/jump-if-=  $next-line-matches?:end/disp8
+    b8/copy-to-eax  0/imm32/true
+$next-line-matches?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-line-matches?-no-match-1:
+    # next line of "ABABA" does not match "blah blah"
+    # . eax = next-line-matches?(_test-stream-line-ABABA, "blah blah")
+    # . . push args
+    68/push  "blah blah"/imm32
+    68/push  _test-stream-line-ABABA/imm32
+    # . . call
+    e8/call  next-line-matches?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-next-line-matches?-no-match-1"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-next-line-matches?-no-match-2:
+    # next line of "ABABA" does not match ""
+    # . eax = next-line-matches?(_test-stream-line-ABABA, "")
+    # . . push args
+    68/push  ""/imm32
+    68/push  _test-stream-line-ABABA/imm32
+    # . . call
+    e8/call  next-line-matches?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-next-line-matches?-no-match-2"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-next-line-matches?-no-match-3:
+    # next line of "ABABA" does not match  "AA"
+    # . eax = next-line-matches?(_test-stream-line-ABABA, "AA")
+    # . . push args
+    68/push  "AA"/imm32
+    68/push  _test-stream-line-ABABA/imm32
+    # . . call
+    e8/call  next-line-matches?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-next-line-matches?-no-match-3"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-next-line-matches?-match:
+    # next line of "ABABA" matches "ABABA"
+    # . eax = next-line-matches?(_test-stream-line-ABABA, "ABABA")
+    # . . push args
+    68/push  "ABABA"/imm32
+    68/push  _test-stream-line-ABABA/imm32
+    # . . call
+    e8/call  next-line-matches?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-next-line-matches?-match"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+# move t->read to _after_ next newline
+skip-next-line:  # t: (addr stream byte)
+    # pseudocode:
+    #   max = &t->data[t->write]
+    #   i = t->read
+    #   curr = &t->data[t->read]
+    #   while true
+    #     if (curr >= max) break
+    #     ++i
+    #     if (*curr == '\n') break
+    #     ++curr
+    #   t->read = i
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = t
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # edx = t->data
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   0xc/disp8       .                 # copy ecx+12 to edx
+    # eax = t->write
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    # var max/ebx: (addr byte) = &t->data[t->write]
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    2/base/edx  0/index/eax   .           3/r32/ebx   .               .                 # copy edx+eax to ebx
+    # eax = t->read
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to edx
+    # var curr/ecx: (addr byte) = &t->data[t->read]
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    2/base/edx  0/index/eax   .           1/r32/ecx   .               .                 # copy edx+eax to ecx
+    # var i/edx: int = t->read
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to edx
+$skip-next-line:loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # compare ecx and ebx
+    73/jump-if-addr>=  $skip-next-line:end/disp8
+    # ++i
+    42/increment-edx
+    # if (*curr == '\n') break
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    3d/compare-eax-and  0a/imm32/newline
+    74/jump-if-=  $skip-next-line:end/disp8
+    # ++curr
+    41/increment-ecx
+    # loop
+    eb/jump  $skip-next-line:loop/disp8
+$skip-next-line:end:
+    # ecx = t
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # t->read = i
+    89/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy edx to *(ecx+4)
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-next-line-empty:
+    # skipping next line in empty stream leaves read pointer at 0
+    # . skip-next-line(_test-stream-empty)
+    # . . push args
+    68/push  _test-stream-empty/imm32
+    # . . call
+    e8/call  skip-next-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-ints-equal(_test-stream-empty->read, 0, msg)
+    # . . push args
+    68/push  "F - test-skip-next-line-empty"/imm32
+    68/push  0/imm32
+    b8/copy-to-eax  _test-stream-empty/imm32
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   4/disp8         .                 # copy *(eax+4) to eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-skip-next-line-filled:
+    # skipping next line increments read pointer by length of line + 1 (for newline)
+    # . skip-next-line(_test-stream-filled)
+    # . . push args
+    68/push  _test-stream-filled/imm32
+    # . . call
+    e8/call  skip-next-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-ints-equal(_test-stream-filled->read, 5, msg)
+    # . . push args
+    68/push  "F - test-skip-next-line-filled"/imm32
+    68/push  5/imm32
+    b8/copy-to-eax  _test-stream-filled/imm32
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   4/disp8         .                 # copy *(eax+4) to eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+clear-trace-stream:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(*Trace-stream)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$clear-trace-stream:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# - helpers
+
+# 3-argument variant of _append
+_append-3:  # out: (addr byte), outend: (addr byte), s: (addr array byte) -> num_bytes_appended/eax
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # eax = _append-4(out, outend, &s->data[0], &s->data[s->size])
+    # . . push &s->data[s->size]
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    51/push-ecx
+    # . . push &s->data[0]
+    8d/copy-address                 1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   4/disp8         .                 # copy eax+4 to ecx
+    51/push-ecx
+    # . . push outend
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . push out
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  _append-4/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$_append-3:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# 4-argument variant of _append
+_append-4:  # out: (addr byte), outend: (addr byte), in: (addr byte), inend: (addr byte) -> num_bytes_appended/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # num_bytes_appended = 0
+    b8/copy-to-eax  0/imm32
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # edx = outend
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0x10/disp8      .                 # copy *(ebp+16) to esi
+    # ecx = inend
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x14/disp8      .                 # copy *(ebp+20) to ecx
+$_append-4:loop:
+    # if (in >= inend) break
+    39/compare                      3/mod/direct    6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare esi with ecx
+    73/jump-if-addr>=  $_append-4:end/disp8
+    # if (out >= outend) abort  # just to catch test failures fast
+    39/compare                      3/mod/direct    7/rm32/edi    .           .             .           2/r32/edx   .               .                 # compare edi with edx
+    73/jump-if-addr>=  $_append-4:abort/disp8
+    # *out = *in
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           3/r32/BL    .               .                 # copy byte at *esi to BL
+    88/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           3/r32/BL    .               .                 # copy byte at BL to *edi
+    # ++num_bytes_appended
+    40/increment-eax
+    # ++in
+    46/increment-esi
+    # ++out
+    47/increment-edi
+    eb/jump  $_append-4:loop/disp8
+$_append-4:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$_append-4:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "stream overflow\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+== data
+
+_test-stream-line-ABABA:  # (stream byte)
+    # write
+    8/imm32
+    # read
+    0/imm32
+    # size
+    8/imm32
+    # data
+    41 42 41 42 41 0a 00 00  # 8 bytes
+
+_test-stream-empty:  # (stream byte)
+    # write
+    0/imm32
+    # read
+    0/imm32
+    # size
+    8/imm32
+    # data
+    00 00 00 00 00 00 00 00  # 8 bytes
+
+_test-stream-filled:  # (stream byte)
+    # write
+    8/imm32
+    # read
+    0/imm32
+    # size
+    8/imm32
+    # data
+    41 41 41 41 0a 41 41 41  # 8 bytes
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/108write.subx b/linux/108write.subx
new file mode 100644
index 00000000..84060c62
--- /dev/null
+++ b/linux/108write.subx
@@ -0,0 +1,162 @@
+# write: like _write, but also support in-memory streams in addition to file
+# descriptors.
+#
+# Our first dependency-injected and testable primitive. We can pass it either
+# a file descriptor or an address to a stream. If a file descriptor is passed
+# in, we _write to it using the right syscall. If a 'fake file descriptor' or
+# stream is passed in, we append to the stream. This lets us redirect output
+# in tests and check it later.
+#
+# We assume our data segment will never begin at an address shorter than
+# 0x08000000, so any smaller arguments are assumed to be real file descriptors.
+#
+# A stream looks like this:
+#   read: int  # index at which to read next
+#   write: int  # index at which writes go
+#   data: (array byte)  # prefixed by size as usual
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# TODO: come up with a way to signal when a write to disk fails
+write:  # f: fd or (addr stream byte), s: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # if (s == 0) return
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       0/imm32           # compare *(ebp+12)
+    74/jump-if-=  $write:end/disp8
+    # if (f < 0x08000000) _write(f, s) and return  # f can't be a user-mode address, so treat it as a kernel file descriptor
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         0x08000000/imm32  # compare *(ebp+8)
+    73/jump-if-addr>=  $write:fake/disp8
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    eb/jump  $write:end/disp8
+$write:fake:
+    # otherwise, treat 'f' as a stream to append to
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # edx = f->write
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # ebx = f->size
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           3/r32/ebx   8/disp8         .                 # copy *(ecx+8) to ebx
+    # eax = _append-3(&f->data[f->write], &f->data[f->size], s)
+    # . . push s
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . push &f->data[f->size]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    1/base/ecx  3/index/ebx   .           3/r32/ebx   0xc/disp8       .                 # copy ecx+ebx+12 to ebx
+    53/push-ebx
+    # . . push &f->data[f->write]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    1/base/ecx  2/index/edx   .           3/r32/ebx   0xc/disp8       .                 # copy ecx+edx+12 to ebx
+    53/push-ebx
+    # . . call
+    e8/call  _append-3/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # f->write += eax
+    01/add                          0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # add eax to *ecx
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+$write:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-single:
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(*_test-stream->data, 41/A 62/b 00 00, msg)
+    # . . push args
+    68/push  "F - test-write-single"/imm32
+    68/push  0x006241/imm32/Ab
+    # . . push *_test-stream->data
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-write-appends:
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "C")
+    # . . push args
+    68/push  "C"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(_test-stream, "D")
+    # . . push args
+    68/push  "D"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(*_test-stream->data, 43/C 44/D 00 00, msg)
+    # . . push args
+    68/push  "F - test-write-appends"/imm32
+    68/push  0x00004443/imm32/C-D
+    # . . push *_test-stream->data
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+== data
+
+_test-stream:  # (stream byte)
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    0x10/imm32
+    # data (2 lines x 8 bytes/line)
+    00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/109stream-equal.subx b/linux/109stream-equal.subx
new file mode 100644
index 00000000..8f6cf1bf
--- /dev/null
+++ b/linux/109stream-equal.subx
@@ -0,0 +1,595 @@
+# some primitives for checking stream contents
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# compare all the data in a stream (ignoring the read pointer)
+stream-data-equal?:  # f: (addr stream byte), s: (addr array byte) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # esi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # eax = f->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    # var maxf/edx: (addr byte) = &f->data[f->write]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           2/r32/edx   0xc/disp8       .                 # copy esi+eax+12 to edx
+    # var currf/esi: (addr byte) = f->data
+    81          0/subop/add         3/mod/direct    6/rm32/esi    .           .             .           .           .               0xc/imm32         # add to esi
+    # edi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+$stream-data-equal?:compare-sizes:
+    # if (f->write != s->size) return false
+    39/compare                      0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # compare *edi and eax
+    75/jump-if-!=  $stream-data-equal?:false/disp8
+    # var currs/edi: (addr byte) = s->data
+    81          0/subop/add         3/mod/direct    7/rm32/edi    .           .             .           .           .               4/imm32           # add to edi
+    # var eax: byte = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # var ecx: byte = 0
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+$stream-data-equal?:loop:
+    # if (currf >= maxf) return true
+    39/compare                      3/mod/direct    6/rm32/esi    .           .             .           2/r32/edx   .               .                 # compare esi with edx
+    73/jump-if-addr>=  $stream-data-equal?:true/disp8
+    # AL = *currs
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           0/r32/AL    .               .                 # copy byte at *esi to AL
+    # CL = *curr
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           1/r32/CL    .               .                 # copy byte at *edi to CL
+    # if (eax != ecx) return false
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax and ecx
+    75/jump-if-!=  $stream-data-equal?:false/disp8
+    # ++f
+    46/increment-esi
+    # ++curr
+    47/increment-edi
+    eb/jump $stream-data-equal?:loop/disp8
+$stream-data-equal?:false:
+    b8/copy-to-eax  0/imm32
+    eb/jump  $stream-data-equal?:end/disp8
+$stream-data-equal?:true:
+    b8/copy-to-eax  1/imm32
+$stream-data-equal?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-stream-data-equal:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = stream-data-equal?(_test-stream, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  stream-data-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-stream-data-equal"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-stream-data-equal-2:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = stream-data-equal?(_test-stream, "Abd")
+    # . . push args
+    68/push  "Abd"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  stream-data-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-stream-data-equal-2"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-stream-data-equal-size-check:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = stream-data-equal?(_test-stream, "Abcd")
+    # . . push args
+    68/push  "Abcd"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  stream-data-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-stream-data-equal-size-check"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# helper for later tests
+check-stream-equal:  # f: (addr stream byte), s: (addr array byte), msg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # eax = stream-data-equal?(f, s)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  stream-data-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$check-stream-equal:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# scan the next line until newline starting from f->read and compare it with
+# 's' (ignoring the trailing newline)
+# on success, set f->read to after the next newline
+# on failure, leave f->read unmodified
+# this function is usually used only in tests, so we repeatedly write f->read
+next-stream-line-equal?:  # f: (addr stream byte), s: (addr array byte) -> result/eax: boolean
+    # pseudocode:
+    #   currf = f->read  # bound: f->write
+    #   currs = 0  # bound: s->size
+    #   while true
+    #     if currf >= f->write
+    #       return currs >= s->size
+    #     if f[currf] == '\n'
+    #       ++currf
+    #       return currs >= s->size
+    #     if (currs >= s->size) return false  # the current line of f still has data to match
+    #     if (f[currf] != s[currs]) return false
+    #     ++currf
+    #     ++currs
+    #
+    # collapsing the two branches that can return true:
+    #   currf = f->read  # bound: f->write
+    #   currs = 0  # bound: s->size
+    #   while true
+    #     if (currf >= f->write) break
+    #     if (f[currf] == '\n') break
+    #     if (currs >= s->size) return false  # the current line of f still has data to match
+    #     if (f[currf] != s[currs]) return false
+    #     ++currf
+    #     ++currs
+    #   ++currf  # skip '\n'
+    #   return currs >= s->size
+    # Here the final `++currf` is sometimes unnecessary (if we're already at the end of the stream)
+    #
+    # registers:
+    #   f: esi
+    #   s: edi
+    #   currf: ecx
+    #   currs: edx
+    #   f[currf]: eax
+    #   s[currs]: ebx
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # esi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var currf/ecx: int = f->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    # edi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # var currs/edx: int = 0
+    31/xor                          3/mod/direct    2/rm32/edx    .           .             .           2/r32/edx   .               .                 # clear edx
+    # var c1/eax: byte = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # var c2/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$next-stream-line-equal?:loop:
+    # if (currf >= f->write) break
+    3b/compare                      0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare ecx with *esi
+    7d/jump-if->=  $next-stream-line-equal?:break/disp8
+    # c1 = f->data[f->read]
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # if (c1 == '\n') break
+    3d/compare-eax-and  0xa/imm32/newline
+    74/jump-if-=  $next-stream-line-equal?:break/disp8
+    # if (currs >= s->size) return false
+    3b/compare                      0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # compare edx with *edi
+    7d/jump-if->=  $next-stream-line-equal?:false/disp8
+    # c2 = s->data[currs]
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  2/index/edx   .           3/r32/BL    4/disp8         .                 # copy byte at *(edi+edx+4) to BL
+    # if (c1 != c2) return false
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # compare eax and ebx
+    75/jump-if-!=  $next-stream-line-equal?:false/disp8
+    # ++currf
+    41/increment-ecx
+    # ++currs
+    42/increment-edx
+    eb/jump $next-stream-line-equal?:loop/disp8
+$next-stream-line-equal?:break:
+    # ++currf
+    41/increment-ecx
+    # if (currs >= s->size) return true
+    3b/compare                      0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # compare edx with *edi
+    7c/jump-if-<  $next-stream-line-equal?:false/disp8
+$next-stream-line-equal?:true:
+    b8/copy-to-eax  1/imm32
+    # persist f->read on success
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy ecx to *(esi+4)
+    eb/jump  $next-stream-line-equal?:end/disp8
+$next-stream-line-equal?:false:
+    b8/copy-to-eax  0/imm32
+$next-stream-line-equal?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-stream-line-equal-stops-at-newline:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Abc\ndef")
+    # . . push args
+    68/push  "Abc\ndef"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = next-stream-line-equal?(_test-stream, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-next-stream-line-equal-stops-at-newline"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-stream-line-equal-stops-at-newline-2:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Abc\ndef")
+    # . . push args
+    68/push  "Abc\ndef"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = next-stream-line-equal?(_test-stream, "def")
+    # . . push args
+    68/push  "def"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-next-stream-line-equal-stops-at-newline-2"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-stream-line-equal-skips-newline:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Abc\ndef\n")
+    # . . push args
+    68/push  "Abc\ndef\n"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-stream-line-equal?(_test-stream, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = next-stream-line-equal?(_test-stream, "def")
+    # . . push args
+    68/push  "def"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-next-stream-line-equal-skips-newline"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-stream-line-equal-handles-final-line:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Abc\ndef")
+    # . . push args
+    68/push  "Abc\ndef"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-stream-line-equal?(_test-stream, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = next-stream-line-equal?(_test-stream, "def")
+    # . . push args
+    68/push  "def"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-next-stream-line-equal-skips-newline"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-stream-line-equal-always-fails-after-Eof:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write nothing
+    # eax = next-stream-line-equal?(_test-stream, "")
+    # . . push args
+    68/push  ""/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-next-stream-line-equal-always-fails-after-Eof"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = next-stream-line-equal?(_test-stream, "")
+    # . . push args
+    68/push  ""/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-next-stream-line-equal-always-fails-after-Eof/2"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# helper for later tests
+check-next-stream-line-equal:  # f: (addr stream byte), s: (addr array byte), msg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # eax = next-stream-line-equal?(f, s)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-stream-line-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/110stop.subx b/linux/110stop.subx
new file mode 100644
index 00000000..f6cb6fae
--- /dev/null
+++ b/linux/110stop.subx
@@ -0,0 +1,214 @@
+# stop: dependency-injected wrapper around the exit() syscall
+#
+# We'd like to be able to write tests for functions that call exit(), and to
+# make assertions about whether they exit() or not in a given situation. To
+# achieve this we'll call exit() via a smarter wrapper called 'stop'.
+#
+# In the context of a test, calling a function X that calls 'stop' (directly
+# or through further intervening calls) will unwind the stack until X returns,
+# so that we can say check any further assertions after the execution of X. To
+# achieve this end, we'll pass the return address of X as a 'target' argument
+# into X, plumbing it through to 'stop'. When 'stop' gets a non-null target it
+# unwinds the stack until the target. If it gets a null target it calls
+# exit().
+#
+# We'd also like to get the exit status out of 'stop', so we'll combine the
+# input target with an output status parameter into a type called 'exit-descriptor'.
+#
+# So the exit-descriptor looks like this:
+#   target: address  # return address for 'stop' to unwind to
+#   value: int  # exit status stop was called with
+#
+# 'stop' thus takes two parameters: an exit-descriptor and the exit status.
+#
+# 'stop' won't bother cleaning up any other processor state besides the stack,
+# such as registers. Only esp will have a well-defined value after 'stop'
+# returns. (This is a poor man's setjmp/longjmp, if you know what that is.)
+#
+# Before you can call any function that may call 'stop', you need to pass in an
+# exit-descriptor to it. To create an exit-descriptor use 'tailor-exit-descriptor'
+# below. It's not the most pleasant abstraction in the world.
+#
+# An exit-descriptor's target is its input, computed during 'tailor-exit-descriptor'.
+# Its value is its output, computed during stop and available to the test.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# Configure an exit-descriptor for a call pushing 'nbytes' bytes of args to
+# the stack.
+# Ugly that we need to know the size of args. Don't allocate variables between
+# tailor-exit-descriptor and the call it's for.
+tailor-exit-descriptor:  # ed: (addr exit-descriptor), nbytes: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # eax = nbytes
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    # Let X be the value of esp in the caller, before the call to tailor-exit-descriptor.
+    # The return address for a call in the caller's body will be at:
+    #   X-8 if the caller takes 4 bytes of args for the exit-descriptor (add 4 bytes for the return address)
+    #   X-12 if the caller takes 8 bytes of args
+    #   ..and so on
+    # That's the value we need to return: X-nbytes-4
+    #
+    # However, we also need to account for the perturbance to esp caused by the
+    # call to tailor-exit-descriptor. It pushes 8 bytes of args followed by 4
+    # bytes for the return address and 4 bytes to push ebp above.
+    # So ebp at this point is X-16.
+    #
+    # So the return address for the next call in the caller is:
+    #   ebp+8 if the caller takes 4 bytes of args
+    #   ebp+4 if the caller takes 8 bytes of args
+    #   ebp if the caller takes 12 bytes of args
+    #   ebp-4 if the caller takes 16 bytes of args
+    #   ..and so on
+    # That's ebp+12-nbytes.
+    # option 1: 6 + 3 bytes
+#?     2d/subtract                     3/mod/direct    0/rm32/eax    .           .             .           .           .               8/imm32           # subtract from eax
+#?     8d/copy-address                 0/mod/indirect  4/rm32/sib    5/base/ebp  0/index/eax   .           0/r32/eax   .               .                 # copy ebp+eax to eax
+    # option 2: 2 + 4 bytes
+    f7          3/subop/negate      3/mod/direct    0/rm32/eax    .           .             .           .           .               .                 # negate eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    5/base/ebp  0/index/eax   .           0/r32/eax   0xc/disp8         .               # copy ebp+eax+12 to eax
+    # copy eax to ed->target
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    89/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to *ecx
+    # initialize ed->value
+    c7          0/subop/copy        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # copy to *(ecx+4)
+$tailor-exit-descriptor:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+stop:  # ed: (addr exit-descriptor), value: int
+    # no prologue; one way or another, we're going to clobber registers
+    # eax = ed
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none  .           0/r32/eax   4/disp8         .                 # copy *(esp+4) to eax
+    # if (ed == 0) really exit
+    3d/compare-eax-and 0/imm32
+    74/jump-if-=  $stop:real/disp8
+    # if (ed->target == 0) really exit
+    81          7/subop/compare     0/mod/indirect  0/rm32/eax    .           .             .           .           .               0/imm32           # compare *eax
+    74/jump-if-=  $stop:real/disp8
+$stop:fake:
+    # ed->value = value+1
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none  .           1/r32/ecx   8/disp8         .                 # copy *(esp+8) to ecx
+    41/increment-ecx
+    89/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   4/disp8         .                 # copy ecx to *(eax+4)
+    # perform a non-local jump to ed->target
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy *eax to esp
+$stop:end1:
+    # never gets here
+    c3/return  # doesn't return to caller
+$stop:real:
+    # . syscall(exit, value)
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none  .           3/r32/ebx   8/disp8         .                 # copy *(esp+8) to ebx
+    e8/call  syscall_exit/disp32
+$stop:end2:
+    # never gets here
+    c3/return  # doesn't return to caller
+
+test-stop-skips-returns-on-exit:
+    # This looks like the standard prologue, but is here for different reasons.
+    # A function calling 'stop' can't rely on ebp persisting past the call.
+    #
+    # Use ebp here as a stable base to refer to locals and arguments from in the
+    # presence of push/pop/call instructions.
+    # *Don't* use ebp as a way to restore esp.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # Make room for an exit descriptor on the stack. That's almost always the
+    # right place for it, available only as long as it's legal to use. Once this
+    # containing function returns we'll need a new exit descriptor.
+    # var ed/eax: exit-descriptor
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # Size the exit-descriptor precisely for the next call below, to _test-stop-1.
+    # tailor-exit-descriptor(ed, 4)
+    # . . push args
+    68/push  4/imm32/nbytes-of-args-for-_test-stop-1
+    50/push-eax
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . _test-stop-1(ed)
+    # . . push args
+    50/push-eax
+    # . . call
+    e8/call  _test-stop-1/disp32
+    # registers except esp may be clobbered at this point
+    # restore args
+    58/pop-to-eax
+    # check that _test-stop-1 tried to call exit(1)
+    # . check-ints-equal(ed->value, 2, msg)  # i.e. stop was called with value 1
+    # . . push args
+    68/push  "F - test-stop-skips-returns-on-exit"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+_test-stop-1:  # ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # _test-stop-2(ed)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  _test-stop-2/disp32
+    # should never get past this point
+$_test-stop-1:dead-end:
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # signal test failed: check-ints-equal(1, 0, msg)
+    # . . push args
+    68/push  "F - test-stop-skips-returns-on-exit"/imm32
+    68/push  0/imm32
+    68/push  1/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+_test-stop-2:  # ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  stop/disp32
+    # should never get past this point
+$_test-stop-2:dead-end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/110stop.subx. b/linux/110stop.subx.
new file mode 100644
index 00000000..965d7ae5
--- /dev/null
+++ b/linux/110stop.subx.
@@ -0,0 +1,231 @@
+# stop: dependency-injected wrapper around the exit() syscall
+#
+# We'd like to be able to write tests for functions that call exit(), and to
+# make assertions about whether they exit() or not in a given situation. To
+# achieve this we'll call exit() via a smarter wrapper called 'stop'.
+#
+# In the context of a test, calling a function X that calls 'stop' (directly
+# or through further intervening calls) will unwind the stack until X returns,
+# so that we can say check any further assertions after the execution of X. To
+# achieve this end, we'll pass the return address of X as a 'target' argument
+# into X, plumbing it through to 'stop'. When 'stop' gets a non-null target it
+# unwinds the stack until the target. If it gets a null target it calls
+# exit().
+#
+# We'd also like to get the exit status out of 'stop', so we'll combine the
+# input target with an output status parameter into a type called 'exit-descriptor'.
+#
+# So the exit-descriptor looks like this:
+#   target : address  # return address for 'stop' to unwind to
+#   value : int  # exit status stop was called with
+#
+# 'stop' thus takes two parameters: an exit-descriptor and the exit status.
+#
+# 'stop' won't bother cleaning up any other processor state besides the stack,
+# such as registers. Only ESP will have a well-defined value after 'stop'
+# returns. (This is a poor man's setjmp/longjmp, if you know what that is.)
+#
+# Before you can call any function that may call 'stop', you need to pass in an
+# exit-descriptor to it. The value will initially be empty. What should the
+# target be? The simplest way to compute the target requires violating the
+# usual pattern of function calls.
+#
+# Normally function calls follow this pattern:
+#   * push all args on the stack
+#   * call
+#   * increment ESP to pop all args off the stack
+#
+# When passing in a new exit descriptor, the process of calling looks like this:
+#   * allocate space for the exit descriptor on the stack
+#   * assign the exit descriptor to some register 'r'
+#   ... some time later ...
+#   * push all args on the stack, including register 'r'
+#   * save ESP to *r (the target of the exit descriptor)
+#
+# The value saved to the target isn't quite right, so stop needs to adjust its
+# exit-descriptor argument 'ed':
+#   copy *ed to ESP
+#   decrement ESP by 4 (from last arg to return address)
+#   ret
+#
+# Performing the decrement inside 'stop' reduces our overhead for creating exit
+# descriptors to a single 2-byte instruction.
+# We only adjust the target if we ever actually call 'stop'.
+#
+# There's no good way to abstract away the target computation, since it depends
+# on the number of args a function is called with.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# Configure an exit-descriptor for a call pushing 'nbytes' bytes of args to
+# the stack.
+# Ugly that we need to know the size of args, but so it goes.
+tailor-exit-descriptor:  # ed : (address exit-descriptor), nbytes : int -> <void>
+    # . prolog
+    55/push-EBP
+    89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
+    # . save registers
+    50/push-EAX
+    51/push-ECX
+    # EAX = nbytes
+    8b/copy                         1/mod/*+disp8   5/rm32/EBP    .           .             .           0/r32/EAX   0xc/disp8       .                 # copy *(EBP+12) to EAX
+    # Let X be the value of ESP in the caller, before the call to tailor-exit-descriptor.
+    # The return address for a call in the caller's body will be at:
+    #   X-8 if the caller takes 4 bytes of args for the exit-descriptor (add 4 bytes for the return address)
+    #   X-12 if the caller takes 8 bytes of args
+    #   ..and so on
+    # That's the value we need to return: X-nbytes-4
+    #
+    # However, we also need to account for the perturbance to ESP caused by the
+    # call to tailor-exit-descriptor. It pushes 8 bytes of args followed by 4
+    # bytes for the return address and 4 bytes to push EBP above.
+    # So EBP at this point is X-16.
+    #
+    # So the return address for the next call in the caller is:
+    #   EBP+8 if the caller takes 4 bytes of args
+    #   EBP+4 if the caller takes 8 bytes of args
+    #   EBP if the caller takes 12 bytes of args
+    #   EBP-4 if the caller takes 16 bytes of args
+    #   ..and so on
+    # That's EBP+12-nbytes.
+    # option 1: 6 + 3 bytes
+#?     2d/subtract                     3/mod/direct    0/rm32/EAX    .           .             .           .           .               8/imm32           # subtract from EAX
+#?     8d/copy-address                 0/mod/indirect  4/rm32/sib    5/base/EBP  0/index/EAX   .           0/r32/EAX   .               .                 # copy EBP+EAX to EAX
+    # option 2: 2 + 4 bytes
+    f7          3/subop/negate      3/mod/direct    0/rm32/EAX    .           .             .           .           .               .                 # negate EAX
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    5/base/EBP  0/index/EAX   .           0/r32/EAX   0xc/disp8         .               # copy EBP+EAX+12 to EAX
+    # copy EAX to ed->target
+    8b/copy                         1/mod/*+disp8   5/rm32/EBP    .           .             .           1/r32/ECX   8/disp8         .                 # copy *(EBP+8) to ECX
+    89/copy                         0/mod/indirect  1/rm32/ECX    .           .             .           0/r32/EAX   .               .                 # copy EAX to *ECX
+    # initialize ed->value
+    c7          0/subop/copy        1/mod/*+disp8   1/rm32/ECX    .           .             .           .           4/disp8         0/imm32           # copy to *(ECX+4)
+$tailor-exit-descriptor:end:
+    # . restore registers
+    59/pop-to-ECX
+    58/pop-to-EAX
+    # . epilog
+    89/copy                         3/mod/direct    4/rm32/ESP    .           .             .           5/r32/EBP   .               .                 # copy EBP to ESP
+    5d/pop-to-EBP
+    c3/return
+
+stop:  # ed : (address exit-descriptor), value : int
+    # no prolog; one way or another, we're going to clobber registers
+    # EAX = ed
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/ESP  4/index/none  .           0/r32/EAX   4/disp8         .                 # copy *(ESP+4) to EAX
+    # if (ed->target == 0) really exit
+    81          7/subop/compare     0/mod/indirect  0/rm32/EAX    .           .             .           .           .               0/imm32           # compare *EAX
+    75/jump-if-not-equal  $stop:fake/disp8
+    # . syscall(exit, value)
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/ESP  4/index/none  .           3/r32/EBX   8/disp8         .                 # copy *(ESP+8) to EBX
+    b8/copy-to-EAX  1/imm32/exit
+    cd/syscall  0x80/imm8
+$stop:fake:
+    # otherwise:
+    # ed->value = value+1
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/ESP  4/index/none  .           1/r32/ECX   8/disp8         .                 # copy *(ESP+8) to ECX
+    41/increment-ECX
+    89/copy                         1/mod/*+disp8   0/rm32/EAX    .           .             .           1/r32/ECX   4/disp8         .                 # copy ECX to *(EAX+4)
+    # perform a non-local jump to ed->target
+    8b/copy                         0/mod/indirect  0/rm32/EAX    .           .             .           4/r32/ESP   .               .                 # copy *EAX to ESP
+$stop:end:
+    c3/return  # doesn't return to caller
+
+test-stop-skips-returns-on-exit:
+    # This looks like the standard prolog, but is here for different reasons.
+    # A function calling 'stop' can't rely on EBP persisting past the call.
+    #
+    # Use EBP here as a stable base to refer to locals and arguments from in the
+    # presence of push/pop/call instructions.
+    # *Don't* use EBP as a way to restore ESP.
+    55/push-EBP
+    89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
+    # Make room for an exit descriptor on the stack. That's almost always the
+    # right place for it, available only as long as it's legal to use. Once this
+    # containing function returns we'll need a new exit descriptor.
+    # var ed/EAX : (address exit-descriptor)
+    81          5/subop/subtract    3/mod/direct    4/rm32/ESP    .           .             .           .           .               8/imm32           # subtract from ESP
+    89/copy                         3/mod/direct    0/rm32/EAX    .           .             .           4/r32/ESP   .               .                 # copy ESP to EAX
+    # Size the exit-descriptor precisely for the next call below, to _test-stop-1.
+    # tailor-exit-descriptor(ed, 4)
+    # . . push args
+    68/push  4/imm32/nbytes-of-args-for-_test-stop-1
+    50/push-EAX
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               8/imm32           # add to ESP
+    # call/ed(ed) _test-stop-1(ed)
+    # w/exit(ed) _test-stop-1(ed)
+    # . _test-stop-1(ed)
+    # . . push args
+    50/push-EAX
+    # . . call
+    e8/call  _test-stop-1/disp32
+    # registers except ESP may be clobbered at this point
+    # restore args
+    58/pop-to-EAX
+    # check that _test-stop-1 tried to call exit(1)
+    # check-ints-equal(ed->value, 2, msg)  # i.e. stop was called with value 1
+    # . . push args
+    68/push  "F - test-stop-skips-returns-on-exit"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/EAX    .           .             .           .           4/disp8         .                 # push *(EAX+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               0xc/imm32         # add to ESP
+    # . epilog
+    # don't restore ESP from EBP; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               8/imm32           # add to ESP
+    5d/pop-to-EBP
+    c3/return
+
+_test-stop-1:  # ed : (address exit-descriptor)
+    # . prolog
+    55/push-EBP
+    89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
+    # _test-stop-2(ed)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP    .           .             .           .           8/disp8         .                 # push *(EBP+8)
+    # . . call
+    e8/call  _test-stop-2/disp32
+    # should never get past this point
+$_test-stop-1:dead-end:
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               4/imm32           # add to ESP
+    # signal test failed: check-ints-equal(1, 0, msg)
+    # . . push args
+    68/push  "F - test-stop-skips-returns-on-exit"/imm32
+    68/push  0/imm32
+    68/push  1/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               0xc/imm32         # add to ESP
+    # . epilog
+    89/copy                         3/mod/direct    4/rm32/ESP    .           .             .           5/r32/EBP   .               .                 # copy EBP to ESP
+    5d/pop-to-EBP
+    c3/return
+
+_test-stop-2:  # ed : (address exit-descriptor)
+    # . prolog
+    55/push-EBP
+    89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
+    # . stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP    .           .             .           .           8/disp8         .                 # push *(EBP+8)
+    # . . call
+    e8/call  stop/disp32
+    # should never get past this point
+$_test-stop-2:dead-end:
+    # . epilog
+    89/copy                         3/mod/direct    4/rm32/ESP    .           .             .           5/r32/EBP   .               .                 # copy EBP to ESP
+    5d/pop-to-EBP
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/110stop.subx.0 b/linux/110stop.subx.0
new file mode 100644
index 00000000..dbe8a663
--- /dev/null
+++ b/linux/110stop.subx.0
@@ -0,0 +1,206 @@
+# stop: dependency-injected wrapper around the exit() syscall
+#
+# We'd like to be able to write tests for functions that call exit(), and to
+# make assertions about whether they exit() or not in a given situation. To
+# achieve this we'll call exit() via a smarter wrapper called 'stop'.
+#
+# In the context of a test, calling a function X that calls 'stop' (directly
+# or through further intervening calls) will unwind the stack until X returns,
+# so that we can say check any further assertions after the execution of X. To
+# achieve this end, we'll pass the return address of X as a 'target' argument
+# into X, plumbing it through to 'stop'. When 'stop' gets a non-null target it
+# unwinds the stack until the target. If it gets a null target it calls
+# exit().
+#
+# We'd also like to get the exit status out of 'stop', so we'll combine the
+# input target with an output status parameter into a type called 'exit-descriptor'.
+#
+# So the exit-descriptor looks like this:
+#   target : address  # return address for 'stop' to unwind to
+#   value : int  # exit status stop was called with
+#
+# 'stop' thus takes two parameters: an exit-descriptor and the exit status.
+#
+# 'stop' won't bother cleaning up any other processor state besides the stack,
+# such as registers. Only ESP will have a well-defined value after 'stop'
+# returns. (This is a poor man's setjmp/longjmp, if you know what that is.)
+#
+# Before you can call any function that may call 'stop', you need to pass in an
+# exit-descriptor to it. To create an exit-descriptor use 'tailor-exit-descriptor'
+# below. It's not the most pleasant abstraction in the world.
+#
+# An exit-descriptor's target is its input, computed during 'tailor-exit-descriptor'.
+# Its value is its output, computed during stop and available to the test.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# Configure an exit-descriptor for a call pushing 'nbytes' bytes of args to
+# the stack.
+# Ugly that we need to know the size of args, but so it goes.
+tailor-exit-descriptor:  # ed : (address exit-descriptor), nbytes : int -> <void>
+    # . prolog
+    55/push-EBP
+    89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
+    # . save registers
+    50/push-EAX
+    51/push-ECX
+    # EAX = nbytes
+    8b/copy                         1/mod/*+disp8   5/rm32/EBP    .           .             .           0/r32/EAX   0xc/disp8       .                 # copy *(EBP+12) to EAX
+    # Let X be the value of ESP in the caller, before the call to tailor-exit-descriptor.
+    # The return address for a call in the caller's body will be at:
+    #   X-8 if the caller takes 4 bytes of args for the exit-descriptor (add 4 bytes for the return address)
+    #   X-12 if the caller takes 8 bytes of args
+    #   ..and so on
+    # That's the value we need to return: X-nbytes-4
+    #
+    # However, we also need to account for the perturbance to ESP caused by the
+    # call to tailor-exit-descriptor. It pushes 8 bytes of args followed by 4
+    # bytes for the return address and 4 bytes to push EBP above.
+    # So EBP at this point is X-16.
+    #
+    # So the return address for the next call in the caller is:
+    #   EBP+8 if the caller takes 4 bytes of args
+    #   EBP+4 if the caller takes 8 bytes of args
+    #   EBP if the caller takes 12 bytes of args
+    #   EBP-4 if the caller takes 16 bytes of args
+    #   ..and so on
+    # That's EBP+12-nbytes.
+    # option 1: 6 + 3 bytes
+#?     2d/subtract                     3/mod/direct    0/rm32/EAX    .           .             .           .           .               8/imm32           # subtract from EAX
+#?     8d/copy-address                 0/mod/indirect  4/rm32/sib    5/base/EBP  0/index/EAX   .           0/r32/EAX   .               .                 # copy EBP+EAX to EAX
+    # option 2: 2 + 4 bytes
+    f7          3/subop/negate      3/mod/direct    0/rm32/EAX    .           .             .           .           .               .                 # negate EAX
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    5/base/EBP  0/index/EAX   .           0/r32/EAX   0xc/disp8         .               # copy EBP+EAX+12 to EAX
+    # copy EAX to ed->target
+    8b/copy                         1/mod/*+disp8   5/rm32/EBP    .           .             .           1/r32/ECX   8/disp8         .                 # copy *(EBP+8) to ECX
+    89/copy                         0/mod/indirect  1/rm32/ECX    .           .             .           0/r32/EAX   .               .                 # copy EAX to *ECX
+    # initialize ed->value
+    c7          0/subop/copy        1/mod/*+disp8   1/rm32/ECX    .           .             .           .           4/disp8         0/imm32           # copy to *(ECX+4)
+$tailor-exit-descriptor:end:
+    # . restore registers
+    59/pop-to-ECX
+    58/pop-to-EAX
+    # . epilog
+    89/copy                         3/mod/direct    4/rm32/ESP    .           .             .           5/r32/EBP   .               .                 # copy EBP to ESP
+    5d/pop-to-EBP
+    c3/return
+
+stop:  # ed : (address exit-descriptor), value : int
+    # no prolog; one way or another, we're going to clobber registers
+    # EAX = ed
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/ESP  4/index/none  .           0/r32/EAX   4/disp8         .                 # copy *(ESP+4) to EAX
+    # if (ed->target == 0) really exit
+    81          7/subop/compare     0/mod/indirect  0/rm32/EAX    .           .             .           .           .               0/imm32           # compare *EAX
+    75/jump-if-not-equal  $stop:fake/disp8
+    # . syscall(exit, value)
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/ESP  4/index/none  .           3/r32/EBX   8/disp8         .                 # copy *(ESP+8) to EBX
+    b8/copy-to-EAX  1/imm32/exit
+    cd/syscall  0x80/imm8
+$stop:fake:
+    # otherwise:
+    # ed->value = value+1
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/ESP  4/index/none  .           1/r32/ECX   8/disp8         .                 # copy *(ESP+8) to ECX
+    41/increment-ECX
+    89/copy                         1/mod/*+disp8   0/rm32/EAX    .           .             .           1/r32/ECX   4/disp8         .                 # copy ECX to *(EAX+4)
+    # perform a non-local jump to ed->target
+    8b/copy                         0/mod/indirect  0/rm32/EAX    .           .             .           4/r32/ESP   .               .                 # copy *EAX to ESP
+$stop:end:
+    c3/return  # doesn't return to caller
+
+test-stop-skips-returns-on-exit:
+    # This looks like the standard prolog, but is here for different reasons.
+    # A function calling 'stop' can't rely on EBP persisting past the call.
+    #
+    # Use EBP here as a stable base to refer to locals and arguments from in the
+    # presence of push/pop/call instructions.
+    # *Don't* use EBP as a way to restore ESP.
+    55/push-EBP
+    89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
+    # Make room for an exit descriptor on the stack. That's almost always the
+    # right place for it, available only as long as it's legal to use. Once this
+    # containing function returns we'll need a new exit descriptor.
+    # var ed/EAX : (address exit-descriptor)
+    81          5/subop/subtract    3/mod/direct    4/rm32/ESP    .           .             .           .           .               8/imm32           # subtract from ESP
+    89/copy                         3/mod/direct    0/rm32/EAX    .           .             .           4/r32/ESP   .               .                 # copy ESP to EAX
+    # Size the exit-descriptor precisely for the next call below, to _test-stop-1.
+    # tailor-exit-descriptor(ed, 4)
+    # . . push args
+    68/push  4/imm32/nbytes-of-args-for-_test-stop-1
+    50/push-EAX
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               8/imm32           # add to ESP
+    # . _test-stop-1(ed)
+    # . . push args
+    50/push-EAX
+    # . . call
+    e8/call  _test-stop-1/disp32
+    # registers except ESP may be clobbered at this point
+    # restore args
+    58/pop-to-EAX
+    # check that _test-stop-1 tried to call exit(1)
+    # check-ints-equal(ed->value, 2, msg)  # i.e. stop was called with value 1
+    # . . push args
+    68/push  "F - test-stop-skips-returns-on-exit"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/EAX    .           .             .           .           4/disp8         .                 # push *(EAX+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               0xc/imm32         # add to ESP
+    # . epilog
+    # don't restore ESP from EBP; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               8/imm32           # add to ESP
+    5d/pop-to-EBP
+    c3/return
+
+_test-stop-1:  # ed : (address exit-descriptor)
+    # . prolog
+    55/push-EBP
+    89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
+    # _test-stop-2(ed)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP    .           .             .           .           8/disp8         .                 # push *(EBP+8)
+    # . . call
+    e8/call  _test-stop-2/disp32
+    # should never get past this point
+$_test-stop-1:dead-end:
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               4/imm32           # add to ESP
+    # signal test failed: check-ints-equal(1, 0, msg)
+    # . . push args
+    68/push  "F - test-stop-skips-returns-on-exit"/imm32
+    68/push  0/imm32
+    68/push  1/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/ESP    .           .             .           .           .               0xc/imm32         # add to ESP
+    # . epilog
+    89/copy                         3/mod/direct    4/rm32/ESP    .           .             .           5/r32/EBP   .               .                 # copy EBP to ESP
+    5d/pop-to-EBP
+    c3/return
+
+_test-stop-2:  # ed : (address exit-descriptor)
+    # . prolog
+    55/push-EBP
+    89/copy                         3/mod/direct    5/rm32/EBP    .           .             .           4/r32/ESP   .               .                 # copy ESP to EBP
+    # . stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/EBP    .           .             .           .           8/disp8         .                 # push *(EBP+8)
+    # . . call
+    e8/call  stop/disp32
+    # should never get past this point
+$_test-stop-2:dead-end:
+    # . epilog
+    89/copy                         3/mod/direct    4/rm32/ESP    .           .             .           5/r32/EBP   .               .                 # copy EBP to ESP
+    5d/pop-to-EBP
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/111read.subx b/linux/111read.subx
new file mode 100644
index 00000000..1f5a557d
--- /dev/null
+++ b/linux/111read.subx
@@ -0,0 +1,438 @@
+# read: analogously to write, support reading from in-memory streams in
+# addition to file descriptors.
+#
+# We can pass it either a file descriptor or an address to a stream. If a
+# file descriptor is passed in, we _read from it using the right syscall. If a
+# stream is passed in (a fake file descriptor), we read from it instead. This
+# lets us initialize input for tests.
+#
+# A little counter-intuitively, the output of 'read' ends up in.. a stream. So
+# tests end up doing a redundant copy. Why? Well, consider the alternatives:
+#
+#   a) Reading into a string, and returning a pointer to the end of the read
+#   region, or a count of bytes written. Now this count or end pointer must be
+#   managed separately by the caller, which can be error-prone.
+#
+#   b) Having 'read' return a buffer that it allocates. But there's no way to
+#   know in advance how large to make the buffer. If you read less than the
+#   size of the buffer you again end up needing to manage initialized vs
+#   uninitialized memory.
+#
+#   c) Creating more helpful variants like 'read-byte' or 'read-until' which
+#   also can take a file descriptor or stream, just like 'write'. But such
+#   primitives don't exist in the Linux kernel, so we'd be implementing them
+#   somehow, either with more internal buffering or by making multiple
+#   syscalls.
+#
+# Reading into a stream avoids these problems. The buffer is externally
+# provided and the caller has control over where it's allocated, its lifetime,
+# and so on. The buffer's read and write pointers are internal to it so it's
+# easier to keep in a consistent state. And it can now be passed directly to
+# helpers like 'read-byte' or 'read-until' that only need to support streams,
+# never file descriptors.
+#
+# Like with 'write', we assume our data segment will never begin at an address
+# shorter than 0x08000000, so any smaller arguments are assumed to be real
+# file descriptors.
+#
+# As a reminder, a stream looks like this:
+#   write: int  # index at which to write to next
+#   read: int  # index at which to read next
+#   data: (array byte)  # prefixed by size as usual
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+read:  # f: fd or (addr stream byte), s: (addr stream byte) -> num-bytes-read/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # if (f < 0x08000000) return _read(f, s)  # f can't be a user-mode address, so treat it as a kernel file descriptor
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         0x08000000/imm32  # compare *(ebp+8)
+    73/jump-if-addr>=  $read:fake/disp8
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  _read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # return
+    eb/jump  $read:end/disp8
+$read:fake:
+    # otherwise, treat 'f' as a stream to scan from
+    # . save registers
+    56/push-esi
+    57/push-edi
+    # esi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # eax = _buffer-4(out = &s->data[s->write], outend = &s->data[s->size],
+    #                 in  = &f->data[f->read],  inend  = &f->data[f->write])
+    # . . push &f->data[f->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    50/push-eax
+    # . . push &f->data[f->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy *(esi+4) to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    50/push-eax
+    # . . push &s->data[s->size]
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   8/disp8         .                 # copy *(edi+8) to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy edi+eax+12 to eax
+    50/push-eax
+    # . . push &s->data[s->write]
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy *edi to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy edi+eax+12 to eax
+    50/push-eax
+    # . . call
+    e8/call  _buffer-4/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # s->write += eax
+    01/add                          0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # add eax to *edi
+    # f->read += eax
+    01/add                          1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # add eax to *(esi+4)
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+$read:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# - helpers
+
+# '_buffer' is like '_append', but silently stops instead of aborting when it runs out of space
+
+# 3-argument variant of _buffer
+_buffer-3:  # out: address, outend: address, s: (array byte) -> num_bytes_buffered/eax
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # eax = _buffer-4(out, outend, &s->data[0], &s->data[s->size])
+    # . . push &s->data[s->size]
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    51/push-ecx
+    # . . push &s->data[0]
+    8d/copy-address                 1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   4/disp8         .                 # copy eax+4 to ecx
+    51/push-ecx
+    # . . push outend
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . push out
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  _buffer-4/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$_buffer-3:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# 4-argument variant of _buffer
+_buffer-4:  # out: address, outend: address, in: address, inend: address -> num_bytes_buffered/eax
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # eax/num_bytes_buffered = 0
+    b8/copy-to-eax  0/imm32
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # edx = outend
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0x10/disp8      .                 # copy *(ebp+16) to esi
+    # ecx = inend
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x14/disp8      .                 # copy *(ebp+20) to ecx
+$_buffer-4:loop:
+    # if (in >= inend) break
+    39/compare                      3/mod/direct    6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare esi with ecx
+    73/jump-if-addr>=  $_buffer-4:end/disp8
+    # if (out >= outend) break  # for now silently ignore filled up buffer
+    39/compare                      3/mod/direct    7/rm32/edi    .           .             .           2/r32/edx   .               .                 # compare edi with edx
+    73/jump-if-addr>=  $_buffer-4:end/disp8
+    # *out = *in
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           3/r32/BL    .               .                 # copy byte at *esi to BL
+    88/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           3/r32/BL    .               .                 # copy byte at BL to *edi
+    # ++num_bytes_buffered
+    40/increment-eax
+    # ++in
+    46/increment-esi
+    # ++out
+    47/increment-edi
+    eb/jump  $_buffer-4:loop/disp8
+$_buffer-4:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# idea: a clear-if-empty method on streams that clears only if f->read == f->write
+# Unclear how I'd use it, though. Callers seem to need the check anyway.
+# Maybe a better helper would be 'empty-stream?'
+
+_read:  # fd: int, s: (addr stream byte) -> num-bytes-read/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # eax = s->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    # edx = s->size
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(esi+8) to edx
+    # syscall(read, fd, &s->data[s->write], s->size - s->write)
+    # . . fd: ebx
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   8/disp8         .                 # copy *(ebp+8) to ebx
+    # . . data: ecx = &s->data[s->write]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           1/r32/ecx   0xc/disp8       .                 # copy esi+eax+12 to ecx
+    # . . size: edx = s->size - s->write
+    29/subtract                     3/mod/direct    2/rm32/edx    .           .             .           0/r32/eax   .               .                 # subtract eax from edx
+    # . . syscall
+    e8/call  syscall_read/disp32
+    # add the result eax to s->write
+    01/add                          0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # add eax to *esi
+$_read:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+    # Two options:
+    #   1 (what we have above):
+    #     ecx = s
+    #     eax = s->write
+    #     edx = s->size
+    #     # syscall
+    #     ecx = lea ecx+eax+12
+    #     edx = sub edx eax
+    #
+    #   2:
+    #     ecx = s
+    #     edx = s->size
+    #     ecx = &s->data
+    #     # syscall
+    #     ecx = add ecx, s->write
+    #     edx = sub edx, s->write
+    #
+    # Not much to choose between the two? Option 2 performs a duplicate load to
+    # use one less register, but doesn't increase the amount of spilling (ecx
+    # and edx must be used, and eax must be clobbered anyway).
+
+# - tests
+
+test-read-single:
+    # - write a single character into _test-stream, then read from it
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # clear-stream(_test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = read(_test-stream, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 2, msg)
+    # . . push args
+    68/push  "F - test-read-single: return value"/imm32
+    68/push  2/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-stream-equal(_test-tmp-stream, "Ab", msg)
+    # . . push args
+    68/push  "F - test-read-single"/imm32
+    68/push  "Ab"/imm32
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-read-is-stateful:
+    # - make two consecutive reads, check that their results are appended
+    # clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # clear-stream(_test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "C")
+    # . . push args
+    68/push  "C"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read(_test-stream, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(_test-stream, "D")
+    # . . push args
+    68/push  "D"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read(_test-stream, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-tmp-stream, "CD", msg)
+    # . . push args
+    68/push  "F - test-read-is-stateful"/imm32
+    68/push  "CD"/imm32
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-read-returns-0-on-end-of-file:
+    # - read after hitting end-of-file, check that result is 0
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-stream, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # first read gets to end-of-file
+    # . read(_test-stream, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # second read
+    # . read(_test-stream, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-read-returns-0-on-end-of-file"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+== data
+
+_test-tmp-stream:  # (stream byte)
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    8/imm32
+    # data
+    00 00 00 00 00 00 00 00  # 8 bytes
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/112read-byte.subx b/linux/112read-byte.subx
new file mode 100644
index 00000000..7510a9e8
--- /dev/null
+++ b/linux/112read-byte.subx
@@ -0,0 +1,418 @@
+# read-byte-buffered: one higher-level abstraction atop 'read'.
+#
+# There are many situations where 'read' is a lot to manage, and we need
+# to abstract some details away. One of them is when we want to read a file
+# character by character. In this situation we follow C's FILE data structure,
+# which manages the underlying file descriptor together with the buffer it
+# reads into. We call our version 'buffered-file'. Should be useful with other
+# primitives as well, in later layers.
+
+== data
+
+# The buffered file for standard input. Also illustrates the layout for
+# buffered-file: a pointer to the backing store, followed by a 'buffer' stream
+Stdin:  # buffered-file
+    # file descriptor or (addr stream byte)
+    0/imm32  # standard input
+$Stdin->buffer:
+    # inlined fields for a stream
+    #   current write index
+    0/imm32
+    #   current read index
+    0/imm32
+    #   size
+    8/imm32
+    #   data
+    00 00 00 00 00 00 00 00  # 8 bytes
+
+# TODO: 8 bytes is too small. We'll need to grow the buffer for efficiency. But
+# I don't want to type in 1024 bytes here.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# Return next byte value in eax, with top 3 bytes cleared.
+# On reaching end of file, return 0xffffffff (Eof).
+read-byte-buffered:  # f: (addr buffered-file) -> byte-or-Eof/eax: byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # esi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = f->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(esi+8) to ecx
+    # if (f->read >= f->write) populate stream from file
+    3b/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # compare ecx with *(esi+4)
+    7c/jump-if-<  $read-byte-buffered:from-stream/disp8
+    # . clear-stream(stream = f+4)
+    # . . push args
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy esi+4 to eax
+    50/push-eax
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . f->read must now be 0; update its cache at ecx
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+    # . eax = read(f->fd, stream = f+4)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (eax == 0) return 0xffffffff
+    3d/compare-eax-and  0/imm32
+    75/jump-if-!=  $read-byte-buffered:from-stream/disp8
+    b8/copy-to-eax  0xffffffff/imm32/Eof
+    eb/jump  $read-byte-buffered:end/disp8
+$read-byte-buffered:from-stream:
+    # byte-or-Eof = f->data[f->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0x10/disp8      .                 # copy byte at *(esi+ecx+16) to AL
+    # ++f->read
+    ff          0/subop/increment   1/mod/*+disp8   6/rm32/esi    .           .             .           .           8/disp8         .                 # increment *(esi+8)
+$read-byte-buffered:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# - tests
+
+test-read-byte-buffered-single:
+    # - check that read-byte-buffered returns first byte of 'file'
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-stream, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read-byte-buffered(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 'A', msg)
+    # . . push args
+    68/push  "F - test-read-byte-buffered-single"/imm32
+    68/push  0x41/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-read-byte-buffered-multiple:
+    # - call read-byte-buffered twice, check that second call returns second byte
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-stream, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read-byte-buffered(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-byte-buffered(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 'b', msg)
+    # . . push args
+    68/push  "F - test-read-byte-buffered-multiple"/imm32
+    68/push  0x62/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-read-byte-buffered-end-of-file:
+    # - call read-byte-buffered on an empty 'file', check that it returns Eof
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-byte-buffered(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0xffffffff, msg)
+    # . . push args
+    68/push  "F - test-read-byte-buffered-end-of-file"/imm32
+    68/push  0xffffffff/imm32/Eof
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-read-byte-buffered-refills-buffer:
+    # - consume buffered-file's buffer, check that next read-byte-buffered still works
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-stream, "Abcdefgh")
+    # . . push args
+    68/push  "Abcdefgh"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # pretend buffer is full
+    # . _test-buffered-file->read = 6  # >= _test-buffered-file->size
+    b8/copy-to-eax  _test-buffered-file/imm32
+    c7          0/subop/copy        1/mod/*+disp8   0/rm32/eax    .           .             .           .           8/disp8         6/imm32           # copy to *(eax+8)
+    # read-byte-buffered(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 'A', msg)
+    # . . push args
+    68/push  "F - test-read-byte-buffered-refills-buffer"/imm32
+    68/push  0x41/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+# Return next byte value in eax, with top 3 bytes cleared.
+# Abort on reaching end of stream.
+read-byte:  # s: (addr stream byte) -> result/eax: byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = s->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    # if (f->read >= f->write) abort
+    3b/compare                      0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare ecx with *esi
+    0f 8d/jump-if->=  $read-byte:abort/disp32
+    # result = f->data[f->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # ++f->read
+    ff          0/subop/increment   1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # increment *(esi+4)
+$read-byte:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$read-byte:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "read-byte: empty stream\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+== data
+
+# a test buffered file for _test-stream
+_test-buffered-file:  # buffered-file
+    # file descriptor or (addr stream byte)
+    _test-stream/imm32
+$_test-buffered-file->buffer:
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    6/imm32
+    # data
+    00 00 00 00 00 00  # 6 bytes
+
+_test-input-stream:  # (stream byte)
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    0x400/imm32  # 1024 bytes
+    # data (64 lines x 16 bytes/line)
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+# a test buffered file for _test-input-stream
+_test-input-buffered-file:  # buffered-file
+    # file descriptor or (addr stream byte)
+    _test-input-stream/imm32
+$_test-input-buffered-file->buffer:
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    6/imm32
+    # data
+    00 00 00 00 00 00  # 6 bytes
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/113write-stream.subx b/linux/113write-stream.subx
new file mode 100644
index 00000000..d7e975c0
--- /dev/null
+++ b/linux/113write-stream.subx
@@ -0,0 +1,252 @@
+# write-stream: like write, but write streams rather than strings
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+#? Entry:  # manual test
+#?     # write-stream(stdout, _test-stream2)
+#?     68/push  _test-stream2/imm32
+#?     68/push  1/imm32/stdout
+#?     e8/call write-stream/disp32
+#?     # syscall(exit, Num-test-failures)
+#?     8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+#?     e8/call  syscall_exit/disp32
+
+write-stream:  # f: fd or (addr stream byte), s: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # if (f < 0x08000000) _write-stream(f, s), return  # f can't be a user-mode address, so treat it as a kernel file descriptor
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         0x08000000/imm32  # compare *(ebp+8)
+    73/jump-if-addr>=  $write-stream:fake/disp8
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  _write-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    eb/jump  $write-stream:end/disp8
+$write-stream:fake:
+    # otherwise, treat 'f' as a stream to append to
+    # . save registers
+    50/push-eax
+    56/push-esi
+    57/push-edi
+    # edi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # eax = _append-4(&f->data[f->write], &f->data[f->size], &s->data[s->read], &s->data[s->write])
+    # . . push &s->data[s->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    50/push-eax
+    # . . push &s->data[s->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy *(esi+4) to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    50/push-eax
+    # . . push &f->data[f->size]
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   8/disp8         .                 # copy *(edi+8) to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy edi+eax+12 to eax
+    50/push-eax
+    # . . push &f->data[f->write]
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy *edi to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy edi+eax+12 to eax
+    50/push-eax
+    # . . call
+    e8/call  _append-4/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # f->write += eax
+    01/add                          0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # add eax to *edi
+    # s->read += eax
+    01/add                          1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # add eax to *(esi+4)
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    58/pop-to-eax
+$write-stream:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+_write-stream:  # fd: int, s: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # edi = s->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           7/r32/edi   4/disp8         .                 # copy *(esi+4) to edi
+    # edx = s->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    # syscall(write, fd, &s->data[s->read], s->write - s->read)
+    # . . fd: ebx
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   8/disp8         .                 # copy *(ebp+8) to ebx
+    # . . data: ecx = &s->data[s->read]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  7/index/edi   .           1/r32/ecx   0xc/disp8       .                 # copy esi+edi+12 to ecx
+    # . . size: edx = s->write - s->read
+    29/subtract                     3/mod/direct    2/rm32/edx    .           .             .           7/r32/edi   .               .                 # subtract edi from edx
+    # . . syscall
+    e8/call  syscall_write/disp32
+    # if (eax < 0) abort
+    3d/compare-eax-with  0/imm32
+    0f 8c/jump-if-<  $_write-stream:abort/disp32
+    # s->read += eax
+    01/add                          1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # add eax to *(esi+4)
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$_write-stream:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "_write-stream: failed to write to file\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-write-stream-single:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-stream2)
+    # . . push args
+    68/push  _test-stream2/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-stream2, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    68/push  _test-stream2/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-stream(_test-stream, _test-stream2)
+    # . . push args
+    68/push  _test-stream2/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "Ab", msg)
+    # . . push args
+    68/push  "F - test-write-stream-single"/imm32
+    68/push  "Ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-write-stream-appends:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-stream2)
+    # . . push args
+    68/push  _test-stream2/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-stream2, "C")
+    # . . push args
+    68/push  "C"/imm32
+    68/push  _test-stream2/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # first write
+    # . write-stream(_test-stream, _test-stream2)
+    # . . push args
+    68/push  _test-stream2/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # second write
+    # . write(_test-stream2, "D")
+    # . . push args
+    68/push  "D"/imm32
+    68/push  _test-stream2/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-stream(_test-stream, _test-stream2)
+    # . . push args
+    68/push  _test-stream2/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "CD", msg)
+    # . . push args
+    68/push  "F - test-write-stream-appends"/imm32
+    68/push  "CD"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+== data
+
+_test-stream2:  # (stream byte)
+    # current write index
+    4/imm32
+    # current read index
+    1/imm32
+    # size
+    8/imm32
+    # data
+    41/A 42/B 43/C 44/D 00 00 00 00  # 8 bytes
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/114error.subx b/linux/114error.subx
new file mode 100644
index 00000000..c3d8ca68
--- /dev/null
+++ b/linux/114error.subx
@@ -0,0 +1,50 @@
+# Print an error message and exit.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# write(out, "Error: "+msg+"\n") then stop(ed, 1)
+error:  # ed: (addr exit-descriptor), out: fd or (addr stream byte), msg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write(out, "Error: ")
+    # . . push args
+    68/push  "Error: "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(out, msg)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  stop/disp32
+    # should never get past this point
+$error:dead-end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/115write-byte.subx b/linux/115write-byte.subx
new file mode 100644
index 00000000..d38db24c
--- /dev/null
+++ b/linux/115write-byte.subx
@@ -0,0 +1,477 @@
+# write-byte-buffered: add a single byte to a buffered-file.
+# flush: write out any buffered writes to disk.
+#
+# TODO: Come up with a way to signal failure to write to disk. This is hard
+# since the failure may impact previous calls that were buffered.
+
+== data
+
+# The buffered file for standard output.
+Stdout:  # buffered-file
+    # file descriptor or (addr stream byte)
+    1/imm32  # standard output
+$Stdout->buffer:
+    # inlined fields for a stream
+    #   current write index
+    0/imm32
+    #   current read index
+    0/imm32
+    #   size
+    8/imm32
+    #   data
+    00 00 00 00 00 00 00 00  # 8 bytes
+
+# TODO: 8 bytes is too small. We'll need to grow the buffer for efficiency. But
+# I don't want to type in 1024 bytes here.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# Write lower byte of 'n' to 'f'.
+write-byte-buffered:  # f: (addr buffered-file), n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    57/push-edi
+    # edi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # ecx = f->write
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(edi+4) to ecx
+    # if (f->write >= f->size) flush and clear f's stream
+    3b/compare                      1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   0xc/disp8       .                 # compare ecx with *(edi+12)
+    7c/jump-if-<  $write-byte-buffered:to-stream/disp8
+    # . flush(f)
+    # . . push args
+    57/push-edi
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(stream = f+4)
+    # . . push args
+    8d/copy-address                 1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy edi+4 to eax
+    50/push-eax
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . f->write must now be 0; update its cache at ecx
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+$write-byte-buffered:to-stream:
+    # write to stream
+    # f->data[f->write] = LSB(n)
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/AL    0xc/disp8       .                 # copy byte at *(ebp+12) to AL
+    88/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  1/index/ecx   .           0/r32/AL    0x10/disp8      .                 # copy AL to *(edi+ecx+16)
+    # ++f->write
+    ff          0/subop/increment   1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         .                 # increment *(edi+4)
+$write-byte-buffered:end:
+    # . restore registers
+    5f/pop-to-edi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+flush:  # f: (addr buffered-file)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # eax = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # write-stream(f->fd, data = f+4)
+      # . . push args
+    8d/copy-address                 1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   4/disp8         .                 # copy eax+4 to ecx
+    51/push-ecx
+    ff          6/subop/push        0/mod/indirect  0/rm32/eax    .           .             .           .           .               .                 # push *eax
+      # . . call
+    e8/call  write-stream/disp32
+      # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$flush:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-byte-buffered-single:
+    # - check that write-byte-buffered writes to first byte of 'file'
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-byte-buffered(_test-buffered-file, 'A')
+    # . . push args
+    68/push  0x41/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  write-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-stream, "A", msg)
+    # . . push args
+    68/push  "F - test-write-byte-buffered-single"/imm32
+    68/push  "A"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-write-byte-buffered-multiple-flushes:
+    # - check that write-byte-buffered correctly flushes buffered data
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # fill up the buffer for _test-buffered-file
+    # . write($_test-buffered-file->buffer, "abcdef")
+    # . . push args
+    68/push  "abcdef"/imm32
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-byte-buffered(_test-buffered-file, 'g')
+    # . . push args
+    68/push  0x67/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  write-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-stream, "abcdefg", msg)
+    # . . push args
+    68/push  "F - test-write-byte-buffered-multiple-flushes"/imm32
+    68/push  "abcdefg"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+# - variant without buffering
+
+# Write lower byte of 'n' to 'f'.
+append-byte:  # f: (addr stream byte), n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    57/push-edi
+    # edi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # ecx = f->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy *edi to ecx
+    # if (f->write >= f->size) abort
+    3b/compare                      1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   8/disp8         .                 # compare ecx with *(edi+8)
+    7d/jump-if->=  $append-byte:abort/disp8
+$append-byte:to-stream:
+    # write to stream
+    # f->data[f->write] = LSB(n)
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/AL    0xc/disp8       .                 # copy byte at *(ebp+12) to AL
+    88/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy AL to *(edi+ecx+12)
+    # ++f->write
+    ff          0/subop/increment   0/mod/indirect  7/rm32/edi    .           .             .           .           .               .                 # increment *edi
+$append-byte:end:
+    # . restore registers
+    5f/pop-to-edi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$append-byte:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "append-byte: out of space\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-append-byte-single:
+    # - check that append-byte writes to first byte of 'file'
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # append-byte(_test-stream, 'A')
+    # . . push args
+    68/push  0x41/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  append-byte/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "A", msg)
+    # . . push args
+    68/push  "F - test-append-byte-single"/imm32
+    68/push  "A"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+== data
+
+_test-output-stream:  # (stream byte)
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    0x800/imm32  # 2048 bytes
+    # data (128 lines x 16 bytes/line)
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+# a test buffered file for _test-output-stream
+_test-output-buffered-file:  # buffered-file
+    # file descriptor or (addr stream byte)
+    _test-output-stream/imm32
+$_test-output-buffered-file->buffer:
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    6/imm32
+    # data
+    00 00 00 00 00 00  # 6 bytes
+
+_test-error-stream:  # (stream byte)
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # line
+    0x100/imm32  # 256 bytes
+    # data (16 lines x 16 bytes/line)
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+# a test buffered file for _test-error-stream
+_test-error-buffered-file:  # buffered-file
+    # file descriptor or (addr stream byte)
+    _test-error-stream/imm32
+$_test-error-buffered-file->buffer:
+    # current write index
+    0/imm32
+    # current read index
+    0/imm32
+    # size
+    6/imm32
+    # data
+    00 00 00 00 00 00  # 6 bytes
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/116write-buffered.subx b/linux/116write-buffered.subx
new file mode 100644
index 00000000..19df446e
--- /dev/null
+++ b/linux/116write-buffered.subx
@@ -0,0 +1,226 @@
+# write-buffered: like 'write', but for a buffered-file
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+write-buffered:  # f: (addr buffered-file), msg: (addr array byte)
+    # pseudocode:
+    #   in = msg->data
+    #   inend = &msg->data[msg->size]
+    #   while (in < inend)
+    #     if f->write >= f->size
+    #       flush(f)
+    #       clear-stream(f)
+    #     c = *in
+    #     f->data[f->write] = c
+    #     ++f->write
+    #     ++in
+    #
+    # registers:
+    #   in: esi
+    #   inend: ecx
+    #   f: edi
+    #   f->size: edx
+    #   f->write: ebx (cached; need to keep in sync)
+    #   c: eax
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # eax = msg
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    # var in/esi: (addr byte) = msg->data
+    8d/copy-address                 1/mod/*+disp8   0/rm32/eax    .           .             .           6/r32/esi   4/disp8         .                 # copy eax+4 to esi
+    # var inend/ecx: (addr byte) = &msg->data[msg->size]
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    6/base/esi  1/index/ecx   .           1/r32/ecx   .               .                 # copy esi+ecx to ecx
+    # edi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # edx = f->size
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(edi+12) to edx
+    # ebx = f->write
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   4/disp8         .                 # copy *(edi+4) to ebx
+$write-buffered:loop:
+    # if (in >= inend) break
+    39/compare                      3/mod/direct    6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare esi with ecx
+    73/jump-if-addr>=  $write-buffered:loop-end/disp8
+    # if (f->write >= f->size) flush and clear f's stream
+    39/compare                      3/mod/direct    3/rm32/ebx    .           .             .           2/r32/edx   .               .                 # compare ebx with edx
+    7c/jump-if-<  $write-buffered:to-stream/disp8
+    # . persist f->write
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   4/disp8         .                 # copy ebx to *(edi+4)
+    # . flush(f)
+    # . . push args
+    57/push-edi
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(stream = f+4)
+    # . . push args
+    8d/copy-address                 1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy edi+4 to eax
+    50/push-eax
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . f->write must now be 0; update its cache at ebx
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$write-buffered:to-stream:
+    # write to stream
+    # f->data[f->write] = *in
+    # . AL = *in
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           0/r32/AL    .               .                 # copy byte at *esi to AL
+    # . f->data[f->write] = AL
+    88/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  3/index/ebx   .           0/r32/AL    0x10/disp8      .                 # copy AL to *(edi+ebx+16)
+    # ++f->write
+    43/increment-ebx
+    # ++in
+    46/increment-esi
+    eb/jump  $write-buffered:loop/disp8
+$write-buffered:loop-end:
+    # persist necessary variables from registers
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   4/disp8         .                 # copy ebx to *(edi+4)
+$write-buffered:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-buffered:
+    # - check that write-buffered writes to the file
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-buffered(_test-buffered-file, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-stream, "Abc", msg)
+    # . . push args
+    68/push  "F - test-write-buffered-single"/imm32
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-write-buffered-with-intermediate-flush:
+    # - check that write-buffered flushes in the middle if its buffer fills up
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # _test-stream can hold 8 bytes, but _test-buffered-file can hold only 6.
+    # Try to write 7 bytes.
+    # . write-buffered(_test-buffered-file, "Abcdefg")
+    # . . push args
+    68/push  "Abcdefg"/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # don't flush
+    # 6 bytes should still have gotten to _test-stream
+    # . check-ints-equal(*_test-stream->write, 6, msg)
+    # . . push args
+    68/push  "F - test-write-buffered-with-intermediate-flush: flushed data"/imm32
+    68/push  6/imm32
+    # . . push *_test-stream->write
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        0/mod/indirect  0/rm32/eax    .           .             .           .           .               .                 # push *eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # and 1 byte should still be in _test-buffered-file
+    # . check-ints-equal(*_test-buffered-file->write, 1, msg)
+    # . . push args
+    68/push  "F - test-write-buffered-with-intermediate-flush: unflushed bytes"/imm32
+    68/push  1/imm32
+    # . . push *_test-buffered-file->write
+    b8/copy-to-eax  _test-buffered-file/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+== data
+
+# The buffered file for standard error.
+Stderr:  # buffered-file
+    # file descriptor or (addr stream byte)
+    2/imm32  # standard error
+$Stderr->buffer:
+    # inlined fields for a stream
+    #   current write index
+    0/imm32
+    #   current read index
+    0/imm32
+    #   size
+    8/imm32
+    #   data
+    00 00 00 00 00 00 00 00  # 8 bytes
+
+# TODO: 8 bytes is too small. We'll need to grow the buffer for efficiency. But
+# I don't want to type in 1024 bytes here.
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/117write-int-hex.subx b/linux/117write-int-hex.subx
new file mode 100644
index 00000000..445ca2e9
--- /dev/null
+++ b/linux/117write-int-hex.subx
@@ -0,0 +1,430 @@
+# Write out the (hex) textual representation of numbers.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# convert the lowest nibble of eax to ascii and return it in the lowest byte of eax
+to-hex-char:  # in/eax: int -> out/eax: int
+    # no error checking; accepts argument in eax
+    # if (eax <= 9) return eax + '0'
+    3d/compare-eax-with  0x9/imm32/9
+    7f/jump-if->  $to-hex-char:else/disp8
+    05/add-to-eax  0x30/imm32/0
+    c3/return
+$to-hex-char:else:
+    # otherwise return eax + 'a' - 10
+    05/add-to-eax  0x57/imm32/a-10
+    c3/return
+
+append-byte-hex:  # f: (addr stream byte), n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # AL = convert upper nibble to hex
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    c1/shift    5/subop/logic-right 3/mod/direct    0/rm32/eax    .           .             .           .           .               4/imm8            # shift eax right by 4 bits, while padding zeroes
+    25/and-eax  0xf/imm32
+    # . AL = to-hex-char(AL)
+    e8/call  to-hex-char/disp32
+    # append-byte(f, AL)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  append-byte/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # AL = convert lower nibble to hex
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    25/and-eax  0xf/imm32
+    # . AL = to-hex-char(AL)
+    e8/call  to-hex-char/disp32
+    # append-byte(f, AL)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  append-byte/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$append-byte-hex:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-append-byte-hex:
+    # - check that append-byte-hex adds the hex textual representation
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # append-byte-hex(_test-stream, 0xa)  # exercises digit, non-digit as well as leading zero
+    # . . push args
+    68/push  0xa/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  append-byte-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "0a", msg)
+    # . . push args
+    68/push  "F - test-append-byte-hex"/imm32
+    68/push  "0a"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+# print the hex representation for the lowest byte of a number
+write-byte-hex-buffered:  # f: (addr buffered-file), n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # AL = convert upper nibble to hex
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    c1/shift    5/subop/logic-right 3/mod/direct    0/rm32/eax    .           .             .           .           .               4/imm8            # shift eax right by 4 bits, while padding zeroes
+    25/and-eax  0xf/imm32
+    # . AL = to-hex-char(AL)
+    e8/call  to-hex-char/disp32
+    # write-byte-buffered(f, AL)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # AL = convert lower nibble to hex
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    25/and-eax  0xf/imm32
+    # . AL = to-hex-char(AL)
+    e8/call  to-hex-char/disp32
+    # write-byte-buffered(f, AL)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$write-byte-hex-buffered:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-byte-hex-buffered:
+    # - check that write-byte-hex-buffered prints the hex textual representation
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-byte-hex-buffered(_test-buffered-file, 0xa)  # exercises digit, non-digit as well as leading zero
+    # . . push args
+    68/push  0xa/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  write-byte-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-stream, "0a", msg)
+    # . . push args
+    68/push  "F - test-write-byte-hex-buffered"/imm32
+    68/push  "0a"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+write-int32-hex:  # f: (addr stream byte), n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+$write-int32-hex:hex-prefix:
+    # write(f, "0x")
+    # . . push args
+    68/push  "0x"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$write-int32-hex:rest:
+    # write-int32-hex-bits(f, n, 32)
+    # . . push args
+    68/push  0x20/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-bits/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$write-int32-hex:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# print rightmost 'bits' of 'n'
+# bits must be multiple of 4
+write-int32-hex-bits:  # f: (addr stream byte), n: int, bits: int
+    # pseudocode:
+    #  bits -= 4
+    #  while true
+    #    if (bits < 0) break
+    #    eax = n >> bits
+    #    eax = eax & 0xf
+    #    append-byte(f, AL)
+    #    bits -= 4
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # ecx = bits-4
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # copy *(ebp+16) to ecx
+    81          5/subop/subtract    3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # subtract from ecx
+$write-int32-hex-bits:loop:
+    # if (bits < 0) break
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0/imm32           # compare ecx
+    7c/jump-if-<  $write-int32-hex-bits:end/disp8
+    # eax = n >> bits
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    d3/>>ecx    5/subop/pad-zeroes  3/mod/direct    0/rm32/eax    .           .             .           .           .               .                 # shift eax right by ecx bits, padding zeroes
+    # eax = to-hex-char(AL)
+    25/and-eax  0xf/imm32
+    e8/call  to-hex-char/disp32
+    # append-byte(f, AL)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  append-byte/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # bits -= 4
+    81          5/subop/subtract    3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # subtract from ecx
+    eb/jump  $write-int32-hex-bits:loop/disp8
+$write-int32-hex-bits:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-int32-hex:
+    # - check that write-int32-hex prints the hex textual representation
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int32-hex(_test-stream, 0x8899aa)
+    # . . push args
+    68/push  0x8899aa/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int32-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "0x008899aa", msg)
+    # . . push args
+    68/push  "F - test-write-int32-hex"/imm32
+    68/push  "0x008899aa"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+write-int32-hex-buffered:  # f: (addr buffered-file), n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+$write-int32-hex-buffered:hex-prefix:
+    # write-buffered(f, "0x")
+    # . . push args
+    68/push  "0x"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$write-int32-hex-buffered:rest:
+    # write-int32-hex-bits-buffered(f, n, 32)
+    # . . push args
+    68/push  0x20/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-bits-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$write-int32-hex-buffered:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# print rightmost 'bits' of 'n'
+# bits must be multiple of 4
+write-int32-hex-bits-buffered:  # f: (addr buffered-file), n: int, bits: int
+    # pseudocode:
+    #  bits -= 4
+    #  while true
+    #    if (bits < 0) break
+    #    eax = n >> bits
+    #    eax = eax & 0xf
+    #    write-byte-buffered(f, AL)
+    #    bits -= 4
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # ecx = bits-4
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # copy *(ebp+16) to ecx
+    81          5/subop/subtract    3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # subtract from ecx
+$write-int32-hex-bits-buffered:loop:
+    # if (bits < 0) break
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0/imm32           # compare ecx
+    7c/jump-if-<  $write-int32-hex-bits-buffered:end/disp8
+    # eax = n >> bits
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    d3/>>ecx    5/subop/pad-zeroes  3/mod/direct    0/rm32/eax    .           .             .           .           .               .                 # shift eax right by ecx bits, padding zeroes
+    # eax = to-hex-char(AL)
+    25/and-eax  0xf/imm32
+    e8/call  to-hex-char/disp32
+    # write-byte-buffered(f, AL)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # bits -= 4
+    81          5/subop/subtract    3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # subtract from ecx
+    eb/jump  $write-int32-hex-bits-buffered:loop/disp8
+$write-int32-hex-bits-buffered:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-int32-hex-buffered:
+    # - check that write-int32-hex-buffered prints the hex textual representation
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int32-hex-buffered(_test-buffered-file, 0x8899aa)
+    # . . push args
+    68/push  0x8899aa/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump line {{{
+#?     # . write-stream(2/stderr, line)
+#?     # . . push args
+#?     68/push  _test-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-stream, "0x008899aa", msg)
+    # . . push args
+    68/push  "F - test-write-int32-hex-buffered"/imm32
+    68/push  "0x008899aa"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/118parse-hex-int.subx b/linux/118parse-hex-int.subx
new file mode 100644
index 00000000..5d92b13a
--- /dev/null
+++ b/linux/118parse-hex-int.subx
@@ -0,0 +1,938 @@
+# some utilities for converting numbers from hex
+# lowercase letters only for now
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+is-hex-int?:  # in: (addr slice) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # edx = s->end
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
+    # var curr/ecx: (addr byte) = s->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # copy *ecx to ecx
+    # if s is empty return false
+    b8/copy-to-eax  0/imm32/false
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $is-hex-int?:end/disp8
+    # skip past leading '-'
+    # . if (*curr == '-') ++curr
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/BL    .               .                 # copy byte at *ecx to BL
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x2d/imm32/-      # compare ebx
+    75/jump-if-!=  $is-hex-int?:initial-0/disp8
+    # . ++curr
+    41/increment-ecx
+    # skip past leading '0x'
+$is-hex-int?:initial-0:
+    # . if (*curr != '0') jump to loop
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/BL    .               .                 # copy byte at *ecx to BL
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x30/imm32/0      # compare ebx
+    75/jump-if-!=  $is-hex-int?:loop/disp8
+    # . ++curr
+    41/increment-ecx
+$is-hex-int?:initial-0x:
+    # . if (curr >= in->end) return true
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $is-hex-int?:true/disp8
+    # . if (*curr != 'x') jump to loop  # the previous '0' is still valid so doesn't need to be checked again
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/BL    .               .                 # copy byte at *ecx to BL
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x78/imm32/x      # compare ebx
+    75/jump-if-!=  $is-hex-int?:loop/disp8
+    # . ++curr
+    41/increment-ecx
+$is-hex-int?:loop:
+    # if (curr >= in->end) return true
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $is-hex-int?:true/disp8
+    # var eax: boolean = is-hex-digit?(*curr)
+    # . . push args
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    50/push-eax
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # if (eax == false) return false
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $is-hex-int?:end/disp8
+    # ++curr
+    41/increment-ecx
+    # loop
+    eb/jump  $is-hex-int?:loop/disp8
+$is-hex-int?:true:
+    # return true
+    b8/copy-to-eax  1/imm32/true
+$is-hex-int?:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-hex-int:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "34"
+    b8/copy-to-eax  "34"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-hex-int?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-hex-int?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-hex-int"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-hex-int-handles-letters:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "34a"
+    b8/copy-to-eax  "34a"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-hex-int?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-hex-int?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-hex-int-handles-letters"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-hex-int-with-trailing-char:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "34q"
+    b8/copy-to-eax  "34q"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-hex-int?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-hex-int?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-hex-int-with-trailing-char"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-hex-int-with-leading-char:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "q34"
+    b8/copy-to-eax  "q34"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-hex-int?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-hex-int?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-hex-int-with-leading-char"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-hex-int-empty:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx: slice = ""
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-hex-int?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-hex-int?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-hex-int-empty"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-hex-int-handles-0x-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "0x3a"
+    b8/copy-to-eax  "0x3a"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-hex-int?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-hex-int?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-hex-int-handles-0x-prefix"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-hex-int-handles-negative:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "-34a"
+    b8/copy-to-eax  "-34a"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-hex-int?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-hex-int?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-hex-int-handles-negative"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-hex-int-handles-negative-0x-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "-0x3a"
+    b8/copy-to-eax  "-0x3a"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-hex-int?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-hex-int?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-hex-int-handles-negative-0x-prefix"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+parse-hex-int:  # in: (addr array byte) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    # eax = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # var curr/ecx: (addr byte) = &in->data
+    8d/copy-address                 1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   4/disp8         .                 # copy eax+4 to ecx
+    # var max/edx: (addr byte) = &in->data[in->size]
+    # . edx = in->size
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy *eax to edx
+    # . edx = in->data + in->size
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx   .           2/r32/edx   4/disp8         .                 # copy eax+edx+4 to edx
+    # return parse-hex-int-helper(curr, max)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-helper/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$parse-hex-int:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+parse-hex-int-from-slice:  # in: (addr slice) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    # ecx = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # var max/edx: (addr byte) = in->end
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
+    # var curr/ecx: (addr byte) = in->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # copy *ecx to ecx
+    # return parse-hex-int-helper(curr, max)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-helper/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$parse-hex-int-from-slice:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+parse-hex-int-helper:  # start: (addr byte), end: (addr byte) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # var curr/ecx: (addr byte) = start
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # edx = max
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+    # var result/ebx: int = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # var negate?/esi: boolean = false
+    31/xor                          3/mod/direct    6/rm32/esi    .           .             .           6/r32/esi   .               .                 # clear esi
+$parse-hex-int-helper:negative:
+    # if (*curr == '-') ++curr, negate = true
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x2d/imm32/-
+    75/jump-if-!=  $parse-hex-int-helper:initial-0/disp8
+    # . ++curr
+    41/increment-ecx
+    # . negate = true
+    be/copy-to-esi  1/imm32/true
+$parse-hex-int-helper:initial-0:
+    # skip past leading '0x'
+    # . if (*curr != '0') jump to loop
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x30/imm32/0
+    75/jump-if-!=  $parse-hex-int-helper:loop/disp8
+    # . ++curr
+    41/increment-ecx
+$parse-hex-int-helper:initial-0x:
+    # . if (curr >= in->end) return result
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $parse-hex-int-helper:end/disp8
+    # . if (*curr != 'x') jump to loop  # the previous '0' is still valid so doesn't need to be checked again
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x78/imm32/x
+    75/jump-if-!=  $parse-hex-int-helper:loop/disp8
+    # . ++curr
+    41/increment-ecx
+$parse-hex-int-helper:loop:
+    # if (curr >= in->end) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $parse-hex-int-helper:negate/disp8
+    # var eax: int = from-hex-char(*curr)
+    # . . copy arg to eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    # . . call
+    e8/call  from-hex-char/disp32
+    # result = result * 16 + eax
+    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               4/imm8            # shift ebx left by 4 bits
+    01/add                          3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # add eax to ebx
+    # ++curr
+    41/increment-ecx
+    # loop
+    eb/jump  $parse-hex-int-helper:loop/disp8
+$parse-hex-int-helper:negate:
+    # if (negate?) result = -result
+    81          7/subop/compare     3/mod/direct    6/rm32/esi    .           .             .           .           .               0/imm32/false     # compare esi
+    74/jump-if-=  $parse-hex-int-helper:end/disp8
+    f7          3/subop/negate      3/mod/direct    3/rm32/ebx    .           .             .           .           .               .                 # negate ebx
+$parse-hex-int-helper:end:
+    # return result
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # copy ebx to eax
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-hex-int-from-slice-single-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "a"
+    b8/copy-to-eax  "a"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = parse-hex-int-from-slice(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0xa, msg)
+    # . . push args
+    68/push  "F - test-parse-hex-int-from-slice-single-digit"/imm32
+    68/push  0xa/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-hex-int-from-slice-multi-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "34a"
+    b8/copy-to-eax  "34a"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = parse-hex-int-from-slice(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0x34a, msg)
+    # . . push args
+    68/push  "F - test-parse-hex-int-from-slice-multi-digit"/imm32
+    68/push  0x34a/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-hex-int-from-slice-0x-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "0x34"
+    b8/copy-to-eax  "0x34"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = parse-hex-int-from-slice(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0x34, msg)
+    # . . push args
+    68/push  "F - test-parse-hex-int-from-slice-0x-prefix"/imm32
+    68/push  0x34/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-hex-int-from-slice-zero:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "0"
+    b8/copy-to-eax  "0"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = parse-hex-int-from-slice(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-hex-int-from-slice-zero"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-hex-int-from-slice-0-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "03"
+    b8/copy-to-eax  "03"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = parse-hex-int-from-slice(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0x3, msg)
+    # . . push args
+    68/push  "F - test-parse-hex-int-from-slice-0-prefix"/imm32
+    68/push  0x3/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-hex-int-from-slice-negative:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "-03"
+    b8/copy-to-eax  "-03"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = parse-hex-int-from-slice(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, -3, msg)
+    # . . push args
+    68/push  "F - test-parse-hex-int-from-slice-negative"/imm32
+    68/push  -3/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+is-hex-digit?:  # c: byte -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # ecx = c
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # return false if c < '0'
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x30/imm32        # compare ecx
+    7c/jump-if-<  $is-hex-digit?:false/disp8
+    # return true if c <= '9'
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x39/imm32        # compare ecx
+    7e/jump-if-<=  $is-hex-digit?:true/disp8
+    # drop case
+    25/and-eax-with 0x5f/imm32
+    # return false if c > 'f'
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x66/imm32        # compare ecx
+    7f/jump-if->  $is-hex-digit?:false/disp8
+    # return true if c >= 'a'
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x61/imm32        # compare ecx
+    7d/jump-if->=  $is-hex-digit?:true/disp8
+    # otherwise return false
+$is-hex-digit?:false:
+    b8/copy-to-eax  0/imm32/false
+    eb/jump $is-hex-digit?:end/disp8
+$is-hex-digit?:true:
+    b8/copy-to-eax  1/imm32/true
+$is-hex-digit?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-hex-below-0:
+    # eax = is-hex-digit?(0x2f)
+    # . . push args
+    68/push  0x2f/imm32
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-hex-below-0"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-hex-0-to-9:
+    # eax = is-hex-digit?(0x30)
+    # . . push args
+    68/push  0x30/imm32
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-hex-at-0"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = is-hex-digit?(0x39)
+    # . . push args
+    68/push  0x39/imm32
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-hex-at-9"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-hex-above-9-to-a:
+    # eax = is-hex-digit?(0x3a)
+    # . . push args
+    68/push  0x3a/imm32
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-hex-above-9-to-a"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-hex-a-to-f:
+    # eax = is-hex-digit?(0x61)
+    # . . push args
+    68/push  0x61/imm32
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-hex-at-a"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = is-hex-digit?(0x66)
+    # . . push args
+    68/push  0x66/imm32
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-hex-at-f"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-hex-above-f:
+    # eax = is-hex-digit?(0x67)
+    # . . push args
+    68/push  0x67/imm32
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-hex-above-f"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+from-hex-char:  # in/eax: byte -> out/eax: nibble
+$from-hex-char:check0:
+    # if (eax < '0') goto abort
+    3d/compare-eax-with  0x30/imm32/0
+    7c/jump-if-<  $from-hex-char:abort/disp8
+$from-hex-char:check1:
+    # if (eax > 'f') goto abort
+    3d/compare-eax-with  0x66/imm32/f
+    7f/jump-if->  $from-hex-char:abort/disp8
+$from-hex-char:check2:
+    # if (eax > '9') goto next check
+    3d/compare-eax-with  0x39/imm32/9
+    7f/jump-if->  $from-hex-char:check3/disp8
+$from-hex-char:digit:
+    # return eax - '0'
+    2d/subtract-from-eax  0x30/imm32/0
+    c3/return
+$from-hex-char:check3:
+    # if (eax < 'a') goto abort
+    3d/compare-eax-with  0x61/imm32/a
+    7c/jump-if-<  $from-hex-char:abort/disp8
+$from-hex-char:letter:
+    # return eax - ('a'-10)
+    2d/subtract-from-eax  0x57/imm32/a-10
+    c3/return
+
+$from-hex-char:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "invalid hex char: "/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . clear-stream($Stderr->buffer)
+    # . . save eax
+    50/push-eax
+    # . . push args
+    68/push  $Stderr->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . . restore eax
+    58/pop-to-eax
+    # . write-int32-hex-buffered(Stderr, eax)
+    # . . push args
+    50/push-eax
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . _write(2/stderr, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/119error-byte.subx b/linux/119error-byte.subx
new file mode 100644
index 00000000..1ce0a3d6
--- /dev/null
+++ b/linux/119error-byte.subx
@@ -0,0 +1,90 @@
+# Print an error message followed by the text representation of a byte. Then exit.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+#? Entry:  # manual test
+#?     # . var ed/eax: exit-descriptor
+#?     81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+#?     89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+#?     # . configure ed to really exit()
+#?     # . . ed->target = 0
+#?     c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # copy to *eax
+#?     # . error-byte(ed, Stdout, msg, 34)
+#?     68/push  0x34/imm32
+#?     68/push  "abc"/imm32
+#?     68/push  Stderr/imm32
+#?     50/push-eax
+#?     e8/call  error-byte/disp32
+#?     # . syscall(exit, Num-test-failures)
+#?     8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+#?     e8/call  syscall_exit/disp32
+
+# write(out, "Error: "+msg+": "+byte) then stop(ed, 1)
+error-byte:  # ed: (addr exit-descriptor), out: (addr buffered-file), msg: (addr array byte), n: byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write-buffered(out, "Error: ")
+    # . . push args
+    68/push  "Error: "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, msg)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, ": ")
+    # . . push args
+    68/push  ": "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-byte-hex-buffered(out, byte)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-byte-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, Newline)
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  stop/disp32
+    # should never get past this point
+$error-byte:dead-end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/120allocate.subx b/linux/120allocate.subx
new file mode 100644
index 00000000..11de944b
--- /dev/null
+++ b/linux/120allocate.subx
@@ -0,0 +1,967 @@
+# Helper to dynamically allocate memory on the heap.
+#
+# We'd like to be able to write tests for functions that allocate memory,
+# making assertions on the precise addresses used. To achieve this we'll pass
+# in an *allocation descriptor* to allocate from.
+#
+# Allocation descriptors are also useful outside of tests. Assembly and machine
+# code are of necessity unsafe languages, and one of the most insidious kinds
+# of bugs unsafe languages expose us to are dangling pointers to memory that
+# has been freed and potentially even reused for something totally different.
+# To reduce the odds of such "use after free" errors, SubX programs tend to not
+# reclaim and reuse dynamically allocated memory. (Running out of memory is far
+# easier to debug.) Long-running programs that want to reuse memory are mostly
+# on their own to be careful. However, they do get one bit of help: they can
+# carve out chunks of memory and then allocate from them manually using this
+# very same 'allocate' helper. They just need a new allocation descriptor for
+# their book-keeping.
+
+== data
+
+# Allocations are returned in a handle, which consists of an alloc-id and a payload.
+# The alloc-id helps detect use-after-free errors.
+Handle-size:  # (addr int)
+  8/imm32
+
+# A default allocation descriptor for programs to use.
+Heap:  # allocation-descriptor
+  # curr
+  0/imm32
+  # limit
+  0/imm32
+
+# a reasonable default
+Heap-size:  # int
+  0x800000/imm32/8MB
+
+Next-alloc-id:  # int
+  0x100/imm32  # save a few alloc ids for fake handles
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# Let's start initializing the default allocation descriptor.
+
+Entry:
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    e8/call  run-tests/disp32  # 'run-tests' is a function created automatically by SubX. It calls all functions that start with 'test-'.
+$array-equal-main:end:
+    # syscall(exit, Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    e8/call  syscall_exit/disp32
+
+# Allocate and clear 'n' bytes of memory from an allocation-descriptor 'ad'.
+# Abort if there isn't enough memory in 'ad'.
+allocate:  # ad: (addr allocation-descriptor), n: int, out: (addr handle _)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # allocate-raw(ad, n, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  allocate-raw/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = out->payload + 4
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   4/disp8         .                 # copy *(eax+4) to eax
+    05/add-to-eax  4/imm32
+    # zero-out(eax, n)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    50/push-eax
+    # . . call
+    e8/call  zero-out/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$allocate:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Claim the next 'n' bytes of memory starting at ad->curr and update ad->curr.
+# Abort if there isn't enough memory in 'ad'.
+allocate-raw:  # ad: (addr allocation-descriptor), n: int, out: (addr handle _)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # ecx = ad
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # edx = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0x10/disp8      .                 # copy *(ebp+16) to edx
+    # ebx = n
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   0xc/disp8       .                 # copy *(ebp+12) to ebx
+    # out->alloc-id = Next-alloc-id
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Next-alloc-id/disp32              # copy *Next-alloc-id to eax
+    89/copy                         0/mod/indirect  2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to *edx
+    # out->payload = ad->curr
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+$allocate-raw:save-payload-in-eax:
+    89/copy                         1/mod/*+disp8   2/rm32/edx    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edx+4)
+    # *out->payload = Next-alloc-id
+    8b/copy                         1/mod/*+disp8   2/rm32/edx    .           .             .           7/r32/edi   4/disp8         .                 # copy *(edx+4) to edi
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           6/r32/esi   Next-alloc-id/disp32              # copy *Next-alloc-id to esi
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           6/r32/esi   .               .                 # copy esi to *edi
+$allocate-raw:increment-next-alloc-id:
+    # increment *Next-alloc-id
+    ff          0/subop/increment   0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32              # increment *Next-alloc-id
+    # check if there's enough space
+    # TODO: move this check up before any state updates when we support error recovery
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  3/index/ebx   .           0/r32/eax   4/disp8         .                 # copy eax+ebx+4 to eax
+    3b/compare                      1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # compare eax with *(ecx+4)
+    73/jump-if->=-signed  $allocate-raw:abort/disp8
+$allocate-raw:commit:
+    # ad->curr += n+4
+    89/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to *ecx
+$allocate-raw:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$allocate-raw:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "allocate: failed\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-allocate-raw-success:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var ad/ecx: allocation-descriptor
+    68/push  0/imm32/limit
+    68/push  0/imm32/curr
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # ad = new-segment(512)
+    # . . push args
+    51/push-ecx
+    68/push  0x200/imm32
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # var expected-payload/ebx = ad->curr
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # copy *ecx to ebx
+    # var h/edx: handle = {0, 0}
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # *Next-alloc-id = 0x34
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32  0x34/imm32  # copy to *Next-alloc-id
+    # allocate-raw(ad, 3, h)
+    # . . push args
+    52/push-edx
+    68/push  3/imm32
+    51/push-ecx
+    # . . call
+    e8/call  allocate-raw/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->alloc-id, 0x34, msg)
+    # . . push args
+    68/push  "F - test-allocate-raw-success: sets alloc-id in handle"/imm32
+    68/push  0x34/imm32
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->payload, expected-payload, msg)
+    # . . push args
+    68/push  "F - test-allocate-raw-success: sets payload in handle"/imm32
+    53/push-ebx
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->payload->alloc-id, 0x34, msg)
+    # . . push args
+    68/push  "F - test-allocate-raw-success: sets alloc-id in payload"/imm32
+    68/push  0x34/imm32
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(*Next-alloc-id, 0x35, msg)
+    # . . push args
+    68/push  "F - test-allocate-raw-success: increments Next-alloc-id"/imm32
+    68/push  0x35/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32              # push *Next-alloc-id
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ad->curr - expected-payload, 3 + 4 for alloc-id, msg)
+    # . . push args
+    68/push  "F - test-allocate-raw-success: updates allocation descriptor"/imm32
+    68/push  7/imm32
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # subtract ebx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # clean up
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32  0x100/imm32 # copy to *Next-alloc-id
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+lookup:  # h: (handle _T) -> result/eax: (addr _T)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # eax = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # ecx = handle->alloc_id
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # if (ecx == 0) return 0
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0/imm32           # compare ecx
+    74/jump-if-=  $lookup:end/disp8
+    # eax = handle->address (payload)
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    # if (ecx != *eax) abort
+    39/compare                      0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare *eax and ecx
+    75/jump-if-!=  $lookup:abort/disp8
+    # add 4 to eax
+    05/add-to-eax  4/imm32
+$lookup:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$lookup:abort:
+    # . _write(2/stderr, msg)
+    # . . push args
+    68/push  "lookup failed\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32/exit-status
+    e8/call  syscall_exit/disp32
+
+test-lookup-success:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var ad/ebx: allocation-descriptor
+    68/push  0/imm32/limit
+    68/push  0/imm32/curr
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # ad = new-segment(512)
+    # . . push args
+    53/push-ebx
+    68/push  0x200/imm32
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # var handle/ecx: handle
+    68/push  0/imm32/address
+    68/push  0/imm32/alloc-id
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var old-top/edx = ad->curr
+    8b/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           2/r32/edx   .               .                 # copy *ebx to edx
+    # allocate-raw(ad, 2, handle)
+    # . . push args
+    51/push-ecx
+    68/push  2/imm32/size
+    53/push-ebx
+    # . . call
+    e8/call  allocate-raw/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = lookup(handle)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax contains old top of heap, except skipping the alloc-id in the payload
+    # . check-ints-equal(eax, old-top+4, msg)
+    # . . push args
+    68/push  "F - test-lookup-success"/imm32
+    81          0/subop/add         3/mod/direct    2/rm32/edx    .           .             .           .           .               4/imm32           # add to edx
+    52/push-edx
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # clean up
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32  0x100/imm32 # copy to *Next-alloc-id
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-lookup-null-returns-null:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var handle/ecx: handle
+    68/push  0/imm32/address
+    68/push  0/imm32/alloc-id
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = lookup(handle)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-lookup-null-returns-null"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+_pending-test-lookup-failure:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var heap/esi: allocation-descriptor
+    68/push  0/imm32/limit
+    68/push  0/imm32/curr
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # heap = new-segment(512)
+    # . . push args
+    56/push-esi
+    68/push  0x200/imm32
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # var h1/ecx: handle
+    68/push  0/imm32/address
+    68/push  0/imm32/alloc-id
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var old_top/ebx = heap->curr
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           3/r32/ebx   .               .                 # copy *esi to ebx
+    # first allocation, to h1
+    # . allocate(heap, 2, h1)
+    # . . push args
+    51/push-ecx
+    68/push  2/imm32/size
+    56/push-esi
+    # . . call
+    e8/call  allocate/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # reset heap->curr to mimic reclamation
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           3/r32/ebx   .               .                 # copy ebx to *esi
+    # second allocation that returns the same address as the first
+    # var h2/edx: handle
+    68/push  0/imm32/address
+    68/push  0/imm32/alloc-id
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . allocate(heap, 2, h2)
+    # . . push args
+    52/push-edx
+    68/push  2/imm32/size
+    56/push-esi
+    # . . call
+    e8/call  allocate/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h1->address, h2->address, msg)
+    # . . push args
+    68/push  "F - test-lookup-failure"/imm32
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # lookup(h1) should crash
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # should never get past this point
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # clean up
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32  0x100/imm32 # copy to *Next-alloc-id
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# when comparing handles, just treat them as pure values
+handle-equal?:  # a: (handle _T), b: (handle _T) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # eax = false
+    b8/copy-to-eax  0/imm32/false
+$handle-equal?:compare-alloc-id:
+    # ecx = a->alloc_id
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # if (ecx != b->alloc_id) return false
+    39/compare                      1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # compare ecx and *(ebp+16)
+    75/jump-if-!=  $handle-equal?:end/disp8
+$handle-equal?:compare-address:
+    # ecx = handle->address
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    # if (ecx != b->address) return false
+    39/compare                      1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x14/disp8      .                 # compare ecx and *(ebp+20)
+    75/jump-if-!=  $handle-equal?:end/disp8
+$handle-equal?:return-true:
+    # return true
+    b8/copy-to-eax  1/imm32/true
+$handle-equal?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+copy-handle:  # src: (handle _T), dest: (addr handle _T)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # ecx = dest
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # copy *(ebp+16) to ecx
+    # *dest = src
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    89/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to *ecx
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    89/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(ecx+4)
+$copy-handle:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# helper: create a nested allocation descriptor (useful for tests)
+allocate-region:  # ad: (addr allocation-descriptor), n: int, out: (addr handle allocation-descriptor)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # allocate(ad, n, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  allocate/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = out->payload
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   4/disp8         .                 # copy *(eax+4) to eax
+    # skip payload->allocid
+    05/add-to-eax  4/imm32
+    # if (eax == 0) abort
+    3d/compare-eax-and  0/imm32
+    74/jump-if-=  $allocate-region:abort/disp8
+    # earmark 8 bytes at the start for a new allocation descriptor
+    # . *eax = eax + 8
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to ecx
+    81          0/subop/add         3/mod/direct    1/rm32/ecx    .           .             .           .           .               8/imm32           # add to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # . *(eax+4) = eax + n
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to ecx
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # add *(ebp+12) to ecx
+    89/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   4/disp8         .                 # copy ecx to *(eax+4)
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# We could create a more general '$abort' jump target, but then we'd need to do
+# a conditional jump followed by loading the error message and an unconditional
+# jump. Or we'd need to unconditionally load the error message before a
+# conditional jump, even if it's unused the vast majority of the time. This way
+# we bloat a potentially cold segment in RAM so we can abort with a single
+# instruction.
+$allocate-region:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "allocate-region: failed to allocate\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+# Claim the next 'n+4' bytes of memory and initialize the first 4 to n.
+# Abort if there isn't enough memory in 'ad'.
+allocate-array:  # ad: (addr allocation-descriptor), n: int, out: (addr handle _)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # ecx = n
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    # var size/edx: int = n+4
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy ecx+4 to edx
+    # allocate(ad, size, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  allocate/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # *out->payload = n
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   4/disp8         .                 # copy *(eax+4) to eax
+    # . skip payload->allocid
+    05/add-to-eax  4/imm32
+    # .
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+$allocate-array:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-allocate-array:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var ad/ecx: allocation-descriptor
+    68/push  0/imm32/limit
+    68/push  0/imm32/curr
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # ad = new-segment(512)
+    # . . push args
+    51/push-ecx
+    68/push  0x200/imm32
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # var expected-payload/ebx = ad->curr
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # copy *ecx to ebx
+    # var h/edx: handle = {0, 0}
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # *Next-alloc-id = 0x34
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32  0x34/imm32  # copy to *Next-alloc-id
+    # allocate-array(ad, 3, h)
+    # . . push args
+    52/push-edx
+    68/push  3/imm32
+    51/push-ecx
+    # . . call
+    e8/call  allocate-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->alloc-id, 0x34, msg)
+    # . . push args
+    68/push  "F - test-allocate-array: sets alloc-id in handle"/imm32
+    68/push  0x34/imm32
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->payload, expected-payload, msg)
+    # . . push args
+    68/push  "F - test-allocate-array: sets payload in handle"/imm32
+    53/push-ebx
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->payload->alloc-id, 0x34, msg)
+    # . . push args
+    68/push  "F - test-allocate-array: sets alloc-id in payload"/imm32
+    68/push  0x34/imm32
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->payload->size, 3, msg)
+    # . . push args
+    68/push  "F - test-allocate-array: sets array size in payload"/imm32
+    68/push  3/imm32
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(*Next-alloc-id, 0x35, msg)
+    # . . push args
+    68/push  "F - test-allocate-array: increments Next-alloc-id"/imm32
+    68/push  0x35/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32              # push *Next-alloc-id
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ad->curr - expected-payload, 3 + 4 for alloc-id + 4 for array size, msg)
+    # . . push args
+    68/push  "F - test-allocate-array: updates allocation descriptor"/imm32
+    68/push  0xb/imm32
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # subtract ebx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # clean up
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32  1/imm32     # copy to *Next-alloc-id
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+copy-array:  # ad: (addr allocation-descriptor), src: (addr array _T), out: (addr handle array _T)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = src
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var size/ecx: int = src->size+4
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    81          0/subop/add         3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # add to ecx
+    # allocate(ad, size, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  allocate/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # var payload/eax: (addr byte) = out->payload
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   4/disp8         .                 # copy *(eax+4) to eax
+    # . skip payload->allocid
+    05/add-to-eax  4/imm32
+    # var max/ecx: (addr byte) = payload + size
+    01/add                          3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # add eax to ecx
+    # _append-4(payload, max, src, &src->data[src->size])
+    # . . push &src->data[src->size]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  2/index/edx   .           2/r32/edx   4/disp8         .                 # copy esi+edx+4 to edx
+    52/push-edx
+    # . . push src
+    56/push-esi
+    # . . push max
+    51/push-ecx
+    # . . push payload
+    50/push-eax
+    # . . call
+    e8/call  _append-4/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$copy-array:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-array:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var src/esi: (addr array int) = [3, 4, 5]
+    68/push  5/imm32
+    68/push  4/imm32
+    68/push  3/imm32
+    68/push  0xc/imm32/size
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # var ad/ecx: allocation-descriptor
+    68/push  0/imm32/limit
+    68/push  0/imm32/curr
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # ad = new-segment(512)
+    # . . push args
+    51/push-ecx
+    68/push  0x200/imm32
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # var expected-payload/ebx = ad->curr
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # copy *ecx to ebx
+    # var h/edx: handle = {0, 0}
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # *Next-alloc-id = 0x34
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32  0x34/imm32  # copy to *Next-alloc-id
+    # copy-array(ad, src, h)
+    # . . push args
+    52/push-edx
+    56/push-esi
+    51/push-ecx
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->alloc-id, 0x34, msg)
+    # . . push args
+    68/push  "F - test-copy-array: sets alloc-id in handle"/imm32
+    68/push  0x34/imm32
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->payload, expected-payload, msg)
+    # . . push args
+    68/push  "F - test-copy-array: sets payload in handle"/imm32
+    53/push-ebx
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(h->payload->alloc-id, 0x34, msg)
+    # . . push args
+    68/push  "F - test-copy-array: sets alloc-id in payload"/imm32
+    68/push  0x34/imm32
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # var payload/eax: (addr int) = lookup(h)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(payload->size, 0xc, msg)
+    # . . push args
+    68/push  "F - test-copy-array: sets array size in payload"/imm32
+    68/push  0xc/imm32
+    ff          6/subop/push        0/mod/indirect  0/rm32/eax    .           .             .           .           .               .                 # push *eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(*Next-alloc-id, 0x35, msg)
+    # . . push args
+    68/push  "F - test-copy-array: increments Next-alloc-id"/imm32
+    68/push  0x35/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32              # push *Next-alloc-id
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ad->curr - expected-payload, 12 + 4 for alloc-id + 4 for size, msg)
+    # . . push args
+    68/push  "F - test-copy-array: updates allocation descriptor"/imm32
+    68/push  0x14/imm32
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # subtract ebx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # clean up
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-alloc-id/disp32  1/imm32     # copy to *Next-alloc-id
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x20/imm32        # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Fill a region of memory with zeroes.
+zero-out:  # start: (addr byte), size: int
+    # pseudocode:
+    #   curr/esi = start
+    #   i/ecx = 0
+    #   while true
+    #     if (i >= size) break
+    #     *curr = 0
+    #     ++curr
+    #     ++i
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # curr/esi = start
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var i/ecx: int = 0
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+    # edx = size
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+$zero-out:loop:
+    # if (i >= size) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    7d/jump-if->=  $zero-out:end/disp8
+    # *curr = 0
+    c6          0/subop/copy-byte   0/mod/direct    6/rm32/esi    .           .             .           .           .               0/imm8            # copy byte to *esi
+    # ++curr
+    46/increment-esi
+    # ++i
+    41/increment-ecx
+    eb/jump  $zero-out:loop/disp8
+$zero-out:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-zero-out:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # region/ecx = 34, 35, 36, 37
+    68/push  0x37363534/imm32
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # zero-out(ecx, 3)
+    # . . push args
+    68/push  3/imm32/size
+    51/push-ecx
+    # . . call
+    e8/call  zero-out/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # first 3 bytes cleared, fourth left alone
+    # . check-ints-equal(*ecx, 0x37000000, msg)
+    # . . push args
+    68/push  "F - test-zero-out"/imm32
+    68/push  0x37000000/imm32
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/121new-stream.subx b/linux/121new-stream.subx
new file mode 100644
index 00000000..41d1c31b
--- /dev/null
+++ b/linux/121new-stream.subx
@@ -0,0 +1,136 @@
+# Helper to allocate a stream on the heap.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+new-stream:  # ad: (addr allocation-descriptor), length: int, elemsize: int, out: (addr handle stream _)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    52/push-edx
+    # var size/edx: int = elemsize*length (clobbering eax)
+    # . eax = elemsize
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    # . eax *= length
+    31/xor                          3/mod/direct    2/rm32/edx    .           .             .           2/r32/edx   .               .                 # clear edx
+    f7          4/subop/multiply    1/mod/*+disp8   5/rm32/ebp    .           .                                     0xc/disp8       .                 # multiply *(ebp+12) into edx:eax
+    # . if overflow abort
+    81          7/subop/compare     3/mod/direct    2/rm32/edx    .           .             .           .           .               0/imm32           # compare edx
+    75/jump-if-!=  $new-stream:abort/disp8
+    # . edx = elemsize*length
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to edx
+    # var n/eax: int = size + 12 (for read, write and size)
+    05/add-to-eax  0xc/imm32
+    # allocate(ad, n, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  allocate/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = out->payload
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x14/disp8      .                 # copy *(ebp+20) to eax
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   4/disp8         .                 # copy *(eax+4) to eax
+    # skip payload->allocid
+    05/add-to-eax  4/imm32
+    # eax->size = size
+    89/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           2/r32/edx   8/disp8         .                 # copy edx to *(eax+8)
+    # clear-stream(eax)
+    # . . push args
+    50/push-eax
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$new-stream:end:
+    # . restore registers
+    5a/pop-to-edx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$new-stream:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "new-stream: size too large\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-new-stream:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var heap/ecx: allocation-descriptor
+    68/push  0/imm32/limit
+    68/push  0/imm32/curr
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # heap = new-segment(512)
+    # . . push args
+    51/push-ecx
+    68/push  0x200/imm32
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # var start/edx = ad->curr
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # var h/ebx: (handle stream byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # new-stream(heap, 3, 2, h)
+    # . . push args
+    53/push-ebx
+    68/push  2/imm32
+    68/push  3/imm32
+    51/push-ecx
+    # . . call
+    e8/call  new-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # eax = out->payload
+    8b/copy                         1/mod/*+disp8   3/rm32/ebx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ebx+4) to eax
+    # check-ints-equal(eax, edx, msg)
+    # . . push args
+    68/push  "F - test-new-stream: returns current pointer of allocation descriptor"/imm32
+    52/push-edx
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # skip payload->allocid
+    05/add-to-eax  4/imm32
+    # check-ints-equal(eax->size, 6, msg)
+    # . . push args
+    68/push  "F - test-new-stream: sets size correctly"/imm32
+    68/push  6/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           .               8/disp8           # push *(eax+8)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # the rest is delegated to clear-stream() so we won't bother checking it
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/122read-line.subx b/linux/122read-line.subx
new file mode 100644
index 00000000..02dcc0fd
--- /dev/null
+++ b/linux/122read-line.subx
@@ -0,0 +1,385 @@
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# read bytes from 'f' until (and including) a newline and store them into 's'
+# 's' fails to grow if and only if no data found
+# just abort if 's' is too small
+read-line-buffered:  # f: (addr buffered-file), s: (addr stream byte)
+    # pseudocode:
+    #   while true
+    #     if (s->write >= s->size) abort
+    #     if (f->read >= f->write) populate stream from file
+    #     if (f->write == 0) break
+    #     AL = f->data[f->read]
+    #     s->data[s->write] = AL
+    #     ++f->read
+    #     ++s->write
+    #     if (AL == '\n') break
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # esi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = f->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(esi+8) to ecx
+    # edi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # edx = s->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy *edi to edx
+$read-line-buffered:loop:
+    # if (s->write >= s->size) abort
+    3b/compare                      1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   8/disp8         .                 # compare edx with *(edi+8)
+    7d/jump-if->=  $read-line-buffered:abort/disp8
+    # if (f->read >= f->write) populate stream from file
+    3b/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # compare ecx with *(esi+4)
+    7c/jump-if-<  $read-line-buffered:from-stream/disp8
+    # . clear-stream(stream = f+4)
+    # . . push args
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy esi+4 to eax
+    50/push-eax
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . f->read must now be 0; update its cache at ecx
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+    # . eax = read(f->fd, stream = f+4)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (f->write == 0) break
+    # since f->read was initially 0, eax is the same as f->write
+    # . if (eax == 0) return true
+    3d/compare-eax-and  0/imm32
+    74/jump-if-=  $read-line-buffered:end/disp8
+$read-line-buffered:from-stream:
+    # AL = f->data[f->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0x10/disp8      .                 # copy byte at *(esi+ecx+16) to AL
+    # s->data[s->write] = AL
+    88/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  2/index/edx   .           0/r32/AL    0xc/disp8       .                 # copy AL to *(edi+edx+12)
+    # ++f->read
+    41/increment-ecx
+    # ++s->write
+    42/increment-edx
+    # if (AL == '\n') return
+    3d/compare-eax-and  0xa/imm32/newline
+    75/jump-if-!=  $read-line-buffered:loop/disp8
+$read-line-buffered:end:
+    # save f->read
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   8/disp8         .                 # copy ecx to *(esi+8)
+    # save s->write
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy edx to *edi
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$read-line-buffered:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "read-line-buffered: line too long\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-read-line-buffered:
+    # - check that read-line-buffered stops at a newline
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "ab\ncd")
+    # . . push args
+    68/push  "ab\ncd"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read a line from _test-stream (buffered by _test-buffered-file) into _test-tmp-stream
+    # . eax = read-line-buffered(_test-buffered-file, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  read-line-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-next-stream-line-equal(_test-tmp-stream, "ab", msg)
+    # . . push args
+    68/push  "F - test-read-line-buffered"/imm32
+    68/push  "ab"/imm32
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-read-line-buffered-reads-final-line-until-Eof:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "cd")
+    # . . push args
+    68/push  "cd"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read a line from _test-stream (buffered by _test-buffered-file) into _test-tmp-stream
+    # . eax = read-line-buffered(_test-buffered-file, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  read-line-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-tmp-stream, "cd", msg)
+    # . . push args
+    68/push  "F - test-read-line-buffered-reads-final-line-until-Eof"/imm32
+    68/push  "cd"/imm32
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+# read bytes from 'f' until (and including) a newline and store them into 's'
+# 's' fails to grow if and only if no data found
+# just abort if 's' is too small
+read-line:  # f: (addr stream byte), s: (addr stream byte)
+    # pseudocode:
+    #   while true
+    #     if (s->write >= s->size) abort
+    #     if (f->read >= f->write) break
+    #     AL = f->data[f->read]
+    #     s->data[s->write] = AL
+    #     ++f->read
+    #     ++s->write
+    #     if (AL == '\n') break
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # esi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = f->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    # edi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # edx = s->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy *edi to edx
+$read-line:loop:
+    # if (s->write >= s->size) abort
+    3b/compare                      1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   8/disp8         .                 # compare edx with *(edi+8)
+    0f 8d/jump-if->=  $read-line:abort/disp32
+    # if (f->read >= f->write) break
+    3b/compare                      0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare ecx with *esi
+    7d/jump-if->=  $read-line:end/disp8
+    # AL = f->data[f->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # s->data[s->write] = AL
+    88/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  2/index/edx   .           0/r32/AL    0xc/disp8       .                 # copy AL to *(edi+edx+12)
+    # ++f->read
+    41/increment-ecx
+    # ++s->write
+    42/increment-edx
+    # if (AL == '\n') return
+    3d/compare-eax-and  0xa/imm32/newline
+    0f 85/jump-if-!=  $read-line:loop/disp32
+$read-line:end:
+    # save f->read
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy ecx to *(esi+4)
+    # save s->write
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy edx to *edi
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$read-line:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "read-line: line too long\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-read-line:
+    # - check that read-line stops at a newline
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "ab\ncd")
+    # . . push args
+    68/push  "ab\ncd"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read a line from _test-stream into _test-tmp-stream
+    # . eax = read-line(_test-stream, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  read-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-next-stream-line-equal(_test-tmp-stream, "ab", msg)
+    # . . push args
+    68/push  "F - test-read-line"/imm32
+    68/push  "ab"/imm32
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-read-line-reads-final-line-until-Eof:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "cd")
+    # . . push args
+    68/push  "cd"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read a line from _test-stream into _test-tmp-stream
+    # . eax = read-line(_test-stream, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  read-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-tmp-stream, "cd", msg)
+    # . . push args
+    68/push  "F - test-read-line-reads-final-line-until-Eof"/imm32
+    68/push  "cd"/imm32
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/123slice.subx b/linux/123slice.subx
new file mode 100644
index 00000000..c3a4943a
--- /dev/null
+++ b/linux/123slice.subx
@@ -0,0 +1,1220 @@
+# new data structure: a slice is an open interval of addresses [start, end)
+# that includes 'start' but not 'end'
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+slice-empty?:  # s: (addr slice) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # ecx = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # if (s->start >= s->end) return true
+    # . eax = s->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    # . if (eax >= s->end) return true
+    3b/compare                      1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # compare eax with *(ecx+4)
+    b8/copy-to-eax  1/imm32/true
+    73/jump-if-addr>=  $slice-empty?:end/disp8
+    b8/copy-to-eax  0/imm32/false
+$slice-empty?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-empty-true:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx: slice = {34, 34}
+    68/push  34/imm32/end
+    68/push  34/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # slice-empty?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-empty-true"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-empty-false:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx: slice = {32, 34}
+    68/push  34/imm32/end
+    68/push  32/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # slice-empty?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-empty-false"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-empty-if-start-greater-than-end:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx: slice = {34, 32}
+    68/push  32/imm32/end
+    68/push  34/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # slice-empty?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-empty-if-start-greater-than-end"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+slice-equal?:  # s: (addr slice), p: (addr array byte) -> result/eax: boolean
+    # pseudocode:
+    #   if (p == 0) return (s == 0)
+    #   currs = s->start
+    #   maxs = s->end
+    #   if (maxs - currs != p->size) return false
+    #   currp = p->data
+    #   while currs < maxs
+    #     if (*currs != *currp) return false
+    #     ++currs
+    #     ++currp
+    #   return true
+    #
+    # registers:
+    #   currs: edx
+    #   maxs: esi
+    #   currp: ebx
+    #   *currs: eax
+    #   *currp: ecx
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var currs/edx: (addr byte) = s->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    # var maxs/esi: (addr byte) = s->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           6/r32/esi   4/disp8         .                 # copy *(esi+4) to esi
+    # var ssize/eax: int = maxs - currs
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           6/r32/esi   .               .                 # copy esi to eax
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # subtract edx from eax
+    # ebx = p
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   0xc/disp8       .                 # copy *(ebp+12) to ebx
+    # if (p != 0) goto next check
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0/imm32           # compare ebx
+    75/jump-if-!=  $slice-equal?:nonnull-string/disp8
+$slice-equal?:null-string:
+    # return s->start == s->end
+    3d/compare-eax-and  0/imm32
+    74/jump-if-=  $slice-equal?:true/disp8
+    eb/jump  $slice-equal?:false/disp8
+$slice-equal?:nonnull-string:
+    # if (ssize != p->size) return false
+    39/compare                      0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # compare *ebx and eax
+    75/jump-if-!=  $slice-equal?:false/disp8
+    # var currp/ebx: (addr byte) = p->data
+    81          0/subop/add         3/mod/direct    3/rm32/ebx    .           .             .           .           .               4/imm32           # add to ebx
+    # var c1/eax: byte = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # var c2/ecx: byte = 0
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+$slice-equal?:loop:
+    # if (currs >= maxs) return true
+    39/compare                      3/mod/direct    2/rm32/edx    .           .             .           6/r32/esi   .               .                 # compare edx with esi
+    73/jump-if-addr>=  $slice-equal?:true/disp8
+    # c1 = *currp
+    8a/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at *ebx to AL
+    # c2 = *currs
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           1/r32/CL    .               .                 # copy byte at *edx to CL
+    # if (c1 != c2) return false
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax and ecx
+    75/jump-if-!=  $slice-equal?:false/disp8
+    # ++currp
+    43/increment-ebx
+    # ++currs
+    42/increment-edx
+    eb/jump $slice-equal?:loop/disp8
+$slice-equal?:false:
+    b8/copy-to-eax  0/imm32
+    eb/jump  $slice-equal?:end/disp8
+$slice-equal?:true:
+    b8/copy-to-eax  1/imm32
+$slice-equal?:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-equal:
+    # - slice-equal?(slice("Abc"), "Abc") == 1
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-equal?(ecx, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-equal"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-equal-false:
+    # - slice-equal?(slice("bcd"), "Abc") == 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "bcd"
+    b8/copy-to-eax  "bcd"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-equal?(ecx, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-equal-false"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-equal-too-long:
+    # - slice-equal?(slice("Abcd"), "Abc") == 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Abcd"
+    b8/copy-to-eax  "Abcd"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-equal?(ecx, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-equal-too-long"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-equal-too-short:
+    # - slice-equal?(slice("A"), "Abc") == 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "A"
+    b8/copy-to-eax  "A"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-equal?(ecx, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-equal-too-short"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-equal-empty:
+    # - slice-equal?(slice(""), "Abc") == 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-equal?(ecx, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-equal-empty"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-equal-with-empty:
+    # - slice-equal?(slice("Ab"), "") == 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Ab"
+    b8/copy-to-eax  "Ab"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-equal?(ecx, "")
+    # . . push args
+    68/push  ""/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-equal-with-empty"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-equal-empty-with-empty:
+    # - slice-equal?(slice(""), "") == 1
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-equal?(ecx, "")
+    # . . push args
+    68/push  ""/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-equal-empty-with-empty"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-equal-with-null:
+    # - slice-equal?(slice("Ab"), null) == 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Ab"
+    b8/copy-to-eax  "Ab"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-equal?(ecx, 0)
+    # . . push args
+    68/push  0/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-equal-with-null"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+slice-starts-with?:  # s: (addr slice), head: (addr array byte) -> result/eax: boolean
+    # pseudocode
+    #   hsize = head->size
+    #   if (hsize > s->end - s->start) return false
+    #   i = 0
+    #   currs = s->start
+    #   currp = head->data
+    #   while i < hsize
+    #     if (*currs != *currh) return false
+    #     ++i
+    #     ++currs
+    #     ++currh
+    #   return true
+    #
+    # registers:
+    #   currs: esi
+    #   currh: edi
+    #   *currs: eax
+    #   *currh: ebx
+    #   i: ecx
+    #   hsize: edx
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var lens/ecx: int = s->end - s->start
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    2b/subtract                     0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # subtract *esi from ecx
+    # edi = head
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # var hsize/edx: int = head->size
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy *edi to edx
+    # if (hsize > lens) return false
+    39/compare                      3/mod/direct    2/rm32/edx    .           .             .           1/r32/ecx   .               .                 # compare edx with ecx
+    7f/jump-if->  $slice-starts-with?:false/disp8
+    # var currs/esi: (addr byte) = s->start
+    8b/subtract                     0/mod/indirect  6/rm32/esi    .           .             .           6/r32/esi   .               .                 # copy *esi to esi
+    # var currh/edi: (addr byte) = head->data
+    81          0/subop/add         3/mod/direct    7/rm32/edi    .           .             .           .           .               4/imm32           # add to edi
+    # var i/ecx: int = 0
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+    # var c1/eax: byte = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # var c2/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$slice-starts-with?:loop:
+    # if (i >= hsize) return true
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    7d/jump-if->=  $slice-starts-with?:true/disp8
+    # c1 = *currs
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           0/r32/AL    .               .                 # copy byte at *esi to AL
+    # c2 = *currh
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           3/r32/BL    .               .                 # copy byte at *edi to BL
+    # if (c1 != c2) return false
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # compare eax and ebx
+    75/jump-if-!=  $slice-starts-with?:false/disp8
+    # ++i
+    41/increment-ecx
+    # ++currs
+    46/increment-esi
+    # ++currh
+    47/increment-edi
+    eb/jump $slice-starts-with?:loop/disp8
+$slice-starts-with?:true:
+    b8/copy-to-eax  1/imm32
+    eb/jump  $slice-starts-with?:end/disp8
+$slice-starts-with?:false:
+    b8/copy-to-eax  0/imm32
+$slice-starts-with?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-starts-with-single-character:
+    # - slice-starts-with?(slice("Abc"), "A") == 1
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-starts-with?(ecx, "A")
+    # . . push args
+    68/push  "A"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-starts-with-single-character"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-starts-with-empty-string:
+    # - slice-starts-with?(slice("Abc"), "") == 1
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-starts-with?(ecx, "")
+    # . . push args
+    68/push  ""/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-starts-with-empty-string"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-starts-with-multiple-characters:
+    # - slice-starts-with?(slice("Abc"), "Ab") == 1
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-starts-with?(ecx, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-starts-with-multiple-characters"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-starts-with-entire-string:
+    # - slice-starts-with?(slice("Abc"), "Abc") == 1
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-starts-with?(ecx, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-starts-with-entire-string"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-starts-with-fails:
+    # - slice-starts-with?(slice("Abc"), "Abd") == 1
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-starts-with?(ecx, "Abd")
+    # . . push args
+    68/push  "Abd"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-starts-with-fails"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-slice-starts-with-fails-2:
+    # - slice-starts-with?(slice("Abc"), "Ac") == 1
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = slice-starts-with?(ecx, "Ac")
+    # . . push args
+    68/push  "Ac"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-slice-starts-with-fails-2"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# write a slice to a stream
+# abort if the stream doesn't have enough space
+write-slice:  # out: (addr stream byte), s: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var curr/ecx: (addr byte) = s->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    # var max/esi: (addr byte) = s->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           6/r32/esi   4/disp8         .                 # copy *(esi+4) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # edx = out->size
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(edi+8) to edx
+    # ebx = out->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           3/r32/ebx   .               .                 # copy *edi to ebx
+$write-slice:loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           6/r32/esi   .               .                 # compare ecx with esi
+    73/jump-if-addr>=  $write-slice:loop-end/disp8
+    # if (out->write >= out->size) abort
+    39/compare                      3/mod/direct    3/rm32/ebx    .           .             .           2/r32/edx   .               .                 # compare ebx with edx
+    7d/jump-if->=  $write-slice:abort/disp8
+    # out->data[out->write] = *in
+    # . AL = *in
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    # . out->data[out->write] = AL
+    88/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  3/index/ebx   .           0/r32/AL    0xc/disp8       .                 # copy AL to *(edi+ebx+12)
+    # ++out->write
+    43/increment-ebx
+    # ++in
+    41/increment-ecx
+    eb/jump  $write-slice:loop/disp8
+$write-slice:loop-end:
+    # persist out->write
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           3/r32/ebx   .               .                 # copy ebx to *edi
+$write-slice:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$write-slice:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "write-slice: out of space"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-write-slice:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write-slice(_test-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "Abc", msg)
+    # . . push args
+    68/push  "F - test-write-slice"/imm32
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# write a slice to a buffered-file
+write-slice-buffered:  # out: (addr buffered-file), s: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var curr/ecx: (addr byte) = s->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    # var max/esi: (addr byte) = s->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           6/r32/esi   4/disp8         .                 # copy *(esi+4) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # edx = out->size
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(edi+12) to edx
+    # ebx = out->write
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   4/disp8         .                 # copy *(edi+4) to ebx
+$write-slice-buffered:loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           6/r32/esi   .               .                 # compare ecx with esi
+    73/jump-if-addr>=  $write-slice-buffered:loop-end/disp8
+    # if (out->write >= out->size) flush and clear out's stream
+    39/compare                      3/mod/direct    3/rm32/ebx    .           .             .           2/r32/edx   .               .                 # compare ebx with edx
+    7c/jump-if-<  $write-slice-buffered:to-stream/disp8
+    # . persist out->write
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   4/disp8         .                 # copy ebx to *(edi+4)
+    # . flush(out)
+    # . . push args
+    57/push-edi
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(stream = out+4)
+    # . . push args
+    8d/copy-address                 1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy edi+4 to eax
+    50/push-eax
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . out->write must now be 0; update its cache at ebx
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$write-slice-buffered:to-stream:
+    # out->data[out->write] = *in
+    # . AL = *in
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    # . out->data[out->write] = AL
+    88/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  3/index/ebx   .           0/r32/AL    0x10/disp8      .                 # copy AL to *(edi+ebx+16)
+    # ++out->write
+    43/increment-ebx
+    # ++in
+    41/increment-ecx
+    eb/jump  $write-slice-buffered:loop/disp8
+$write-slice-buffered:loop-end:
+    # persist necessary variables from registers
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   4/disp8         .                 # copy ebx to *(edi+4)
+$write-slice-buffered:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-slice-buffered:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write-slice-buffered(_test-buffered-file, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-stream, "Abc", msg)
+    # . . push args
+    68/push  "F - test-write-slice-buffered"/imm32
+    68/push  "Abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# copy a slice into a new (dynamically allocated) string
+slice-to-string:  # ad: (addr allocation-descriptor), in: (addr slice), out: (addr handle array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var curr/edx: (addr byte) = in->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    # var max/ebx: (addr byte) = in->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           3/r32/ebx   4/disp8         .                 # copy *(esi+4) to ebx
+    # var size/ecx: int = max - curr + 4  # total size of output string (including the initial 'size' field)
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # copy ebx to ecx
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # subtract edx from ecx
+    81          0/subop/add         3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # add to ecx
+    # allocate(ad, size, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  allocate/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = out->payload
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   4/disp8         .                 # copy *(eax+4) to eax
+    # skip payload->allocid
+    05/add-to-eax  4/imm32
+    # if (eax == 0) abort
+    3d/compare-eax-and  0/imm32
+    74/jump-if-=  $slice-to-string:abort/disp8
+    # out->size = size-4
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    81          5/subop/subtract    0/mod/indirect  0/rm32/eax    .           .             .           .           .               4/imm32           # subtract 4 from *eax
+    # save out
+    50/push-eax
+$slice-to-string:initialize:
+    # eax = _append-4(eax+4, eax+size, curr, max)  # clobbering ecx
+    # . . push args
+    53/push-ebx
+    52/push-edx
+    # . . push eax+size (clobbering ecx)
+    01/add                          3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # add eax to ecx
+    51/push-ecx
+    # . . push eax+4 (clobbering eax)
+    81          0/subop/add         3/mod/direct    0/rm32/eax    .           .             .           .           .               4/imm32           # add to eax
+    50/push-eax
+    # . . call
+    e8/call  _append-4/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # restore out (assumes _append-4 can't error)
+    58/pop-to-eax
+$slice-to-string:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$slice-to-string:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "slice-to-string: out of space\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-slice-to-string:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var heap/edx: allocation-descriptor
+    68/push  0/imm32/limit
+    68/push  0/imm32/curr
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # heap = new-segment(512)
+    # . . push args
+    52/push-edx
+    68/push  0x200/imm32
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # (eax..ecx) = "Abc"
+    b8/copy-to-eax  "Abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # slice-to-string(heap, slice, h)
+    # . . push args
+    53/push-ebx
+    51/push-ecx
+    52/push-edx
+    # . . call
+    e8/call  slice-to-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = h->payload
+    8b/copy                         1/mod/*+disp8   3/rm32/ebx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ebx+4) to eax
+    # skip payload->allocid
+    05/add-to-eax  4/imm32
+#?     # dump eax {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, eax)
+#?     # . . push args
+#?     50/push-eax
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # eax = string-equal?(eax, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    50/push-eax
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-slice-to-string"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/124next-token.subx b/linux/124next-token.subx
new file mode 100644
index 00000000..cc115d70
--- /dev/null
+++ b/linux/124next-token.subx
@@ -0,0 +1,1925 @@
+# Some tokenization primitives.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# extract the next run of characters that are different from a given 'delimiter' (skipping multiple delimiters if necessary)
+# on reaching end of file, return an empty interval
+next-token:  # in: (addr stream byte), delimiter: byte, out: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0x10/disp8      .                 # copy *(ebp+16) to edi
+    # skip-chars-matching(in, delimiter)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    56/push-esi
+    # . . call
+    e8/call  skip-chars-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # out->start = &in->data[in->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to *edi
+    # skip-chars-not-matching(in, delimiter)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    56/push-esi
+    # . . call
+    e8/call  skip-chars-not-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # out->end = &in->data[in->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-token:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-stream, "  ab")
+    # . . push args
+    68/push  "  ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-token(_test-stream, 0x20/space, slice)
+    # . . push args
+    51/push-ecx
+    68/push  0x20/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-token/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->start - _test-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-stream, 14, msg)
+    # . . push args
+    68/push  "F - test-next-token: start"/imm32
+    68/push  0xe/imm32
+    # . . push slice->start - _test-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-stream->data, 4, msg)
+    # . check-ints-equal(slice->end - _test-stream, 16, msg)
+    # . . push args
+    68/push  "F - test-next-token: end"/imm32
+    68/push  0x10/imm32
+    # . . push slice->end - _test-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-token-Eof:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write nothing to _test-stream
+    # next-token(_test-stream, 0x20/space, slice)
+    # . . push args
+    51/push-ecx
+    68/push  0x20/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-token/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end, slice->start, msg)
+    # . . push args
+    68/push  "F - test-next-token-Eof"/imm32
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# extract the next run of characters that are different from a given 'delimiter' (skipping multiple delimiters if necessary)
+# on reaching end of file, return an empty interval
+next-token-from-slice:  # start: (addr byte), end: (addr byte), delimiter: byte, out: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    57/push-edi
+    # ecx = end
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    # edx = delimiter
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0x10/disp8      .                 # copy *(ebp+16) to edx
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0x14/disp8      .                 # copy *(ebp+20) to edi
+    # eax = skip-chars-matching-in-slice(start, end, delimiter)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-matching-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # out->start = eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to *edi
+    # eax = skip-chars-not-matching-in-slice(eax, end, delimiter)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-chars-not-matching-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # out->end = eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+    # . restore registers
+    5f/pop-to-edi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-token-from-slice:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "  ab"
+    b8/copy-to-eax  "  ab"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var out/edi: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           4/r32/esp   .               .                 # copy esp to edi
+    # next-token-from-slice(eax, ecx, 0x20/space, out)
+    # . . push args
+    57/push-edi
+    68/push  0x20/imm32
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # out->start should be at the 'a'
+    # . check-ints-equal(out->start - in->start, 2, msg)
+    # . . push args
+    68/push  "F - test-next-token-from-slice: start"/imm32
+    68/push  2/imm32
+    # . . push out->start - in->start
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy *edi to ecx
+    2b/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # out->end should be after the 'b'
+    # check-ints-equal(out->end - in->start, 4, msg)
+    # . . push args
+    68/push  "F - test-next-token-from-slice: end"/imm32
+    68/push  4/imm32
+    # . . push out->end - in->start
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(edi+4) to ecx
+    2b/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-token-from-slice-Eof:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var out/edi: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           4/r32/esp   .               .                 # copy esp to edi
+    # next-token-from-slice(0, 0, 0x20/space, out)
+    # . . push args
+    57/push-edi
+    68/push  0x20/imm32
+    68/push  0/imm32
+    68/push  0/imm32
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # out should be empty
+    # . check-ints-equal(out->end - out->start, 0, msg)
+    # . . push args
+    68/push  "F - test-next-token-from-slice-Eof"/imm32
+    68/push  0/imm32
+    # . . push out->start - in->start
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(edi+4) to ecx
+    2b/subtract                     0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # subtract *edi from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-token-from-slice-nothing:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "    "
+    b8/copy-to-eax  "    "/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var out/edi: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           4/r32/esp   .               .                 # copy esp to edi
+    # next-token-from-slice(in, 0x20/space, out)
+    # . . push args
+    57/push-edi
+    68/push  0x20/imm32
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # out should be empty
+    # . check-ints-equal(out->end - out->start, 0, msg)
+    # . . push args
+    68/push  "F - test-next-token-from-slice-Eof"/imm32
+    68/push  0/imm32
+    # . . push out->start - in->start
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(edi+4) to ecx
+    2b/subtract                     0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # subtract *edi from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+skip-chars-matching:  # in: (addr stream byte), delimiter: byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = in->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    # ebx = in->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           3/r32/ebx   .               .                 # copy *esi to ebx
+    # edx = delimiter
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+$skip-chars-matching:loop:
+    # if (in->read >= in->write) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # compare ecx with ebx
+    7d/jump-if->=  $skip-chars-matching:end/disp8
+    # eax = in->data[in->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # if (eax != delimiter) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax and edx
+    75/jump-if-!=  $skip-chars-matching:end/disp8
+    # ++in->read
+    41/increment-ecx
+    eb/jump  $skip-chars-matching:loop/disp8
+$skip-chars-matching:end:
+    # persist in->read
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy ecx to *(esi+4)
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-chars-matching:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "  ab")
+    # . . push args
+    68/push  "  ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # skip-chars-matching(_test-stream, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  skip-chars-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-stream->read, 2, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-matching"/imm32
+    68/push  2/imm32
+    # . . push *_test-stream->read
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-skip-chars-matching-none:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "ab")
+    # . . push args
+    68/push  "ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # skip-chars-matching(_test-stream, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  skip-chars-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-stream->read, 0, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-matching-none"/imm32
+    68/push  0/imm32
+    # . . push *_test-stream->read
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+skip-chars-matching-whitespace:  # in: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    53/push-ebx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = in->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    # ebx = in->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           3/r32/ebx   .               .                 # copy *esi to ebx
+$skip-chars-matching-whitespace:loop:
+    # if (in->read >= in->write) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # compare ecx with ebx
+    7d/jump-if->=  $skip-chars-matching-whitespace:end/disp8
+    # eax = in->data[in->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # if (eax == ' ') goto body
+    3d/compare-eax-and  0x20/imm32/space
+    74/jump-if-=  $skip-chars-matching-whitespace:body/disp8
+    # if (eax == '\n') goto body
+    3d/compare-eax-and  0x0a/imm32/newline
+    74/jump-if-=  $skip-chars-matching-whitespace:body/disp8
+    # if (eax == '\t') goto body
+    3d/compare-eax-and  0x09/imm32/tab
+    74/jump-if-=  $skip-chars-matching-whitespace:body/disp8
+    # if (eax != '\r') break
+    3d/compare-eax-and  0x0d/imm32/cr
+    75/jump-if-!=  $skip-chars-matching-whitespace:end/disp8
+$skip-chars-matching-whitespace:body:
+    # ++in->read
+    41/increment-ecx
+    eb/jump  $skip-chars-matching-whitespace:loop/disp8
+$skip-chars-matching-whitespace:end:
+    # persist in->read
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy ecx to *(esi+4)
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-chars-matching-whitespace:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, " \nab")
+    # . . push args
+    68/push  " \nab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # skip-chars-matching-whitespace(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  skip-chars-matching-whitespace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(_test-stream->read, 2, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-matching-whitespace"/imm32
+    68/push  2/imm32
+    # . . push *_test-stream->read
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+# minor fork of 'skip-chars-matching'
+skip-chars-not-matching:  # in: (addr stream byte), delimiter: byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = in->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    # ebx = in->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           3/r32/ebx   .               .                 # copy *esi to ebx
+    # edx = delimiter
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+$skip-chars-not-matching:loop:
+    # if (in->read >= in->write) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # compare ecx with ebx
+    7d/jump-if->=  $skip-chars-not-matching:end/disp8
+    # eax = in->data[in->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # if (eax == delimiter) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax and edx
+    74/jump-if-=  $skip-chars-not-matching:end/disp8
+    # ++in->read
+    41/increment-ecx
+    eb/jump  $skip-chars-not-matching:loop/disp8
+$skip-chars-not-matching:end:
+    # persist in->read
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy ecx to *(esi+4)
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-chars-not-matching:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "ab ")
+    # . . push args
+    68/push  "ab "/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # skip-chars-not-matching(_test-stream, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  skip-chars-not-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-stream->read, 2, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-not-matching"/imm32
+    68/push  2/imm32
+    # . . push *_test-stream->read
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-skip-chars-not-matching-none:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, " ab")
+    # . . push args
+    68/push  " ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # skip-chars-not-matching(_test-stream, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  skip-chars-not-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-stream->read, 0, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-not-matching-none"/imm32
+    68/push  0/imm32
+    # . . push *_test-stream->read
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-skip-chars-not-matching-all:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "ab")
+    # . . push args
+    68/push  "ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # skip-chars-not-matching(_test-stream, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  skip-chars-not-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-stream->read, 2, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-not-matching-all"/imm32
+    68/push  2/imm32
+    # . . push *_test-stream->read
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+skip-chars-not-matching-whitespace:  # in: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    53/push-ebx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = in->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    # ebx = in->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           3/r32/ebx   .               .                 # copy *esi to ebx
+$skip-chars-not-matching-whitespace:loop:
+    # if (in->read >= in->write) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # compare ecx with ebx
+    7d/jump-if->=  $skip-chars-not-matching-whitespace:end/disp8
+    # eax = in->data[in->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # if (eax == ' ') break
+    3d/compare-eax-and  0x20/imm32/space
+    74/jump-if-=  $skip-chars-not-matching-whitespace:end/disp8
+    # if (eax == '\n') break
+    3d/compare-eax-and  0x0a/imm32/newline
+    74/jump-if-=  $skip-chars-not-matching-whitespace:end/disp8
+    # if (eax == '\t') break
+    3d/compare-eax-and  0x09/imm32/tab
+    74/jump-if-=  $skip-chars-not-matching-whitespace:end/disp8
+    # if (eax == '\r') break
+    3d/compare-eax-and  0x0d/imm32/cr
+    74/jump-if-=  $skip-chars-not-matching-whitespace:end/disp8
+    # ++in->read
+    41/increment-ecx
+    eb/jump  $skip-chars-not-matching-whitespace:loop/disp8
+$skip-chars-not-matching-whitespace:end:
+    # persist in->read
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy ecx to *(esi+4)
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-chars-not-matching-whitespace:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "ab\n")
+    # . . push args
+    68/push  "ab\n"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # skip-chars-not-matching-whitespace(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  skip-chars-not-matching-whitespace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(_test-stream->read, 2, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-not-matching-whitespace"/imm32
+    68/push  2/imm32
+    # . . push *_test-stream->read
+    b8/copy-to-eax  _test-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+skip-chars-matching-in-slice:  # curr: (addr byte), end: (addr byte), delimiter: byte -> curr/eax: (addr byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # eax = curr
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # ecx = end
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    # edx = delimiter
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0x10/disp8       .                 # copy *(ebp+16) to edx
+    # var c/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$skip-chars-matching-in-slice:loop:
+    # if (curr >= end) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
+    73/jump-if-addr>=  $skip-chars-matching-in-slice:end/disp8
+    # c = *curr
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           3/r32/BL    .               .                 # copy byte at *eax to BL
+    # if (c != delimiter) break
+    39/compare                      3/mod/direct    3/rm32/ebx    .           .             .           2/r32/edx   .               .                 # compare ebx and edx
+    75/jump-if-!=  $skip-chars-matching-in-slice:end/disp8
+    # ++curr
+    40/increment-eax
+    eb/jump  $skip-chars-matching-in-slice:loop/disp8
+$skip-chars-matching-in-slice:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-chars-matching-in-slice:
+    # (eax..ecx) = "  ab"
+    b8/copy-to-eax  "  ab"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-chars-matching-in-slice(eax, ecx, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32/space
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-chars-matching-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx-eax, 2, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-matching-in-slice"/imm32
+    68/push  2/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-skip-chars-matching-in-slice-none:
+    # (eax..ecx) = "ab"
+    b8/copy-to-eax  "ab"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-chars-matching-in-slice(eax, ecx, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32/space
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-chars-matching-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx-eax, 2, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-matching-in-slice-none"/imm32
+    68/push  2/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+skip-chars-matching-whitespace-in-slice:  # curr: (addr byte), end: (addr byte) -> curr/eax: (addr byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    53/push-ebx
+    # eax = curr
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # ecx = end
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    # var c/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$skip-chars-matching-whitespace-in-slice:loop:
+    # if (curr >= end) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
+    0f 83/jump-if-addr>=  $skip-chars-matching-in-slice:end/disp32
+    # c = *curr
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           3/r32/BL    .               .                 # copy byte at *eax to BL
+    # if (c == ' ') goto body
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x20/imm32/space  # compare ebx
+    74/jump-if-=  $skip-chars-matching-whitespace-in-slice:body/disp8
+    # if (c == '\n') goto body
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x0a/imm32/newline  # compare ebx
+    74/jump-if-=  $skip-chars-matching-whitespace-in-slice:body/disp8
+    # if (c == '\t') goto body
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x09/imm32/tab    # compare ebx
+    74/jump-if-=  $skip-chars-matching-whitespace-in-slice:body/disp8
+    # if (c != '\r') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x0d/imm32/cr     # compare ebx
+    75/jump-if-!=  $skip-chars-matching-whitespace-in-slice:end/disp8
+$skip-chars-matching-whitespace-in-slice:body:
+    # ++curr
+    40/increment-eax
+    eb/jump  $skip-chars-matching-whitespace-in-slice:loop/disp8
+$skip-chars-matching-whitespace-in-slice:end:
+    # . restore registers
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-chars-matching-whitespace-in-slice:
+    # (eax..ecx) = " \nab"
+    b8/copy-to-eax  " \nab"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-chars-matching-whitespace-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 2, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-matching-whitespace-in-slice"/imm32
+    68/push  2/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+# minor fork of 'skip-chars-matching-in-slice'
+skip-chars-not-matching-in-slice:  # curr: (addr byte), end: (addr byte), delimiter: byte -> curr/eax: (addr byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # eax = curr
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # ecx = end
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    # edx = delimiter
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0x10/disp8       .                 # copy *(ebp+16) to edx
+    # var c/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$skip-chars-not-matching-in-slice:loop:
+    # if (curr >= end) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
+    73/jump-if-addr>=  $skip-chars-not-matching-in-slice:end/disp8
+    # c = *curr
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           3/r32/BL    .               .                 # copy byte at *eax to BL
+    # if (c == delimiter) break
+    39/compare                      3/mod/direct    3/rm32/ebx    .           .             .           2/r32/edx   .               .                 # compare ebx and edx
+    74/jump-if-=  $skip-chars-not-matching-in-slice:end/disp8
+    # ++curr
+    40/increment-eax
+    eb/jump  $skip-chars-not-matching-in-slice:loop/disp8
+$skip-chars-not-matching-in-slice:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-chars-not-matching-in-slice:
+    # (eax..ecx) = "ab "
+    b8/copy-to-eax  "ab "/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-chars-not-matching-in-slice(eax, ecx, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32/space
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-chars-not-matching-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx-eax, 1, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-not-matching-in-slice"/imm32
+    68/push  1/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-skip-chars-not-matching-in-slice-none:
+    # (eax..ecx) = " ab"
+    b8/copy-to-eax  " ab"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-chars-not-matching-in-slice(eax, ecx, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32/space
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-chars-not-matching-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx-eax, 3, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-not-matching-in-slice-none"/imm32
+    68/push  3/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+test-skip-chars-not-matching-in-slice-all:
+    # (eax..ecx) = "ab"
+    b8/copy-to-eax  "ab"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-chars-not-matching-in-slice(eax, ecx, 0x20/space)
+    # . . push args
+    68/push  0x20/imm32/space
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-chars-not-matching-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx-eax, 0, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-not-matching-in-slice-all"/imm32
+    68/push  0/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+skip-chars-not-matching-whitespace-in-slice:  # curr: (addr byte), end: (addr byte) -> curr/eax: (addr byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    53/push-ebx
+    # eax = curr
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # ecx = end
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    # var c/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$skip-chars-not-matching-whitespace-in-slice:loop:
+    # if (curr >= end) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
+    0f 83/jump-if-addr>=  $skip-chars-not-matching-in-slice:end/disp32
+    # c = *curr
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           3/r32/BL    .               .                 # copy byte at *eax to BL
+    # if (c == ' ') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x20/imm32/space  # compare ebx
+    74/jump-if-=  $skip-chars-not-matching-whitespace-in-slice:end/disp8
+    # if (c == '\n') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x0a/imm32/newline  # compare ebx
+    74/jump-if-=  $skip-chars-not-matching-whitespace-in-slice:end/disp8
+    # if (c == '\t') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x09/imm32/tab    # compare ebx
+    74/jump-if-=  $skip-chars-not-matching-whitespace-in-slice:end/disp8
+    # if (c == '\r') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x0d/imm32/cr     # compare ebx
+    74/jump-if-=  $skip-chars-not-matching-whitespace-in-slice:end/disp8
+    # ++curr
+    40/increment-eax
+    eb/jump  $skip-chars-not-matching-whitespace-in-slice:loop/disp8
+$skip-chars-not-matching-whitespace-in-slice:end:
+    # . restore registers
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-chars-not-matching-whitespace-in-slice:
+    # (eax..ecx) = "ab\n"
+    b8/copy-to-eax  "ab\n"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-chars-not-matching-whitespace-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-chars-not-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 1, msg)
+    # . . push args
+    68/push  "F - test-skip-chars-not-matching-whitespace-in-slice"/imm32
+    68/push  1/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+# update line->read to end of string literal surrounded by double quotes
+# line->read must start out at a double-quote
+skip-string:  # line: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # ecx = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # eax = skip-string-in-slice(&line->data[line->read], &line->data[line->write])
+    # . . push &line->data[line->write]
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .                         2/r32/edx   8/disp8         .                 # copy *(ecx+8) to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   0xc/disp8       .                 # copy ecx+edx+12 to edx
+    52/push-edx
+    # . . push &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .                         2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   0xc/disp8       .                 # copy ecx+edx+12 to edx
+    52/push-edx
+    # . . call
+    e8/call  skip-string-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # line->read = eax - line->data
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    2d/subtract-from-eax  0xc/imm32
+    89/copy                         1/mod/*+disp8   1/rm32/ecx    .           .                         0/r32/eax   4/disp8         .                 # copy eax to *(ecx+4)
+$skip-string:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-string:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-input-stream, "\"abc\" def")
+    # .                   indices:  0123 45
+    # . . push args
+    68/push  "\"abc\" def"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # precondition: line->read == 0
+    # . . push args
+    68/push  "F - test-skip-string/precondition"/imm32
+    68/push  0/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # skip-string(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  skip-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(line->read, 5, msg)
+    # . . push args
+    68/push  "F - test-skip-string"/imm32
+    68/push  5/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-string-ignores-spaces:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-input-stream, "\"a b\"/yz")
+    # .                   indices:  0123 45
+    # . . push args
+    68/push  "\"a b\"/yz"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # precondition: line->read == 0
+    # . . push args
+    68/push  "F - test-skip-string-ignores-spaces/precondition"/imm32
+    68/push  0/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # skip-string(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  skip-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(line->read, 5, msg)
+    # . . push args
+    68/push  "F - test-skip-string-ignores-spaces"/imm32
+    68/push  5/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-string-ignores-escapes:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-input-stream, "\"a\\\"b\"/yz")
+    # .                   indices:  01 2 34 56
+    # . . push args
+    68/push  "\"a\\\"b\"/yz"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # precondition: line->read == 0
+    # . . push args
+    68/push  "F - test-skip-string-ignores-escapes/precondition"/imm32
+    68/push  0/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # skip-string(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  skip-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(line->read, 6, msg)
+    # . . push args
+    68/push  "F - test-skip-string-ignores-escapes"/imm32
+    68/push  6/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-string-works-from-mid-stream:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-input-stream, "0 \"a\\\"b\"/yz")
+    # .                   indices:  01 2 34 56
+    # . . push args
+    68/push  "0 \"a\\\"b\"/yz"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # precondition: line->read == 2
+    b8/copy-to-eax  _test-input-stream/imm32
+    c7          0/subop/copy        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         2/imm32           # copy to *(eax+4)
+    # skip-string(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  skip-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(line->read, 8, msg)
+    # . . push args
+    68/push  "F - test-skip-string-works-from-mid-stream"/imm32
+    68/push  8/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+skip-string-in-slice:  # curr: (addr byte), end: (addr byte) -> curr/eax: (addr byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = curr
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # edx = end
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         2/r32/edx   0xc/disp8         .               # copy *(ebp+12) to edx
+    # var c/eax: byte = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # skip initial dquote
+    41/increment-ecx
+$skip-string-in-slice:loop:
+    # if (curr >= end) return curr
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $skip-string-in-slice:return-curr/disp8
+    # c = *curr
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+$skip-string-in-slice:dquote:
+    # if (c == '"') break
+    3d/compare-eax-and  0x22/imm32/double-quote
+    74/jump-if-=  $skip-string-in-slice:break/disp8
+$skip-string-in-slice:check-for-escape:
+    # if (c == '\') escape next char
+    3d/compare-eax-and  0x5c/imm32/backslash
+    75/jump-if-!=  $skip-string-in-slice:continue/disp8
+$skip-string-in-slice:escape:
+    41/increment-ecx
+$skip-string-in-slice:continue:
+    # ++curr
+    41/increment-ecx
+    eb/jump  $skip-string-in-slice:loop/disp8
+$skip-string-in-slice:break:
+    # skip final dquote
+    41/increment-ecx
+$skip-string-in-slice:return-curr:
+    # return curr
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to eax
+$skip-string-in-slice:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-string-in-slice:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "\"abc\" def"
+    b8/copy-to-eax  "\"abc\" def"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-string-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-string-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 4, msg)  # number of chars remaining after the string literal
+    # . . push args
+    68/push  "F - test-skip-string-in-slice"/imm32
+    68/push  4/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-string-in-slice-ignores-spaces:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "\"a b\"/yz"
+    b8/copy-to-eax  "\"a b\"/yz"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-string-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-string-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 3, msg)  # number of chars remaining after the string literal
+    # . . push args
+    68/push  "F - test-skip-string-in-slice-ignores-spaces"/imm32
+    68/push  3/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-string-in-slice-ignores-escapes:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "\"a\\\"b\"/yz"
+    b8/copy-to-eax  "\"a\\\"b\"/yz"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-string-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-string-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 3, msg)  # number of chars remaining after the string literal
+    # . . push args
+    68/push  "F - test-skip-string-in-slice-ignores-escapes"/imm32
+    68/push  3/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-string-in-slice-stops-at-end:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "\"abc"  # unbalanced dquote
+    b8/copy-to-eax  "\"abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-string-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-string-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 0, msg)  # skipped to end of slice
+    # . . push args
+    68/push  "F - test-skip-string-in-slice-stops-at-end"/imm32
+    68/push  0/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# update line->read to ')'
+# line->read ends at ')'
+skip-until-close-paren:  # line: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # ecx = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # eax = skip-until-close-paren-in-slice(&line->data[line->read], &line->data[line->write])
+    # . . push &line->data[line->write]
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .                         2/r32/edx   8/disp8         .                 # copy *(ecx+8) to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   0xc/disp8       .                 # copy ecx+edx+12 to edx
+    52/push-edx
+    # . . push &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .                         2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   0xc/disp8       .                 # copy ecx+edx+12 to edx
+    52/push-edx
+    # . . call
+    e8/call  skip-until-close-paren-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # line->read = eax - line->data
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    2d/subtract-from-eax  0xc/imm32
+    89/copy                         1/mod/*+disp8   1/rm32/ecx    .           .                         0/r32/eax   4/disp8         .                 # copy eax to *(ecx+4)
+$skip-until-close-paren:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-until-close-paren:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-input-stream, "*(abc) def")
+    # .                   indices:  0123 45
+    # . . push args
+    68/push  "*(abc) def"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # precondition: line->read == 0
+    # . . push args
+    68/push  "F - test-skip-until-close-paren/precondition"/imm32
+    68/push  0/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # skip-until-close-paren(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  skip-until-close-paren/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(line->read, 5, msg)
+    # . . push args
+    68/push  "F - test-skip-until-close-paren"/imm32
+    68/push  5/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-until-close-paren-ignores-spaces:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-input-stream, "*(a b)/yz")
+    # . . push args
+    68/push  "*(a b)/yz"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # precondition: line->read == 0
+    # . . push args
+    68/push  "F - test-skip-until-close-paren-ignores-spaces/precondition"/imm32
+    68/push  0/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # skip-until-close-paren(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  skip-until-close-paren/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(line->read, 5, msg)
+    # . . push args
+    68/push  "F - test-skip-until-close-paren-ignores-spaces"/imm32
+    68/push  5/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-until-close-paren-works-from-mid-stream:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . write(_test-input-stream, "0 *(a b)/yz")
+    # . . push args
+    68/push  "0 *(a b)/yz"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # precondition: _test-input-stream->read == 2
+    b8/copy-to-eax  _test-input-stream/imm32
+    c7          0/subop/copy        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         2/imm32           # copy to *(eax+4)
+    # skip-until-close-paren(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  skip-until-close-paren/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(_test-input-stream->read, 7, msg)
+    # . . push args
+    68/push  "F - test-skip-until-close-paren-works-from-mid-stream"/imm32
+    68/push  7/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+skip-until-close-paren-in-slice:  # curr: (addr byte), end: (addr byte) -> curr/eax: (addr byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    # ecx = curr
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # edx = end
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         2/r32/edx   0xc/disp8         .               # copy *(ebp+12) to edx
+    # var c/eax: byte = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # skip initial dquote
+    41/increment-ecx
+$skip-until-close-paren-in-slice:loop:
+    # if (curr >= end) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $skip-until-close-paren-in-slice:break/disp8
+    # c = *curr
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+$skip-until-close-paren-in-slice:check-close:
+    # if (c == ')') break
+    3d/compare-eax-and  0x29/imm32/close-paren
+    74/jump-if-=  $skip-until-close-paren-in-slice:break/disp8
+    # ++curr
+    41/increment-ecx
+    eb/jump  $skip-until-close-paren-in-slice:loop/disp8
+$skip-until-close-paren-in-slice:break:
+    # return curr
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to eax
+$skip-until-close-paren-in-slice:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-until-close-paren-in-slice:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "*(abc) def"
+    b8/copy-to-eax  "*(abc) def"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-until-close-paren-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-until-close-paren-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 5, msg)  # eax is at the ')'
+    # . . push args
+    68/push  "F - test-skip-until-close-paren-in-slice"/imm32
+    68/push  5/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-until-close-paren-in-slice-ignores-spaces:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "*(a b)/yz"
+    b8/copy-to-eax  "*(a b)/yz"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-until-close-paren-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-until-close-paren-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 4, msg)  # eax is at the ')'
+    # . . push args
+    68/push  "F - test-skip-until-close-paren-in-slice-ignores-spaces"/imm32
+    68/push  4/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-until-close-paren-in-slice-stops-at-end:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "*(abc"  # unbalanced dquote
+    b8/copy-to-eax  "*(abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = skip-until-close-paren-in-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  skip-until-close-paren-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(ecx-eax, 0, msg)  # skipped to end of slice
+    # . . push args
+    68/push  "F - test-skip-until-close-paren-in-slice-stops-at-end"/imm32
+    68/push  0/imm32
+    # . . push ecx-eax
+    29/subtract                     3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract eax from ecx
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/125write-stream-data.subx b/linux/125write-stream-data.subx
new file mode 100644
index 00000000..0cc8ba65
--- /dev/null
+++ b/linux/125write-stream-data.subx
@@ -0,0 +1,114 @@
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# write an entire stream's contents to a buffered-file
+# ways to do this:
+#   - construct a 'maximal slice' and pass it to write-slice-buffered
+#   - flush the buffered-file and pass the stream directly to its fd (disabling buffering)
+# we'll go with the first way for now
+write-stream-data:  # f: (addr buffered-file), s: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var slice/ecx: slice = {s->data, &s->data[s->write]}
+    # . push &s->data[s->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    50/push-eax
+    # . push s->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   0xc/disp8       .                 # copy esi+12 to eax
+    50/push-eax
+    # . ecx = esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write-slice-buffered(f, slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$write-stream-data:end:
+    # . restore locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-stream-data:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "abcd")
+    # . . push args
+    68/push  "abcd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-stream-data(_test-output-buffered-file, _test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the write happened as expected
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "abcd", msg)
+    # . . push args
+    68/push  "F - test-write-stream-data"/imm32
+    68/push  "abcd"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/126write-int-decimal.subx b/linux/126write-int-decimal.subx
new file mode 100644
index 00000000..678d8eec
--- /dev/null
+++ b/linux/126write-int-decimal.subx
@@ -0,0 +1,466 @@
+# Helper to print an int32 in decimal.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+write-int32-decimal:  # out: (addr stream byte), n: int
+    # works by generating characters from lowest to highest and pushing them
+    # to the stack, before popping them one by one into the stream
+    #
+    # pseudocode:
+    #   push sentinel
+    #   eax = abs(n)
+    #   while true
+    #     sign-extend eax into edx
+    #     eax, edx = eax/10, eax%10
+    #     edx += '0'
+    #     push edx
+    #     if (eax == 0) break
+    #   if n < 0
+    #     push '-'
+    #   w = out->write
+    #   curr = &out->data[out->write]
+    #   max = &out->data[out->size]
+    #   while true
+    #     pop into eax
+    #     if (eax == sentinel) break
+    #     if (curr >= max) abort
+    #     *curr = AL
+    #     ++curr
+    #     ++w
+    #   out->write = w
+    # (based on K&R itoa: https://en.wikibooks.org/wiki/C_Programming/stdlib.h/itoa)
+    # (this pseudocode contains registers because operations like division
+    # require specific registers in x86)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    57/push-edi
+    # const ten/ecx = 10
+    b9/copy-to-ecx  0xa/imm32
+    # push sentinel
+    68/push  0/imm32/sentinel
+    # var eax: int = abs(n)
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    3d/compare-eax-with  0/imm32
+    7d/jump-if->=  $write-int32-decimal:read-loop/disp8
+$write-int32-decimal:negative:
+    f7          3/subop/negate      3/mod/direct    0/rm32/eax    .           .             .           .           .               .                 # negate eax
+$write-int32-decimal:read-loop:
+    # eax, edx = eax / 10, eax % 10
+    99/sign-extend-eax-into-edx
+    f7          7/subop/idiv        3/mod/direct    1/rm32/ecx    .           .             .           .           .               .                 # divide edx:eax by ecx, storing quotient in eax and remainder in edx
+    # edx += '0'
+    81          0/subop/add         3/mod/direct    2/rm32/edx    .           .             .           .           .               0x30/imm32        # add to edx
+    # push edx
+    52/push-edx
+    # if (eax == 0) break
+    3d/compare-eax-and  0/imm32
+    7f/jump-if->  $write-int32-decimal:read-loop/disp8
+$write-int32-decimal:read-break:
+    # if (n < 0) push('-')
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       0/imm32           # compare *(ebp+12)
+    7d/jump-if->=  $write-int32-decimal:write/disp8
+$write-int32-decimal:push-negative:
+    68/push  0x2d/imm32/-
+$write-int32-decimal:write:
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # var w/edx: int = out->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy *edi to edx
+    # var curr/ecx: (addr byte) = &out->data[out->write]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  2/index/edx   .           1/r32/ecx   0xc/disp8       .                 # copy ebx+edx+12 to ecx
+    # var max/ebx: (addr byte) = &out->data[out->size]
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   8/disp8         .                 # copy *(edi+8) to ebx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  3/index/ebx   .           3/r32/ebx   0xc/disp8       .                 # copy edi+ebx+12 to ebx
+$write-int32-decimal:write-loop:
+    # pop into eax
+    58/pop-to-eax
+    # if (eax == sentinel) break
+    3d/compare-eax-and  0/imm32/sentinel
+    74/jump-if-=  $write-int32-decimal:write-break/disp8
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # compare ecx with ebx
+    73/jump-if-addr>=  $write-int32-decimal:abort/disp8
+$write-int32-decimal:write-char:
+    # *curr = AL
+    88/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy AL to byte at *ecx
+    # ++curr
+    41/increment-ecx
+    # ++w
+    42/increment-edx
+    eb/jump  $write-int32-decimal:write-loop/disp8
+$write-int32-decimal:write-break:
+    # out->write = w
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy edx to *edi
+$write-int32-decimal:end:
+    # . restore registers
+    5f/pop-to-edi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$write-int32-decimal:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "write-int32-decimal: out of space\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-write-int32-decimal:
+    # - check that a single-digit number converts correctly
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int32-decimal(_test-stream, 9)
+    # . . push args
+    68/push  9/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int32-decimal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "9", msg)
+    # . . push args
+    68/push  "F - test-write-int32-decimal"/imm32
+    68/push  "9"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-write-int32-decimal-zero:
+    # - check that 0 converts correctly
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int32-decimal(_test-stream, 0)
+    # . . push args
+    68/push  0/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int32-decimal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "0", msg)
+    # . . push args
+    68/push  "F - test-write-int32-decimal-zero"/imm32
+    68/push  "0"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-write-int32-decimal-multiple-digits:
+    # - check that a multi-digit number converts correctly
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int32-decimal(_test-stream, 10)
+    # . . push args
+    68/push  0xa/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int32-decimal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "10", msg)
+    # . . push args
+    68/push  "F - test-write-int32-decimal-multiple-digits"/imm32
+    68/push  "10"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-write-int32-decimal-negative:
+    # - check that a negative single-digit number converts correctly
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int32-decimal(_test-stream, -9)
+    # . . push args
+    68/push  -9/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int32-decimal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump _test-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-stream)
+#?     # . . push args
+#?     68/push  _test-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-stream, "-9", msg)
+    # . . push args
+    68/push  "F - test-write-int32-decimal-negative"/imm32
+    68/push  "-9"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-write-int32-decimal-negative-multiple-digits:
+    # - check that a multi-digit number converts correctly
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int32-decimal(_test-stream, -10)
+    # . . push args
+    68/push  -0xa/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int32-decimal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "-10", msg)
+    # . . push args
+    68/push  "F - test-write-int32-decimal-negative-multiple-digits"/imm32
+    68/push  "-10"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+is-decimal-digit?:  # c: grapheme -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # ecx = c
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # result = false
+    b8/copy-to-eax  0/imm32/false
+    # return false if c < '0'
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x30/imm32        # compare ecx
+    7c/jump-if-<  $is-decimal-digit?:end/disp8
+    # return (c <= '9')
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x39/imm32        # compare ecx
+    7f/jump-if->  $is-decimal-digit?:end/disp8
+$is-decimal-digit?:true:
+    b8/copy-to-eax  1/imm32/true
+$is-decimal-digit?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-decimal-digit-below-0:
+    # eax = is-decimal-digit?(0x2f)
+    # . . push args
+    68/push  0x2f/imm32
+    # . . call
+    e8/call  is-decimal-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-decimal-digit-below-0"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-is-decimal-digit-0-to-9:
+    # eax = is-decimal-digit?(0x30)
+    # . . push args
+    68/push  0x30/imm32
+    # . . call
+    e8/call  is-decimal-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-decimal-digit-at-0"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = is-decimal-digit?(0x39)
+    # . . push args
+    68/push  0x39/imm32
+    # . . call
+    e8/call  is-decimal-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-decimal-digit-at-9"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-is-decimal-digit-above-9:
+    # eax = is-decimal-digit?(0x3a)
+    # . . push args
+    68/push  0x3a/imm32
+    # . . call
+    e8/call  is-decimal-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-decimal-digit-above-9"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+to-decimal-digit:  # in: grapheme -> out/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # eax = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+$to-decimal-digit:check0:
+    # if (eax < '0') goto abort
+    3d/compare-eax-with  0x30/imm32/0
+    7c/jump-if-<  $to-decimal-digit:abort/disp8
+$to-decimal-digit:check1:
+    # if (eax > '9') goto abort
+    3d/compare-eax-with  0x39/imm32/f
+    7f/jump-if->  $to-decimal-digit:abort/disp8
+$to-decimal-digit:digit:
+    # return eax - '0'
+    2d/subtract-from-eax  0x30/imm32/0
+$to-decimal-digit:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$to-decimal-digit:abort:
+    # . write-buffered(stderr, error)
+    # . . push args
+    68/push  "to-decimal-digit: not a digit character: "/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-byte-buffered(stderr, %eax)
+    # . . push args
+    50/push-eax
+    68/push  Stderr/imm32
+    # . . call
+#?     e8/call  write-byte-buffered/disp32
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(stderr, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/127next-word.subx b/linux/127next-word.subx
new file mode 100644
index 00000000..5af326d4
--- /dev/null
+++ b/linux/127next-word.subx
@@ -0,0 +1,362 @@
+# Tokenize by whitespace.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# (re)compute the bounds of the next word in the line (surrounded by whitespace,
+# treating '#' comments as a single word)
+# return empty string on reaching end of file
+next-word:  # line: (addr stream byte), out: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # skip-chars-matching-whitespace(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-matching-whitespace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$next-word:check0:
+    # if (line->read >= line->write) clear out and return
+    # . eax = line->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy *(esi+4) to eax
+    # . if (eax < line->write) goto next check
+    3b/compare                      0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # compare eax with *esi
+    7c/jump-if-<  $next-word:check-for-comment/disp8
+    # . return out
+    c7          0/subop/copy        0/mod/direct    7/rm32/edi    .           .             .           .           .               0/imm32           # copy to *edi
+    c7          0/subop/copy        1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         0/imm32           # copy to *(edi+4)
+    eb/jump  $next-word:end/disp8
+$next-word:check-for-comment:
+    # out->start = &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to *edi
+    # if (line->data[line->read] == '#') out->end = &line->data[line->write]), skip rest of stream and return
+    # . eax = line->data[line->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # . compare
+    3d/compare-eax-and  0x23/imm32/pound
+    75/jump-if-!=  $next-word:regular-word/disp8
+$next-word:comment:
+    # . out->end = &line->data[line->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+    # . line->read = line->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(esi+4)
+    # . return
+    eb/jump  $next-word:end/disp8
+$next-word:regular-word:
+    # otherwise skip-chars-not-matching-whitespace(line)  # including trailing newline
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-not-matching-whitespace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # out->end = &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+$next-word:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-stream, "  ab")
+    # . . push args
+    68/push  "  ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word(_test-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->start - _test-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-stream, 14, msg)
+    # . . push args
+    68/push  "F - test-next-word: start"/imm32
+    68/push  0xe/imm32
+    # . . push slice->start - _test-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-stream->data, 4, msg)
+    # . check-ints-equal(slice->end - _test-stream, 16, msg)
+    # . . push args
+    68/push  "F - test-next-word: end"/imm32
+    68/push  0x10/imm32
+    # . . push slice->end - _test-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-returns-whole-comment:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-stream, "  # a")
+    # . . push args
+    68/push  "  # a"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word(_test-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->start - _test-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-stream, 14, msg)
+    # . . push args
+    68/push  "F - test-next-word-returns-whole-comment: start"/imm32
+    68/push  0xe/imm32
+    # . . push slice->start - _test-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-stream->data, 5, msg)
+    # . check-ints-equal(slice->end - _test-stream, 17, msg)
+    # . . push args
+    68/push  "F - test-next-word-returns-whole-comment: end"/imm32
+    68/push  0x11/imm32
+    # . . push slice->end - _test-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-returns-empty-string-on-eof:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write nothing to _test-stream
+    # next-word(_test-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->end - slice->start, 0, msg)
+    # . . push args
+    68/push  "F - test-next-word-returns-empty-string-on-eof"/imm32
+    68/push  0/imm32
+    # . . push slice->end - slice->start
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    2b/subtract                     0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract *ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-returns-empty-string-on-newline:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write some whitespace and a newline
+    # . . push args
+    68/push  "  \n"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word(_test-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->end - slice->start, 0, msg)
+    # . . push args
+    68/push  "F - test-next-word-returns-empty-string-on-newline"/imm32
+    68/push  0/imm32
+    # . . push slice->end - slice->start
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    2b/subtract                     0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract *ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# (re)compute the bounds of the next word in the line (separated by whitespace)
+# return empty string on reaching end of file
+next-raw-word:  # line: (addr stream byte), out: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # skip-chars-matching-whitespace(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-matching-whitespace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$next-raw-word:check0:
+    # if (line->read >= line->write) clear out and return
+    # . eax = line->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy *(esi+4) to eax
+    # . if (eax < line->write) goto next check
+    3b/compare                      0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # compare eax with *esi
+    7c/jump-if-<  $next-raw-word:word-exists/disp8
+    # . return out
+    c7          0/subop/copy        0/mod/direct    7/rm32/edi    .           .             .           .           .               0/imm32           # copy to *edi
+    c7          0/subop/copy        1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         0/imm32           # copy to *(edi+4)
+    eb/jump  $next-raw-word:end/disp8
+$next-raw-word:word-exists:
+    # out->start = &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to *edi
+    # skip-chars-not-matching-whitespace(line)  # including trailing newline
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-not-matching-whitespace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # out->end = &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+$next-raw-word:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/128subx-words.subx b/linux/128subx-words.subx
new file mode 100644
index 00000000..c3da70f0
--- /dev/null
+++ b/linux/128subx-words.subx
@@ -0,0 +1,623 @@
+# Helpers for parsing SubX words, with their rules for hex, labels and metadata.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+has-metadata?:  # word: (addr slice), s: (addr string) -> result/eax: boolean
+    # pseudocode:
+    #   var twig: &slice = next-token-from-slice(word->start, word->end, '/')  # skip name
+    #   curr = twig->end
+    #   while true
+    #     twig = next-token-from-slice(curr, word->end, '/')
+    #     if (twig.empty()) break
+    #     if (slice-equal?(twig, s)) return true
+    #     curr = twig->end
+    #   return false
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # esi = word
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var edx: (addr byte) = word->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   4/disp8         .                 # copy *(esi+4) to edx
+    # var twig/edi: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           4/r32/esp   .               .                 # copy esp to edi
+    # next-token-from-slice(word->start, word->end, '/', twig)
+    # . . push args
+    57/push-edi
+    68/push  0x2f/imm32/slash
+    52/push-edx
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$has-metadata?:loop:
+    # next-token-from-slice(curr, word->end, '/', twig)
+    # . . push args
+    57/push-edi
+    68/push  0x2f/imm32/slash
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         .                 # push *(edi+4)
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # if (slice-empty?(twig)) return false
+    # . eax = slice-empty?(twig)
+    # . . push args
+    57/push-edi
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) return false
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $has-metadata?:false/disp8
+    # if (slice-equal?(twig, s)) return true
+    # . eax = slice-equal?(twig, s)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    57/push-edi
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return true
+    3d/compare-eax-and  0/imm32/false
+    # eax already contains true
+    75/jump-if-!=  $has-metadata?:end/disp8
+    eb/jump  $has-metadata?:loop/disp8
+$has-metadata?:false:
+    b8/copy-to-eax  0/imm32/false
+$has-metadata?:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-has-metadata-true:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "ab/imm32"
+    b8/copy-to-eax  "ab/imm32"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var in/esi: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # eax = has-metadata?(esi, "imm32")
+    # . . push args
+    68/push  "imm32"/imm32
+    56/push-esi
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-has-metadata-true"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-has-metadata-false:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "ab/c"
+    b8/copy-to-eax  "ab/c"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var in/esi: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # eax = has-metadata?(esi, "d")
+    # . . push args
+    68/push  "d"/imm32
+    56/push-esi
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-has-metadata-false"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-has-metadata-ignore-name:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "a/b"
+    b8/copy-to-eax  "a/b"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var in/esi: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # eax = has-metadata?(esi, "a")
+    # . . push args
+    68/push  "a"/imm32
+    56/push-esi
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-has-metadata-ignore-name"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-has-metadata-multiple-true:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "a/b/c"
+    b8/copy-to-eax  "a/b/c"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var in/esi: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # eax = has-metadata?(esi, "c")
+    # . . push args
+    68/push  "c"/imm32
+    56/push-esi
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-has-metadata-multiple-true"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-has-metadata-multiple-false:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "a/b/c"
+    b8/copy-to-eax  "a/b/c"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var in/esi: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # eax = has-metadata?(esi, "d")
+    # . . push args
+    68/push  "d"/imm32
+    56/push-esi
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-has-metadata-multiple-false"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# conditions for 'valid' names that are not at risk of looking like hex numbers
+# keep in sync with the rules in labels.cc
+#: - if it starts with a digit, it's treated as a number. If it can't be
+#:   parsed as hex it will raise an error.
+#: - if it starts with '-' it's treated as a number.
+#: - if it starts with '0x' it's treated as a number. (redundant)
+#: - if it's two characters long, it can't be a name. Either it's a hex
+#:   byte, or it raises an error.
+is-valid-name?:  # in: (addr slice) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var start/ecx: (addr byte) = in->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+$is-valid-name?:check0:
+    # if (start >= in->end) return false
+    3b/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # compare ecx with *(esi+4)
+    73/jump-if-addr>=  $is-valid-name?:false/disp8
+$is-valid-name?:check1:
+    # var len/eax: int = in->end - start
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy *(esi+4) to eax
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    # if (eax == 2) return false
+    3d/compare-eax-and  2/imm32
+    74/jump-if-=  $is-valid-name?:false/disp8
+$is-valid-name?:check2:
+    # var c/eax: (addr byte) = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    # if (c == "-") return false
+    3d/compare-eax-and  2d/imm32/-
+    74/jump-if-=  $is-valid-name?:false/disp8
+$is-valid-name?:check3a:
+    # if (c < "0") return true
+    3d/compare-eax-with  30/imm32/0
+    7c/jump-if-<  $is-valid-name?:true/disp8
+$is-valid-name?:check3b:
+    # if (c > "9") return true
+    3d/compare-eax-with  39/imm32/9
+    7f/jump-if->  $is-valid-name?:true/disp8
+$is-valid-name?:false:
+    # return false
+    b8/copy-to-eax  0/imm32/false
+    eb/jump  $is-valid-name?:end/disp8
+$is-valid-name?:true:
+    # return true
+    b8/copy-to-eax  1/imm32/true
+$is-valid-name?:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-valid-name-digit-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "34"
+    b8/copy-to-eax  "34"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-valid-name?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-valid-name?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-valid-name-digit-prefix"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-valid-name-negative-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "-0x34"
+    b8/copy-to-eax  "-0x34"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-valid-name?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-valid-name?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-valid-name-negative-prefix"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-valid-name-0x-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "0x34"
+    b8/copy-to-eax  "0x34"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-valid-name?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-valid-name?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-valid-name-0x-prefix"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-valid-name-starts-with-pre-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "/03"
+    b8/copy-to-eax  "/03"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-valid-name?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-valid-name?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-valid-name-starts-with-pre-digit"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-valid-name-starts-with-post-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "q34"
+    b8/copy-to-eax  "q34"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-valid-name?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-valid-name?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-valid-name-starts-with-post-digit"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-valid-name-starts-with-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "0x34"
+    b8/copy-to-eax  "0x34"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = is-valid-name?(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-valid-name?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-valid-name-starts-with-digit"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+is-label?:  # word: (addr slice) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # ecx = word
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # var end/ecx: (addr byte) = word->end
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(ecx+4) to ecx
+    # return *(end - 1) == ':'
+    # . eax = *(end-1)
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/AL    -1/disp8         .                 # copy byte at *(ecx-1) to AL
+    # . return (eax == ':')
+    3d/compare-eax-and  0x3a/imm32/colon
+    b8/copy-to-eax  1/imm32/true
+    74/jump-if-=  $is-label?:end/disp8
+    b8/copy-to-eax  0/imm32/false
+$is-label?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-label?:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+$test-is-label?:true:
+    # (eax..ecx) = "AAA:"
+    b8/copy-to-eax  "AAA:"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # is-label?(slice/ecx)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-label?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-is-label?:true"/imm32
+    68/push  1/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-is-label?:false:
+    # (eax..ecx) = "AAA"
+    b8/copy-to-eax  "AAA"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # is-label?(slice/ecx)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-label?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-is-label?:false"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/129emit-hex.subx b/linux/129emit-hex.subx
new file mode 100644
index 00000000..d8869956
--- /dev/null
+++ b/linux/129emit-hex.subx
@@ -0,0 +1,241 @@
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# print 'n' in hex in 'width' bytes in lower-endian order, with a space after every byte
+emit-hex:  # out: (addr buffered-file), n: int, width: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    57/push-edi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # ebx = n
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   0xc/disp8       .                 # copy *(ebp+12) to ebx
+    # edx = width
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0x10/disp8      .                 # copy *(ebp+16) to edx
+    # var curr/ecx: int = 0
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+$emit-hex:loop:
+    # if (curr >= width) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    7d/jump-if->=  $emit-hex:end/disp8
+    # write-byte-hex-buffered(out, ebx)  # only BL used
+    # . . push args
+    53/push-ebx
+    57/push-edi
+    # . . call
+    e8/call  write-byte-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-byte-buffered(out, ' ')
+    # . . push args
+    68/push  0x20/imm32/space
+    57/push-edi
+    # . . call
+    e8/call  write-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # ebx = ebx >> 8
+    c1/shift    5/subop/logic-right 3/mod/direct    3/rm32/ebx    .           .             .           .           .               8/imm8            # shift ebx right by 8 bits, while padding zeroes
+$emit-hex:continue:
+    # ++curr
+    41/increment-ecx
+    eb/jump  $emit-hex:loop/disp8
+$emit-hex:end:
+    # . restore registers
+    5f/pop-to-edi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-hex-single-byte:
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-hex(_test-output-buffered-file, 0xab, 1)
+    # . . push args
+    68/push  1/imm32
+    68/push  0xab/imm32
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(*_test-output-stream->data, 'ab ', msg)
+    # . . push args
+    68/push  "F - test-emit-hex-single-byte"/imm32
+    68/push  0x206261/imm32
+    # . . push *_test-output-stream->data
+    b8/copy-to-eax  _test-output-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-emit-hex-multiple-byte:
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-hex(_test-output-buffered-file, 0x1234, 2)
+    # . . push args
+    68/push  2/imm32
+    68/push  0x1234/imm32
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "34 12 ", msg)
+    # . . push args
+    68/push  "F - test-emit-hex-multiple-byte/1"/imm32
+    68/push  "34 12 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-emit-hex-zero-pad:
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-hex(_test-output-buffered-file, 0xab, 2)
+    # . . push args
+    68/push  2/imm32
+    68/push  0xab/imm32
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check(_test-output-stream->data == 'ab 00 ')
+    # . . push args
+    68/push  "F - test-emit-hex-zero-pad/1"/imm32
+    68/push  "ab 00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-emit-hex-negative:
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-hex(_test-output-buffered-file, -1, 2)
+    # . . push args
+    68/push  2/imm32
+    68/push  -1/imm32
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream == "ff ff ")
+    # . . push args
+    68/push  "F - test-emit-hex-negative/1"/imm32
+    68/push  "ff ff "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/130emit.subx b/linux/130emit.subx
new file mode 100644
index 00000000..154b1bea
--- /dev/null
+++ b/linux/130emit.subx
@@ -0,0 +1,473 @@
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# If datum of 'word' is not a valid name, it must be a hex int. Parse and print
+# it in 'width' bytes of hex, least significant first.
+# Otherwise just print the entire word including metadata.
+# Always print a trailing space.
+emit:  # out: (addr buffered-file), word: (addr slice), width: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    57/push-edi
+    # esi = word
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var datum/edi: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           4/r32/esp   .               .                 # copy esp to edi
+    # datum = next-token-from-slice(word->start, word->end, '/')
+    # . . push args
+    57/push-edi
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # if (is-valid-name?(datum)) write-slice-buffered(out, word) and return
+    # . eax = is-valid-name?(name)
+    # . . push args
+    57/push-edi
+    # . . call
+    e8/call  is-valid-name?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false)
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit:hex-int/disp8
+$emit:name:
+    # . write-slice-buffered(out, word)
+    # . . push args
+    56/push-esi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . return
+    eb/jump  $emit:end/disp8
+    # otherwise emit-hex(out, parse-hex-int-from-slice(datum), width)
+    #   (Weird shit can happen here if the datum of 'word' isn't either a valid
+    #   name or a hex number. `emit` is mostly used by translate_subx, which
+    #   is currently designed to only receive legal SubX programs. We just
+    #   want to make sure that valid names aren't treated as (valid) hex
+    #   numbers.)
+$emit:hex-int:
+    # . var value/eax: int = parse-hex-int-from-slice(datum)
+    # . . push args
+    57/push-edi
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . emit-hex(out, value, width)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$emit:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-number:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "30"
+    b8/copy-to-eax  "30"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit(_test-output-buffered-file, slice, 1)
+    # . . push args
+    68/push  1/imm32
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "30 ", msg)
+    # . . push args
+    68/push  "F - test-emit-number/1"/imm32
+    68/push  "30 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-negative-number:
+    # test support for sign-extending negative numbers
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "-2"
+    b8/copy-to-eax  "-2"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit(_test-output-buffered-file, slice, 2)
+    # . . push args
+    68/push  2/imm32
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "fe ff ", msg)
+    # . . push args
+    68/push  "F - test-emit-number/1"/imm32
+    68/push  "fe ff "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-number-with-metadata:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "-2/foo"
+    b8/copy-to-eax  "-2/foo"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit(_test-output-buffered-file, slice, 2)
+    # . . push args
+    68/push  2/imm32
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # the '/foo' will have no impact on the output
+    # check-stream-equal(_test-output-stream, "fe ff ", msg)
+    # . . push args
+    68/push  "F - test-emit-number-with-metadata"/imm32
+    68/push  "fe ff "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-non-number:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "xyz"
+    b8/copy-to-eax  "xyz"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit(_test-output-buffered-file, slice, 2)
+    # . . push args
+    68/push  2/imm32
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "xyz", msg)
+    # . . push args
+    68/push  "F - test-emit-non-number"/imm32
+    68/push  "xyz "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-non-number-with-metadata:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "xyz/"
+    b8/copy-to-eax  "xyz/"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit(_test-output-buffered-file, slice, 2)
+    # . . push args
+    68/push  2/imm32
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "xyz/", msg)
+    # . . push args
+    68/push  "F - test-emit-non-number-with-metadata"/imm32
+    68/push  "xyz/ "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-non-number-with-all-hex-digits-and-metadata:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "abcd/xyz"
+    b8/copy-to-eax  "abcd/xyz"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit(_test-output-buffered-file, slice, 2)
+    # . . push args
+    68/push  2/imm32
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "abcd/xyz")
+    # . . push args
+    68/push  "F - test-emit-non-number-with-all-hex-digits"/imm32
+    68/push  "abcd/xyz "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/131table.subx b/linux/131table.subx
new file mode 100644
index 00000000..018e37ef
--- /dev/null
+++ b/linux/131table.subx
@@ -0,0 +1,2147 @@
+# A table is a stream of (key, value) rows.
+#
+# Each row consists of an 8-byte key -- a (handle array byte) -- and a variable-size value.
+#
+# Accessing the table performs a linear scan for a key string, and always
+# requires passing in the row size.
+#
+# Table primitives have the form <variant>(stream, <arg>, row-size, ...) -> address/eax
+#
+# The following table shows available options for <variant>:
+#   if not found:           | arg=string              arg=slice
+#   ------------------------+---------------------------------------------------
+#   abort                   | get                     get-slice
+#   insert key              | get-or-insert           get-or-insert-slice
+#                           | get-or-insert-handle
+#   stop                    | get-or-stop             get-slice-or-stop
+#   return null             | maybe-get               maybe-get-slice
+# Some variants may take extra args.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# if no row is found, abort
+get:  # table: (addr stream {(handle array byte), T}), key: (addr array byte), row-size: int, abort-message-prefix: (addr array byte) -> result/eax: (addr T)
+    # pseudocode:
+    #   curr = table->data
+    #   max = &table->data[table->write]
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if string-equal?(key, c)
+    #       return curr+8
+    #     curr += row-size
+    #   abort
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$get:search-loop:
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $get:abort/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (string-equal?(key, c)) return curr+8
+    # . eax = string-equal?(key, c)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $get:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $get:end/disp8
+$get:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # add *(ebp+16) to ecx
+    # loop
+    eb/jump  $get:search-loop/disp8
+$get:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$get:abort:
+    # . _write(2/stderr, abort-message-prefix)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  ": get: key not found: "/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . _write(2/stderr, key)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . _write(2/stderr, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-get:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # - setup: create a table with a couple of keys
+    # var table/ecx: (stream {(handle array byte), number} 24)  # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # insert(table, "code", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # insert(table, "data", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "data"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$test-get:check1:
+    # eax = get(table, "code", 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get:check2:
+    # eax = get(table, "data", 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    68/push  "data"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(eax - table->data, 20, msg)
+    # . check-ints-equal(eax - table, 32, msg)
+    # . . push args
+    68/push  "F - test-get/1"/imm32
+    68/push  0x20/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# if no row is found, abort
+get-slice:  # table: (addr stream {(handle array byte), T}), key: (addr slice), row-size: int, abort-message-prefix: (addr array byte) -> result/eax: (addr T)
+    # pseudocode:
+    #   curr = table->data
+    #   max = &table->data[table->write]
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if slice-equal?(key, c)
+    #       return curr+8
+    #     curr += row-size
+    #   abort
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$get-slice:search-loop:
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $get-slice:abort/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-equal?(key, c)) return curr+8
+    # . eax = slice-equal?(key, c)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $get-slice:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $get-slice:end/disp8
+$get-slice:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # add *(ebp+16) to ecx
+    # loop
+    eb/jump  $get-slice:search-loop/disp8
+$get-slice:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$get-slice:abort:
+    # . _write(2/stderr, abort-message-prefix)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  ": get-slice: key not found: "/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-slice-buffered(Stderr, key)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . _write(2/stderr, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-get-slice:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # - setup: create a table with a couple of keys
+    # var table/ecx: (stream {string, number} 24)  # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # insert(table, "code", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # insert(table, "data", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "data"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$test-get-slice:check1:
+    # (eax..edx) = "code"
+    b8/copy-to-eax  "code"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy *eax to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx   .           2/r32/edx   4/disp8         .                 # copy eax+edx+4 to edx
+    05/add-to-eax  4/imm32
+    # var slice/edx: slice = {eax, edx}
+    52/push-edx
+    50/push-eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # eax = get-slice(table, "code", 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)  # first row's value slot returned
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-slice/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-slice:check2:
+    # (eax..edx) = "data"
+    b8/copy-to-eax  "data"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy *eax to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx   .           2/r32/edx   4/disp8         .                 # copy eax+edx+4 to edx
+    05/add-to-eax  4/imm32
+    # var slice/edx: slice = {eax, edx}
+    52/push-edx
+    50/push-eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # eax = get-slice(table, "data" slice, 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(eax - table->data, 20, msg)
+    # . check-ints-equal(eax - table, 32, msg)
+    # . . push args
+    68/push  "F - test-get-slice/1"/imm32
+    68/push  0x20/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-slice:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# if no row is found, save 'key' to the next available row
+# if there are no rows free, abort
+# return the address of the value
+get-or-insert:  # table: (addr stream {(handle array byte), T}), key: (addr array byte), row-size: int, ad: (addr allocation-descriptor) -> result/eax: (addr T)
+    # pseudocode:
+    #   curr = table->data
+    #   max = &table->data[table->write]
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if string-equal?(key, c)
+    #       return curr+8
+    #     curr += row-size
+    #   if table->write >= table->size
+    #     abort
+    #   zero-out(max, row-size)
+    #   copy-array(ad, key, max)
+    #   table->write += row-size
+    #   return max+8
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$get-or-insert:search-loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $get-or-insert:not-found/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (string-equal?(key, c)) return curr+8
+    # . eax = string-equal?(key, c)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $get-or-insert:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $get-or-insert:end/disp8
+$get-or-insert:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # add *(ebp+16) to ecx
+    # loop
+    eb/jump  $get-or-insert:search-loop/disp8
+$get-or-insert:not-found:
+    # if (table->write >= table->size) abort
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    3b/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   8/disp8         .                 # compare ecx with *(esi+8)
+    73/jump-if-addr>=  $get-or-insert:abort/disp8
+    # zero-out(max, row-size)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    52/push-edx
+    # . . call
+    e8/call  zero-out/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # copy-array(ad, key, max)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # table->write += row-size
+    # . eax = row-size
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    # . table->write += eax
+    01/add                          0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # add eax to *esi
+    # return max+8
+    # . eax = max
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy edx to eax
+    # . eax += 8
+    05/add-to-eax  8/imm32
+$get-or-insert:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$get-or-insert:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "get-or-insert: table is full\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-get-or-insert:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var table/ecx: (stream {(handle array byte), number} 24)  # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+$test-get-or-insert:first-call:
+    # - start with an empty table, insert one key, verify that it was inserted
+    # eax = get-or-insert(table, "code", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)  # first row's value slot returned
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(table->write, row-size = 12, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/1"/imm32
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # var curr-addr/eax: (addr array byte) = lookup(table->data)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x10/disp8      .                 # push *(ecx+16)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0xc/disp8       .                 # push *(ecx+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "code", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/2"/imm32
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert:second-call:
+    # - insert the same key again, verify that it was reused
+    # eax = get-or-insert(table, "code", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/3"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # no new row inserted
+    # . check-ints-equal(table->write, row-size = 12, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/4"/imm32
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # curr-addr = lookup(table->data)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x10/disp8      .                 # push *(ecx+16)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0xc/disp8       .                 # push *(ecx+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "code", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/5"/imm32
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert:third-call:
+    # - insert a new key, verify that it was inserted
+    # eax = get-or-insert(table, "data", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "data"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # table gets a new row
+    # check-ints-equal(eax - table->data, 20, msg)  # second row's value slot returned
+    # . check-ints-equal(eax - table, 32, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/6"/imm32
+    68/push  0x20/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(table->write, 2 rows = 24, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/7"/imm32
+    68/push  0x18/imm32/two-rows
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # curr-addr = lookup(table->data+12)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x1c/disp8      .                 # push *(ecx+28)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x18/disp8      .                 # push *(ecx+24)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "data", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert/8"/imm32
+    68/push  "data"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# if no row is found, save 'key' to the next available row
+# if there are no rows free, abort
+# return the address of the value
+get-or-insert-handle:  # table: (addr stream {(handle array byte), T}), key: (handle array byte), row-size: int -> result/eax: (addr T)
+    # pseudocode:
+    #   var curr: (addr handle stream) = table->data
+    #   var max: (addr byte) = &table->data[table->write]
+    #   var k: (addr array byte) = lookup(key)
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if string-equal?(k, c)
+    #       return curr+8
+    #     curr += row-size
+    #   if table->write >= table->size
+    #     abort
+    #   *max = key
+    #   table->write += row-size
+    #   return max+8
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var k/ebx: (addr array byte) = lookup(key)
+    # . eax = lookup(key)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . ebx = eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$get-or-insert-handle:search-loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $get-or-insert-handle:not-found/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (string-equal?(k, c)) return curr+8
+    # . eax = string-equal?(k, c)
+    # . . push args
+    50/push-eax
+    53/push-ebx
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $get-or-insert-handle:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $get-or-insert-handle:end/disp8
+$get-or-insert-handle:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x14/disp8      .                 # add *(ebp+20) to ecx
+    # loop
+    eb/jump  $get-or-insert-handle:search-loop/disp8
+$get-or-insert-handle:not-found:
+    # if (table->write >= table->size) abort
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    3b/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   8/disp8         .                 # compare ecx with *(esi+8)
+    73/jump-if-addr>=  $get-or-insert-handle:abort/disp8
+    # table->write += row-size
+    # . eax = row-size
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x14/disp8      .                 # copy *(ebp+20) to eax
+    # . table->write += eax
+    01/add                          0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # add eax to *esi
+    # *max = key
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    89/copy                         0/mod/indirect  2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to *edx
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    89/copy                         1/mod/*+disp8   2/rm32/edx    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edx+4)
+    # return max+8
+    # . eax = max
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy edx to eax
+    # . eax += 8
+    05/add-to-eax  8/imm32
+$get-or-insert-handle:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$get-or-insert-handle:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "get-or-insert-handle: table is full\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-get-or-insert-handle:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var table/ecx: (stream {(handle array byte), number} 24)  # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var h/edx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+$test-get-or-insert-handle:first-call:
+    # - start with an empty table, insert one key, verify that it was inserted
+    # copy-array(Heap, "code", h)
+    # . . push args
+    52/push-edx
+    68/push  "code"/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = get-or-insert-handle(table, h, 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert-handle/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)  # first row's value slot returned
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(table->write, row-size = 12, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/1"/imm32
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # var curr-addr/eax: (addr array byte) = lookup(table->data)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x10/disp8      .                 # push *(ecx+16)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0xc/disp8       .                 # push *(ecx+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "code", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/2"/imm32
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert-handle:second-call:
+    # - insert the same key again, verify that it was reused
+    # copy-array(Heap, "code", h)
+    # . . push args
+    52/push-edx
+    68/push  "code"/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = get-or-insert-handle(table, h, 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert-handle/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/3"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # no new row inserted
+    # . check-ints-equal(table->write, row-size = 12, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/4"/imm32
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # curr-addr = lookup(table->data)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x10/disp8      .                 # push *(ecx+16)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0xc/disp8       .                 # push *(ecx+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "code", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/5"/imm32
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert-handle:third-call:
+    # - insert a new key, verify that it was inserted
+    # copy-array(Heap, "data", h)
+    # . . push args
+    52/push-edx
+    68/push  "data"/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = get-or-insert-handle(table, h, 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert-handle/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # table gets a new row
+    # check-ints-equal(eax - table->data, 20, msg)  # second row's value slot returned
+    # . check-ints-equal(eax - table, 32, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/6"/imm32
+    68/push  0x20/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(table->write, 2 rows = 24, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/7"/imm32
+    68/push  0x18/imm32/two-rows
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # curr-addr = lookup(table->data+12)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x1c/disp8      .                 # push *(ecx+28)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x18/disp8      .                 # push *(ecx+24)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "data", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-handle/8"/imm32
+    68/push  "data"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert-handle:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# if no row is found, save 'key' in the next available row
+# if there are no rows free, abort
+get-or-insert-slice:  # table: (addr stream {(handle array byte), T}), key: (addr slice), row-size: int, ad: (addr allocation-descriptor) -> result/eax: (addr T)
+    # pseudocode:
+    #   curr = table->data
+    #   max = &table->data[table->write]
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if slice-equal?(key, *curr)
+    #       return curr+8
+    #     curr += row-size
+    #   if table->write >= table->size
+    #     abort
+    #   zero-out(max, row-size)
+    #   slice-to-string(ad, key, max)
+    #   table->write += row-size
+    #   return max+8
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$get-or-insert-slice:search-loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $get-or-insert-slice:not-found/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-equal?(key, c)) return curr+4
+    # . eax = slice-equal?(key, c)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $get-or-insert-slice:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $get-or-insert-slice:end/disp8
+$get-or-insert-slice:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # add *(ebp+16) to ecx
+    # loop
+    eb/jump  $get-or-insert-slice:search-loop/disp8
+$get-or-insert-slice:not-found:
+    # result/eax = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # if (table->write >= table->size) abort
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    3b/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   8/disp8         .                 # compare ecx with *(esi+8)
+    7d/jump-if->=  $get-or-insert-slice:abort/disp8
+    # zero-out(max, row-size)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    52/push-edx
+    # . . call
+    e8/call  zero-out/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # slice-to-string(ad, key, max)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    # . . call
+    e8/call  slice-to-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # table->write += row-size
+    # . eax = row-size
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    # . table->write += eax
+    01/add                          0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # add eax to *esi
+    # return max+8
+    # . eax = max
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy edx to eax
+    # . eax += 8
+    05/add-to-eax  8/imm32
+$get-or-insert-slice:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$get-or-insert-slice:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "get-or-insert-slice: table is full\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-get-or-insert-slice:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var table/ecx: (stream {string, number} 24)  # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # (eax..edx) = "code"
+    b8/copy-to-eax  "code"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy *eax to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx   .           2/r32/edx   4/disp8         .                 # copy eax+edx+4 to edx
+    05/add-to-eax  4/imm32
+    # var slice/edx: slice = {eax, edx}
+    52/push-edx
+    50/push-eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+$test-get-or-insert-slice:first-call:
+    # - start with an empty table, insert one key, verify that it was inserted
+    # eax = get-or-insert-slice(table, "code" slice, 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)  # first row's value slot returned
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(table->write, row-size = 12, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/1"/imm32
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # var curr-addr/eax: (addr array byte) = lookup(table->data)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x10/disp8      .                 # push *(ecx+16)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0xc/disp8       .                 # push *(ecx+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "code", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/2"/imm32
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert-slice:second-call:
+    # - insert the same key again, verify that it was reused
+    # eax = get-or-insert-slice(table, "code" slice, 12 bytes/row)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/3"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # no new row inserted
+    # . check-ints-equal(table->write, row-size = 12, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/4"/imm32
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # curr-addr = lookup(table->data)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x10/disp8      .                 # push *(ecx+16)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0xc/disp8       .                 # push *(ecx+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "code", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/5"/imm32
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert-slice:third-call:
+    # - insert a new key, verify that it was inserted
+    # (eax..edx) = "data"
+    b8/copy-to-eax  "data"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy *eax to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx   .           2/r32/edx   4/disp8         .                 # copy eax+edx+4 to edx
+    05/add-to-eax  4/imm32
+    # var slice/edx: slice = {eax, edx}
+    52/push-edx
+    50/push-eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # eax = get-or-insert-slice(table, "data" slice, 12 bytes/row)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # table gets a new row
+    # check-ints-equal(eax - table->data, 20, msg)  # second row's value slot returned
+    # . check-ints-equal(eax - table, 32, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/6"/imm32
+    68/push  0x20/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(table->write, 2 rows = 24, msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/7"/imm32
+    68/push  0x18/imm32/two-rows
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # curr-addr = lookup(table->data+12)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x1c/disp8      .                 # push *(ecx+28)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x18/disp8      .                 # push *(ecx+24)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "data", msg)
+    # . . push args
+    68/push  "F - test-get-or-insert-slice/8"/imm32
+    68/push  "data"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-insert-slice:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# if no row is found, stop(ed)
+get-or-stop:  # table: (addr stream {(handle array byte), T}), key: (addr array byte), row-size: int,
+              # abort-message-prefix: (addr array byte), err: (addr buffered-file), ed: (addr exit-descriptor)
+              # -> result/eax: (addr T)
+    # pseudocode:
+    #   curr = table->data
+    #   max = &table->data[table->write]
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if string-equal?(key, c)
+    #       return curr+8
+    #     curr += row-size
+    #   write-buffered(err, msg)
+    #   stop(ed)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$get-or-stop:search-loop:
+    # if (curr >= max) stop(ed)
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $get-or-stop:stop/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (string-equal?(key, c)) return curr+8
+    # . eax = string-equal?(key, c)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $get-or-stop:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $get-or-stop:end/disp8
+$get-or-stop:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # add *(ebp+16) to ecx
+    # loop
+    eb/jump  $get-or-stop:search-loop/disp8
+$get-or-stop:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$get-or-stop:stop:
+    # . write-buffered(err, abort-message-prefix)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(err, error)
+    # . . push args
+    68/push  ": get-or-stop: key not found: "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(err, key)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(err, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x1c/disp8      .                 # push *(ebp+28)
+    # . . call
+    e8/call  stop/disp32
+    # never gets here
+$get-or-stop:terminus:
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+
+test-get-or-stop:
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var table/ecx: (stream {string, number} 24)  # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var ed/edx: exit-descriptor
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # size 'ed' for the calls to 'get-or-stop'
+    # . tailor-exit-descriptor(ed, 24)
+    # . . push args
+    68/push  0x18/imm32/nbytes-of-args-for-get-or-stop
+    52/push-edx
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # insert(table, "code", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$test-get-or-stop:success:
+    # eax = get-or-stop(table, "code", row-size=12, msg, _test-error-buffered-file, ed)
+    # . . push args
+    52/push-edx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  "foo"/imm32/abort-prefix
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-stop/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # add to esp
+$test-get-or-stop:success-assertion:
+    # check-ints-equal(eax - table->data, 8, msg)
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-or-stop/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-stop:failure:
+    # eax = get-or-stop(table, "data", row-size=12, msg, _test-error-buffered-file, ed)
+    # . . push args
+    52/push-edx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  "foo"/imm32/abort-prefix
+    68/push  0xc/imm32/row-size
+    68/push  "data"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-stop/disp32
+    # registers except esp may be clobbered at this point
+    # restore register args, discard others
+    59/pop-to-ecx
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    5a/pop-to-edx
+$test-get-or-stop:failure-assertion:
+    # check that get-or-stop tried to call stop(1)
+    # . check-ints-equal(ed->value, 2, msg)
+    # . . push args
+    68/push  "F - test-get-or-stop/1"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-or-stop:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x2c/imm32        # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+# if no row is found, stop(ed)
+get-slice-or-stop:  # table: (addr stream {(handle array byte), _}), key: (addr slice), row-size: int,
+                    # abort-message-prefix: (addr string), err: (addr buffered-file), ed: (addr exit-descriptor)
+                    # -> result/eax: (addr _)
+    # pseudocode:
+    #   curr = table->data
+    #   max = &table->data[table->write]
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if slice-equal?(key, c)
+    #       return curr+8
+    #     curr += row-size
+    #   write-buffered(err, msg)
+    #   stop(ed)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$get-slice-or-stop:search-loop:
+    # if (curr >= max) stop(ed)
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $get-slice-or-stop:stop/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-equal?(key, c)) return curr+4
+    # . eax = slice-equal?(key, c)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $get-slice-or-stop:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $get-slice-or-stop:end/disp8
+$get-slice-or-stop:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # add *(ebp+16) to ecx
+    # loop
+    eb/jump  $get-slice-or-stop:search-loop/disp8
+$get-slice-or-stop:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$get-slice-or-stop:stop:
+    # . write-buffered(err, abort-message-prefix)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(err, error)
+    # . . push args
+    68/push  ": get-slice-or-stop: key not found: "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-slice-buffered(err, key)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(err, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x1c/disp8      .                 # push *(ebp+28)
+    # . . call
+    e8/call  stop/disp32
+    # never gets here
+$get-slice-or-stop:terminus:
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+
+test-get-slice-or-stop:
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var table/ecx: (stream {string, number} 24)  # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var ed/edx: exit-descriptor
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # var slice/ebx: slice = "code"
+    # . (eax..ebx) = "code"
+    b8/copy-to-eax  "code"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # copy *eax to ebx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  3/index/ebx   .           3/r32/ebx   4/disp8         .                 # copy eax+ebx+4 to ebx
+    05/add-to-eax  4/imm32
+    # . ebx = {eax, ebx}
+    53/push-ebx
+    50/push-eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # size 'ed' for the calls to 'get-or-stop' (define no locals past this point)
+    # . tailor-exit-descriptor(ed, 24)
+    # . . push args
+    68/push  0x18/imm32/nbytes-of-args-for-get-or-stop
+    52/push-edx
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # insert(table, "code", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$test-get-slice-or-stop:success:
+    # eax = get-slice-or-stop(table, slice, row-size=12, msg, _test-error-buffered-file, ed)
+    # . . push args
+    52/push-edx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  "foo"/imm32/abort-prefix
+    68/push  0xc/imm32/row-size
+    53/push-ebx/slice
+    51/push-ecx
+    # . . call
+    e8/call  get-slice-or-stop/disp32
+    # registers except esp may be clobbered at this point
+    # restore register args, discard others
+    59/pop-to-ecx
+    5b/pop-to-ebx
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    5a/pop-to-edx
+$test-get-slice-or-stop:success-assertion:
+    # check-ints-equal(eax - table->data, 8, msg)  # first row's value slot returned
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-get-slice-or-stop/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-slice-or-stop:failure:
+    # slice = "segment2"
+    # . *ebx = "segment2"->data
+    b8/copy-to-eax  "segment2"/imm32
+    05/add-to-eax  4/imm32
+    89/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to *ebx
+    # . *(ebx+4) = "segment2"->data + len("segment2")
+    05/add-to-eax  8/imm32/strlen
+    89/copy                         1/mod/*+disp8   3/rm32/ebx    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(ebx+4)
+    # eax = get-slice-or-stop(table, slice, row-size=12, msg, _test-error-buffered-file, ed)
+    # . . push args
+    52/push-edx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  "foo"/imm32/abort-prefix
+    68/push  0xc/imm32/row-size
+    53/push-ebx/slice
+    51/push-ecx
+    # . . call
+    e8/call  get-slice-or-stop/disp32
+    # registers except esp may be clobbered at this point
+    # restore register args, discard others
+    59/pop-to-ecx
+    5b/pop-to-ebx
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    5a/pop-to-edx
+$test-get-slice-or-stop:failure-assertion:
+    # check that get-or-stop tried to call stop(1)
+    # . check-ints-equal(ed->value, 2, msg)
+    # . . push args
+    68/push  "F - test-get-or-stop/1"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-get-slice-or-stop:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x34/imm32        # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+# if no row is found, return null (0)
+maybe-get:  # table: (addr stream {(handle array byte), T}), key: (addr array byte), row-size: int -> result/eax: (addr T)
+    # pseudocode:
+    #   curr = table->data
+    #   max = &table->data[table->write]
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if string-equal?(key, c)
+    #       return curr+8
+    #     curr += row-size
+    #   return 0
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$maybe-get:search-loop:
+    # if (curr >= max) return null
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $maybe-get:null/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (string-equal?(key, c)) return curr+4
+    # . eax = string-equal?(key, c)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $maybe-get:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $maybe-get:end/disp8
+$maybe-get:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # add *(ebp+16) to ecx
+    # loop
+    eb/jump  $maybe-get:search-loop/disp8
+$maybe-get:null:
+    b8/copy-to-eax  0/imm32
+$maybe-get:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-maybe-get:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # - setup: create a table with one row
+    # var table/ecx: (stream {string, number} 24)   # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = get-or-insert(table, "code", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$test-maybe-get:success:
+    # - check for the same key, verify that it was reused
+    # eax = maybe-get(table, "code", 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  maybe-get/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-maybe-get/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # no new row inserted
+    # . check-ints-equal(table->write, row-size = 12, msg)
+    # . . push args
+    68/push  "F - test-maybe-get/1"/imm32
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # var curr-addr/eax: (addr array byte) = lookup(table->data)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x10/disp8      .                 # push *(ecx+16)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0xc/disp8       .                 # push *(ecx+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "code", msg)
+    # . . push args
+    68/push  "F - test-maybe-get/2"/imm32
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-maybe-get:failure:
+    # - search for a new key
+    # eax = maybe-get(table, "data", 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    68/push  "data"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  maybe-get/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-maybe-get/3"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-maybe-get:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# if no row is found, return null (0)
+maybe-get-slice:  # table: (addr stream {(handle array byte), T}), key: (addr slice), row-size: int -> result/eax: (addr T)
+    # pseudocode:
+    #   curr = table->data
+    #   max = &table->data[table->write]
+    #   while curr < max
+    #     var c: (addr array byte) = lookup(*curr)
+    #     if slice-equal?(key, c)
+    #       return curr+8
+    #     curr += row-size
+    #   return 0
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var curr/ecx: (addr handle array byte) = table->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   0xc/disp8       .                 # copy esi+12 to ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    8d/copy-address                 0/mod/indirect  4/rm32/sib    1/base/ecx  2/index/edx   .           2/r32/edx   .               .                 # copy ecx+edx to edx
+$maybe-get-slice:search-loop:
+    # if (curr >= max) return null
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $maybe-get-slice:null/disp8
+    # var c/eax: (addr array byte) = lookup(*curr)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-equal?(key, c)) return curr+4
+    # . eax = slice-equal?(key, c)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return eax = curr+8
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $maybe-get-slice:mismatch/disp8
+    8d/copy-address                 1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   8/disp8         .                 # copy ecx+8 to eax
+    eb/jump  $maybe-get-slice:end/disp8
+$maybe-get-slice:mismatch:
+    # curr += row-size
+    03/add                          1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8      .                 # add *(ebp+16) to ecx
+    # loop
+    eb/jump  $maybe-get-slice:search-loop/disp8
+$maybe-get-slice:null:
+    b8/copy-to-eax  0/imm32
+$maybe-get-slice:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-maybe-get-slice:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # - setup: create a table with one row
+    # var table/ecx: (stream {string, number} 24)   # 2 rows * 12 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # insert(table, "code", 12 bytes/row, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    68/push  "code"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  get-or-insert/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$test-maybe-get-slice:success:
+    # - check for the same key, verify that it was reused
+    # (eax..edx) = "code"
+    b8/copy-to-eax  "code"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy *eax to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx   .           2/r32/edx   4/disp8         .                 # copy eax+edx+4 to edx
+    05/add-to-eax  4/imm32
+    # var slice/edx: slice = {eax, edx}
+    52/push-edx
+    50/push-eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # eax = maybe-get-slice(table, "code" slice, 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  maybe-get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(eax - table->data, 8, msg)
+    # . check-ints-equal(eax - table, 20, msg)
+    # . . push args
+    68/push  "F - test-maybe-get-slice/0"/imm32
+    68/push  0x14/imm32
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # no new row inserted
+    # . check-ints-equal(table->write, row-size = 12, msg)
+    # . . push args
+    68/push  "F - test-maybe-get-slice/1"/imm32
+    68/push  0xc/imm32/row-size
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # var curr-addr/eax: (addr array byte) = lookup(table->data)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0x10/disp8      .                 # push *(ecx+16)
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           0xc/disp8       .                 # push *(ecx+12)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-strings-equal(curr-addr, "code", msg)
+    # . . push args
+    68/push  "F - test-maybe-get-slice/2"/imm32
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-strings-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-maybe-get-slice:failure:
+    # - search for a new key
+    # (eax..edx) = "data"
+    b8/copy-to-eax  "data"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           2/r32/edx   .               .                 # copy *eax to edx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  2/index/edx   .           2/r32/edx   4/disp8         .                 # copy eax+edx+4 to edx
+    05/add-to-eax  4/imm32
+    # var slice/edx: slice = {eax, edx}
+    52/push-edx
+    50/push-eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # eax = maybe-get-slice(table, "data" slice, 12 bytes/row)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  maybe-get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-maybe-get-slice/3"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-maybe-get-slice:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/132slurp.subx b/linux/132slurp.subx
new file mode 100644
index 00000000..ed590fa0
--- /dev/null
+++ b/linux/132slurp.subx
@@ -0,0 +1,158 @@
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# read all bytes from 'f' and store them into 's'
+# abort if 's' is too small
+slurp:  # f: (addr buffered-file), s: (addr stream byte)
+    # pseudocode:
+    #   while true
+    #     if (s->write >= s->size) abort
+    #     if (f->read >= f->write) populate stream from file
+    #     if (f->write == 0) break
+    #     AL = f->data[f->read]
+    #     s->data[s->write] = AL
+    #     ++f->read
+    #     ++s->write
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # esi = f
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = f->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(esi+8) to ecx
+    # edi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # edx = s->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy *edi to edx
+$slurp:loop:
+    # if (s->write >= s->size) abort
+    3b/compare                      1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   8/disp8         .                 # compare edx with *(edi+8)
+    7d/jump-if->=  $slurp:abort/disp8
+    # if (f->read >= f->write) populate stream from file
+    3b/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # compare ecx with *(esi+4)
+    7c/jump-if-<  $slurp:from-stream/disp8
+    # . clear-stream(stream = f+4)
+    # . . push args
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy esi+4 to eax
+    50/push-eax
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . f->read must now be 0; update its cache at ecx
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+    # . eax = read(f->fd, stream = f+4)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  read/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (f->write == 0) break
+    # since f->read was initially 0, eax is the same as f->write
+    # . if (eax == 0) return true
+    3d/compare-eax-and  0/imm32
+    74/jump-if-=  $slurp:end/disp8
+$slurp:from-stream:
+    # var c/eax: byte = f->data[f->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0x10/disp8      .                 # copy byte at *(esi+ecx+16) to AL
+    # s->data[s->write] = c
+    88/copy-byte                    1/mod/*+disp8   4/rm32/sib    7/base/edi  2/index/edx   .           0/r32/AL    0xc/disp8       .                 # copy AL to *(edi+edx+12)
+    # ++f->read
+    41/increment-ecx
+    # ++s->write
+    42/increment-edx
+    eb/jump  $slurp:loop/disp8
+$slurp:end:
+    # save f->read
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   8/disp8         .                 # copy ecx to *(esi+8)
+    # save s->write
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           2/r32/edx   .               .                 # copy edx to *edi
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$slurp:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "slurp: destination too small\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-slurp:
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write(_test-stream, "ab\ncd")
+    # . . push args
+    68/push  "ab\ncd"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # read a line from _test-stream (buffered by _test-buffered-file) into _test-tmp-stream
+    # . eax = slurp(_test-buffered-file, _test-tmp-stream)
+    # . . push args
+    68/push  _test-tmp-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  slurp/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-tmp-stream, "ab\ncd", msg)
+    # . . push args
+    68/push  "F - test-slurp"/imm32
+    68/push  "ab\ncd"/imm32
+    68/push  _test-tmp-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/133subx-widths.subx b/linux/133subx-widths.subx
new file mode 100644
index 00000000..6d8ce8de
--- /dev/null
+++ b/linux/133subx-widths.subx
@@ -0,0 +1,243 @@
+# Helpers to compute widths of SubX arguments based on their metadata.
+#   /imm8 => 1 byte,
+#   /disp32 => 4 bytes,
+#   and so on.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+compute-width:  # word: (addr array byte) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # eax = word
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to ecx
+    # var ecx: (addr byte) = &word[word->size]
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    # eax = word->data
+    05/add-to-eax  4/imm32
+    # var in/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # return compute-width-of-slice(ecx)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  compute-width-of-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$compute-width:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+compute-width-of-slice:  # s: (addr slice) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # ecx = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # if (has-metadata?(word, "imm32")) return 4
+    # . eax = has-metadata?(word, "imm32")
+    # . . push args
+    68/push  "imm32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return 4
+    3d/compare-eax-and  0/imm32/false
+    b8/copy-to-eax  4/imm32         # ZF is set, so we can overwrite eax now
+    75/jump-if-!=  $compute-width-of-slice:end/disp8
+    # if (has-metadata?(word, "disp32")) return 4
+    # . eax = has-metadata?(word, "disp32")
+    # . . push args
+    68/push  "disp32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return 4
+    3d/compare-eax-and  0/imm32/false
+    b8/copy-to-eax  4/imm32         # ZF is set, so we can overwrite eax now
+    75/jump-if-!=  $compute-width-of-slice:end/disp8
+    # if (has-metadata?(word, "imm16")) return 2
+    # . eax = has-metadata?(word, "imm16")
+    # . . push args
+    68/push  "imm16"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return 2
+    3d/compare-eax-and  0/imm32/false
+    b8/copy-to-eax  2/imm32         # ZF is set, so we can overwrite eax now
+    75/jump-if-!=  $compute-width-of-slice:end/disp8
+    # if (has-metadata?(word, "disp16")) return 2
+    # . eax = has-metadata?(word, "disp16")
+    # . . push args
+    68/push  "disp16"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return 2
+    3d/compare-eax-and  0/imm32/false
+    b8/copy-to-eax  2/imm32         # ZF is set, so we can overwrite eax now
+    75/jump-if-!=  $compute-width-of-slice:end/disp8
+    # otherwise return 1
+    b8/copy-to-eax  1/imm32
+$compute-width-of-slice:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-width:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+$test-compute-width:imm8:
+    # eax = compute-width("0x2/imm8")
+    # . . push args
+    68/push  "0x2/imm8"/imm32
+    # . . call
+    e8/call  compute-width/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compute-width: 0x2/imm8"/imm32
+    50/push-eax
+    68/push  1/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-compute-width:imm16:
+    # eax = compute-width("4/imm16")
+    # . . push args
+    68/push  "4/imm16"/imm32
+    # . . call
+    e8/call  compute-width/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 2, msg)
+    # . . push args
+    68/push  "F - test-compute-width: 4/imm16"/imm32
+    50/push-eax
+    68/push  2/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-compute-width:imm32:
+    # eax = compute-width("4/imm32")
+    # . . push args
+    68/push  "4/imm32"/imm32
+    # . . call
+    e8/call  compute-width/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 4, msg)
+    # . . push args
+    68/push  "F - test-compute-width: 4/imm32"/imm32
+    50/push-eax
+    68/push  4/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-compute-width:disp8:
+    # eax = compute-width("foo/disp8")
+    # . . push args
+    68/push  "foo/disp8"/imm32
+    # . . call
+    e8/call  compute-width/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compute-width: foo/disp8"/imm32
+    50/push-eax
+    68/push  1/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-compute-width:disp16:
+    # eax = compute-width("foo/disp16")
+    # . . push args
+    68/push  "foo/disp16"/imm32
+    # . . call
+    e8/call  compute-width/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 2, msg)
+    # . . push args
+    68/push  "F - test-compute-width: foo/disp16"/imm32
+    50/push-eax
+    68/push  2/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-compute-width:disp32:
+    # eax = compute-width("foo/disp32")
+    # . . push args
+    68/push  "foo/disp32"/imm32
+    # . . call
+    e8/call  compute-width/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 4, msg)
+    # . . push args
+    68/push  "F - test-compute-width: foo/disp32"/imm32
+    50/push-eax
+    68/push  4/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-compute-width:no-metadata:
+    # eax = compute-width("45")
+    # . . push args
+    68/push  "45"/imm32
+    # . . call
+    e8/call  compute-width/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compute-width: 45 (no metadata)"/imm32
+    50/push-eax
+    68/push  1/imm32
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/134emit-hex-array.subx b/linux/134emit-hex-array.subx
new file mode 100644
index 00000000..c3f74cd6
--- /dev/null
+++ b/linux/134emit-hex-array.subx
@@ -0,0 +1,140 @@
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# print 'arr' in hex with a space after every byte
+emit-hex-array:  # out: (addr buffered-file), arr: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    57/push-edi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # edx = arr
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+    # var curr/ecx: (addr byte) = arr->data
+    8d/copy-address                 1/mod/*+disp8   2/rm32/edx    .           .             .           1/r32/ecx   4/disp8         .                 # copy edx+4 to ecx
+    # var max/edx: (addr byte) = &arr->data[arr->size]
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           2/r32/edx   .               .                 # copy *edx to edx
+    01/add                          3/mod/direct    2/rm32/edx    .           .             .           1/r32/ecx   .               .                 # add ecx to edx
+    # var c/eax: byte = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+$emit-hex-array:loop:
+    # if (curr >= width) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $emit-hex-array:end/disp8
+    # emit-hex(out, c = *curr, width=1)
+    # . . push args
+    68/push  1/imm32/width
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    50/push-eax
+    57/push-edi
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # ++curr
+    41/increment-ecx
+    eb/jump  $emit-hex-array:loop/disp8
+$emit-hex-array:end:
+    # . restore registers
+    5f/pop-to-edi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-hex-array:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var arr/ecx (array byte) = [01, 02, 03]
+    68/push  0x00030201/imm32  # bytes 01 02 03
+    68/push  3/imm32/size
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-hex-array(_test-output-buffered-file, arr)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-hex-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # check-next-stream-line-equal(_test-output-stream, "01 02 03 ", msg)
+    # . . push args
+    68/push  "F - test-emit-hex-array"/imm32
+    68/push  "01 02 03 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/135next-word-or-string.subx b/linux/135next-word-or-string.subx
new file mode 100644
index 00000000..31456e18
--- /dev/null
+++ b/linux/135next-word-or-string.subx
@@ -0,0 +1,416 @@
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+# (re)compute the bounds of the next word or string literal in the line
+# return empty string on reaching end of file
+next-word-or-string:  # line: (addr stream byte), out: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # skip-chars-matching(line, ' ')
+    # . . push args
+    68/push  0x20/imm32/space
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$next-word-or-string:check0:
+    # if (line->read >= line->write) clear out and return
+    # . eax = line->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy *(esi+4) to eax
+    # . if (eax < line->write) goto next check
+    3b/compare                      0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # compare eax with *esi
+    7c/jump-if-<  $next-word-or-string:check-for-comment/disp8
+    # . return out
+    c7          0/subop/copy        0/mod/direct    7/rm32/edi    .           .             .           .           .               0/imm32           # copy to *edi
+    c7          0/subop/copy        1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         0/imm32           # copy to *(edi+4)
+    eb/jump  $next-word-or-string:end/disp8
+$next-word-or-string:check-for-comment:
+    # out->start = &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to *edi
+    # if (line->data[line->read] != '#') goto next check
+    # . eax = line->data[line->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # . compare
+    3d/compare-eax-and  0x23/imm32/pound
+    75/jump-if-!=  $next-word-or-string:check-for-string-literal/disp8
+$next-word-or-string:comment:
+    # out->end = &line->data[line->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+    # line->read = line->write  # skip rest of line
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(esi+4)
+    # return
+    eb/jump  $next-word-or-string:end/disp8
+$next-word-or-string:check-for-string-literal:
+    # if (line->data[line->read] != '"') goto next check
+    # . eax = line->data[line->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # . compare
+    3d/compare-eax-and  0x22/imm32/dquote
+    75/jump-if-!=  $next-word-or-string:regular-word/disp8
+$next-word-or-string:string-literal:
+    # skip-string(line)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  skip-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # fall through
+$next-word-or-string:regular-word:
+    # skip-chars-not-matching-whitespace(line)  # including trailing newline
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-not-matching-whitespace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # out->end = &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+$next-word-or-string:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-string:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, "  ab")
+    # . . push args
+    68/push  "  ab"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-string(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-input-stream->read, 4, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string/updates-stream-read-correctly"/imm32
+    68/push  4/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 14, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string: start"/imm32
+    68/push  0xe/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 4, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 16, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string: end"/imm32
+    68/push  0x10/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-string-returns-whole-comment:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, "  # a")
+    # . . push args
+    68/push  "  # a"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-string(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-input-stream->read, 5, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string-returns-whole-comment/updates-stream-read-correctly"/imm32
+    68/push  5/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 14, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string-returns-whole-comment: start"/imm32
+    68/push  0xe/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 5, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 17, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string-returns-whole-comment: end"/imm32
+    68/push  0x11/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-string-returns-empty-slice-on-eof:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write nothing to _test-input-stream
+    # next-word-or-string(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->end - slice->start, 0, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string-returns-empty-string-on-eof"/imm32
+    68/push  0/imm32
+    # . . push slice->end - slice->start
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    2b/subtract                     0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract *ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-string-returns-string-literal:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, " \"a b\"/imm32 ")
+    # . . push args
+    68/push  " \"a b\"/imm32 "/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-string(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string-returns-string-literal: start"/imm32
+    68/push  0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 12, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 24, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string-returns-string-literal: end"/imm32
+    68/push  0x18/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-string-returns-string-with-escapes:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, " \"a\\\"b\"/x")
+    # . . push args
+    68/push  " \"a\\\"b\"/x"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-string(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string-returns-string-with-escapes: start"/imm32
+    68/push  0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 9, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 21, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-string-returns-string-with-escapes: end"/imm32
+    68/push  0x15/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/200.txt b/linux/200.txt
new file mode 100644
index 00000000..5dd57840
--- /dev/null
+++ b/linux/200.txt
@@ -0,0 +1,5 @@
+Layers in the 2xx series are in bare SubX, without any syntax sugar. They are
+intended to be used by various syntax-sugar phases:
+  apps/sigils.subx
+  apps/calls.subx
+  apps/braces.subx
diff --git a/linux/201register-names.subx b/linux/201register-names.subx
new file mode 100644
index 00000000..3c18a803
--- /dev/null
+++ b/linux/201register-names.subx
@@ -0,0 +1,164 @@
+== data
+Registers:  # (addr stream {(handle array byte), int})
+  # a table is a stream
+  0x120/imm32/write
+  0/imm32/read
+  0x120/imm32/length
+  # data
+  # it is perfectly ok to use fake alloc-ids -- as long as you never try to reclaim them
+  0x11/imm32/alloc-id $Register-eax/imm32 0/imm32
+  0x11/imm32/alloc-id $Register-ecx/imm32 1/imm32
+  0x11/imm32/alloc-id $Register-edx/imm32 2/imm32
+  0x11/imm32/alloc-id $Register-ebx/imm32 3/imm32
+  0x11/imm32/alloc-id $Register-esp/imm32 4/imm32
+  0x11/imm32/alloc-id $Register-ebp/imm32 5/imm32
+  0x11/imm32/alloc-id $Register-esi/imm32 6/imm32
+  0x11/imm32/alloc-id $Register-edi/imm32 7/imm32
+  # for 8-byte registers
+  # we don't actually check if these are used when they should be; be careful
+  0x11/imm32/alloc-id $Register-al/imm32 0/imm32
+  0x11/imm32/alloc-id $Register-cl/imm32 1/imm32
+  0x11/imm32/alloc-id $Register-dl/imm32 2/imm32
+  0x11/imm32/alloc-id $Register-bl/imm32 3/imm32
+  0x11/imm32/alloc-id $Register-ah/imm32 4/imm32
+  0x11/imm32/alloc-id $Register-ch/imm32 5/imm32
+  0x11/imm32/alloc-id $Register-dh/imm32 6/imm32
+  0x11/imm32/alloc-id $Register-bh/imm32 7/imm32
+  # for floating-point registers
+  # we don't actually check if these are used when they should be; be careful
+  0x11/imm32/alloc-id $Register-xmm0/imm32 0/imm32
+  0x11/imm32/alloc-id $Register-xmm1/imm32 1/imm32
+  0x11/imm32/alloc-id $Register-xmm2/imm32 2/imm32
+  0x11/imm32/alloc-id $Register-xmm3/imm32 3/imm32
+  0x11/imm32/alloc-id $Register-xmm4/imm32 4/imm32
+  0x11/imm32/alloc-id $Register-xmm5/imm32 5/imm32
+  0x11/imm32/alloc-id $Register-xmm6/imm32 6/imm32
+  0x11/imm32/alloc-id $Register-xmm7/imm32 7/imm32
+
+$Register-eax:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x61/a 0x78/x
+
+$Register-ecx:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x63/c 0x78/x
+
+$Register-edx:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x64/d 0x78/x
+
+$Register-ebx:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x62/b 0x78/x
+
+$Register-esp:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x73/s 0x70/p
+
+$Register-ebp:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x62/b 0x70/p
+
+$Register-esi:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x73/s 0x69/i
+
+$Register-edi:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x64/d 0x69/i
+
+$Register-al:
+  0x11/imm32/alloc-id
+  2/imm32/size
+  0x61/a 0x6c/l
+
+$Register-cl:
+  0x11/imm32/alloc-id
+  2/imm32/size
+  0x63/c 0x6c/l
+
+$Register-dl:
+  0x11/imm32/alloc-id
+  2/imm32/size
+  0x64/d 0x6c/l
+
+$Register-bl:
+  0x11/imm32/alloc-id
+  2/imm32/size
+  0x62/b 0x6c/l
+
+$Register-ah:
+  0x11/imm32/alloc-id
+  2/imm32/size
+  0x61/a 0x68/h
+
+$Register-ch:
+  0x11/imm32/alloc-id
+  2/imm32/size
+  0x63/c 0x68/h
+
+$Register-dh:
+  0x11/imm32/alloc-id
+  2/imm32/size
+  0x64/d 0x68/h
+
+$Register-bh:
+  0x11/imm32/alloc-id
+  2/imm32/size
+  0x62/b 0x68/h
+
+$Register-xmm0:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm0"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x30/0
+
+$Register-xmm1:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm1"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x31/1
+
+$Register-xmm2:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm2"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x32/2
+
+$Register-xmm3:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm3"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x33/3
+
+$Register-xmm4:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm4"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x34/4
+
+$Register-xmm5:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm5"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x35/5
+
+$Register-xmm6:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm6"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x36/6
+
+$Register-xmm7:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm7"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x37/7
diff --git a/linux/202write-int.subx b/linux/202write-int.subx
new file mode 100644
index 00000000..97e681c7
--- /dev/null
+++ b/linux/202write-int.subx
@@ -0,0 +1,121 @@
+# write-int: add (the binary representation of) a single int to a stream
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+write-int:  # out: (addr stream byte), n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    57/push-edi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # ecx = out->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy *edi to ecx
+    # if (out->write >= out->size) abort
+    3b/compare                      1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   8/disp8         .                 # compare ecx with *(edi+8)
+    7d/jump-if->=  $write-int:abort/disp8
+$write-int:to-stream:
+    # out->data[out->write] = n
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    89/copy                         1/mod/*+disp8   4/rm32/sib    7/base/edi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy eax to *(edi+ecx+12)
+    # out->write += 4
+    81          0/subop/add         0/mod/indirect  7/rm32/edi    .           .             .           .           .               4/imm32           # add to *edi
+$write-int:end:
+    # . restore registers
+    5f/pop-to-edi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$write-int:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "write-int: out of space\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-write-int-single:
+    # - check that write-int writes to first int of 'stream'
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int(_test-stream, "abcd")
+    # . . push args
+    68/push  0x64636261/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "abcd", msg)
+    # . . push args
+    68/push  "F - test-write-int-single"/imm32
+    68/push  "abcd"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+test-write-byte-buffered-multiple:
+    # - check that write-int correctly appends multiple writes
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-int(_test-stream, "abcd")
+    # . . push args
+    68/push  0x64636261/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-int(_test-stream, "efgh")
+    # . . push args
+    68/push  0x68676665/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-stream-equal(_test-stream, "abcdefgh", msg)
+    # . . push args
+    68/push  "F - test-write-byte-buffered-multiple"/imm32
+    68/push  "abcdefgh"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/203stack.subx b/linux/203stack.subx
new file mode 100644
index 00000000..965f7301
--- /dev/null
+++ b/linux/203stack.subx
@@ -0,0 +1,416 @@
+# A stack looks like this:
+#   top: int
+#   data: (array byte)  # prefixed by size as usual
+#
+# TODO: is it confusing that the push opcodes grow memory downward, but the
+# push function grows stacks upward?
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+clear-stack:  # s: (addr stack)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # eax = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # var max/ecx: (addr byte) = &s->data[s->size]
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(eax+4) to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   8/disp8         .                 # copy eax+ecx+8 to ecx
+    # s->top = 0
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # copy to *eax
+    # var curr/eax: (addr byte) = s->data
+    81          0/subop/add         3/mod/direct    0/rm32/eax    .           .             .           .           .               8/imm32           # add to eax
+$clear-stack:loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
+    73/jump-if-addr>=  $clear-stack:end/disp8
+    # *curr = 0
+    c6          0/subop/copy-byte   0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm8            # copy byte to *eax
+    # ++curr
+    40/increment-eax
+    eb/jump $clear-stack:loop/disp8
+$clear-stack:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-clear-stack:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var stack/ecx = stack of size 8 with random data in it
+    68/push 34/imm32
+    68/push 35/imm32
+    68/push 8/imm32/size
+    68/push 14/imm32/top
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # clear(stack)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stack/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # top should be 0
+    58/pop-to-eax
+    # . check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-clear-stack: top"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # size should remain 8
+    58/pop-to-eax
+    # . check-ints-equal(eax, 8, msg)
+    # . . push args
+    68/push  "F - test-clear-stack: size"/imm32
+    68/push  8/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # first word is 0
+    58/pop-to-eax
+    # . check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-clear-stack: data[0..3]"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # second word is 0
+    58/pop-to-eax
+    # . check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-clear-stack: data[4..7]"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# TODO: make this generic
+push:  # s: (addr stack), n: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # ecx = s->top
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    # if (s->top >= s->size) abort
+    39/compare                      1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # compare *(esi+4) and ecx
+    7e/jump-if-<=  $push:abort/disp8
+    # s->data[s->top] = n
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    89/copy                         1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   8/disp8         .                 # copy eax to *(esi+ecx+8)
+    # s->top += 4
+    81          0/subop/add         0/mod/direct    6/rm32/esi    .           .             .           .           .               4/imm32           # subtract from *esi
+$push:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$push:abort:
+    # print(stderr, "error: push: no space left")
+    # . write-buffered(Stderr, "error: push: no space left")
+    # . . push args
+    68/push  "error: push: no space left"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-push:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var stack/ecx = empty stack of size 8
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 8/imm32/size
+    68/push 0/imm32/top
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # push(stack, 0x42)
+    # . . push args
+    68/push  0x42/imm32
+    51/push-ecx
+    # . . call
+    e8/call  push/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check top
+    58/pop-to-eax
+    # . check-ints-equal(eax, 4, msg)
+    # . . push args
+    68/push  "F - test-push: top"/imm32
+    68/push  4/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check size
+    58/pop-to-eax
+    # . check-ints-equal(eax, 8, msg)
+    # . . push args
+    68/push  "F - test-push: size"/imm32
+    68/push  8/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # first word is 0x42
+    58/pop-to-eax
+    # . check-ints-equal(eax, 0x42, msg)
+    # . . push args
+    68/push  "F - test-push: data[0..3]"/imm32
+    68/push  0x42/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # second word is 0
+    58/pop-to-eax
+    # . check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-push: data[4..7]"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# TODO: make this generic
+pop:  # s: (addr stack) -> n/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # if (s->top <= 0) abort
+    81          7/subop/compare     0/mod/indirect  6/rm32/esi    .           .             .           .           .               0/imm32           # compare *esi
+    7e/jump-if-<=  $pop:abort/disp8
+    # s->top -= 4
+    81          5/subop/subtract    0/mod/direct    6/rm32/esi    .           .             .           .           .               4/imm32           # subtract from *esi
+    # eax = s->data[s->top]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   8/disp8         .                 # copy *(esi+ecx+8) to eax
+    # s->data[s->top] = 0
+    c7          0/subop/copy        1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   8/disp8         0/imm32           # copy to *(esi+ecx+8)
+$pop:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$pop:abort:
+    # print(stderr, "error: pop: nothing left in stack")
+    # . write-buffered(Stderr, "error: pop: nothing left in stack")
+    # . . push args
+    68/push  "error: pop: nothing left in stack"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-pop:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var stack/ecx = stack of size 8 containing just 0x42
+    68/push 0/imm32
+    68/push 0x42/imm32
+    68/push 8/imm32/size
+    68/push 4/imm32/top
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = pop(stack)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  pop/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0x42, msg)
+    # . . push args
+    68/push  "F - test-pop: result"/imm32
+    68/push  0x42/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check top
+    58/pop-to-eax
+    # . check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-pop: top"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check size
+    58/pop-to-eax
+    # . check-ints-equal(eax, 8, msg)
+    # . . push args
+    68/push  "F - test-pop: size"/imm32
+    68/push  8/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# TODO: make this generic
+top:  # s: (addr stack) -> n/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # esi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # if (s->top <= 0) abort
+    81          7/subop/compare     0/mod/indirect  6/rm32/esi    .           .             .           .           .               0/imm32           # compare *esi
+    7e/jump-if-<=  $top:abort/disp8
+    # n = s->data[s->top - 4]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    81          5/subop/subtract    3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # subtract from ecx
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   8/disp8         .                 # copy *(esi+ecx+8) to eax
+$top:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$top:abort:
+    # print(stderr, "error: top: nothing left in stack")
+    # . write-buffered(Stderr, "error: top: nothing left in stack")
+    # . . push args
+    68/push  "error: top: nothing left in stack"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-top:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var stack/ecx = stack of size 8 containing just 0x42
+    68/push  0/imm32
+    68/push  0x42/imm32
+    68/push  8/imm32/size
+    68/push  4/imm32/top
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = top(stack)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  top/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 42, msg")
+    # . . push args
+    68/push  "F - test-top: result"/imm32
+    68/push  0x42/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/300.txt b/linux/300.txt
new file mode 100644
index 00000000..62413330
--- /dev/null
+++ b/linux/300.txt
@@ -0,0 +1,16 @@
+Layers in the 3xx series use all the available syntax sugar for SubX programs.
+Functions here can be called from Mu programs if they meet certain criteria:
+
+  - There's a signature for them in 400.mu
+  - Inouts on the stack, outputs in registers
+  - Valid Mu types everywhere (Mu's type system isn't expressive enough for
+    everything SubX does in rare situations.)
+  - No way to for an `addr` to escape a function. No `(... addr ... addr ...)`
+    inouts, and no `(... addr ...)` outputs.
+
+While functions _can_ be called, not all SubX functions meeting these criteria
+_should_ be called. In particular, avoid exporting functions that could be
+misused. A classic example is trying to add a `size-of` operator. If you're
+doing that you're likely going to rely on programmers to use it correctly. Mu
+tries to be idiot-proof. Even if SubX requires greater care, using SubX
+primitives from Mu should not.
diff --git a/linux/301array-equal.subx b/linux/301array-equal.subx
new file mode 100644
index 00000000..7c6281e9
--- /dev/null
+++ b/linux/301array-equal.subx
@@ -0,0 +1,423 @@
+# Comparing arrays of numbers.
+
+== code
+
+array-equal?:  # a: (addr array int), b: (addr array int) -> result/eax: boolean
+    # pseudocode:
+    #   asize = a->size
+    #   if (asize != b->size) return false
+    #   i = 0
+    #   curra = a->data
+    #   currb = b->data
+    #   while i < asize
+    #     i1 = *curra
+    #     i2 = *currb
+    #     if (c1 != c2) return false
+    #     i+=4, curra+=4, currb+=4
+    #   return true
+    #
+    # registers:
+    #   i: ecx
+    #   asize: edx
+    #   curra: esi
+    #   currb: edi
+    #   i1: eax
+    #   i2: ebx
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = a
+    8b/-> *(ebp+8) 6/r32/esi
+    # edi = b
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # var asize/edx: int = a->size
+    8b/-> *esi 2/r32/edx
+$array-equal?:sizes:
+    # if (asize != b->size) return false
+    39/compare *edi 2/r32/edx
+    75/jump-if-!= $array-equal?:false/disp8
+    # var curra/esi: (addr byte) = a->data
+    81 0/subop/add %esi 4/imm32
+    # var currb/edi: (addr byte) = b->data
+    81 0/subop/add %edi 4/imm32
+    # var i/ecx: int = 0
+    31/xor-with %ecx 1/r32/ecx
+    # var vala/eax: int
+    # var valb/ebx: int
+$array-equal?:loop:
+    # if (i >= asize) return true
+    39/compare %ecx 2/r32/edx
+    7d/jump-if->= $array-equal?:true/disp8
+    # var vala/eax: int = *curra
+    8b/-> *esi 0/r32/eax
+    # var valb/ebx: int = *currb
+    8b/-> *edi 3/r32/ebx
+    # if (vala != valb) return false
+    39/compare %eax 3/r32/ebx
+    75/jump-if-!= $array-equal?:false/disp8
+    # i += 4
+    81 0/subop/add %ecx 4/imm32
+    # currs += 4
+    81 0/subop/add %esi 4/imm32
+    # currb += 4
+    81 0/subop/add %edi 4/imm32
+    eb/jump $array-equal?:loop/disp8
+$array-equal?:true:
+    b8/copy-to-eax 1/imm32
+    eb/jump $array-equal?:end/disp8
+$array-equal?:false:
+    b8/copy-to-eax 0/imm32
+$array-equal?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-empty-with-empty-array:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var ecx: (array _) = []
+    68/push 0/imm32/size
+    89/<- %ecx 4/r32/esp
+    # var edx: (array _) = []
+    68/push 0/imm32/size
+    89/<- %edx 4/r32/esp
+    #
+    (array-equal? %ecx %edx)  # => eax
+    (check-ints-equal %eax 1 "F - test-compare-empty-with-empty-array")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-empty-with-non-empty-array:  # also checks size-mismatch code path
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var ecx: (array int) = [1]
+    68/push 1/imm32
+    68/push 4/imm32/size
+    89/<- %ecx 4/r32/esp
+    # var edx: (array int) = []
+    68/push 0/imm32/size
+    89/<- %edx 4/r32/esp
+    #
+    (array-equal? %ecx %edx)  # => eax
+    (check-ints-equal %eax 0 "F - test-compare-empty-with-non-empty-array")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-equal-arrays:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var ecx: (array int) = [1, 2, 3]
+    68/push 3/imm32
+    68/push 2/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %ecx 4/r32/esp
+    # var edx: (array int) = [1, 2, 3]
+    68/push 3/imm32
+    68/push 2/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %edx 4/r32/esp
+    #
+    (array-equal? %ecx %edx)  # => eax
+    (check-ints-equal %eax 1 "F - test-compare-equal-arrays")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-inequal-arrays-equal-sizes:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var ecx: (array int) = [1, 4, 3]
+    68/push 3/imm32
+    68/push 4/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %ecx 4/r32/esp
+    # var edx: (array int) = [1, 2, 3]
+    68/push 3/imm32
+    68/push 2/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %edx 4/r32/esp
+    #
+    (array-equal? %ecx %edx)  # => eax
+    (check-ints-equal %eax 0 "F - test-compare-inequal-arrays-equal-sizes")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+_parse-array-of-ints:  # ad: (addr allocation-descriptor), s: (addr array byte), out: (addr handle array int)
+    # pseudocode
+    #   end = &s->data[s->size]
+    #   curr = s->data
+    #   size = 0
+    #   while true
+    #     if (curr >= end) break
+    #     curr = skip-chars-matching-in-slice(curr, end, ' ')
+    #     if (curr >= end) break
+    #     curr = skip-chars-not-matching-in-slice(curr, end, ' ')
+    #     ++size
+    #   allocate-array(ad, size*4, out)
+    #   var slice: slice = {s->data, 0}
+    #   curr = lookup(out)->data
+    #   while true
+    #     if (slice->start >= end) break
+    #     slice->start = skip-chars-matching-in-slice(slice->start, end, ' ')
+    #     if (slice->start >= end) break
+    #     slice->end = skip-chars-not-matching-in-slice(slice->start, end, ' ')
+    #     *curr = parse-hex-int-from-slice(slice)
+    #     curr += 4
+    #     slice->start = slice->end
+    #   return result
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = s
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var curr/ecx: (addr byte) = s->data
+    8d/copy-address *(esi+4) 1/r32/ecx
+    # var end/edx: (addr byte) = &s->data[s->size]
+    # . edx = s->size
+    8b/-> *esi 2/r32/edx
+    # . edx += curr
+    01/add-to %edx 1/r32/ecx
+    # var size/ebx: int = 0
+    31/xor-with %ebx 3/r32/ebx
+$_parse-array-of-ints:loop1:
+    # if (curr >= end) break
+    39/compare %ecx 2/r32/edx
+    73/jump-if-addr>= $_parse-array-of-ints:break1/disp8
+    # curr = skip-chars-matching-in-slice(curr, end, ' ')
+    (skip-chars-matching-in-slice %ecx %edx 0x20)  # => eax
+    89/<- %ecx 0/r32/eax
+    # if (curr >= end) break
+    39/compare %ecx 2/r32/edx
+    73/jump-if-addr>= $_parse-array-of-ints:break1/disp8
+    # curr = skip-chars-not-matching-in-slice(curr, end, ' ')
+    (skip-chars-not-matching-in-slice %ecx %edx 0x20)  # => eax
+    89/<- %ecx 0/r32/eax
+    # size += 4
+    81 0/subop/add %ebx 4/imm32
+    eb/jump $_parse-array-of-ints:loop1/disp8
+$_parse-array-of-ints:break1:
+    (allocate-array *(ebp+8) %ebx *(ebp+0x10))
+$_parse-array-of-ints:pass2:
+    # var slice/edi: slice = {s->data, 0}
+    68/push 0/imm32/end
+    8d/copy-address *(esi+4) 7/r32/edi
+    57/push-edi
+    89/<- %edi 4/r32/esp
+    # curr = lookup(out)->data
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    8d/copy-address *(eax+4) 1/r32/ecx
+$_parse-array-of-ints:loop2:
+    # if (slice->start >= end) break
+    39/compare *edi 2/r32/edx
+    73/jump-if-addr>= $_parse-array-of-ints:end/disp8
+    # slice->start = skip-chars-matching-in-slice(slice->start, end, ' ')
+    (skip-chars-matching-in-slice *edi %edx 0x20)  # => eax
+    89/<- *edi 0/r32/eax
+    # if (slice->start >= end) break
+    39/compare *edi 2/r32/edx
+    73/jump-if-addr>= $_parse-array-of-ints:end/disp8
+    # slice->end = skip-chars-not-matching-in-slice(slice->start, end, ' ')
+    (skip-chars-not-matching-in-slice *edi %edx 0x20)  # => eax
+    89/<- *(edi+4) 0/r32/eax
+    # *curr = parse-hex-int-from-slice(slice)
+    (parse-hex-int-from-slice %edi)
+    89/<- *ecx 0/r32/eax
+    # curr += 4
+    81 0/subop/add %ecx 4/imm32
+    # slice->start = slice->end
+    8b/-> *(edi+4) 0/r32/eax
+    89/<- *edi 0/r32/eax
+    eb/jump $_parse-array-of-ints:loop2/disp8
+$_parse-array-of-ints:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-array-of-ints:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var h/esi: (handle array int)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    # var ecx: (array int) = [1, 2, 3]
+    68/push 3/imm32
+    68/push 2/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %ecx 4/r32/esp
+    #
+    (_parse-array-of-ints Heap "1 2 3" %esi)
+    (lookup *esi *(esi+4))  # => eax
+    (array-equal? %ecx %eax)  # => eax
+    (check-ints-equal %eax 1 "F - test-parse-array-of-ints")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-array-of-ints-empty:
+    # - empty string = empty array
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var h/esi: handle
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    #
+    (_parse-array-of-ints Heap "" %esi)
+    (lookup *esi *(esi+4))  # => eax
+    (check-ints-equal *eax 0 "F - test-parse-array-of-ints-empty")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-array-of-ints-just-whitespace:
+    # - just whitespace = empty array
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var h/esi: handle
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    #
+    (_parse-array-of-ints Heap Space %esi)
+    (lookup *esi *(esi+4))  # => eax
+    (check-ints-equal *eax 0 "F - test-parse-array-of-ints-just-whitespace")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-array-of-ints-extra-whitespace:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var h/esi: handle
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    # var ecx: (array int) = [1, 2, 3]
+    68/push 3/imm32
+    68/push 2/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %ecx 4/r32/esp
+    #
+    (_parse-array-of-ints Heap " 1 2  3  " %esi)
+    (lookup *esi *(esi+4))  # => eax
+    (array-equal? %ecx %eax)  # => eax
+    (check-ints-equal %eax 1 "F - test-parse-array-of-ints-extra-whitespace")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-array-of-ints:  # s: (addr array byte), out: (addr handle array int)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (_parse-array-of-ints Heap *(ebp+8) *(ebp+0xc))
+$parse-array-of-ints:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# helper for later tests
+# compare an array with a string representation of an array literal
+check-array-equal:  # a: (addr array int), expected: (addr string), msg: (addr string)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # var h/esi: handle
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    # var b/eax: (addr array int) = parse-array-of-ints(Heap, expected)
+    (parse-array-of-ints *(ebp+0xc) %esi)
+    (lookup *esi *(esi+4))  # => eax
+    #
+    (array-equal? *(ebp+8) %eax)
+    (check-ints-equal %eax 1 *(ebp+0x10))
+$check-array-equal:end:
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-check-array-equal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var ecx: (array int) = [1, 2, 3]
+    68/push 3/imm32
+    68/push 2/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %ecx 4/r32/esp
+    #
+    (check-array-equal %ecx "1 2 3" "F - test-check-array-equal")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/302stack_allocate.subx b/linux/302stack_allocate.subx
new file mode 100644
index 00000000..cd51d5ff
--- /dev/null
+++ b/linux/302stack_allocate.subx
@@ -0,0 +1,61 @@
+# A function which pushes n zeros on the stack.
+# Really only intended to be called from code generated by mu.subx (for array
+# vars on the stack).
+
+== code
+
+#? Entry:
+#?     # . prologue
+#?     89/<- %ebp 4/r32/esp
+#?     #
+#?     68/push 0xfcfdfeff/imm32
+#?     b8/copy-to-eax 0x34353637/imm32
+#? $dump-stack0:
+#?     (push-n-zero-bytes 4)
+#?     68/push 0x20/imm32
+#? $dump-stack9:
+#?     b8/copy-to-eax 1/imm32/exit
+#?     cd/syscall 0x80/imm8
+
+# This is not a regular function, so it won't be idiomatic.
+# Registers must be properly restored.
+# Registers can be spilled, but that modifies the stack and needs to be
+# cleaned up.
+
+# Overhead:
+#   62 + n*6 instructions to push n bytes.
+# If we just emitted code to push n zeroes, it would be:
+#   5 bytes for 4 zero bytes, so 1.25 bytes per zero. And that's not even
+#   instructions.
+# But on the other hand it would destroy the instruction cache, where this
+# approach requires 15 instructions, fixed.
+
+# n must be positive
+push-n-zero-bytes:  # n: int
+$push-n-zero-bytes:prologue:
+    89/<- *Push-n-zero-bytes-ebp 5/r32/ebp  # spill ebp without affecting stack
+    89/<- %ebp 4/r32/esp
+$push-n-zero-bytes:copy-ra:
+    # -- esp = ebp
+    89/<- *Push-n-zero-bytes-eax 0/r32/eax
+    8b/-> *esp 0/r32/eax
+    2b/subtract *(ebp+4) 4/r32/esp
+    # -- esp+n = ebp
+    89/<- *esp 0/r32/eax
+    8b/-> *Push-n-zero-bytes-eax 0/r32/eax
+$push-n-zero-bytes:bulk-cleaning:
+    89/<- *Push-n-zero-bytes-esp 4/r32/esp
+    81 0/subop/add *Push-n-zero-bytes-esp 4/imm32
+    81 0/subop/add *(ebp+4) 4/imm32
+    (zero-out *Push-n-zero-bytes-esp *(ebp+4))  # n+4
+$push-n-zero-bytes:epilogue:
+    8b/-> *Push-n-zero-bytes-ebp 5/r32/ebp  # restore spill
+    c3/return
+
+== data
+Push-n-zero-bytes-ebp:  # (addr int)
+  0/imm32
+Push-n-zero-bytes-esp:  # (addr int)
+  0/imm32
+Push-n-zero-bytes-eax:
+  0/imm32
diff --git a/linux/303kernel-string.subx b/linux/303kernel-string.subx
new file mode 100644
index 00000000..13472cb0
--- /dev/null
+++ b/linux/303kernel-string.subx
@@ -0,0 +1,91 @@
+# We can't really do much with null-terminated kernel strings, and we don't
+# want to. Let's turn them into regular length-prefixed strings at the first
+# opportunity.
+
+== code
+
+kernel-string-to-string:  # ad: (addr allocation-descriptor), in: (addr kernel-string), out: (addr handle array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var len/ecx: int = length(in)
+    (kernel-string-length *(ebp+0xc))
+    89/<- %ecx 0/r32/eax
+    # result = allocate-array(ad, len)
+    (allocate-array *(ebp+8) %ecx *(ebp+0x10))
+    # var c/edx: byte = 0
+    ba/copy-to-edx 0/imm32
+    # var src/esi: (addr byte) = in
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var dest/edi: (addr byte) = result->data
+    8b/-> *(ebp+0x10) 7/r32/edi
+    (lookup *edi *(edi+4))  # => eax
+    8d/copy-address *(eax+4) 7/r32/edi
+    {
+$kernel-string-to-string:loop:
+      # c = *src
+      8a/byte-> *esi 2/r32/dl
+      # if (c == 0) break
+      81 7/subop/compare %edx 0/imm32
+      74/jump-if-= break/disp8
+      # *dest = c
+      88/byte<- *edi 2/r32/dl
+      # ++src
+      46/increment-esi
+      # ++dest
+      47/increment-edi
+      eb/jump loop/disp8
+    }
+$kernel-string-to-string:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+kernel-string-length:  # in: (addr kernel-string) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    # result = 0
+    b8/copy-to-eax 0/imm32
+    # var c/ecx: byte = 0
+    b9/copy-to-ecx 0/imm32
+    # var curr/edx: (addr byte) = in
+    8b/-> *(ebp+8) 2/r32/edx
+    {
+$kernel-string-length:loop:
+      # c = *curr
+      8a/byte-> *edx 1/r32/ecx
+      # if (c == 0) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # ++curr
+      42/increment-edx
+      # ++result
+      40/increment-eax
+      #
+      eb/jump loop/disp8
+    }
+$kernel-string-length:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/304screen.subx b/linux/304screen.subx
new file mode 100644
index 00000000..8a8df8f9
--- /dev/null
+++ b/linux/304screen.subx
@@ -0,0 +1,460 @@
+# Primitives for screen control.
+# Require Linux and a modern terminal.
+
+== code
+
+enable-screen-grid-mode:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (flush Stdout)
+    (flush Stderr)
+    # switch to second screen buffer
+    (write 1 Esc)
+    (write 1 "[?1049h")
+    #
+    (clear-real-screen)
+$enable-screen-grid-mode:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+enable-screen-type-mode:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # switch to first screen buffer
+    (write 1 Esc)
+    (write 1 "[?1049l")
+$enable-screen-type-mode:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+real-screen-size:  # -> nrows/eax: int, ncols/ecx: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    #
+    (_maybe-open-terminal)
+    # var window-size-info/esi: (addr winsize)
+    # winsize is a type from the Linux kernel. We don't care how large it is.
+    81 5/subop/subtract %esp 0x40/imm32
+    89/<- %esi 4/r32/esp
+    # ioctl(*Terminal-file-descriptor, TIOCGWINSZ, window-size-info)
+    89/<- %edx 6/r32/esi
+    b9/copy-to-ecx 0x5413/imm32/TIOCGWINSZ
+    8b/-> *Terminal-file-descriptor 3/r32/ebx
+    e8/call syscall_ioctl/disp32
+    # some bitworking to extract 2 16-bit shorts
+    8b/-> *esi 0/r32/eax
+    81 4/subop/and %eax 0xffff/imm32
+    8b/-> *esi 1/r32/ecx
+    c1/shift 5/subop/logical-right %ecx 0x10/imm8
+$real-screen-size:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x40/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+clear-real-screen:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 Esc)
+    (write 1 "[H")
+    (write 1 Esc)
+    (write 1 "[2J")
+$clear-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# row and col count from the top-left as (1, 1)
+move-cursor-on-real-screen:  # row: int, column: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var buf/ecx: (stream byte 32)
+    81 5/subop/subtract %esp 0x20/imm32
+    68/push 0x20/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %ecx 4/r32/esp
+    # construct directive in buf
+    (write %ecx Esc)
+    (write %ecx "[")
+    (write-int32-decimal %ecx *(ebp+8))
+    (write %ecx ";")
+    (write-int32-decimal %ecx *(ebp+0xc))
+    (write %ecx "H")
+    # flush
+    (write-stream 2 %ecx)
+$move-cursor-on-real-screen:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x2c/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+print-string-to-real-screen:  # s: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 *(ebp+8))
+$print-string-to-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+print-slice-to-real-screen:  # s: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write-slice-buffered Stdout *(ebp+8))
+    (flush Stdout)
+$print-slice-to-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+print-stream-to-real-screen:  # s: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write-stream-data Stdout *(ebp+8))
+    (flush Stdout)
+$print-stream-to-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# print a grapheme in utf-8 (only up to 4 bytes so far)
+print-grapheme-to-real-screen:  # c: grapheme
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # var curr/eax: byte = 0
+    b8/copy-to-eax 0/imm32
+    # curr = *(ebp+8)
+    8a/byte-> *(ebp+8) 0/r32/al
+    # if (curr == 0) return
+    3d/compare-eax-and 0/imm32
+    74/jump-if-= $print-grapheme-to-real-screen:end/disp8
+    #
+    (print-byte-to-real-screen %eax)
+    # curr = *(ebp+9)
+    8a/byte-> *(ebp+9) 0/r32/al
+    # if (curr == 0) return
+    3d/compare-eax-and 0/imm32
+    74/jump-if-= $print-grapheme-to-real-screen:end/disp8
+    #
+    (print-byte-to-real-screen %eax)
+    # curr = *(ebp+10)
+    8a/byte-> *(ebp+0xa) 0/r32/al
+    # if (curr == 0) return
+    3d/compare-eax-and 0/imm32
+    74/jump-if-= $print-grapheme-to-real-screen:end/disp8
+    #
+    (print-byte-to-real-screen %eax)
+    # curr = *(ebp+11)
+    8a/byte-> *(ebp+0xb) 0/r32/al
+    # if (curr == 0) return
+    3d/compare-eax-and 0/imm32
+    74/jump-if-= $print-grapheme-to-real-screen:end/disp8
+    #
+    (print-byte-to-real-screen %eax)
+$print-grapheme-to-real-screen:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+print-byte-to-real-screen:  # c: byte
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var s/ecx: (addr array byte)
+    ff 6/subop/push *(ebp+8)
+    68/push 1/imm32/size
+    89/<- %ecx 4/r32/esp
+    (write 1 %ecx)
+$print-byte-to-real-screen:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+print-int32-hex-to-real-screen:  # n: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write-int32-hex-buffered Stdout *(ebp+8))
+    (flush Stdout)
+$print-int32-hex-to-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+print-int32-hex-bits-to-real-screen:  # n: int, bits: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write-int32-hex-bits-buffered Stdout *(ebp+8) *(ebp+0xc) *(ebp+0x10))
+    (flush Stdout)
+$print-int32-hex-bits-to-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+print-int32-decimal-to-real-screen:  # n: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write-int32-decimal-buffered Stdout *(ebp+8))
+    (flush Stdout)
+$print-int32-decimal-to-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+write-int32-decimal-buffered:  # f: (addr buffered-file), n: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var ecx: (stream byte 16)
+    81 5/subop/subtract %esp 0x10/imm32
+    68/push 0x10/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %ecx 4/r32/esp
+    (write-int32-decimal %ecx *(ebp+0xc))
+    (write-stream-data *(ebp+8) %ecx)
+$write-int32-decimal-buffered:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x1c/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+reset-formatting-on-real-screen:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 Esc)
+    (write 1 "(B")
+    (write 1 Esc)
+    (write 1 "[m")
+$reset-formatting-on-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+start-color-on-real-screen:  # fg: int, bg: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var buf/ecx: (stream byte 32)
+    81 5/subop/subtract %esp 0x20/imm32
+    68/push 0x20/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %ecx 4/r32/esp
+    # construct directive in buf
+    # . set fg
+    (write %ecx Esc)
+    (write %ecx "[38;5;")
+    (write-int32-decimal %ecx *(ebp+8))
+    (write %ecx "m")
+    # . set bg
+    (write %ecx Esc)
+    (write %ecx "[48;5;")
+    (write-int32-decimal %ecx *(ebp+0xc))
+    (write %ecx "m")
+    # flush
+    (write-stream 2 %ecx)
+$start-color-on-real-screen:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x2c/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+start-bold-on-real-screen:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 Esc)
+    (write 1 "[1m")
+$start-bold-on-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+start-underline-on-real-screen:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 Esc)
+    (write 1 "[4m")
+$start-underline-on-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+start-reverse-video-on-real-screen:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 Esc)
+    (write 1 "[7m")
+$start-reverse-video-on-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# might require enabling blinking in your terminal program
+start-blinking-on-real-screen:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 Esc)
+    (write 1 "[5m")
+$start-blinking-on-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+hide-cursor-on-real-screen:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 Esc)
+    (write 1 "[?25l")
+$hide-cursor-on-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+show-cursor-on-real-screen:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write 1 Esc)
+    (write 1 "[?12l")
+    (write 1 Esc)
+    (write 1 "[?25h")
+$show-cursor-on-real-screen:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# This is a low-level detail; I don't think everything should be a file.
+#
+# Open "/dev/tty" if necessary and cache its file descriptor in Terminal-file-descriptor
+# where later primitives can use it.
+_maybe-open-terminal:
+    81 7/subop/compare *Terminal-file-descriptor -1/imm32
+    75/jump-if-!= $_maybe-open-terminal:epilogue/disp8
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    53/push-ebx
+    # open("/dev/tty", O_RDWR)
+    bb/copy-to-ebx Terminal-filename/imm32
+    b9/copy-to-ecx 2/imm32/O_RDWR
+    e8/call syscall_open/disp32
+    89/<- *Terminal-file-descriptor 0/r32/eax
+$_maybe-open-terminal:end:
+    # . restore registers
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    58/pop-to-eax
+$_maybe-open-terminal:epilogue:
+    c3/return
+
+== data
+
+Terminal-file-descriptor:  # (addr int)
+  -1/imm32
+
+Esc:  # (addr array byte)
+  # size
+  1/imm32
+  # data
+  0x1b
+
+Terminal-filename:  # (addr kernel-string)
+  # "/dev/tty"
+  2f/slash 64/d 65/e 76/v 2f/slash 74/t 74/t 79/y 0/nul
+  # on Linux console
+#?   # "/dev/console"
+#?   2f/slash 64/d 65/e 76/v 2f/slash 63/c 6f/o 6e/n 73/s 6f/o 6c/l 65/e 0/nul
diff --git a/linux/305keyboard.subx b/linux/305keyboard.subx
new file mode 100644
index 00000000..32159e49
--- /dev/null
+++ b/linux/305keyboard.subx
@@ -0,0 +1,219 @@
+# Primitives for keyboard control.
+# Require Linux and a modern terminal.
+
+== code
+
+enable-keyboard-immediate-mode:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    #
+    (_maybe-open-terminal)
+    # var terminal-info/esi: (addr termios)
+    # termios is a type from the Linux kernel. We don't care how large it is.
+    81 5/subop/subtract %esp 0x100/imm32
+    89/<- %esi 4/r32/esp
+    # ioctl(*Terminal-file-descriptor, TCGETS, terminal-info)
+    89/<- %edx 6/r32/esi
+    b9/copy-to-ecx 0x5401/imm32/TCGETS
+    8b/-> *Terminal-file-descriptor 3/r32/ebx
+    e8/call syscall_ioctl/disp32
+    # terminal-info->c_iflags &= Keyboard-immediate-mode-iflags
+#?     (write-buffered Stderr "iflags before: ")
+#?     (write-int32-hex-buffered Stderr *esi)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    8b/-> *esi 0/r32/eax  # Termios-c_iflag
+    23/and *Keyboard-immediate-mode-iflags 0/r32/eax
+    89/<- *esi 0/r32/eax  # Termios-c_iflag
+#?     (write-buffered Stderr "iflags after: ")
+#?     (write-int32-hex-buffered Stderr *esi)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    # terminal-info->c_lflags &= Keyboard-immediate-mode-lflags
+#?     (write-buffered Stderr "lflags before: ")
+#?     (write-int32-hex-buffered Stderr *(esi+0xc))
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    8b/-> *(esi+0xc) 0/r32/eax  # Termios-c_lflag
+    23/and *Keyboard-immediate-mode-lflags 0/r32/eax
+    89/<- *(esi+0xc) 0/r32/eax  # Termios-c_lflag
+#?     (write-buffered Stderr "lflags after: ")
+#?     (write-int32-hex-buffered Stderr *(esi+0xc))
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    # ioctl(*Terminal-file-descriptor, TCSETS, terminal-info)
+    89/<- %edx 6/r32/esi
+    b9/copy-to-ecx 0x5402/imm32/TCSETS
+    8b/-> *Terminal-file-descriptor 3/r32/ebx
+    e8/call syscall_ioctl/disp32
+$enable-keyboard-immediate-mode:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x100/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+enable-keyboard-type-mode:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    #
+    (_maybe-open-terminal)
+    # var terminal-info/esi: (addr termios)
+    # termios is a type from the Linux kernel. We don't care how large it is.
+    81 5/subop/subtract %esp 0x100/imm32
+    89/<- %esi 4/r32/esp
+    # ioctl(*Terminal-file-descriptor, TCGETS, terminal-info)
+    89/<- %edx 6/r32/esi
+    b9/copy-to-ecx 0x5401/imm32/TCGETS
+    8b/-> *Terminal-file-descriptor 3/r32/ebx
+    e8/call syscall_ioctl/disp32
+    # terminal-info->c_iflags |= Keyboard-type-mode-iflags
+    8b/-> *esi 0/r32/eax  # Termios-c_iflag
+    0b/or *Keyboard-type-mode-iflags 0/r32/eax
+    89/<- *esi 0/r32/eax  # Termios-c_iflag
+    # terminal-info->c_lflags |= Keyboard-type-mode-lflags
+    8b/-> *(esi+0xc) 0/r32/eax  # Termios-c_lflag
+    0b/or *Keyboard-type-mode-lflags 0/r32/eax
+    89/<- *(esi+0xc) 0/r32/eax  # Termios-c_lflag
+    # ioctl(*Terminal-file-descriptor, TCSETS, terminal-info)
+    89/<- %edx 6/r32/esi
+    b9/copy-to-ecx 0x5402/imm32/TCSETS
+    8b/-> *Terminal-file-descriptor 3/r32/ebx
+    e8/call syscall_ioctl/disp32
+$enable-keyboard-type-mode:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x100/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# read keys or escapes up to 4 bytes
+#
+# fun fact: terminal escapes and graphemes in utf-8 don't conflict!
+# - in graphemes all but the first/lowest byte will have a 1 in the MSB (be
+#   greater than 0x7f)
+# - in escapes every byte will have a 0 in the MSB
+# the two categories overlap only when the first/lowest byte is 0x1b or 'esc'
+#
+# Only use this in immediate mode; in type (typewriter) mode 4 bytes may get
+# parts of multiple keys.
+read-key-from-real-keyboard:  # -> result/eax: grapheme
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var buf/ecx: (stream byte 4)
+    68/push 0/imm32/data
+    68/push 4/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %ecx 4/r32/esp
+    #
+    (read 0 %ecx)  # => eax
+    8b/-> *(ecx+0xc) 0/r32/eax
+$read-key-from-real-keyboard:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x10/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# use this in type mode
+read-line-from-real-keyboard:  # out: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (read-line-buffered Stdin *(ebp+8))
+$read-line-from-real-keyboard:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+# iflags:   octal     hex
+#  IGNBRK  0000001   0x0001
+#  BRKINT  0000002   0x0002
+#  IGNPAR  0000004   0x0004
+#  PARMRK  0000010   0x0008
+#  INPCK   0000020   0x0010
+#  ISTRIP  0000040   0x0020
+#  INLCR   0000100   0x0040
+#  IGNCR   0000200   0x0080
+#  ICRNL   0000400   0x0100
+#  IUCLC   0001000   0x0200
+#  IXON    0002000   0x0400
+#  IXANY   0004000   0x0800
+#  IXOFF   0010000   0x1000
+#  IMAXBEL 0020000   0x2000
+#  IUTF8   0040000   0x4000
+
+# lflags:
+#  ISIG   0000001     0x0001
+#  ICANON 0000002     0x0002
+#  ECHO   0000010     0x0008
+#  ECHOE  0000020     0x0010
+#  ECHOK  0000040     0x0020
+#  ECHONL 0000100     0x0040
+#  NOFLSH 0000200     0x0080
+#  TOSTOP 0000400     0x0100
+#  IEXTEN 0100000     0x8000
+
+# recipe for raw mode according to the termios.3 manpage on Linux:
+#   termios_p->c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);
+#   termios_p->c_oflag &= ~OPOST;
+#   termios_p->c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
+#   termios_p->c_cflag &= ~(CSIZE | PARENB);
+#   termios_p->c_cflag |= CS8;
+
+Keyboard-immediate-mode-iflags:  # (addr tcflag_t)
+#?     0xfffffa14  # ~IGNBRK & ~BRKINT & ~PARMRK & ~ISTRIP & ~INLCR & ~IGNCR & ~ICRNL & ~IXON
+    0xffffffff/imm32
+
+Keyboard-immediate-mode-lflags:  # (addr tcflag_t)
+#?     0xffff7fb4/imm32  # ~ICANON & ~ISIG & ~IEXTEN & ~ECHO & ~ECHONL
+    0xffffffb5/imm32  # ~ICANON & ~ECHO & ~ECHONL
+
+Keyboard-type-mode-iflags:  # (addr tcflag_t)
+    0x00000000/imm32  # ~Keyboard-immediate-mode-iflags
+
+Keyboard-type-mode-lflags:  # (addr tcflag_t)
+    0x0000004a/imm32  # ~Keyboard-immediate-mode-lflags
diff --git a/linux/306files.subx b/linux/306files.subx
new file mode 100644
index 00000000..028c290a
--- /dev/null
+++ b/linux/306files.subx
@@ -0,0 +1,169 @@
+# Methods for constructing buffered-file objects.
+#
+# TODO: There are hard-coded parameters here for buffer sizes. When they
+# overflow, tracking down what's going on can get hairy.
+#
+# HACK: buffered-file stores naked addrs. This is safe because buffered-file
+# objects are opaque. But still sub-optimal; they'll be harder to reclaim when
+# we get around to that.
+
+== code
+
+open:  # filename: (addr array byte), write?: boolean, out: (addr handle buffered-file)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # var new-fd/ecx: fd
+    (open-fd *(ebp+8) *(ebp+0xc))  # => eax
+    89/<- %ecx 0/r32/eax
+    # if fd < 0 return
+    3d/compare-eax-with 0/imm32
+    7c/jump-if-< $open:end/disp8
+    # allocate a buffered-file
+    (allocate Heap 0x1010 *(ebp+0x10))  # file-buffer-size + 16 for other fields
+    # var out-addr/eax: (addr buffered-file)
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    # out-addr->size = 4KB
+    c7 0/subop/copy *(eax+0xc) 0x1000/imm32/file-buffer-size  # Stream-size + 4 for fd
+    # out-addr->fd = fd
+    89/<- *eax 1/r32/ecx
+$open:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+open-fd:  # filename: (addr array byte), write?: boolean -> result/eax: fd
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # ecx = filename
+    8b/-> *(ebp+8) 1/r32/ecx
+    # var size/edx: int = filename->length + 1 for the trailing null character
+    8b/-> *ecx 2/r32/edx
+    42/increment-edx
+    # var s/esi: (stream size)
+    29/subtract-from %esp 2/r32/edx
+    52/push-edx  # size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %esi 4/r32/esp
+    # copy filename and a final null character
+    (clear-stream %esi)
+    (write %esi %ecx)
+    # spill edx
+    52/push-edx
+    # var fd/eax: fd = open(filename)
+    8d/copy-address *(esi+0xc) 3/r32/ebx
+    8b/-> *(ebp+0xc) 1/r32/ecx/flags
+    ba/copy-to-edx 0x180/imm32/permissions
+    e8/call syscall_open/disp32
+    # restore edx
+    5a/pop-to-edx
+$open-fd:end:
+    # . reclaim locals
+    01/add-to %esp 2/r32/edx
+    81 0/subop/add %esp 0xc/imm32
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+populate-buffered-file-containing:  # contents: (addr array byte), out: (addr handle buffered-file)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = contents
+    8b/-> *(ebp+8) 6/r32/esi
+    # var n/ecx: int = len(contents)
+    8b/-> *esi 1/r32/ecx
+    # var stream/edi: (handle stream byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edi 4/r32/esp
+    # allocate stream
+    (new-stream Heap %ecx 1 %edi)
+    # var stream-addr/edi: (addr stream byte) = lookup(stream)
+    (lookup *edi *(edi+4))  # => eax
+    89/<- %edi 0/r32/eax
+    # write contents to stream
+    (write %edi %esi)
+    # allocate buffered-file
+    (allocate Heap 0x110 *(ebp+0xc))
+    # var out-addr/eax: (addr buffered-file)
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    # out-addr->size = 256 bytes
+    c7 0/subop/copy *(eax+0xc) 0x100/imm32/file-buffer-size
+    # out-addr->fd = stream
+    89/<- *eax 7/r32/edi
+$populate-buffered-file-containing:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+new-buffered-file:  # out: (addr handle buffered-file)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # var stream/ecx: (handle stream byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # allocate stream
+    (new-stream Heap 0x100 1 %ecx)
+    # var stream-addr/ecx: (addr stream byte) = lookup(stream)
+    (lookup *ecx *(ecx+4))  # => eax
+    89/<- %ecx 0/r32/eax
+    # allocate buffered-file
+    (allocate Heap 0x110 *(ebp+8))
+    # var out-addr/eax: (addr buffered-file)
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    # out-addr->size = 256 bytes
+    c7 0/subop/copy *(eax+0xc) 0x100/imm32/file-buffer-size
+    # out-addr->fd = stream
+    89/<- *eax 1/r32/ecx
+$new-buffered-file:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/307size.subx b/linux/307size.subx
new file mode 100644
index 00000000..9d2be695
--- /dev/null
+++ b/linux/307size.subx
@@ -0,0 +1,17 @@
+# Size of an array in bytes.
+
+== code
+
+size:  # in: (addr array _) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = in
+    8b/-> *(ebp+8) 0/r32/eax
+    #
+    8b/-> *eax 0/r32/eax
+$size:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/308allocate-array.subx b/linux/308allocate-array.subx
new file mode 100644
index 00000000..5cc0fe1b
--- /dev/null
+++ b/linux/308allocate-array.subx
@@ -0,0 +1,25 @@
+# 2-arg version of allocate-array.
+# Really only intended to be called from code generated by mu.subx.
+
+== code
+
+allocate-array2:  # ad: (addr allocation-descriptor), array-len: int, elem-size: int, out: (addr handle array _)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    52/push-edx
+    #
+    8b/-> *(ebp+0xc) 0/r32/eax
+    f7 4/subop/multiply-into-edx-eax *(ebp+0x10)
+    # TODO: check edx for overflow
+    (allocate-array *(ebp+8) %eax *(ebp+0x14))
+$allocate-array2:end:
+    # . restore registers
+    5a/pop-to-edx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/309stream.subx b/linux/309stream.subx
new file mode 100644
index 00000000..adc92cfd
--- /dev/null
+++ b/linux/309stream.subx
@@ -0,0 +1,214 @@
+# Some unsafe methods not intended to be used directly in SubX, only through
+# Mu after proper type-checking.
+
+== code
+
+stream-empty?:  # s: (addr stream _) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # result = false
+    b8/copy-to-eax 0/imm32/false
+    # esi = s
+    8b/-> *(ebp+8) 6/r32/esi
+    # return s->read >= s->write
+    8b/-> *esi 1/r32/ecx
+    39/compare-with *(esi+4) 1/r32/ecx
+    0f 9d/set-if->= %al
+$stream-empty?:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+stream-full?:  # s: (addr stream _) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # result = false
+    b8/copy-to-eax 0/imm32/false
+    # esi = s
+    8b/-> *(ebp+8) 6/r32/esi
+    # return s->write >= s->size
+    8b/-> *(esi+8) 1/r32/ecx
+    39/compare-with *esi 1/r32/ecx
+    0f 9d/set-if->= %al
+$stream-full?:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+write-to-stream:  # s: (addr stream _), in: (addr byte), n: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    57/push-edi
+    # edi = s
+    8b/-> *(ebp+8) 7/r32/edi
+    # var swrite/edx: int = s->write
+    8b/-> *edi 2/r32/edx
+    # if (swrite + n > s->size) abort
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    01/add-to %ecx 2/r32/edx
+    3b/compare 1/r32/ecx *(edi+8)
+    0f 8f/jump-if-> $write-to-stream:abort/disp32
+    # var out/edx: (addr byte) = s->data + s->write
+    8d/copy-address *(edi+edx+0xc) 2/r32/edx
+    # var outend/ebx: (addr byte) = out + n
+    8b/-> *(ebp+0x10) 3/r32/ebx
+    8d/copy-address *(edx+ebx) 3/r32/ebx
+    # eax = in
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # var inend/ecx: (addr byte) = in + n
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    8d/copy-address *(eax+ecx) 1/r32/ecx
+    #
+    (_append-4  %edx %ebx  %eax %ecx)  # => eax
+    # s->write += n
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    01/add-to *edi 1/r32/ecx
+$write-to-stream:end:
+    # . restore registers
+    5f/pop-to-edi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$write-to-stream:abort:
+    (write-buffered Stderr "write-to-stream: stream full\n")
+    (flush Stderr)
+    bb/copy-to-ebx 1/imm32
+    (syscall_exit)
+    # never gets here
+
+read-from-stream:  # s: (addr stream _), out: (addr byte), n: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = s
+    8b/-> *(ebp+8) 6/r32/esi
+    # var sread/edx: int = s->read
+    8b/-> *(esi+4) 2/r32/edx
+    # if (sread + n > s->write) abort
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    01/add-to %ecx 2/r32/edx
+    3b/compare 1/r32/ecx *esi
+    0f 8f/jump-if-> $read-from-stream:abort/disp32
+    # var in/edx: (addr byte) = s->data + s->read
+    8d/copy-address *(esi+edx+0xc) 2/r32/edx
+    # var inend/ebx: (addr byte) = in + n
+    8b/-> *(ebp+0x10) 3/r32/ebx
+    8d/copy-address *(edx+ebx) 3/r32/ebx
+    # eax = out
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # var outend/ecx: (addr byte) = out + n
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    8d/copy-address *(eax+ecx) 1/r32/ecx
+    #
+    (_append-4  %eax %ecx  %edx %ebx)  # => eax
+    # s->read += n
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    01/add-to *(esi+4) 1/r32/ecx
+$read-from-stream:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$read-from-stream:abort:
+    (write-buffered Stderr "read-from-stream: stream empty\n")
+    (flush Stderr)
+    bb/copy-to-ebx 1/imm32
+    (syscall_exit)
+    # never gets here
+
+stream-first:  # s: (addr stream byte) -> result/eax: byte
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # result = false
+    b8/copy-to-eax 0/imm32
+    # esi = s
+    8b/-> *(ebp+8) 6/r32/esi
+    # var idx/ecx: int = s->read
+    8b/-> *(esi+4) 1/r32/ecx
+    # if idx >= s->write return 0
+    3b/compare-with 1/r32/ecx *esi
+    7d/jump-if->= $stream-first:end/disp8
+    # result = s->data[idx]
+    8a/byte-> *(esi+ecx+0xc) 0/r32/AL
+$stream-first:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+stream-final:  # s: (addr stream byte) -> result/eax: byte
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # result = false
+    b8/copy-to-eax 0/imm32
+    # esi = s
+    8b/-> *(ebp+8) 6/r32/esi
+    # var max/ecx: int = s->write
+    8b/-> *esi 1/r32/ecx
+    # if s->read >= max return 0
+    39/compare-with *(esi+4) 1/r32/ecx
+    7d/jump-if->= $stream-final:end/disp8
+    # var idx/ecx: int = max - 1
+    49/decrement-ecx
+    # result = s->data[idx]
+    8a/byte-> *(esi+ecx+0xc) 0/r32/AL
+$stream-final:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/310copy-bytes.subx b/linux/310copy-bytes.subx
new file mode 100644
index 00000000..2586a53f
--- /dev/null
+++ b/linux/310copy-bytes.subx
@@ -0,0 +1,157 @@
+# Some helpers for copying non-overlapping regions of memory.
+# Really only intended to be called from code generated by mu.subx.
+
+== code
+
+copy-bytes:  # src: (addr byte), dest: (addr byte), size: int
+    # pseudocode:
+    #   curr-src/esi = src
+    #   curr-dest/edi = dest
+    #   i/ecx = 0
+    #   while true
+    #     if (i >= size) break
+    #     *curr-dest = *curr-src
+    #     ++curr-src
+    #     ++curr-dest
+    #     ++i
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # curr-src/esi = src
+    8b/-> *(ebp+8) 6/r32/esi
+    # curr-dest/edi = dest
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # var i/ecx: int = 0
+    b9/copy-to-ecx 0/imm32
+    # edx = size
+    8b/-> *(ebp+0x10) 2/r32/edx
+    {
+      # if (i >= size) break
+      39/compare %ecx 2/r32/edx
+      7d/jump-if->=  break/disp8
+      # *curr-dest = *curr-src
+      8a/byte-> *esi 0/r32/AL
+      88/byte<- *edi 0/r32/AL
+      # update
+      46/increment-esi
+      47/increment-edi
+      41/increment-ecx
+      eb/jump loop/disp8
+    }
+$copy-bytes:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+stream-to-array:  # in: (addr stream _), out: (addr handle array _)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = s
+    8b/-> *(ebp+8) 6/r32/esi
+    # var len/ecx: int = s->write - s->read
+    8b/-> *esi 1/r32/ecx
+    2b/subtract *(esi+4) 1/r32/ecx
+    # allocate
+    (allocate-array Heap %ecx *(ebp+0xc))
+    # var in/edx: (addr byte) = s->data + s->read
+    8b/-> *(esi+4) 2/r32/edx
+    8d/copy-address *(esi+edx+0xc) 2/r32/edx
+    # var dest/eax: (addr byte) = data for out
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    8d/copy-address *(eax+4) 0/r32/eax
+    #
+    (copy-bytes %edx %eax %ecx)
+$stream-to-array:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-stream-to-array:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "abc")
+    # skip something
+    (read-byte _test-input-stream)  # => eax
+    # var out/ecx: (handle array byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    #
+    (stream-to-array _test-input-stream %ecx)
+    (lookup *ecx *(ecx+4))  # => eax
+    (check-strings-equal %eax "bc")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# like stream-to-array but ignore surrounding quotes
+# we might do other stuff here later
+unquote-stream-to-array:  # in: (addr stream _), out: (addr handle array _)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = s
+    8b/-> *(ebp+8) 6/r32/esi
+    # var len/ecx: int = s->write - s->read - 2
+    8b/-> *esi 1/r32/ecx
+    2b/subtract *(esi+4) 1/r32/ecx
+    81 7/subop/compare %ecx 2/imm32
+    7c/jump-if-< $unquote-stream-to-array:end/disp8
+    81 5/subop/subtract %ecx 2/imm32
+    # allocate
+    (allocate-array Heap %ecx *(ebp+0xc))
+    # var in/edx: (addr byte) = s->data + s->read + 1
+    8b/-> *(esi+4) 2/r32/edx
+    8d/copy-address *(esi+edx+0xd) 2/r32/edx  # Stream-data + 1
+    # var dest/eax: (addr byte) = data for out
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    8d/copy-address *(eax+4) 0/r32/eax
+    #
+    (copy-bytes %edx %eax %ecx)
+$unquote-stream-to-array:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/311decimal-int.subx b/linux/311decimal-int.subx
new file mode 100644
index 00000000..badae601
--- /dev/null
+++ b/linux/311decimal-int.subx
@@ -0,0 +1,634 @@
+# Helpers for decimal ints.
+
+# if slice doesn't contain a decimal number, return 0
+parse-decimal-int-from-slice:  # in: (addr slice) -> out/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # ecx = in
+    8b/-> *(ebp+8) 1/r32/ecx
+    #
+    (parse-decimal-int-helper *ecx *(ecx+4))  # => eax
+$parse-decimal-int-from-slice:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# if slice doesn't contain a decimal number, return 0
+parse-decimal-int:  # in: (addr array byte) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    # eax = in
+    8b/-> *(ebp+8) 0/r32/eax
+    # var start/ecx: (addr byte) = &in->data
+    8d/copy-address *(eax+4) 1/r32/ecx
+    # var end/edx: (addr byte) = &in->data[in->size]
+    8b/-> *eax 2/r32/edx
+    8d/copy-address *(eax+edx+4) 2/r32/edx
+    #
+    (parse-decimal-int-helper %ecx %edx)  # => eax
+$parse-decimal-int:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-decimal-int-from-stream:  # in: (addr stream byte) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    # eax = in
+    8b/-> *(ebp+8) 0/r32/eax
+    # var start/ecx: (addr byte) = &in->data[in->read]
+    8b/-> *(eax+4) 1/r32/ecx
+    8d/copy-address *(eax+ecx+0xc) 1/r32/ecx
+    # var end/edx: (addr byte) = &in->data[in->write]
+    8b/-> *eax 2/r32/edx
+    8d/copy-address *(eax+edx+0xc) 2/r32/edx
+    # trim a trailing newline
+    {
+      # speculatively trim
+      4a/decrement-edx
+      # if it's a newline, break
+      8a/byte-> *edx 0/r32/eax
+      81 4/subop/and %eax 0xff/imm32
+      3d/compare-eax-and 0xa/imm32/newline
+      74/jump-if-= break/disp8
+      # not a newline, so restore it
+      42/increment-edx
+    }
+    #
+    (parse-decimal-int-helper %ecx %edx)  # => eax
+$parse-decimal-int-from-stream:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-decimal-int-helper:  # start: (addr byte), end: (addr byte) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var curr/esi: (addr byte) = start
+    8b/-> *(ebp+8) 6/r32/esi
+    # edi = end
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # var negate?/edx: boolean = false
+    ba/copy-to-edx 0/imm32/false
+    # if (*curr == '-') ++curr, negate = true
+    {
+$parse-decimal-int-helper:negative:
+      b8/copy-to-eax 0/imm32
+      8a/copy-byte *esi 0/r32/AL
+      3d/compare-eax-and 0x2d/imm32/-
+      75/jump-if-!= break/disp8
+      # . ++curr
+      46/increment-esi
+      # . negate = true
+      ba/copy-to-edx  1/imm32/true
+    }
+    # spill negate?
+    52/push-edx
+    # var result/eax: int = 0
+    b8/copy-to-eax 0/imm32
+    # var digit/ecx: int = 0
+    b9/copy-to-ecx 0/imm32
+    # const TEN/ebx: int = 10
+    bb/copy-to-ebx 0xa/imm32
+    {
+$parse-decimal-int-helper:loop:
+      # if (curr >= in->end) break
+      39/compare %esi 7/r32/edi
+      73/jump-if-addr>= break/disp8
+      # if !is-decimal-digit?(*curr) return 0
+      8a/copy-byte *esi 1/r32/CL
+      50/push-eax
+      (is-decimal-digit? %ecx)  # => eax
+      {
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+        58/pop-to-eax
+        b8/copy-to-eax 0/imm32
+        eb/jump $parse-decimal-int-helper:negate/disp8
+      }
+      58/pop-to-eax
+      # digit = from-decimal-char(*curr)
+      81 5/subop/subtract %ecx 0x30/imm32/zero
+      # TODO: error checking
+      # result = result * 10 + digit
+      ba/copy-to-edx 0/imm32
+      f7 4/subop/multiply-into-edx-eax %ebx
+      # TODO: check edx for overflow
+      01/add %eax 1/r32/ecx
+      # ++curr
+      46/increment-esi
+      #
+      eb/jump loop/disp8
+    }
+$parse-decimal-int-helper:negate:
+    # if (negate?) result = -result
+    5a/pop-to-edx
+    {
+      81 7/subop/compare %edx 0/imm32/false
+      74/jump-if-= break/disp8
+      f7 3/subop/negate %eax
+    }
+$parse-decimal-int-helper:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-decimal-int-from-slice-single-digit:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # (eax..ecx) = "3"
+    b8/copy-to-eax "3"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (parse-decimal-int-from-slice %ecx)  # => eax
+    (check-ints-equal %eax 3 "F - test-parse-decimal-int-from-slice-single-digit")
+$test-parse-decimal-int-helper-single-digit:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-decimal-int-from-slice-multi-digit:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # (eax..ecx) = "34"
+    b8/copy-to-eax "34"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (parse-decimal-int-from-slice %ecx)  # => eax
+    (check-ints-equal %eax 0x22 "F - test-parse-decimal-int-from-slice-multi-digit")  # 34 in hex
+$test-parse-decimal-int-helper-multi-digit:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-decimal-int-from-slice-zero:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # (eax..ecx) = "00"
+    b8/copy-to-eax "00"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (parse-decimal-int-from-slice %ecx)  # => eax
+    (check-ints-equal %eax 0 "F - test-parse-decimal-int-from-slice-zero")
+$test-parse-decimal-int-helper-zero:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-decimal-int-from-slice-negative:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # (eax..ecx) = "-3"
+    b8/copy-to-eax "-3"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (parse-decimal-int-from-slice %ecx)  # => eax
+    (check-ints-equal %eax -3 "F - test-parse-decimal-int-from-slice-negative")
+$test-parse-decimal-int-helper-negative:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-decimal-int-from-slice-multi-digit-negative:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # (eax..ecx) = "-32"
+    b8/copy-to-eax "-32"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (parse-decimal-int-from-slice %ecx)  # => eax
+    (check-ints-equal %eax -0x20 "F - test-parse-decimal-int-from-slice-multi-digit-negative")  # -32 in hex
+$test-parse-decimal-int-helper-multi-digit-negative:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+decimal-size:  # n: int -> result/eax: int
+    # pseudocode:
+    #   edi = 0
+    #   eax = n
+    #   if eax < 0
+    #     ++edi  # for '-'
+    #     negate eax
+    #   while true
+    #     edx = 0
+    #     eax, edx = eax/10, eax%10
+    #     ++edi
+    #     if (eax == 0) break
+    #   eax = edi
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    57/push-edi
+    # edi = 0
+    bf/copy-to-edi 0/imm32
+    # eax = n
+    8b/-> *(ebp+8) 0/r32/eax
+    # if (n < 0) negate n, increment edi
+    {
+      3d/compare-eax-with 0/imm32
+      7d/jump-if->= break/disp8
+      f7 3/subop/negate %eax
+      47/increment-edi
+    }
+    # const ten/ecx = 10
+    b9/copy-to-ecx  0xa/imm32
+    {
+      ba/copy-to-edx 0/imm32
+      f7 7/subop/idiv-edx-eax-by %ecx  # eax = edx:eax/10; edx = edx:eax%10
+      47/increment-edi
+      3d/compare-eax-and 0/imm32
+      75/jump-if-!= loop/disp8
+    }
+$decimal-size:end:
+    89/<- %eax 7/r32/edi
+    # . restore registers
+    5f/pop-to-edi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-decimal-size-of-zero:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (decimal-size 0)  # => eax
+    (check-ints-equal %eax 1 "F - test-decimal-size-of-zero")
+$test-decimal-size-of-zero:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-decimal-size-single-digit:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (decimal-size 4)  # => eax
+    (check-ints-equal %eax 1 "F - test-decimal-size-single-digit")
+$test-decimal-size-single-digit:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-decimal-size-multi-digit:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (decimal-size 0xa)  # => eax
+    (check-ints-equal %eax 2 "F - test-decimal-size-multi-digit")
+$test-decimal-size-multi-digit:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-decimal-size-single-digit-negative:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (decimal-size -4)  # => eax
+    (check-ints-equal %eax 2 "F - test-decimal-size-single-digit-negative")
+$test-decimal-size-single-digit-negative:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-decimal-size-multi-digit-negative:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (decimal-size -0xa)  # => eax
+    (check-ints-equal %eax 3 "F - test-decimal-size-multi-digit-negative")
+$test-decimal-size-multi-digit-negative:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+_parse-array-of-decimal-ints:  # ad: (addr allocation-descriptor), s: (addr array byte), out: (addr handle array int)
+    # pseudocode
+    #   end = &s->data[s->size]
+    #   curr = s->data
+    #   size = 0
+    #   while true
+    #     if (curr >= end) break
+    #     curr = skip-chars-matching-in-slice(curr, end, ' ')
+    #     if (curr >= end) break
+    #     curr = skip-chars-not-matching-in-slice(curr, end, ' ')
+    #     ++size
+    #   allocate-array(ad, size*4, out)
+    #   var slice: slice = {s->data, 0}
+    #   curr = lookup(out)->data
+    #   while true
+    #     if (slice->start >= end) break
+    #     slice->start = skip-chars-matching-in-slice(slice->start, end, ' ')
+    #     if (slice->start >= end) break
+    #     slice->end = skip-chars-not-matching-in-slice(slice->start, end, ' ')
+    #     *curr = parse-hex-int-from-slice(slice)
+    #     curr += 4
+    #     slice->start = slice->end
+    #   return result
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = s
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var curr/ecx: (addr byte) = s->data
+    8d/copy-address *(esi+4) 1/r32/ecx
+    # var end/edx: (addr byte) = &s->data[s->size]
+    # . edx = s->size
+    8b/-> *esi 2/r32/edx
+    # . edx += curr
+    01/add-to %edx 1/r32/ecx
+    # var size/ebx: int = 0
+    31/xor-with %ebx 3/r32/ebx
+$_parse-array-of-decimal-ints:loop1:
+    # if (curr >= end) break
+    39/compare %ecx 2/r32/edx
+    73/jump-if-addr>= $_parse-array-of-decimal-ints:break1/disp8
+    # curr = skip-chars-matching-in-slice(curr, end, ' ')
+    (skip-chars-matching-in-slice %ecx %edx 0x20)  # => eax
+    89/<- %ecx 0/r32/eax
+    # if (curr >= end) break
+    39/compare %ecx 2/r32/edx
+    73/jump-if-addr>= $_parse-array-of-decimal-ints:break1/disp8
+    # curr = skip-chars-not-matching-in-slice(curr, end, ' ')
+    (skip-chars-not-matching-in-slice %ecx %edx 0x20)  # => eax
+    89/<- %ecx 0/r32/eax
+    # size += 4
+    81 0/subop/add %ebx 4/imm32
+    eb/jump $_parse-array-of-decimal-ints:loop1/disp8
+$_parse-array-of-decimal-ints:break1:
+    (allocate-array *(ebp+8) %ebx *(ebp+0x10))
+$_parse-array-of-decimal-ints:pass2:
+    # var slice/edi: slice = {s->data, 0}
+    68/push 0/imm32/end
+    8d/copy-address *(esi+4) 7/r32/edi
+    57/push-edi
+    89/<- %edi 4/r32/esp
+    # curr = lookup(out)->data
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    8d/copy-address *(eax+4) 1/r32/ecx
+$_parse-array-of-decimal-ints:loop2:
+    # if (slice->start >= end) break
+    39/compare *edi 2/r32/edx
+    73/jump-if-addr>= $_parse-array-of-decimal-ints:end/disp8
+    # slice->start = skip-chars-matching-in-slice(slice->start, end, ' ')
+    (skip-chars-matching-in-slice *edi %edx 0x20)  # => eax
+    89/<- *edi 0/r32/eax
+    # if (slice->start >= end) break
+    39/compare *edi 2/r32/edx
+    73/jump-if-addr>= $_parse-array-of-decimal-ints:end/disp8
+    # slice->end = skip-chars-not-matching-in-slice(slice->start, end, ' ')
+    (skip-chars-not-matching-in-slice *edi %edx 0x20)  # => eax
+    89/<- *(edi+4) 0/r32/eax
+    # *curr = parse-hex-int-from-slice(slice)
+    (parse-decimal-int-from-slice %edi)
+    89/<- *ecx 0/r32/eax
+    # curr += 4
+    81 0/subop/add %ecx 4/imm32
+    # slice->start = slice->end
+    8b/-> *(edi+4) 0/r32/eax
+    89/<- *edi 0/r32/eax
+    eb/jump $_parse-array-of-decimal-ints:loop2/disp8
+$_parse-array-of-decimal-ints:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-array-of-decimal-ints:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var h/esi: (handle array int)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    # var ecx: (array int) = [1, 2, 3]
+    68/push 3/imm32
+    68/push 2/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %ecx 4/r32/esp
+    #
+    (_parse-array-of-decimal-ints Heap "1 2 3" %esi)
+    (lookup *esi *(esi+4))  # => eax
+    (array-equal? %ecx %eax)  # => eax
+    (check-ints-equal %eax 1 "F - test-parse-array-of-decimal-ints")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-array-of-decimal-ints-empty:
+    # - empty string = empty array
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var h/esi: handle
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    #
+    (_parse-array-of-decimal-ints Heap "" %esi)
+    (lookup *esi *(esi+4))  # => eax
+    (check-ints-equal *eax 0 "F - test-parse-array-of-decimal-ints-empty")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-array-of-decimal-ints-just-whitespace:
+    # - just whitespace = empty array
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var h/esi: handle
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    #
+    (_parse-array-of-decimal-ints Heap Space %esi)
+    (lookup *esi *(esi+4))  # => eax
+    (check-ints-equal *eax 0 "F - test-parse-array-of-decimal-ints-just-whitespace")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-array-of-decimal-ints-extra-whitespace:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var h/esi: handle
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    # var ecx: (array int) = [1, 2, 3]
+    68/push 3/imm32
+    68/push 2/imm32
+    68/push 1/imm32
+    68/push 0xc/imm32/size
+    89/<- %ecx 4/r32/esp
+    #
+    (_parse-array-of-decimal-ints Heap " 1 2  3  " %esi)
+    (lookup *esi *(esi+4))  # => eax
+    (array-equal? %ecx %eax)  # => eax
+    (check-ints-equal %eax 1 "F - test-parse-array-of-decimal-ints-extra-whitespace")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-array-of-decimal-ints:  # s: (addr array byte), out: (addr handle array int)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (_parse-array-of-decimal-ints Heap *(ebp+8) *(ebp+0xc))
+$parse-array-of-decimal-ints:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
diff --git a/linux/312copy.subx b/linux/312copy.subx
new file mode 100644
index 00000000..11bfbc3e
--- /dev/null
+++ b/linux/312copy.subx
@@ -0,0 +1,68 @@
+== code
+
+copy-array-object:  # src: (addr array T), dest-ah: (addr handle array T)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (copy-array Heap *(ebp+8) *(ebp+0xc))
+$copy-array-object:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# create an independent copy of file src into dest
+# there's no way to do this without knowing the filename
+copy-file:  # src: (addr buffered-file), dest-ah: (addr handle buffered-file), filename: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = src
+    8b/-> *(ebp+8) 6/r32/esi
+    # var n/ecx: int = src->buffer->size + 16
+    8b/-> *(esi+0xc) 0/r32/eax
+    05/add-to-eax 0x10/imm32  # buffered-file fields before buffer contents
+    89/<- %ecx 0/r32/eax
+    #
+    (allocate Heap %ecx *(ebp+0xc))
+    # var dest/edi: (addr buffered-file) = lookup(*dest-ah)
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    89/<- %edi 0/r32/eax
+    #
+    (copy-bytes %esi %edi %ecx)
+    # var offset/ecx: int = lseek(src->fd, 0, SEEK_CUR)
+    8b/-> *esi 3/r32/ebx
+    b9/copy-to-ecx 0/imm32/offset
+    ba/copy-to-edx 1/imm32/whence:SEEK_CUR
+    (syscall_lseek)
+    89/<- %ecx 0/r32/eax
+    # at this point dest is identical to src, including file descriptor. Now
+    # create an independent copy of the file descriptor
+    (open-fd *(ebp+0x10) 0)  # false => eax
+    89/<- *edi 0/r32/eax
+    # replicate offset in the new fd
+    89/<- %ebx 0/r32/eax  # fd
+    51/push-ecx  # offset
+    ba/copy-to-edx 0/imm32/whence:SEEK_SET
+    (syscall_lseek)
+$copy-file:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/313index-bounds-check.subx b/linux/313index-bounds-check.subx
new file mode 100644
index 00000000..615935b3
--- /dev/null
+++ b/linux/313index-bounds-check.subx
@@ -0,0 +1,86 @@
+# Helper to check an array's bounds, and to abort if they're violated.
+# Really only intended to be called from code generated by mu.subx.
+
+== code
+
+__check-mu-array-bounds:  # index: int, elem-size: int, arr-size: int, function-name: (addr array byte), array-name: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # . not bothering saving ebx; it's only clobbered if we're going to abort
+    # ecx = arr-size
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    # var overflow/edx: int = 0
+    ba/copy-to-edx 0/imm32
+    # var offset/eax: int = index * elem-size
+    8b/-> *(ebp+8) 0/r32/eax
+    f7 4/subop/multiply-eax-with *(ebp+0xc)
+    # check for overflow
+    81 7/subop/compare %edx 0/imm32
+    0f 85/jump-if-!= __check-mu-array-bounds:overflow/disp32
+    # check bounds
+    39/compare %eax 1/r32/ecx
+    0f 82/jump-if-unsigned< $__check-mu-array-bounds:end/disp32  # negative index should always abort
+    # abort if necessary
+    (write-buffered Stderr "fn ")
+    (write-buffered Stderr *(ebp+0x14))
+    (write-buffered Stderr ": offset ")
+    (write-int32-hex-buffered Stderr %eax)
+    (write-buffered Stderr " is too large for array '")
+    (write-buffered Stderr *(ebp+0x18))
+    (write-buffered Stderr "'\n")
+    (flush Stderr)
+    # exit(1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+$__check-mu-array-bounds:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+__check-mu-array-bounds:overflow:
+    # "fn " function-name ": offset to array '" array-name "' overflowed 32 bits\n"
+    (write-buffered Stderr "fn ")
+    (write-buffered Stderr *(ebp+0x14))
+    (write-buffered Stderr ": offset to array '")
+    (write-buffered Stderr *(ebp+0x18))
+    (write-buffered Stderr "' overflowed 32 bits\n")
+    (flush Stderr)
+    # exit(1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+
+# potential alternative
+
+#? __bounds-check:  # msg: (addr array byte)
+#?   (write-buffered Stderr "abort: array bounds exceeded in fn ")
+#?   8b/-> *(esp+4) 0/r32/eax  # we're going to abort, so just clobber away
+#?   (write-buffered Stderr %eax)
+#?   (write-buffered Stderr Newline)
+#?   # exit(1)
+#?   bb/copy-to-ebx 1/imm32
+#?   e8/call syscall_exit/disp32
+
+# to be called as follows:
+#   var/reg <- index arr/rega: (addr array T), idx/regi: int
+#     | if size-of(T) is 1, 2, 4 or 8
+#         => # temporarily save array size to reg to check bounds
+#            "8b/-> *" rega " " reg "/r32"
+#            "c1/shift 5/subop/right %" reg " " log2(size-of(T)) "/imm32"
+#            "3b/compare " reg "/r32 *" rega
+#            "68/push \"" function "\"/imm32"  # pass function name to error message
+#            "0f 8d/jump-if->= __bounds_check/disp32"
+#            "81 0/subop/add %esp 4/imm32"  # drop function name
+#            # actually save the index addr in reg
+#            "8d/copy-address *(" rega "+" regi "<<" log2(size-of(T)) "+4) " reg "/r32"
diff --git a/linux/314divide.subx b/linux/314divide.subx
new file mode 100644
index 00000000..c0b85526
--- /dev/null
+++ b/linux/314divide.subx
@@ -0,0 +1,17 @@
+== code
+
+integer-divide:  # a: int, b: int -> quotient/eax: int, remainder/edx: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = a
+    8b/-> *(ebp+8) 0/r32/eax
+    # edx = all 0s or all 1s
+    99/sign-extend-eax-into-edx
+    # quotient, remainder = divide eax by b
+    f7 7/subop/divide-eax-edx-by *(ebp+0xc)
+$integer-divide:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/315slice.subx b/linux/315slice.subx
new file mode 100644
index 00000000..0a348550
--- /dev/null
+++ b/linux/315slice.subx
@@ -0,0 +1,14 @@
+== code
+
+# variant of slice-to-string intended to be called from Mu
+# Mu doesn't yet expose allocation-descriptors
+_slice-to-string:  # in: (addr slice), out: (addr handle array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (slice-to-string Heap *(ebp+8) *(ebp+0xc))
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/400.mu b/linux/400.mu
new file mode 100644
index 00000000..d766a8f6
--- /dev/null
+++ b/linux/400.mu
@@ -0,0 +1,195 @@
+# The 4xx series is for primitives implemented in Mu.
+
+# Signatures for major SubX functions defined so far.
+
+# autogenerated
+sig run-tests
+
+# init.linux
+# TODO: make this OS-specific
+# TODO: include result type at least, even if register args are too much
+sig syscall_exit  # status/ebx: int
+sig syscall_read  # fd/ebx: int, buf/ecx: addr, size/edx: int -> nbytes-or-error/eax: int
+sig syscall_write  # fd/ebx: int, buf/ecx: addr, size/edx: int -> nbytes-or-error/eax: int
+sig syscall_open  # filename/ebx: (addr kernel-string), flags/ecx: int, dummy=0x180/edx -> fd-or-error/eax: int
+sig syscall_close  # fd/ebx: int -> status/eax
+sig syscall_creat  # filename/ebx: (addr kernel-string) -> fd-or-error/eax: int
+sig syscall_unlink  # filename/ebx: (addr kernel-string) -> status/eax: int
+sig syscall_rename  # source/ebx: (addr kernel-string), dest/ecx: (addr kernel-string) -> status/eax: int
+sig syscall_mmap  # arg/ebx: (addr mmap_arg_struct) -> status/eax: int
+sig syscall_ioctl  # fd/ebx: int, cmd/ecx: int, arg/edx: (addr _)
+sig syscall_nanosleep  # req/ebx: (addr timespec)
+sig syscall_clock_gettime  # clock/ebx: int, out/ecx: (addr timespec)
+
+# Generated using:
+#   grep -h '^[a-z]' [0-9]*.subx |grep -v '^test-'
+# Functions we don't want to make accessible from Mu are commented out.
+# Many functions here may not be usable yet because of missing features
+# (global variable support, etc.)
+sig check-ints-equal a: int, b: int, msg: (addr array byte)
+sig kernel-string-equal? s: (addr kernel-string), benchmark: (addr array byte) -> _/eax: boolean
+sig new-segment len: int, ad: (addr allocation-descriptor)
+sig string-equal? s: (addr array byte), benchmark: (addr array byte) -> _/eax: boolean
+sig string-starts-with? s: (addr array byte), benchmark: (addr array byte) -> _/eax: boolean
+sig check-strings-equal s: (addr array byte), expected: (addr array byte), msg: (addr array byte)
+sig clear-stream f: (addr stream _)
+sig rewind-stream f: (addr stream _)
+sig initialize-trace-stream n: int
+sig trace line: (addr array byte)
+sig check-trace-contains line: (addr string), msg: (addr string)
+sig check-trace-scans-to line: (addr string), msg: (addr string)
+sig trace-scan line: (addr array byte) -> _/eax: boolean
+sig next-line-matches? t: (addr stream byte), line: (addr array byte) -> _/eax: boolean
+sig skip-next-line t: (addr stream byte)
+sig clear-trace-stream
+sig write f: (addr stream byte), s: (addr array byte)  # writing to file descriptor not supported; use buffered-file
+sig stream-data-equal? f: (addr stream byte), s: (addr array byte) -> _/eax: boolean
+sig check-stream-equal f: (addr stream byte), s: (addr array byte), msg: (addr array byte)
+sig next-stream-line-equal? f: (addr stream byte), s: (addr array byte) -> _/eax: boolean
+sig check-next-stream-line-equal f: (addr stream byte), s: (addr array byte), msg: (addr array byte)
+sig tailor-exit-descriptor ed: (addr exit-descriptor), nbytes: int
+sig stop ed: (addr exit-descriptor), value: int
+#sig read f: fd or (addr stream byte), s: (addr stream byte) -> _/eax: int
+sig read-byte-buffered f: (addr buffered-file) -> _/eax: byte
+sig read-byte s: (addr stream byte) -> _/eax: byte
+#sig write-stream f: fd or (addr stream byte), s: (addr stream byte)
+#sig error ed: (addr exit-descriptor), out: fd or (addr stream byte), msg: (addr array byte)
+sig write-byte-buffered f: (addr buffered-file), n: int
+sig flush f: (addr buffered-file)
+sig append-byte f: (addr stream byte), n: int
+sig write-buffered f: (addr buffered-file), msg: (addr array byte)
+#sig to-hex-char in/eax: int -> out/eax: int
+sig append-byte-hex f: (addr stream byte), n: int
+sig write-byte-hex-buffered f: (addr buffered-file), n: int
+sig write-int32-hex f: (addr stream byte), n: int
+sig write-int32-hex-bits f: (addr stream byte), n: int, bits: int
+sig write-int32-hex-buffered f: (addr buffered-file), n: int
+sig write-int32-hex-bits-buffered f: (addr buffered-file), n: int, bits: int
+sig is-hex-int? in: (addr slice) -> _/eax: boolean
+sig parse-hex-int in: (addr array byte) -> _/eax: int
+sig parse-hex-int-from-slice in: (addr slice) -> _/eax: int
+#sig parse-hex-int-helper start: (addr byte), end: (addr byte) -> _/eax: int
+sig is-hex-digit? c: byte -> _/eax: boolean
+#sig from-hex-char in/eax: byte -> out/eax: nibble
+sig parse-decimal-int in: (addr array byte) -> _/eax: int
+sig parse-decimal-int-from-slice in: (addr slice) -> _/eax: int
+sig parse-decimal-int-from-stream in: (addr stream byte) -> _/eax: int
+#sig parse-decimal-int-helper start: (addr byte), end: (addr byte) -> _/eax: int
+sig decimal-size n: int -> _/eax: int
+sig error-byte ed: (addr exit-descriptor), out: (addr buffered-file), msg: (addr array byte), n: byte
+#sig allocate ad: (addr allocation-descriptor), n: int, out: (addr handle _)
+#sig allocate-raw ad: (addr allocation-descriptor), n: int, out: (addr handle _)
+sig lookup h: (handle _T) -> _/eax: (addr _T)
+sig handle-equal? a: (handle _T), b: (handle _T) -> _/eax: boolean
+sig copy-handle src: (handle _T), dest: (addr handle _T)
+#sig allocate-region ad: (addr allocation-descriptor), n: int, out: (addr handle allocation-descriptor)
+#sig allocate-array ad: (addr allocation-descriptor), n: int, out: (addr handle _)
+sig copy-array ad: (addr allocation-descriptor), src: (addr array _T), out: (addr handle array _T)
+#sig zero-out start: (addr byte), size: int
+#sig new-stream ad: (addr allocation-descriptor), length: int, elemsize: int, out: (addr handle stream _)
+sig read-line-buffered f: (addr buffered-file), s: (addr stream byte)
+sig read-line f: (addr stream byte), s: (addr stream byte)
+sig slice-empty? s: (addr slice) -> _/eax: boolean
+sig slice-equal? s: (addr slice), p: (addr array byte) -> _/eax: boolean
+sig slice-starts-with? s: (addr slice), head: (addr array byte) -> _/eax: boolean
+sig write-slice out: (addr stream byte), s: (addr slice)
+sig write-slice-buffered out: (addr buffered-file), s: (addr slice)
+# bad name alert
+sig slice-to-string ad: (addr allocation-descriptor), in: (addr slice), out: (addr handle array byte)
+sig _slice-to-string in: (addr slice), out: (addr handle array byte)
+sig next-token in: (addr stream byte), delimiter: byte, out: (addr slice)
+sig next-token-from-slice start: (addr byte), end: (addr byte), delimiter: byte, out: (addr slice)
+sig skip-chars-matching in: (addr stream byte), delimiter: byte
+sig skip-chars-matching-whitespace in: (addr stream byte)
+sig skip-chars-not-matching in: (addr stream byte), delimiter: byte
+sig skip-chars-not-matching-whitespace in: (addr stream byte)
+#sig skip-chars-matching-in-slice curr: (addr byte), end: (addr byte), delimiter: byte -> _/eax: (addr byte)
+#sig skip-chars-matching-whitespace-in-slice curr: (addr byte), end: (addr byte) -> _/eax: (addr byte)
+#sig skip-chars-not-matching-in-slice curr: (addr byte), end: (addr byte), delimiter: byte -> _/eax: (addr byte)
+#sig skip-chars-not-matching-whitespace-in-slice curr: (addr byte), end: (addr byte) -> _/eax: (addr byte)
+sig skip-string line: (addr stream byte)
+#sig skip-string-in-slice curr: (addr byte), end: (addr byte) -> _/eax: (addr byte)
+sig skip-until-close-paren line: (addr stream byte)
+#sig skip-until-close-paren-in-slice curr: (addr byte), end: (addr byte) -> _/eax: (addr byte)
+sig write-stream-data f: (addr buffered-file), s: (addr stream byte)
+sig write-int32-decimal out: (addr stream byte), n: int
+sig is-decimal-digit? c: grapheme -> _/eax: boolean
+sig to-decimal-digit in: grapheme -> _/eax: int
+# bad name alert
+# next-word really tokenizes
+# next-raw-word really reads whitespace-separated words
+sig next-word line: (addr stream byte), out: (addr slice)  # skips '#' comments
+sig next-raw-word line: (addr stream byte), out: (addr slice)  # does not skip '#' comments
+sig has-metadata? word: (addr slice), s: (addr string) -> _/eax: boolean
+sig is-valid-name? in: (addr slice) -> _/eax: boolean
+sig is-label? word: (addr slice) -> _/eax: boolean
+sig emit-hex out: (addr buffered-file), n: int, width: int
+sig emit out: (addr buffered-file), word: (addr slice), width: int
+#sig get table: (addr stream {(handle array byte), T}), key: (addr array byte), row-size: int, abort-message-prefix: (addr array byte) -> _/eax: (addr T)
+#sig get-slice table: (addr stream {(handle array byte), T}), key: (addr slice), row-size: int, abort-message-prefix: (addr array byte) -> _/eax: (addr T)
+#sig get-or-insert table: (addr stream {(handle array byte), T}), key: (addr array byte), row-size: int, ad: (addr allocation-descriptor) -> _/eax: (addr T)
+#sig get-or-insert-handle table: (addr stream {(handle array byte), T}), key: (handle array byte), row-size: int -> _/eax: (addr T)
+#sig get-or-insert-slice table: (addr stream {(handle array byte), T}), key: (addr slice), row-size: int, ad: (addr allocation-descriptor) -> _/eax: (addr T)
+#sig get-or-stop table: (addr stream {(handle array byte), T}), key: (addr array byte), row-size: int
+#sig get-slice-or-stop table: (addr stream {(handle array byte), _}), key: (addr slice), row-size: int
+#sig maybe-get table: (addr stream {(handle array byte), T}), key: (addr array byte), row-size: int -> _/eax: (addr T)
+#sig maybe-get-slice table: (addr stream {(handle array byte), T}), key: (addr slice), row-size: int -> _/eax: (addr T)
+sig slurp f: (addr buffered-file), s: (addr stream byte)
+sig compute-width word: (addr array byte) -> _/eax: int
+sig compute-width-of-slice s: (addr slice) -> _/eax: int
+sig emit-hex-array out: (addr buffered-file), arr: (addr array byte)
+sig next-word-or-string line: (addr stream byte), out: (addr slice)
+sig write-int out: (addr stream byte), n: int
+#sig clear-stack s: (addr stack)
+#sig push s: (addr stack), n: int
+#sig pop s: (addr stack) -> _/eax: int
+#sig top s: (addr stack) -> _/eax: int
+sig array-equal? a: (addr array int), b: (addr array int) -> _/eax: boolean
+sig parse-array-of-ints s: (addr array byte), out: (addr handle array int)
+sig parse-array-of-decimal-ints s: (addr array byte), out: (addr handle array int)
+sig check-array-equal a: (addr array int), expected: (addr string), msg: (addr string)
+#sig push-n-zero-bytes n: int
+sig kernel-string-to-string ad: (addr allocation-descriptor), in: (addr kernel-string), out: (addr handle array byte)
+sig kernel-string-length in: (addr kernel-string) -> _/eax: int
+sig enable-screen-grid-mode
+sig enable-screen-type-mode
+sig real-screen-size -> _/eax: int, _/ecx: int
+sig clear-real-screen
+sig move-cursor-on-real-screen row: int, column: int
+sig print-string-to-real-screen s: (addr array byte)
+sig print-slice-to-real-screen s: (addr slice)
+sig print-stream-to-real-screen s: (addr stream byte)
+sig print-grapheme-to-real-screen c: grapheme
+sig print-int32-hex-to-real-screen n: int
+sig print-int32-hex-bits-to-real-screen n: int, bits: int
+sig print-int32-decimal-to-real-screen n: int
+sig write-int32-decimal-buffered f: (addr buffered-file), n: int
+sig reset-formatting-on-real-screen
+sig start-color-on-real-screen fg: int, bg: int
+sig start-bold-on-real-screen
+sig start-underline-on-real-screen
+sig start-reverse-video-on-real-screen
+sig start-blinking-on-real-screen
+sig hide-cursor-on-real-screen
+sig show-cursor-on-real-screen
+sig enable-keyboard-immediate-mode
+sig enable-keyboard-type-mode
+sig read-key-from-real-keyboard -> _/eax: grapheme
+sig read-line-from-real-keyboard out: (addr stream byte)
+sig open filename: (addr array byte), write?: boolean, out: (addr handle buffered-file)
+sig populate-buffered-file-containing contents: (addr array byte), out: (addr handle buffered-file)
+sig new-buffered-file out: (addr handle buffered-file)
+#sig size in: (addr array _) -> _/eax: int
+
+sig stream-empty? s: (addr stream _) -> _/eax: boolean
+sig stream-full? s: (addr stream _) -> _/eax: boolean
+sig stream-to-array in: (addr stream _), out: (addr handle array _)
+sig unquote-stream-to-array in: (addr stream _), out: (addr handle array _)
+sig stream-first s: (addr stream byte) -> _/eax: byte
+sig stream-final s: (addr stream byte) -> _/eax: byte
+
+#sig copy-bytes src: (addr byte), dest: (addr byte), n: int
+sig copy-array-object src: (addr array _), dest-ah: (addr handle array _)
+sig copy-file src: (addr buffered-file), dest-ah: (addr handle buffered-file), filename: (addr array byte)
+
+sig integer-divide a: int, b: int -> _/eax: int, _/edx: int
diff --git a/linux/401test.mu b/linux/401test.mu
new file mode 100644
index 00000000..65b765df
--- /dev/null
+++ b/linux/401test.mu
@@ -0,0 +1,11 @@
+# Some helpers for Mu tests.
+
+fn check-true val: boolean, msg: (addr array byte) {
+  var tmp/eax: int <- copy val
+  check-ints-equal tmp, 1, msg
+}
+
+fn check-false val: boolean, msg: (addr array byte) {
+  var tmp/eax: int <- copy val
+  check-ints-equal tmp, 0, msg
+}
diff --git a/linux/402time.mu b/linux/402time.mu
new file mode 100644
index 00000000..fdb98c81
--- /dev/null
+++ b/linux/402time.mu
@@ -0,0 +1,43 @@
+type timespec {
+  tv_sec: int
+  tv_nsec: int
+}
+
+# return time in seconds since epoch
+# TODO: y2038
+fn time -> _/eax: int {
+  var t: timespec
+  var clock/ebx: int <- copy 0/CLOCK_MONOTONIC
+  var t-addr/ecx: (addr timespec) <- address t
+  syscall_clock_gettime
+  var t-secs-addr/ecx: (addr int) <- get t-addr, tv_sec
+  var secs/eax: int <- copy *t-secs-addr
+  return secs
+}
+
+# return time in nanoseconds since epoch
+fn ntime -> _/eax: int {
+  var t: timespec
+  var clock/ebx: int <- copy 0/CLOCK_MONOTONIC
+  var t-addr/ecx: (addr timespec) <- address t
+  syscall_clock_gettime
+  var t-nsecs-addr/ecx: (addr int) <- get t-addr, tv_nsec
+  var nsecs/eax: int <- copy *t-nsecs-addr
+  return nsecs
+}
+
+# nsecs must be less than 999999999 or 0x3b9ac9ff nanoseconds
+fn sleep secs: int, nsecs: int {
+  var t: timespec
+  # initialize t
+  var tmp/eax: (addr int) <- get t, tv_sec
+  var tmp2/ecx: int <- copy secs
+  copy-to *tmp, tmp2
+  tmp <- get t, tv_nsec
+  tmp2 <- copy nsecs
+  copy-to *tmp, tmp2
+  # perform the syscall
+  var t-addr/ebx: (addr timespec) <- address t
+  var rem-addr/ecx: (addr timespec) <- copy 0
+  syscall_nanosleep
+}
diff --git a/linux/403unicode.mu b/linux/403unicode.mu
new file mode 100644
index 00000000..948e6618
--- /dev/null
+++ b/linux/403unicode.mu
@@ -0,0 +1,396 @@
+# Helpers for Unicode.
+#
+# Mu has no characters, only code points and graphemes.
+# Code points are the indivisible atoms of text streams.
+#   https://en.wikipedia.org/wiki/Code_point
+# Graphemes are the smallest self-contained unit of text.
+# Graphemes may consist of multiple code points.
+#
+# Mu graphemes are always represented in utf-8, and they are required to fit
+# in 4 bytes.
+#
+# Mu doesn't currently support combining code points, or graphemes made of
+# multiple code points. One day we will.
+# We also don't currently support code points that translate into multiple
+# or wide graphemes. (In particular, Tab will never be supported.)
+
+# transliterated from tb_utf8_unicode_to_char in https://github.com/nsf/termbox
+# https://wiki.tcl-lang.org/page/UTF%2D8+bit+by+bit explains the algorithm
+#
+# The day we want to support combining characters, this function will need to
+# take multiple code points. Or something.
+fn to-grapheme in: code-point -> _/eax: grapheme {
+  var c/eax: int <- copy in
+  var num-trailers/ecx: int <- copy 0
+  var first/edx: int <- copy 0
+  $to-grapheme:compute-length: {
+    # single byte: just return it
+    compare c, 0x7f
+    {
+      break-if->
+      var g/eax: grapheme <- copy c
+      return g
+    }
+    # 2 bytes
+    compare c, 0x7ff
+    {
+      break-if->
+      num-trailers <- copy 1
+      first <- copy 0xc0
+      break $to-grapheme:compute-length
+    }
+    # 3 bytes
+    compare c, 0xffff
+    {
+      break-if->
+      num-trailers <- copy 2
+      first <- copy 0xe0
+      break $to-grapheme:compute-length
+    }
+    # 4 bytes
+    compare c, 0x1fffff
+    {
+      break-if->
+      num-trailers <- copy 3
+      first <- copy 0xf0
+      break $to-grapheme:compute-length
+    }
+    # more than 4 bytes: unsupported
+    # TODO: print to stderr
+    compare c, 0x1fffff
+    {
+      break-if->
+      print-string-to-real-screen "unsupported code point "
+      print-int32-hex-to-real-screen c
+      print-string-to-real-screen "\n"
+      var exit-status/ebx: int <- copy 1
+      syscall_exit
+    }
+  }
+  # emit trailer bytes, 6 bits from 'in', first two bits '10'
+  var result/edi: grapheme <- copy 0
+  {
+    compare num-trailers, 0
+    break-if-<=
+    var tmp/esi: int <- copy c
+    tmp <- and 0x3f
+    tmp <- or 0x80
+    result <- shift-left 8
+    result <- or tmp
+    # update loop state
+    c <- shift-right 6
+    num-trailers <- decrement
+    loop
+  }
+  # emit engine
+  result <- shift-left 8
+  result <- or c
+  result <- or first
+  #
+  return result
+}
+
+# single-byte code point have identical graphemes
+fn test-to-grapheme-single-byte {
+  var in-int/ecx: int <- copy 0
+  {
+    compare in-int, 0x7f
+    break-if->
+    var in/eax: code-point <- copy in-int
+    var out/eax: grapheme <- to-grapheme in
+    var out-int/eax: int <- copy out
+    check-ints-equal out-int, in-int, "F - test-to-grapheme-single-byte"
+    in-int <- increment
+    loop
+  }
+}
+
+                                                              # byte       | byte      | byte      | byte
+# smallest 2-byte utf-8
+fn test-to-grapheme-two-bytes-min {
+  var in/eax: code-point <- copy 0x80                         #                                 10     00-0000
+  var out/eax: grapheme <- to-grapheme in
+  var out-int/eax: int <- copy out
+  check-ints-equal out-int, 0x80c2, "F - to-grapheme/2a"      #                         110 0-0010  10 00-0000
+}
+
+# largest 2-byte utf-8
+fn test-to-grapheme-two-bytes-max {
+  var in/eax: code-point <- copy 0x7ff                        #                             1-1111     11-1111
+  var out/eax: grapheme <- to-grapheme in
+  var out-int/eax: int <- copy out
+  check-ints-equal out-int, 0xbfdf, "F - to-grapheme/2b"      #                         110 1-1111  10 11-1111
+}
+
+# smallest 3-byte utf-8
+fn test-to-grapheme-three-bytes-min {
+  var in/eax: code-point <- copy 0x800                        #                            10-0000     00-0000
+  var out/eax: grapheme <- to-grapheme in
+  var out-int/eax: int <- copy out
+  check-ints-equal out-int, 0x80a0e0, "F - to-grapheme/3a"    #              1110 0000  10 10-0000  10 00-0000
+}
+
+# largest 3-byte utf-8
+fn test-to-grapheme-three-bytes-max {
+  var in/eax: code-point <- copy 0xffff                       #                   1111     11-1111     11-1111
+  var out/eax: grapheme <- to-grapheme in
+  var out-int/eax: int <- copy out
+  check-ints-equal out-int, 0xbfbfef, "F - to-grapheme/3b"    #              1110 1111  10 11-1111  10 11-1111
+}
+
+# smallest 4-byte utf-8
+fn test-to-grapheme-four-bytes-min {
+  var in/eax: code-point <- copy 0x10000                      #                 1-0000     00-0000     00-0000
+  var out/eax: grapheme <- to-grapheme in
+  var out-int/eax: int <- copy out
+  check-ints-equal out-int, 0x808090f0, "F - to-grapheme/4a"  # 1111-0 000  10 01-0000  10 00-0000  10 00-0000
+}
+
+# largest 4-byte utf-8
+fn test-to-grapheme-four-bytes-max {
+  var in/eax: code-point <- copy 0x1fffff                     #        111     11-1111     11-1111     11-1111
+  var out/eax: grapheme <- to-grapheme in
+  var out-int/eax: int <- copy out
+  check-ints-equal out-int, 0xbfbfbff7, "F - to-grapheme/4b"  # 1111-0 111  10 11-1111  10 11-1111  10 11-1111
+}
+
+# read the next grapheme from a stream of bytes
+fn read-grapheme in: (addr stream byte) -> _/eax: grapheme {
+  # if at eof, return EOF
+  {
+    var eof?/eax: boolean <- stream-empty? in
+    compare eof?, 0/false
+    break-if-=
+    return 0xffffffff
+  }
+  var c/eax: byte <- read-byte in
+  var num-trailers/ecx: int <- copy 0
+  $read-grapheme:compute-length: {
+    # single byte: just return it
+    compare c, 0xc0
+    {
+      break-if->=
+      var g/eax: grapheme <- copy c
+      return g
+    }
+    compare c, 0xfe
+    {
+      break-if-<
+      var g/eax: grapheme <- copy c
+      return g
+    }
+    # 2 bytes
+    compare c, 0xe0
+    {
+      break-if->=
+      num-trailers <- copy 1
+      break $read-grapheme:compute-length
+    }
+    # 3 bytes
+    compare c, 0xf0
+    {
+      break-if->=
+      num-trailers <- copy 2
+      break $read-grapheme:compute-length
+    }
+    # 4 bytes
+    compare c, 0xf8
+    {
+      break-if->=
+      num-trailers <- copy 3
+      break $read-grapheme:compute-length
+    }
+$read-grapheme:abort: {
+      # TODO: print to stderr
+      print-string-to-real-screen "utf-8 encodings larger than 4 bytes are not supported. First byte seen: "
+      var n/eax: int <- copy c
+      print-int32-hex-to-real-screen n
+      print-string-to-real-screen "\n"
+      var exit-status/ebx: int <- copy 1
+      syscall_exit
+    }
+  }
+  # prepend trailer bytes
+  var result/edi: grapheme <- copy c
+  var num-byte-shifts/edx: int <- copy 1
+  {
+    compare num-trailers, 0
+    break-if-<=
+    var tmp/eax: byte <- read-byte in
+    var tmp2/eax: int <- copy tmp
+    tmp2 <- shift-left-bytes tmp2, num-byte-shifts
+    result <- or tmp2
+    # update loop state
+    num-byte-shifts <- increment
+    num-trailers <- decrement
+    loop
+  }
+  return result
+}
+
+fn test-read-grapheme {
+  var s: (stream byte 0x30)
+  var s2/ecx: (addr stream byte) <- address s
+  write s2, "aΒc世d界e"
+  var c/eax: grapheme <- read-grapheme s2
+  var n/eax: int <- copy c
+  check-ints-equal n, 0x61, "F - test grapheme/0"
+  var c/eax: grapheme <- read-grapheme s2
+  var n/eax: int <- copy c
+  check-ints-equal n, 0x92ce/greek-capital-letter-beta, "F - test grapheme/1"
+  var c/eax: grapheme <- read-grapheme s2
+  var n/eax: int <- copy c
+  check-ints-equal n, 0x63, "F - test grapheme/2"
+  var c/eax: grapheme <- read-grapheme s2
+  var n/eax: int <- copy c
+  check-ints-equal n, 0x96b8e4, "F - test grapheme/3"
+  var c/eax: grapheme <- read-grapheme s2
+  var n/eax: int <- copy c
+  check-ints-equal n, 0x64, "F - test grapheme/4"
+  var c/eax: grapheme <- read-grapheme s2
+  var n/eax: int <- copy c
+  check-ints-equal n, 0x8c95e7, "F - test grapheme/5"
+  var c/eax: grapheme <- read-grapheme s2
+  var n/eax: int <- copy c
+  check-ints-equal n, 0x65, "F - test grapheme/6"
+}
+
+fn read-grapheme-buffered in: (addr buffered-file) -> _/eax: grapheme {
+  var c/eax: byte <- read-byte-buffered in
+  var num-trailers/ecx: int <- copy 0
+  $read-grapheme-buffered:compute-length: {
+    # single byte: just return it
+    compare c, 0xc0
+    {
+      break-if->=
+      var g/eax: grapheme <- copy c
+      return g
+    }
+    compare c, 0xfe
+    {
+      break-if-<
+      var g/eax: grapheme <- copy c
+      return g
+    }
+    # 2 bytes
+    compare c, 0xe0
+    {
+      break-if->=
+      num-trailers <- copy 1
+      break $read-grapheme-buffered:compute-length
+    }
+    # 3 bytes
+    compare c, 0xf0
+    {
+      break-if->=
+      num-trailers <- copy 2
+      break $read-grapheme-buffered:compute-length
+    }
+    # 4 bytes
+    compare c, 0xf8
+    {
+      break-if->=
+      num-trailers <- copy 3
+      break $read-grapheme-buffered:compute-length
+    }
+$read-grapheme-buffered:abort: {
+      # TODO: print to stderr
+      print-string-to-real-screen "utf-8 encodings larger than 4 bytes are not supported. First byte seen: "
+      var n/eax: int <- copy c
+      print-int32-hex-to-real-screen n
+      print-string-to-real-screen "\n"
+      var exit-status/ebx: int <- copy 1
+      syscall_exit
+    }
+  }
+  # prepend trailer bytes
+  var result/edi: grapheme <- copy c
+  var num-byte-shifts/edx: int <- copy 1
+  {
+    compare num-trailers, 0
+    break-if-<=
+    var tmp/eax: byte <- read-byte-buffered in
+    var tmp2/eax: int <- copy tmp
+    tmp2 <- shift-left-bytes tmp2, num-byte-shifts
+    result <- or tmp2
+    # update loop state
+    num-byte-shifts <- increment
+    num-trailers <- decrement
+    loop
+  }
+  return result
+}
+
+# needed because available primitives only shift by a literal/constant number of bits
+fn shift-left-bytes n: int, k: int -> _/eax: int {
+  var i/ecx: int <- copy 0
+  var result/eax: int <- copy n
+  {
+    compare i, k
+    break-if->=
+    compare i, 4  # only 4 bytes in 32 bits
+    break-if->=
+    result <- shift-left 8
+    i <- increment
+    loop
+  }
+  return result
+}
+
+fn test-shift-left-bytes-0 {
+  var result/eax: int <- shift-left-bytes 1, 0
+  check-ints-equal result, 1, "F - shift-left-bytes 0"
+}
+
+fn test-shift-left-bytes-1 {
+  var result/eax: int <- shift-left-bytes 1, 1
+  check-ints-equal result, 0x100, "F - shift-left-bytes 1"
+}
+
+fn test-shift-left-bytes-2 {
+  var result/eax: int <- shift-left-bytes 1, 2
+  check-ints-equal result, 0x10000, "F - shift-left-bytes 2"
+}
+
+fn test-shift-left-bytes-3 {
+  var result/eax: int <- shift-left-bytes 1, 3
+  check-ints-equal result, 0x1000000, "F - shift-left-bytes 3"
+}
+
+fn test-shift-left-bytes-4 {
+  var result/eax: int <- shift-left-bytes 1, 4
+  check-ints-equal result, 0, "F - shift-left-bytes 4"
+}
+
+fn test-shift-left-bytes-5 {
+  var result/eax: int <- shift-left-bytes 1, 5
+  check-ints-equal result, 0, "F - shift-left-bytes >4"
+}
+
+# To run all tests, uncomment this and run:
+#   $ ./translate_mu  &&  ./a.elf
+#? fn main -> _/ebx: int {
+#?   run-tests
+#?   r <- copy 0
+#? }
+
+# write a grapheme to a stream of bytes
+# this is like write-to-stream, except we skip leading 0 bytes
+fn write-grapheme out: (addr stream byte), g: grapheme {
+$write-grapheme:body: {
+  var c/eax: int <- copy g
+  append-byte out, c  # first byte is always written
+  c <- shift-right 8
+  compare c, 0
+  break-if-= $write-grapheme:body
+  append-byte out, c
+  c <- shift-right 8
+  compare c, 0
+  break-if-= $write-grapheme:body
+  append-byte out, c
+  c <- shift-right 8
+  compare c, 0
+  break-if-= $write-grapheme:body
+  append-byte out, c
+}
+}
diff --git a/linux/404stream.mu b/linux/404stream.mu
new file mode 100644
index 00000000..19bbb6e5
--- /dev/null
+++ b/linux/404stream.mu
@@ -0,0 +1,69 @@
+# Tests for Mu's stream primitives.
+
+fn test-stream {
+  # - write an int to a stream, then read it back
+  # step 1: initialize
+  var s: (stream int 4)
+  var s2/ecx: (addr stream int) <- address s
+  var tmp/eax: boolean <- stream-empty? s2
+  check-true tmp, "F - test-stream/empty?/0"
+  tmp <- stream-full? s2
+  check-false tmp, "F - test-stream/full?/0"
+  # step 2: write to stream
+  var x: int
+  copy-to x, 0x34
+  var x2/edx: (addr int) <- address x
+  write-to-stream s2, x2
+  tmp <- stream-empty? s2
+  check-false tmp, "F - test-stream/empty?/1"
+  tmp <- stream-full? s2
+  check-false tmp, "F - test-stream/full?/1"
+  # step 3: modify the value written (should make no difference)
+  copy-to x, 0
+  # step 4: read back
+  var y: int
+  var y2/ebx: (addr int) <- address y
+  read-from-stream s2, y2
+  tmp <- stream-empty? s2
+  check-true tmp, "F - test-stream/empty?/2"
+  tmp <- stream-full? s2
+  check-false tmp, "F - test-stream/full?/2"
+  # we read back what was written
+  check-ints-equal y, 0x34, "F - test-stream"
+}
+
+fn test-stream-full {
+  # write an int to a stream of capacity 1
+  var s: (stream int 1)
+  var s2/ecx: (addr stream int) <- address s
+  var tmp/eax: boolean <- stream-full? s2
+  check-false tmp, "F - test-stream-full?/pre"
+  var x: int
+  var x2/edx: (addr int) <- address x
+  write-to-stream s2, x2
+  tmp <- stream-full? s2
+  check-true tmp, "F - test-stream-full?"
+}
+
+fn test-fake-input-buffered-file {
+  var foo: (handle buffered-file)
+  var foo-ah/eax: (addr handle buffered-file) <- address foo
+  populate-buffered-file-containing "abc", foo-ah
+  var foo-addr/eax: (addr buffered-file) <- lookup foo
+  var s: (stream byte 0x100)
+  var result/ecx: (addr stream byte) <- address s
+  read-line-buffered foo-addr, result
+  check-stream-equal result, "abc", "F - test-fake-input-buffered-file"
+}
+
+fn test-fake-output-buffered-file {
+  var foo: (handle buffered-file)
+  var foo-ah/eax: (addr handle buffered-file) <- address foo
+  new-buffered-file foo-ah
+  var foo-addr/eax: (addr buffered-file) <- lookup foo
+  write-buffered foo-addr, "abc"
+  var s: (stream byte 0x100)
+  var result/ecx: (addr stream byte) <- address s
+  read-line-buffered foo-addr, result
+  check-stream-equal result, "abc", "F - test-fake-output-buffered-file"
+}
diff --git a/linux/405screen.mu b/linux/405screen.mu
new file mode 100644
index 00000000..c850df2a
--- /dev/null
+++ b/linux/405screen.mu
@@ -0,0 +1,1445 @@
+# Wrappers for real screen primitives that can be passed a fake screen.
+# The tests here have been painstakingly validated against a real terminal
+# emulator. I believe functionality here is broadly portable across terminal
+# emulators.
+#
+# Remember: fake screen co-ordinates are 1-based, just like in real terminal
+# emulators.
+
+type screen {
+  num-rows: int
+  num-cols: int
+  data: (handle array screen-cell)
+  top-index: int  # 0-indexed
+  cursor-row: int  # 1-indexed
+  cursor-col: int  # 1-indexed
+  cursor-hide?: boolean
+  curr-attributes: screen-cell
+}
+
+type screen-cell {
+  data: grapheme
+  color: int
+  background-color: int
+  bold?: boolean
+  underline?: boolean
+  reverse?: boolean
+  blink?: boolean
+}
+
+fn initialize-screen screen: (addr screen), nrows: int, ncols: int {
+  var screen-addr/esi: (addr screen) <- copy screen
+  var tmp/eax: int <- copy 0
+  var dest/edi: (addr int) <- copy 0
+  # screen->num-rows = nrows
+  dest <- get screen-addr, num-rows
+  tmp <- copy nrows
+  copy-to *dest, tmp
+  # screen->num-cols = ncols
+  dest <- get screen-addr, num-cols
+  tmp <- copy ncols
+  copy-to *dest, tmp
+  # screen->data = new screen-cell[nrows*ncols]
+  {
+    var data-addr/edi: (addr handle array screen-cell) <- get screen-addr, data
+    tmp <- multiply nrows
+    populate data-addr, tmp
+  }
+  # screen->cursor-row = 1
+  dest <- get screen-addr, cursor-row
+  copy-to *dest, 1
+  # screen->cursor-col = 1
+  dest <- get screen-addr, cursor-col
+  copy-to *dest, 1
+  # screen->curr-attributes->background-color = 7  (simulate light background)
+  var tmp2/eax: (addr screen-cell) <- get screen-addr, curr-attributes
+  dest <- get tmp2, background-color
+  copy-to *dest, 7
+}
+
+fn screen-size screen: (addr screen) -> _/eax: int, _/ecx: int {
+  var nrows/eax: int <- copy 0
+  var ncols/ecx: int <- copy 0
+  compare screen, 0
+  {
+    break-if-!=
+    nrows, ncols <- real-screen-size
+    return nrows, ncols
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var tmp/edx: (addr int) <- get screen-addr, num-rows
+  nrows <- copy *tmp
+  tmp <- get screen-addr, num-cols
+  ncols <- copy *tmp
+  return nrows, ncols
+}
+
+fn clear-screen screen: (addr screen) {
+  compare screen, 0
+  {
+    break-if-!=
+    clear-real-screen
+    return
+  }
+  # fake screen
+  var space/edi: grapheme <- copy 0x20
+  move-cursor screen, 1, 1
+  var screen-addr/esi: (addr screen) <- copy screen
+  var i/eax: int <- copy 1
+  var nrows/ecx: (addr int) <- get screen-addr, num-rows
+  {
+    compare i, *nrows
+    break-if->
+    var j/edx: int <- copy 1
+    var ncols/ebx: (addr int) <- get screen-addr, num-cols
+    {
+      compare j, *ncols
+      break-if->
+      print-grapheme screen, space
+      j <- increment
+      loop
+    }
+    i <- increment
+    loop
+  }
+  move-cursor screen, 1, 1
+}
+
+fn move-cursor screen: (addr screen), row: int, column: int {
+  compare screen, 0
+  {
+    break-if-!=
+    move-cursor-on-real-screen row, column
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  # row < 0 is ignored
+  {
+    compare row, 0
+    break-if->=
+    return
+  }
+  # row = 0 is treated same as 1
+  {
+    compare row, 0
+    break-if-!=
+    copy-to row, 1
+  }
+  # row > num-rows saturates to num-rows
+  {
+    var nrows-addr/eax: (addr int) <- get screen-addr, num-rows
+    var nrows/eax: int <- copy *nrows-addr
+    compare row, nrows
+    break-if-<=
+    copy-to row, nrows
+  }
+  # column < 0 is ignored
+  {
+    compare column, 0
+    break-if->=
+    return
+  }
+  # column = 0 is treated same as 1
+  {
+    compare column, 0
+    break-if-!=
+    copy-to column, 1
+  }
+  # column > num-cols saturates to num-cols+1 (so wrapping to next row)
+  {
+    var ncols-addr/eax: (addr int) <- get screen-addr, num-cols
+    var ncols/eax: int <- copy *ncols-addr
+    compare column, ncols
+    break-if-<=
+    copy-to column, ncols
+    increment column
+  }
+  # screen->cursor-row = row
+  var dest/edi: (addr int) <- get screen-addr, cursor-row
+  var src/eax: int <- copy row
+  copy-to *dest, src
+  # screen->cursor-col = column
+  dest <- get screen-addr, cursor-col
+  src <- copy column
+  copy-to *dest, src
+}
+
+fn print-string screen: (addr screen), s: (addr array byte) {
+  compare screen, 0
+  {
+    break-if-!=
+    print-string-to-real-screen s
+    return
+  }
+  # fake screen
+  var stream-storage: (stream byte 0x100)
+  var stream/esi: (addr stream byte) <- address stream-storage
+  write stream, s
+  print-stream screen, stream
+}
+
+fn print-stream _screen: (addr screen), s: (addr stream byte) {
+  var screen/edi: (addr screen) <- copy _screen
+  {
+    var done?/eax: boolean <- stream-empty? s
+    compare done?, 0
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme s
+    print-grapheme screen, g
+    loop
+  }
+}
+
+fn print-array-of-ints-in-decimal screen: (addr screen), _a: (addr array int) {
+  var a/esi: (addr array int) <- copy _a
+  var max/ecx: int <- length a
+  var i/eax: int <- copy 0
+  {
+    compare i, max
+    break-if->=
+    {
+      compare i, 0
+      break-if-=
+      print-string screen, " "
+    }
+    var x/ecx: (addr int) <- index a, i
+    print-int32-decimal screen, *x
+    i <- increment
+    loop
+  }
+}
+
+fn print-grapheme screen: (addr screen), c: grapheme {
+  compare screen, 0
+  {
+    break-if-!=
+    print-grapheme-to-real-screen c
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var cursor-col-addr/edx: (addr int) <- get screen-addr, cursor-col
+  # adjust cursor if necessary
+  # to avoid premature scrolling it's important to do this lazily, at the last possible time
+  {
+    # next row
+    var num-cols-addr/ecx: (addr int) <- get screen-addr, num-cols
+    var num-cols/ecx: int <- copy *num-cols-addr
+    compare *cursor-col-addr, num-cols
+    break-if-<=
+    copy-to *cursor-col-addr, 1
+    var cursor-row-addr/ebx: (addr int) <- get screen-addr, cursor-row
+    increment *cursor-row-addr
+    # scroll
+    var num-rows-addr/eax: (addr int) <- get screen-addr, num-rows
+    var num-rows/eax: int <- copy *num-rows-addr
+    compare *cursor-row-addr, num-rows
+    break-if-<=
+    copy-to *cursor-row-addr, num-rows
+    # if (top-index > data size) top-index = 0, otherwise top-index += num-cols
+    $print-grapheme:perform-scroll: {
+      var top-index-addr/ebx: (addr int) <- get screen-addr, top-index
+      var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+      var data/eax: (addr array screen-cell) <- lookup *data-ah
+      var max-index/edi: int <- length data
+      compare *top-index-addr, max-index
+      {
+        break-if->=
+        add-to *top-index-addr, num-cols
+        break $print-grapheme:perform-scroll
+      }
+      {
+        break-if-<
+        copy-to *top-index-addr, 0
+      }
+    }
+  }
+  var idx/ecx: int <- current-screen-cell-index screen-addr
+#?   print-string-to-real-screen "printing grapheme at screen index "
+#?   print-int32-hex-to-real-screen idx
+#?   print-string-to-real-screen ": "
+  var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var offset/ecx: (offset screen-cell) <- compute-offset data, idx
+  var dest-cell/ecx: (addr screen-cell) <- index data, offset
+  var src-cell/eax: (addr screen-cell) <- get screen-addr, curr-attributes
+  copy-object src-cell, dest-cell
+  var dest/eax: (addr grapheme) <- get dest-cell, data
+  var c2/ecx: grapheme <- copy c
+#?   print-grapheme-to-real-screen c2
+#?   print-string-to-real-screen "\n"
+  copy-to *dest, c2
+  increment *cursor-col-addr
+}
+
+fn current-screen-cell-index screen-on-stack: (addr screen) -> _/ecx: int {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var cursor-row-addr/ecx: (addr int) <- get screen, cursor-row
+  var cursor-col-addr/eax: (addr int) <- get screen, cursor-col
+  var result/ecx: int <- screen-cell-index screen, *cursor-row-addr, *cursor-col-addr
+  return result
+}
+
+fn screen-cell-index screen-on-stack: (addr screen), row: int, col: int -> _/ecx: int {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var num-cols-addr/eax: (addr int) <- get screen, num-cols
+  var num-cols/eax: int <- copy *num-cols-addr
+  var result/ecx: int <- copy row
+  result <- subtract 1
+  result <- multiply num-cols
+  result <- add col
+  result <- subtract 1
+  # result = (result + top-index) % data length
+  var top-index-addr/eax: (addr int) <- get screen, top-index
+  result <- add *top-index-addr
+  var data-ah/eax: (addr handle array screen-cell) <- get screen, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var max-index/eax: int <- length data
+  compare result, max-index
+  {
+    break-if-<
+    result <- subtract max-index
+  }
+  return result
+}
+
+fn screen-grapheme-at screen-on-stack: (addr screen), row: int, col: int -> _/eax: grapheme {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen-addr, row, col
+  var result/eax: grapheme <- screen-grapheme-at-idx screen-addr, idx
+  return result
+}
+
+fn screen-grapheme-at-idx screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: grapheme {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var idx/ecx: int <- copy idx-on-stack
+  var offset/ecx: (offset screen-cell) <- compute-offset data, idx
+  var cell/eax: (addr screen-cell) <- index data, offset
+  var src/eax: (addr grapheme) <- get cell, data
+  return *src
+}
+
+fn screen-color-at screen-on-stack: (addr screen), row: int, col: int -> _/eax: int {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen-addr, row, col
+  var result/eax: int <- screen-color-at-idx screen-addr, idx
+  return result
+}
+
+fn screen-color-at-idx screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: int {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var idx/ecx: int <- copy idx-on-stack
+  var offset/ecx: (offset screen-cell) <- compute-offset data, idx
+  var cell/eax: (addr screen-cell) <- index data, offset
+  var src/eax: (addr int) <- get cell, color
+  var result/eax: int <- copy *src
+  return result
+}
+
+fn screen-background-color-at screen-on-stack: (addr screen), row: int, col: int -> _/eax: int {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen-addr, row, col
+  var result/eax: int <- screen-background-color-at-idx screen-addr, idx
+  return result
+}
+
+fn screen-background-color-at-idx screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: int {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var idx/ecx: int <- copy idx-on-stack
+  var offset/ecx: (offset screen-cell) <- compute-offset data, idx
+  var cell/eax: (addr screen-cell) <- index data, offset
+  var src/eax: (addr int) <- get cell, background-color
+  return *src
+}
+
+fn screen-bold-at? screen-on-stack: (addr screen), row: int, col: int -> _/eax: boolean {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen-addr, row, col
+  var result/eax: boolean <- screen-bold-at-idx? screen-addr, idx
+  return result
+}
+
+fn screen-bold-at-idx? screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: boolean {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var idx/ecx: int <- copy idx-on-stack
+  var offset/ecx: (offset screen-cell) <- compute-offset data, idx
+  var cell/eax: (addr screen-cell) <- index data, offset
+  var src/eax: (addr boolean) <- get cell, bold?
+  return *src
+}
+
+fn screen-underline-at? screen-on-stack: (addr screen), row: int, col: int -> _/eax: boolean {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen-addr, row, col
+  var result/eax: boolean <- screen-underline-at-idx? screen-addr, idx
+  return result
+}
+
+fn screen-underline-at-idx? screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: boolean {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var idx/ecx: int <- copy idx-on-stack
+  var offset/ecx: (offset screen-cell) <- compute-offset data, idx
+  var cell/eax: (addr screen-cell) <- index data, offset
+  var src/eax: (addr boolean) <- get cell, underline?
+  return *src
+}
+
+fn screen-reverse-at? screen-on-stack: (addr screen), row: int, col: int -> _/eax: boolean {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen-addr, row, col
+  var result/eax: boolean <- screen-reverse-at-idx? screen-addr, idx
+  return result
+}
+
+fn screen-reverse-at-idx? screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: boolean {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var idx/ecx: int <- copy idx-on-stack
+  var offset/ecx: (offset screen-cell) <- compute-offset data, idx
+  var cell/eax: (addr screen-cell) <- index data, offset
+  var src/eax: (addr boolean) <- get cell, reverse?
+  return *src
+}
+
+fn screen-blink-at? screen-on-stack: (addr screen), row: int, col: int -> _/eax: boolean {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen-addr, row, col
+  var result/eax: boolean <- screen-blink-at-idx? screen-addr, idx
+  return result
+}
+
+fn screen-blink-at-idx? screen-on-stack: (addr screen), idx-on-stack: int -> _/eax: boolean {
+  var screen-addr/esi: (addr screen) <- copy screen-on-stack
+  var data-ah/eax: (addr handle array screen-cell) <- get screen-addr, data
+  var data/eax: (addr array screen-cell) <- lookup *data-ah
+  var idx/ecx: int <- copy idx-on-stack
+  var offset/ecx: (offset screen-cell) <- compute-offset data, idx
+  var cell/eax: (addr screen-cell) <- index data, offset
+  var src/eax: (addr boolean) <- get cell, blink?
+  return *src
+}
+
+fn print-code-point screen: (addr screen), c: code-point {
+  var g/eax: grapheme <- to-grapheme c
+  print-grapheme screen, g
+}
+
+fn print-int32-hex screen: (addr screen), n: int {
+  compare screen, 0
+  {
+    break-if-!=
+    print-int32-hex-to-real-screen n
+    return
+  }
+  # fake screen
+  var s2: (stream byte 0x100)
+  var s2-addr/esi: (addr stream byte) <- address s2
+  write-int32-hex s2-addr, n
+  var screen-addr/edi: (addr screen) <- copy screen
+  {
+    var done?/eax: boolean <- stream-empty? s2-addr
+    compare done?, 0
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme s2-addr
+    print-grapheme screen, g
+    loop
+  }
+}
+
+fn print-int32-hex-bits screen: (addr screen), n: int, bits: int {
+  compare screen, 0
+  {
+    break-if-!=
+    print-int32-hex-bits-to-real-screen n, bits
+    return
+  }
+  # fake screen
+  var s2: (stream byte 0x100)
+  var s2-addr/esi: (addr stream byte) <- address s2
+  write-int32-hex-bits s2-addr, n, bits
+  var screen-addr/edi: (addr screen) <- copy screen
+  {
+    var done?/eax: boolean <- stream-empty? s2-addr
+    compare done?, 0
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme s2-addr
+    print-grapheme screen, g
+    loop
+  }
+}
+
+fn print-int32-decimal screen: (addr screen), n: int {
+  compare screen, 0
+  {
+    break-if-!=
+    print-int32-decimal-to-real-screen n
+    return
+  }
+  # fake screen
+  var s2: (stream byte 0x100)
+  var s2-addr/esi: (addr stream byte) <- address s2
+  write-int32-decimal s2-addr, n
+  var screen-addr/edi: (addr screen) <- copy screen
+  {
+    var done?/eax: boolean <- stream-empty? s2-addr
+    compare done?, 0
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme s2-addr
+    print-grapheme screen, g
+    loop
+  }
+}
+
+fn reset-formatting screen: (addr screen) {
+  compare screen, 0
+  {
+    break-if-!=
+    reset-formatting-on-real-screen
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var dest/ecx: (addr screen-cell) <- get screen-addr, curr-attributes
+  var default-cell: screen-cell
+  var bg/eax: (addr int) <- get default-cell, background-color
+  copy-to *bg, 7
+  var default-cell-addr/eax: (addr screen-cell) <- address default-cell
+  copy-object default-cell-addr, dest
+}
+
+fn start-color screen: (addr screen), fg: int, bg: int {
+  compare screen, 0
+  {
+    break-if-!=
+    start-color-on-real-screen fg, bg
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var attr/ecx: (addr screen-cell) <- get screen-addr, curr-attributes
+  var dest/edx: (addr int) <- get attr, color
+  var src/eax: int <- copy fg
+  copy-to *dest, src
+  var dest/edx: (addr int) <- get attr, background-color
+  var src/eax: int <- copy bg
+  copy-to *dest, src
+}
+
+fn start-bold screen: (addr screen) {
+  compare screen, 0
+  {
+    break-if-!=
+    start-bold-on-real-screen
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var attr/ecx: (addr screen-cell) <- get screen-addr, curr-attributes
+  var dest/edx: (addr boolean) <- get attr, bold?
+  copy-to *dest, 1
+}
+
+fn start-underline screen: (addr screen) {
+  compare screen, 0
+  {
+    break-if-!=
+    start-underline-on-real-screen
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var attr/ecx: (addr screen-cell) <- get screen-addr, curr-attributes
+  var dest/edx: (addr boolean) <- get attr, underline?
+  copy-to *dest, 1
+}
+
+fn start-reverse-video screen: (addr screen) {
+  compare screen, 0
+  {
+    break-if-!=
+    start-reverse-video-on-real-screen
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var attr/ecx: (addr screen-cell) <- get screen-addr, curr-attributes
+  var dest/edx: (addr boolean) <- get attr, reverse?
+  copy-to *dest, 1
+}
+
+fn start-blinking screen: (addr screen) {
+  compare screen, 0
+  {
+    break-if-!=
+    start-blinking-on-real-screen
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var attr/ecx: (addr screen-cell) <- get screen-addr, curr-attributes
+  var dest/edx: (addr boolean) <- get attr, blink?
+  copy-to *dest, 1
+}
+
+fn hide-cursor screen: (addr screen) {
+  compare screen, 0
+  {
+    break-if-!=
+    hide-cursor-on-real-screen
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var hide?/ecx: (addr boolean) <- get screen-addr, cursor-hide?
+  copy-to *hide?, 1
+}
+
+fn show-cursor screen: (addr screen) {
+  compare screen, 0
+  {
+    break-if-!=
+    show-cursor-on-real-screen
+    return
+  }
+  # fake screen
+  var screen-addr/esi: (addr screen) <- copy screen
+  var hide?/ecx: (addr boolean) <- get screen-addr, cursor-hide?
+  copy-to *hide?, 0
+}
+
+# validate data on screen regardless of attributes (color, bold, etc.)
+# Mu doesn't have multi-line strings, so we provide functions for rows or portions of rows.
+# Tab characters (that translate into multiple screen cells) not supported.
+
+fn check-screen-row screen: (addr screen), row-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  check-screen-row-from screen, row-idx, 1, expected, msg
+}
+
+fn check-screen-row-from screen-on-stack: (addr screen), row-idx: int, col-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen, row-idx, col-idx
+  # compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
+  var e: (stream byte 0x100)
+  var e-addr/edx: (addr stream byte) <- address e
+  write e-addr, expected
+  {
+    var done?/eax: boolean <- stream-empty? e-addr
+    compare done?, 0
+    break-if-!=
+    var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
+    var g/ebx: grapheme <- copy _g
+    var expected-grapheme/eax: grapheme <- read-grapheme e-addr
+    # compare graphemes
+    $check-screen-row-from:compare-graphemes: {
+      # if expected-grapheme is space, null grapheme is also ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        compare g, 0
+        break-if-= $check-screen-row-from:compare-graphemes
+      }
+      # if (g == expected-grapheme) print "."
+      compare g, expected-grapheme
+      {
+        break-if-!=
+        print-string-to-real-screen "."
+        break $check-screen-row-from:compare-graphemes
+      }
+      # otherwise print an error
+      print-string-to-real-screen msg
+      print-string-to-real-screen ": expected '"
+      print-grapheme-to-real-screen expected-grapheme
+      print-string-to-real-screen "' at ("
+      print-int32-hex-to-real-screen row-idx
+      print-string-to-real-screen ", "
+      print-int32-hex-to-real-screen col-idx
+      print-string-to-real-screen ") but observed '"
+      print-grapheme-to-real-screen g
+      print-string-to-real-screen "'\n"
+    }
+    idx <- increment
+    increment col-idx
+    loop
+  }
+}
+
+# various variants by screen-cell attribute; spaces in the 'expected' data should not match the attribute
+
+fn check-screen-row-in-color screen: (addr screen), fg: int, row-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  check-screen-row-in-color-from screen, fg, row-idx, 1, expected, msg
+}
+
+fn check-screen-row-in-color-from screen-on-stack: (addr screen), fg: int, row-idx: int, col-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen, row-idx, col-idx
+  # compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
+  var e: (stream byte 0x100)
+  var e-addr/edx: (addr stream byte) <- address e
+  write e-addr, expected
+  {
+    var done?/eax: boolean <- stream-empty? e-addr
+    compare done?, 0
+    break-if-!=
+    var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
+    var g/ebx: grapheme <- copy _g
+    var _expected-grapheme/eax: grapheme <- read-grapheme e-addr
+    var expected-grapheme/edi: grapheme <- copy _expected-grapheme
+    $check-screen-row-in-color-from:compare-cells: {
+      # if expected-grapheme is space, null grapheme is also ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        compare g, 0
+        break-if-= $check-screen-row-in-color-from:compare-cells
+      }
+      # if expected-grapheme is space, a different color is ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        var color/eax: int <- screen-color-at-idx screen, idx
+        compare color, fg
+        break-if-!= $check-screen-row-in-color-from:compare-cells
+      }
+      # compare graphemes
+      $check-screen-row-in-color-from:compare-graphemes: {
+        # if (g == expected-grapheme) print "."
+        compare g, expected-grapheme
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-color-from:compare-graphemes
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") but observed '"
+        print-grapheme-to-real-screen g
+        print-string-to-real-screen "'\n"
+      }
+      $check-screen-row-in-color-from:compare-colors: {
+        var color/eax: int <- screen-color-at-idx screen, idx
+        compare fg, color
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-color-from:compare-colors
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") in color "
+        print-int32-hex-to-real-screen fg
+        print-string-to-real-screen " but observed color "
+        print-int32-hex-to-real-screen color
+        print-string-to-real-screen "\n"
+      }
+    }
+    idx <- increment
+    increment col-idx
+    loop
+  }
+}
+
+# background color is visible even for spaces, so 'expected' behaves as an array of booleans.
+# non-space = given background must match; space = background must not match
+fn check-screen-row-in-background-color screen: (addr screen), bg: int, row-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  check-screen-row-in-background-color-from screen, bg, row-idx, 1, expected, msg
+}
+
+fn check-screen-row-in-background-color-from screen-on-stack: (addr screen), bg: int, row-idx: int, col-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen, row-idx, col-idx
+  # compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
+  var e: (stream byte 0x100)
+  var e-addr/edx: (addr stream byte) <- address e
+  write e-addr, expected
+  {
+    var done?/eax: boolean <- stream-empty? e-addr
+    compare done?, 0
+    break-if-!=
+    var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
+    var g/ebx: grapheme <- copy _g
+    var _expected-grapheme/eax: grapheme <- read-grapheme e-addr
+    var expected-grapheme/edx: grapheme <- copy _expected-grapheme
+    $check-screen-row-in-background-color-from:compare-cells: {
+      # if expected-grapheme is space, null grapheme is also ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        compare g, 0
+        break-if-= $check-screen-row-in-background-color-from:compare-cells
+      }
+      # if expected-grapheme is space, a different color is ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        var color/eax: int <- screen-background-color-at-idx screen, idx
+        compare color, bg
+        break-if-!= $check-screen-row-in-background-color-from:compare-cells
+      }
+      # compare graphemes
+      $check-screen-row-in-background-color-from:compare-graphemes: {
+        # if (g == expected-grapheme) print "."
+        compare g, expected-grapheme
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-background-color-from:compare-graphemes
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") but observed '"
+        print-grapheme-to-real-screen g
+        print-string-to-real-screen "'\n"
+      }
+      $check-screen-row-in-background-color-from:compare-colors: {
+        var color/eax: int <- screen-background-color-at-idx screen, idx
+        compare bg, color
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-background-color-from:compare-colors
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") in background color "
+        print-int32-hex-to-real-screen bg
+        print-string-to-real-screen " but observed color "
+        print-int32-hex-to-real-screen color
+        print-string-to-real-screen "\n"
+      }
+    }
+    idx <- increment
+    increment col-idx
+    loop
+  }
+}
+
+fn check-screen-row-in-bold screen: (addr screen), row-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  check-screen-row-in-bold-from screen, row-idx, 1, expected, msg
+}
+
+fn check-screen-row-in-bold-from screen-on-stack: (addr screen), row-idx: int, col-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen, row-idx, col-idx
+  # compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
+  var e: (stream byte 0x100)
+  var e-addr/edx: (addr stream byte) <- address e
+  write e-addr, expected
+  {
+    var done?/eax: boolean <- stream-empty? e-addr
+    compare done?, 0
+    break-if-!=
+    var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
+    var g/ebx: grapheme <- copy _g
+    var _expected-grapheme/eax: grapheme <- read-grapheme e-addr
+    var expected-grapheme/edx: grapheme <- copy _expected-grapheme
+    $check-screen-row-in-bold-from:compare-cells: {
+      # if expected-grapheme is space, null grapheme is also ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        compare g, 0
+        break-if-= $check-screen-row-in-bold-from:compare-cells
+      }
+      # if expected-grapheme is space, non-bold is ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        var bold?/eax: boolean <- screen-bold-at-idx? screen, idx
+        compare bold?, 1
+        break-if-!= $check-screen-row-in-bold-from:compare-cells
+      }
+      # compare graphemes
+      $check-screen-row-in-bold-from:compare-graphemes: {
+        # if (g == expected-grapheme) print "."
+        compare g, expected-grapheme
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-bold-from:compare-graphemes
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") but observed '"
+        print-grapheme-to-real-screen g
+        print-string-to-real-screen "'\n"
+      }
+      $check-screen-row-in-bold-from:compare-bold: {
+        var bold?/eax: boolean <- screen-bold-at-idx? screen, idx
+        compare bold?, 1
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-bold-from:compare-bold
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") to be in bold\n"
+      }
+    }
+    idx <- increment
+    increment col-idx
+    loop
+  }
+}
+
+fn check-screen-row-in-underline screen: (addr screen), row-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  check-screen-row-in-underline-from screen, row-idx, 1, expected, msg
+}
+
+fn check-screen-row-in-underline-from screen-on-stack: (addr screen), row-idx: int, col-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen, row-idx, col-idx
+  # compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
+  var e: (stream byte 0x100)
+  var e-addr/edx: (addr stream byte) <- address e
+  write e-addr, expected
+  {
+    var done?/eax: boolean <- stream-empty? e-addr
+    compare done?, 0
+    break-if-!=
+    var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
+    var g/ebx: grapheme <- copy _g
+    var _expected-grapheme/eax: grapheme <- read-grapheme e-addr
+    var expected-grapheme/edx: grapheme <- copy _expected-grapheme
+    $check-screen-row-in-underline-from:compare-cells: {
+      # if expected-grapheme is space, null grapheme is also ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        compare g, 0
+        break-if-= $check-screen-row-in-underline-from:compare-cells
+      }
+      # if expected-grapheme is space, non-underline is ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        var underline?/eax: boolean <- screen-underline-at-idx? screen, idx
+        compare underline?, 1
+        break-if-!= $check-screen-row-in-underline-from:compare-cells
+      }
+      # compare graphemes
+      $check-screen-row-in-underline-from:compare-graphemes: {
+        # if (g == expected-grapheme) print "."
+        compare g, expected-grapheme
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-underline-from:compare-graphemes
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") but observed '"
+        print-grapheme-to-real-screen g
+        print-string-to-real-screen "'\n"
+      }
+      $check-screen-row-in-underline-from:compare-underline: {
+        var underline?/eax: boolean <- screen-underline-at-idx? screen, idx
+        compare underline?, 1
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-underline-from:compare-underline
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") to be underlined\n"
+      }
+    }
+    idx <- increment
+    increment col-idx
+    loop
+  }
+}
+
+fn check-screen-row-in-reverse screen: (addr screen), row-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  check-screen-row-in-reverse-from screen, row-idx, 1, expected, msg
+}
+
+fn check-screen-row-in-reverse-from screen-on-stack: (addr screen), row-idx: int, col-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen, row-idx, col-idx
+  # compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
+  var e: (stream byte 0x100)
+  var e-addr/edx: (addr stream byte) <- address e
+  write e-addr, expected
+  {
+    var done?/eax: boolean <- stream-empty? e-addr
+    compare done?, 0
+    break-if-!=
+    var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
+    var g/ebx: grapheme <- copy _g
+    var _expected-grapheme/eax: grapheme <- read-grapheme e-addr
+    var expected-grapheme/edx: grapheme <- copy _expected-grapheme
+    $check-screen-row-in-reverse-from:compare-cells: {
+      # if expected-grapheme is space, null grapheme is also ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        compare g, 0
+        break-if-= $check-screen-row-in-reverse-from:compare-cells
+      }
+      # if expected-grapheme is space, non-reverse is ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        var reverse?/eax: boolean <- screen-reverse-at-idx? screen, idx
+        compare reverse?, 1
+        break-if-!= $check-screen-row-in-reverse-from:compare-cells
+      }
+      # compare graphemes
+      $check-screen-row-in-reverse-from:compare-graphemes: {
+        # if (g == expected-grapheme) print "."
+        compare g, expected-grapheme
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-reverse-from:compare-graphemes
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") but observed '"
+        print-grapheme-to-real-screen g
+        print-string-to-real-screen "'\n"
+      }
+      $check-screen-row-in-reverse-from:compare-reverse: {
+        var reverse?/eax: boolean <- screen-reverse-at-idx? screen, idx
+        compare reverse?, 1
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-reverse-from:compare-reverse
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") to be in reverse-video\n"
+      }
+    }
+    idx <- increment
+    increment col-idx
+    loop
+  }
+}
+
+fn check-screen-row-in-blinking screen: (addr screen), row-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  check-screen-row-in-blinking-from screen, row-idx, 1, expected, msg
+}
+
+fn check-screen-row-in-blinking-from screen-on-stack: (addr screen), row-idx: int, col-idx: int, expected: (addr array byte), msg: (addr array byte) {
+  var screen/esi: (addr screen) <- copy screen-on-stack
+  var idx/ecx: int <- screen-cell-index screen, row-idx, col-idx
+  # compare 'expected' with the screen contents starting at 'idx', grapheme by grapheme
+  var e: (stream byte 0x100)
+  var e-addr/edx: (addr stream byte) <- address e
+  write e-addr, expected
+  {
+    var done?/eax: boolean <- stream-empty? e-addr
+    compare done?, 0
+    break-if-!=
+    var _g/eax: grapheme <- screen-grapheme-at-idx screen, idx
+    var g/ebx: grapheme <- copy _g
+    var _expected-grapheme/eax: grapheme <- read-grapheme e-addr
+    var expected-grapheme/edx: grapheme <- copy _expected-grapheme
+    $check-screen-row-in-blinking-from:compare-cells: {
+      # if expected-grapheme is space, null grapheme is also ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        compare g, 0
+        break-if-= $check-screen-row-in-blinking-from:compare-cells
+      }
+      # if expected-grapheme is space, non-blinking is ok
+      {
+        compare expected-grapheme, 0x20
+        break-if-!=
+        var blinking?/eax: boolean <- screen-blink-at-idx? screen, idx
+        compare blinking?, 1
+        break-if-!= $check-screen-row-in-blinking-from:compare-cells
+      }
+      # compare graphemes
+      $check-screen-row-in-blinking-from:compare-graphemes: {
+        # if (g == expected-grapheme) print "."
+        compare g, expected-grapheme
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-blinking-from:compare-graphemes
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") but observed '"
+        print-grapheme-to-real-screen g
+        print-string-to-real-screen "'\n"
+      }
+      $check-screen-row-in-blinking-from:compare-blinking: {
+        var blinking?/eax: boolean <- screen-blink-at-idx? screen, idx
+        compare blinking?, 1
+        {
+          break-if-!=
+          print-string-to-real-screen "."
+          break $check-screen-row-in-blinking-from:compare-blinking
+        }
+        # otherwise print an error
+        print-string-to-real-screen msg
+        print-string-to-real-screen ": expected '"
+        print-grapheme-to-real-screen expected-grapheme
+        print-string-to-real-screen "' at ("
+        print-int32-hex-to-real-screen row-idx
+        print-string-to-real-screen ", "
+        print-int32-hex-to-real-screen col-idx
+        print-string-to-real-screen ") to be blinking\n"
+      }
+    }
+    idx <- increment
+    increment col-idx
+
+    loop
+  }
+}
+
+fn test-print-single-grapheme {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  check-screen-row screen, 1/row, "a", "F - test-print-single-grapheme"  # top-left corner of the screen
+}
+
+fn test-print-multiple-graphemes {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  print-string screen, "Hello, 世界"
+  check-screen-row screen, 1/row, "Hello, 世界", "F - test-print-multiple-graphemes"
+}
+
+fn test-move-cursor {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  move-cursor screen, 1, 4
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  check-screen-row screen, 1/row, "   a", "F - test-move-cursor"  # top row
+}
+
+fn test-move-cursor-zeroes {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  move-cursor screen, 0, 0
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  check-screen-row screen, 1/row, "a", "F - test-move-cursor-zeroes"  # top-left corner of the screen
+}
+
+fn test-move-cursor-zero-row {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  move-cursor screen, 0, 2
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  check-screen-row screen, 1/row, " a", "F - test-move-cursor-zero-row"  # top row
+}
+
+fn test-move-cursor-zero-column {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  move-cursor screen, 4, 0
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  check-screen-row screen, 4/row, "a", "F - test-move-cursor-zero-column"
+}
+
+fn test-move-cursor-negative-row {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 3
+  move-cursor screen, -1/row, 2/col
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  # no move
+  check-screen-row screen, 1/row, "a", "F - test-move-cursor-negative-row"
+}
+
+fn test-move-cursor-negative-column {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 3
+  move-cursor screen, 2/row, -1/col
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  # no move
+  check-screen-row screen, 1/row, "a", "F - test-move-cursor-negative-column"
+}
+
+fn test-move-cursor-column-too-large {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 3/cols
+  move-cursor screen, 1/row, 4/col
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  # top row is empty
+  check-screen-row screen, 1/row, "   ", "F - test-move-cursor-column-too-large"
+  # character shows up on next row
+  check-screen-row screen, 2/row, "a", "F - test-move-cursor-column-too-large"
+}
+
+fn test-move-cursor-column-too-large-saturates {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 3/cols
+  move-cursor screen, 1/row, 6/col
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  # top row is empty
+  check-screen-row screen, 1/row, "   ", "F - test-move-cursor-column-too-large-saturates"  # top-left corner of the screen
+  # character shows up at the start of next row
+  check-screen-row screen, 2/row, "a", "F - test-move-cursor-column-too-large-saturates"  # top-left corner of the screen
+}
+
+fn test-move-cursor-row-too-large {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 3/cols
+  move-cursor screen, 6/row, 2/col
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  # bottom row shows the character
+  check-screen-row screen, 5/row, " a", "F - test-move-cursor-row-too-large"
+}
+
+fn test-move-cursor-row-too-large-saturates {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 3/cols
+  move-cursor screen, 9/row, 2/col
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  # bottom row shows the character
+  check-screen-row screen, 5/row, " a", "F - test-move-cursor-row-too-large-saturates"
+}
+
+fn test-check-screen-row-from {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  move-cursor screen, 1, 4
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  check-screen-row screen, 1/row, "   a", "F - test-check-screen-row-from/baseline"
+  check-screen-row-from screen, 1/row, 4/col, "a", "F - test-check-screen-row-from"
+}
+
+fn test-print-string-overflows-to-next-row {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  print-string screen, "abcdefg"
+  check-screen-row screen, 1/row, "abcd", "F - test-print-string-overflows-to-next-row"
+  check-screen-row screen, 2/row, "efg", "F - test-print-string-overflows-to-next-row"
+}
+
+fn test-check-screen-scrolls-on-overflow {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  # single character starting at bottom right
+  move-cursor screen, 5/rows, 4/cols
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  check-screen-row-from screen, 5/row, 4/col, "a", "F - test-check-screen-scrolls-on-overflow/baseline"  # bottom-right corner of the screen
+  # multiple characters starting at bottom right
+  move-cursor screen, 5, 4
+  print-string screen, "ab"
+  # screen scrolled up one row
+#?   check-screen-row screen, 1/row, "    ", "F - test-check-screen-scrolls-on-overflow/x1"
+#?   check-screen-row screen, 2/row, "    ", "F - test-check-screen-scrolls-on-overflow/x2"
+#?   check-screen-row screen, 3/row, "    ", "F - test-check-screen-scrolls-on-overflow/x3"
+#?   check-screen-row screen, 4/row, "   a", "F - test-check-screen-scrolls-on-overflow/x4"
+#?   check-screen-row screen, 5/row, "b   ", "F - test-check-screen-scrolls-on-overflow/x5"
+  check-screen-row-from screen, 4/row, 4/col, "a", "F - test-check-screen-scrolls-on-overflow/1"
+  check-screen-row-from screen, 5/row, 1/col, "b", "F - test-check-screen-scrolls-on-overflow/2"
+}
+
+fn test-check-screen-color {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  start-color screen, 1/fg, 0/bg
+  c <- copy 0x62/b
+  print-grapheme screen, c
+  start-color screen, 0/fg, 7/bg
+  c <- copy 0x63/c
+  print-grapheme screen, c
+  check-screen-row-in-color screen, 0/fg, 1/row, "a c", "F - test-check-screen-color"
+}
+
+fn test-check-screen-background-color {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  start-color screen, 0/fg, 1/bg
+  c <- copy 0x62/b
+  print-grapheme screen, c
+  start-color screen, 0/fg, 7/bg
+  c <- copy 0x63/c
+  print-grapheme screen, c
+  check-screen-row-in-background-color screen, 7/bg, 1/row, "a c", "F - test-check-screen-background-color"
+}
+
+fn test-check-screen-bold {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  start-bold screen
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  reset-formatting screen
+  c <- copy 0x62/b
+  print-grapheme screen, c
+  start-bold screen
+  c <- copy 0x63/c
+  print-grapheme screen, c
+  check-screen-row-in-bold screen, 1/row, "a c", "F - test-check-screen-bold"
+}
+
+fn test-check-screen-underline {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  start-underline screen
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  reset-formatting screen
+  c <- copy 0x62/b
+  print-grapheme screen, c
+  start-underline screen
+  c <- copy 0x63/c
+  print-grapheme screen, c
+  check-screen-row-in-underline screen, 1/row, "a c", "F - test-check-screen-underline"
+}
+
+fn test-check-screen-reverse {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  start-reverse-video screen
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  reset-formatting screen
+  c <- copy 0x62/b
+  print-grapheme screen, c
+  start-reverse-video screen
+  c <- copy 0x63/c
+  print-grapheme screen, c
+  check-screen-row-in-reverse screen, 1/row, "a c", "F - test-check-screen-reverse"
+}
+
+fn test-check-screen-blinking {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5/rows, 4/cols
+  start-blinking screen
+  var c/eax: grapheme <- copy 0x61/a
+  print-grapheme screen, c
+  reset-formatting screen
+  c <- copy 0x62/b
+  print-grapheme screen, c
+  start-blinking screen
+  c <- copy 0x63/c
+  print-grapheme screen, c
+  check-screen-row-in-blinking screen, 1/row, "a c", "F - test-check-screen-blinking"
+}
+
+#? fn main -> _/ebx: int {
+#? #?   test-check-screen-color
+#?   run-tests
+#?   return 0
+#? }
diff --git a/linux/406int32.mu b/linux/406int32.mu
new file mode 100644
index 00000000..d69fe8e2
--- /dev/null
+++ b/linux/406int32.mu
@@ -0,0 +1,39 @@
+# Some slow but convenient helpers
+
+# slow, iterative shift-left instruction
+# preconditions: _nr >= 0, _dr > 0
+fn repeated-shift-left nr: int, dr: int -> _/eax: int {
+  var result/eax: int <- copy nr
+  {
+    compare dr, 0
+    break-if-<=
+    result <- shift-left 1
+    decrement dr
+    loop
+  }
+  return result
+}
+
+# slow, iterative shift-right instruction
+# preconditions: _nr >= 0, _dr > 0
+fn repeated-shift-right nr: int, dr: int -> _/eax: int {
+  var result/eax: int <- copy nr
+  {
+    compare dr, 0
+    break-if-<=
+    result <- shift-right 1
+    decrement dr
+    loop
+  }
+  return result
+}
+
+fn abs n: int -> _/eax: int {
+  var result/eax: int <- copy n
+  {
+    compare n, 0
+    break-if->=
+    result <- negate
+  }
+  return result
+}
diff --git a/linux/407right-justify.mu b/linux/407right-justify.mu
new file mode 100644
index 00000000..b7322ae5
--- /dev/null
+++ b/linux/407right-justify.mu
@@ -0,0 +1,14 @@
+# print 'n' with enough leading spaces to be right-justified in 'width'
+fn print-int32-decimal-right-justified screen: (addr screen), n: int, _width: int {
+  # tweak things for negative numbers
+  var n-width/eax: int <- decimal-size n
+  var width/ecx: int <- copy _width
+  {
+    compare n-width, width
+    break-if->=
+    print-grapheme screen, 0x20/space
+    width <- decrement
+    loop
+  }
+  print-int32-decimal screen, n
+}
diff --git a/linux/408float.mu b/linux/408float.mu
new file mode 100644
index 00000000..d1c04836
--- /dev/null
+++ b/linux/408float.mu
@@ -0,0 +1,23 @@
+# Some quick-n-dirty ways to create floats.
+
+fn fill-in-rational _out: (addr float), nr: int, dr: int {
+  var out/edi: (addr float) <- copy _out
+  var result/xmm0: float <- convert nr
+  var divisor/xmm1: float <- convert dr
+  result <- divide divisor
+  copy-to *out, result
+}
+
+fn fill-in-sqrt _out: (addr float), n: int {
+  var out/edi: (addr float) <- copy _out
+  var result/xmm0: float <- convert n
+  result <- square-root result
+  copy-to *out, result
+}
+
+fn rational nr: int, dr: int -> _/xmm0: float {
+  var result/xmm0: float <- convert nr
+  var divisor/xmm1: float <- convert dr
+  result <- divide divisor
+  return result
+}
diff --git a/linux/409print-float-hex.mu b/linux/409print-float-hex.mu
new file mode 100644
index 00000000..043576b6
--- /dev/null
+++ b/linux/409print-float-hex.mu
@@ -0,0 +1,196 @@
+# quick-n-dirty way to print out floats in hex
+# https://www.exploringbinary.com/hexadecimal-floating-point-constants
+
+# example:
+#   0.5 = 0x3f000000 = 0011| 1111 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000
+#                    = 0 | 01111110 | 00000000000000000000000
+#                      +   exponent   mantissa
+#                    = 0 | 00000000000000000000000 | 01111110
+#                          mantissa                  exponent
+#                    = 0 | 000000000000000000000000 | 01111110
+#                          zero-pad mantissa          exponent
+#                   =   +1.000000                   P -01
+fn test-print-float-hex-normal {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 0x20  # 32 columns should be more than enough
+  # 0.5
+  var half/xmm0: float <- rational 1, 2
+  print-float-hex screen, half
+  check-screen-row screen, 1, "1.000000P-01 ", "F - test-print-float-hex-normal 0.5"
+  # 0.25
+  clear-screen screen
+  var quarter/xmm0: float <- rational 1, 4
+  print-float-hex screen, quarter
+  check-screen-row screen, 1, "1.000000P-02 ", "F - test-print-float-hex-normal 0.25"
+  # 0.75
+  clear-screen screen
+  var three-quarters/xmm0: float <- rational 3, 4
+  print-float-hex screen, three-quarters
+  check-screen-row screen, 1, "1.800000P-01 ", "F - test-print-float-hex-normal 0.75"
+  # 0.1
+  clear-screen screen
+  var tenth/xmm0: float <- rational 1, 0xa
+  print-float-hex screen, tenth
+  check-screen-row screen, 1, "1.99999aP-04 ", "F - test-print-float-hex-normal 0.1"
+}
+
+fn test-print-float-hex-integer {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 0x20  # 32 columns should be more than enough
+  # 1
+  var one-f/xmm0: float <- rational 1, 1
+  print-float-hex screen, one-f
+  check-screen-row screen, 1, "1.000000P00 ", "F - test-print-float-hex-integer 1"
+  # 2
+  clear-screen screen
+  var two-f/xmm0: float <- rational 2, 1
+  print-float-hex screen, two-f
+  check-screen-row screen, 1, "1.000000P01 ", "F - test-print-float-hex-integer 2"
+  # 10
+  clear-screen screen
+  var ten-f/xmm0: float <- rational 0xa, 1
+  print-float-hex screen, ten-f
+  check-screen-row screen, 1, "1.400000P03 ", "F - test-print-float-hex-integer 10"
+  # -10
+  clear-screen screen
+  var minus-ten-f/xmm0: float <- rational -0xa, 1
+  print-float-hex screen, minus-ten-f
+  check-screen-row screen, 1, "-1.400000P03 ", "F - test-print-float-hex-integer -10"
+}
+
+fn test-print-float-hex-zero {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 0x20  # 32 columns should be more than enough
+  var zero: float
+  print-float-hex screen, zero
+  check-screen-row screen, 1, "0 ", "F - test-print-float-hex-zero"
+}
+
+fn test-print-float-hex-negative-zero {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 0x20  # 32 columns should be more than enough
+  var n: int
+  copy-to n, 0x80000000
+  var negative-zero/xmm0: float <- reinterpret n
+  print-float-hex screen, negative-zero
+  check-screen-row screen, 1, "-0 ", "F - test-print-float-hex-negative-zero"
+}
+
+fn test-print-float-hex-infinity {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 0x20  # 32 columns should be more than enough
+  var n: int
+  #          0|11111111|00000000000000000000000
+  #          0111|1111|1000|0000|0000|0000|0000|0000
+  copy-to n, 0x7f800000
+  var infinity/xmm0: float <- reinterpret n
+  print-float-hex screen, infinity
+  check-screen-row screen, 1, "Inf ", "F - test-print-float-hex-infinity"
+}
+
+fn test-print-float-hex-negative-infinity {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 0x20  # 32 columns should be more than enough
+  var n: int
+  copy-to n, 0xff800000
+  var negative-infinity/xmm0: float <- reinterpret n
+  print-float-hex screen, negative-infinity
+  check-screen-row screen, 1, "-Inf ", "F - test-print-float-hex-negative-infinity"
+}
+
+fn test-print-float-hex-not-a-number {
+  var screen-on-stack: screen
+  var screen/esi: (addr screen) <- address screen-on-stack
+  initialize-screen screen, 5, 0x20  # 32 columns should be more than enough
+  var n: int
+  copy-to n, 0xffffffff  # exponent must be all 1's, and mantissa must be non-zero
+  var negative-infinity/xmm0: float <- reinterpret n
+  print-float-hex screen, negative-infinity
+  check-screen-row screen, 1, "NaN ", "F - test-print-float-hex-not-a-number"
+}
+
+fn print-float-hex screen: (addr screen), n: float {
+  # - special names
+  var bits/eax: int <- reinterpret n
+  compare bits, 0
+  {
+    break-if-!=
+    print-string screen, "0"
+    return
+  }
+  compare bits, 0x80000000
+  {
+    break-if-!=
+    print-string screen, "-0"
+    return
+  }
+  compare bits, 0x7f800000
+  {
+    break-if-!=
+    print-string screen, "Inf"
+    return
+  }
+  compare bits, 0xff800000
+  {
+    break-if-!=
+    print-string screen, "-Inf"
+    return
+  }
+  var exponent/ecx: int <- copy bits
+  exponent <- shift-right 0x17  # 23 bits of mantissa
+  exponent <- and 0xff
+  exponent <- subtract 0x7f
+  compare exponent, 0x80
+  {
+    break-if-!=
+    print-string screen, "NaN"
+    return
+  }
+  # - regular numbers
+  var sign/edx: int <- copy bits
+  sign <- shift-right 0x1f
+  {
+    compare sign, 1
+    break-if-!=
+    print-string screen, "-"
+  }
+  $print-float-hex:leading-digit: {
+    # check for subnormal numbers
+    compare exponent, -0x7f
+    {
+      break-if-!=
+      print-string screen, "0."
+      exponent <- increment
+      break $print-float-hex:leading-digit
+    }
+    # normal numbers
+    print-string screen, "1."
+  }
+  var mantissa/ebx: int <- copy bits
+  mantissa <- and 0x7fffff
+  mantissa <- shift-left 1  # pad to whole nibbles
+  print-int32-hex-bits screen, mantissa, 0x18
+  # print exponent
+  print-string screen, "P"
+  compare exponent, 0
+  {
+    break-if->=
+    print-string screen, "-"
+  }
+  var exp-magnitude/eax: int <- abs exponent
+  print-int32-hex-bits screen, exp-magnitude, 8
+}
+
+#? fn main -> _/ebx: int {
+#?   run-tests
+#? #?   test-print-float-hex-negative-zero
+#? #?   print-int32-hex 0, 0
+#? #?   test-print-float-hex-normal
+#?   return 0
+#? }
diff --git a/linux/410file.mu b/linux/410file.mu
new file mode 100644
index 00000000..86dac7bd
--- /dev/null
+++ b/linux/410file.mu
@@ -0,0 +1,20 @@
+fn read-lines in: (addr buffered-file), out: (addr handle array (handle array byte)) {
+  var stream: (stream (handle array byte) 0x10)
+  var stream-a/edi: (addr stream (handle array byte)) <- address stream
+  var line: (stream byte 0x10)
+  var line-a/esi: (addr stream byte) <- address line
+  {
+    clear-stream line-a
+    read-line-buffered in, line-a
+    var done?/eax: boolean <- stream-empty? line-a
+    compare done?, 0/false
+    break-if-!=
+#?     print-string 0, "AAA\n"
+    var h: (handle array byte)
+    var ah/eax: (addr handle array byte) <- address h
+    stream-to-array line-a, ah
+    write-to-stream stream-a, ah
+    loop
+  }
+  stream-to-array stream-a, out
+}
diff --git a/linux/411string.mu b/linux/411string.mu
new file mode 100644
index 00000000..cf0471ac
--- /dev/null
+++ b/linux/411string.mu
@@ -0,0 +1,125 @@
+# read up to 'len' graphemes after skipping the first 'start' ones
+fn substring in: (addr array byte), start: int, len: int, out-ah: (addr handle array byte) {
+  var in-stream: (stream byte 0x100)
+  var in-stream-addr/esi: (addr stream byte) <- address in-stream
+  write in-stream-addr, in
+  var out-stream: (stream byte 0x100)
+  var out-stream-addr/edi: (addr stream byte) <- address out-stream
+  $substring:core: {
+    # skip 'start' graphemes
+    var i/eax: int <- copy 0
+    {
+      compare i, start
+      break-if->=
+      {
+        var dummy/eax: grapheme <- read-grapheme in-stream-addr
+        compare dummy, 0xffffffff/end-of-file
+        break-if-= $substring:core
+      }
+      i <- increment
+      loop
+    }
+    # copy 'len' graphemes
+    i <- copy 0
+    {
+      compare i, len
+      break-if->=
+      {
+        var g/eax: grapheme <- read-grapheme in-stream-addr
+        compare g, 0xffffffff/end-of-file
+        break-if-= $substring:core
+        write-grapheme out-stream-addr, g
+      }
+      i <- increment
+      loop
+    }
+  }
+  stream-to-array out-stream-addr, out-ah
+}
+
+fn test-substring {
+  var out-h: (handle array byte)
+  var out-ah/edi: (addr handle array byte) <- address out-h
+  # prefix substrings
+  substring 0, 0, 3, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+  check-strings-equal out, "", "F - test-substring/null"
+  substring "", 0, 3, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+#?   print-string-to-real-screen out
+#?   print-string-to-real-screen "\n"
+  check-strings-equal out, "", "F - test-substring/empty"
+  #
+  substring "abcde", 0, 3, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+#?   print-string-to-real-screen out
+#?   print-string-to-real-screen "\n"
+  check-strings-equal out, "abc", "F - test-substring/truncate"
+  #
+  substring "abcde", 0, 5, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+  check-strings-equal out, "abcde", "F - test-substring/all"
+  #
+  substring "abcde", 0, 7, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+  check-strings-equal out, "abcde", "F - test-substring/too-small"
+  # substrings outside string
+  substring "abcde", 6, 1, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+  check-strings-equal out, "", "F - test-substring/start-too-large"
+  # trim prefix
+  substring "", 2, 3, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+  check-strings-equal out, "", "F - test-substring/middle-empty"
+  #
+  substring "abcde", 1, 2, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+  check-strings-equal out, "bc", "F - test-substring/middle-truncate"
+  #
+  substring "abcde", 1, 4, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+  check-strings-equal out, "bcde", "F - test-substring/middle-all"
+  #
+  substring "abcde", 1, 5, out-ah
+  var out/eax: (addr array byte) <- lookup *out-ah
+  check-strings-equal out, "bcde", "F - test-substring/middle-too-small"
+}
+
+fn split-string in: (addr array byte), delim: grapheme, out: (addr handle array (handle array byte)) {
+  var in-stream: (stream byte 0x100)
+  var in-stream-addr/esi: (addr stream byte) <- address in-stream
+  write in-stream-addr, in
+  var tokens-stream: (stream (handle array byte) 0x100)
+  var tokens-stream-addr/edi: (addr stream (handle array byte)) <- address tokens-stream
+  var curr-stream: (stream byte 0x100)
+  var curr-stream-addr/ecx: (addr stream byte) <- address curr-stream
+  $split-string:core: {
+    var g/eax: grapheme <- read-grapheme in-stream-addr
+    compare g, 0xffffffff
+    break-if-=
+#?     print-grapheme-to-real-screen g
+#?     print-string-to-real-screen "\n"
+    compare g, delim
+    {
+      break-if-!=
+      # token complete; flush
+      var token: (handle array byte)
+      var token-ah/eax: (addr handle array byte) <- address token
+      stream-to-array curr-stream-addr, token-ah
+      write-to-stream tokens-stream-addr, token-ah
+      clear-stream curr-stream-addr
+      loop $split-string:core
+    }
+    write-grapheme curr-stream-addr, g
+    loop
+  }
+  stream-to-array tokens-stream-addr, out
+}
+
+fn test-split-string {
+  var out-h: (handle array (handle array byte))
+  var out-ah/edi: (addr handle array (handle array byte)) <- address out-h
+  # prefix substrings
+  split-string "bab", 0x61, out-ah
+  # no crash
+}
diff --git a/linux/412print-float-decimal.mu b/linux/412print-float-decimal.mu
new file mode 100644
index 00000000..a9c7fd0e
--- /dev/null
+++ b/linux/412print-float-decimal.mu
@@ -0,0 +1,642 @@
+# print out floats in decimal
+# https://research.swtch.com/ftoa
+#
+# Basic idea:
+#   Ignoring sign, floating point numbers are represented as 1.mantissa * 2^exponent
+#   Therefore, to print a float in decimal, we need to:
+#     - compute its value without decimal point
+#     - convert to an array of decimal digits
+#     - print out the array while inserting the decimal point appropriately
+#
+# Basic complication: the computation generates numbers larger than an int can
+# hold. We need a way to represent big ints.
+#
+# Key insight: use a representation for big ints that's close to what we need
+# anyway, an array of decimal digits.
+#
+# Style note: we aren't creating a big int library here. The only operations
+# we need are halving and doubling. Following the link above, it seems more
+# comprehensible to keep these operations inlined so that we can track the
+# position of the decimal point with dispatch.
+#
+# This approach turns out to be fast enough for most purposes.
+# Optimizations, however, get wildly more complex.
+
+fn test-write-float-decimal-approximate-normal {
+  var s-storage: (stream byte 0x10)
+  var s/ecx: (addr stream byte) <- address s-storage
+  # 0.5
+  var half/xmm0: float <- rational 1, 2
+  write-float-decimal-approximate s, half, 3
+  check-stream-equal s, "0.5", "F - test-write-float-decimal-approximate-normal 0.5"
+  # 0.25
+  clear-stream s
+  var quarter/xmm0: float <- rational 1, 4
+  write-float-decimal-approximate s, quarter, 3
+  check-stream-equal s, "0.25", "F - test-write-float-decimal-approximate-normal 0.25"
+  # 0.75
+  clear-stream s
+  var three-quarters/xmm0: float <- rational 3, 4
+  write-float-decimal-approximate s, three-quarters, 3
+  check-stream-equal s, "0.75", "F - test-write-float-decimal-approximate-normal 0.75"
+  # 0.125
+  clear-stream s
+  var eighth/xmm0: float <- rational 1, 8
+  write-float-decimal-approximate s, eighth, 3
+  check-stream-equal s, "0.125", "F - test-write-float-decimal-approximate-normal 0.125"
+  # 0.0625; start using scientific notation
+  clear-stream s
+  var sixteenth/xmm0: float <- rational 1, 0x10
+  write-float-decimal-approximate s, sixteenth, 3
+  check-stream-equal s, "6.25e-2", "F - test-write-float-decimal-approximate-normal 0.0625"
+  # sqrt(2); truncate floats with lots of digits after the decimal but not too many before
+  clear-stream s
+  var two-f/xmm0: float <- rational 2, 1
+  var sqrt-2/xmm0: float <- square-root two-f
+  write-float-decimal-approximate s, sqrt-2, 3
+  check-stream-equal s, "1.414", "F - test-write-float-decimal-approximate-normal √2"
+}
+
+# print whole integers without decimals
+fn test-write-float-decimal-approximate-integer {
+  var s-storage: (stream byte 0x10)
+  var s/ecx: (addr stream byte) <- address s-storage
+  # 1
+  var one-f/xmm0: float <- rational 1, 1
+  write-float-decimal-approximate s, one-f, 3
+  check-stream-equal s, "1", "F - test-write-float-decimal-approximate-integer 1"
+  # 2
+  clear-stream s
+  var two-f/xmm0: float <- rational 2, 1
+  write-float-decimal-approximate s, two-f, 3
+  check-stream-equal s, "2", "F - test-write-float-decimal-approximate-integer 2"
+  # 10
+  clear-stream s
+  var ten-f/xmm0: float <- rational 0xa, 1
+  write-float-decimal-approximate s, ten-f, 3
+  check-stream-equal s, "10", "F - test-write-float-decimal-approximate-integer 10"
+  # -10
+  clear-stream s
+  var minus-ten-f/xmm0: float <- rational -0xa, 1
+  write-float-decimal-approximate s, minus-ten-f, 3
+  check-stream-equal s, "-10", "F - test-write-float-decimal-approximate-integer -10"
+  # 999
+  clear-stream s
+  var minus-ten-f/xmm0: float <- rational 0x3e7, 1
+  write-float-decimal-approximate s, minus-ten-f, 3
+  check-stream-equal s, "999", "F - test-write-float-decimal-approximate-integer 1000"
+  # 1000 - start using scientific notation
+  clear-stream s
+  var minus-ten-f/xmm0: float <- rational 0x3e8, 1
+  write-float-decimal-approximate s, minus-ten-f, 3
+  check-stream-equal s, "1.00e3", "F - test-write-float-decimal-approximate-integer 1000"
+  # 100,000
+  clear-stream s
+  var hundred-thousand/eax: int <- copy 0x186a0
+  var hundred-thousand-f/xmm0: float <- convert hundred-thousand
+  write-float-decimal-approximate s, hundred-thousand-f, 3
+  check-stream-equal s, "1.00e5", "F - test-write-float-decimal-approximate-integer 100,000"
+}
+
+fn test-write-float-decimal-approximate-zero {
+  var s-storage: (stream byte 0x10)
+  var s/ecx: (addr stream byte) <- address s-storage
+  var zero: float
+  write-float-decimal-approximate s, zero, 3
+  check-stream-equal s, "0", "F - test-write-float-decimal-approximate-zero"
+}
+
+fn test-write-float-decimal-approximate-negative-zero {
+  var s-storage: (stream byte 0x10)
+  var s/ecx: (addr stream byte) <- address s-storage
+  var n: int
+  copy-to n, 0x80000000
+  var negative-zero/xmm0: float <- reinterpret n
+  write-float-decimal-approximate s, negative-zero, 3
+  check-stream-equal s, "-0", "F - test-write-float-decimal-approximate-negative-zero"
+}
+
+fn test-write-float-decimal-approximate-infinity {
+  var s-storage: (stream byte 0x10)
+  var s/ecx: (addr stream byte) <- address s-storage
+  var n: int
+  #          0|11111111|00000000000000000000000
+  #          0111|1111|1000|0000|0000|0000|0000|0000
+  copy-to n, 0x7f800000
+  var infinity/xmm0: float <- reinterpret n
+  write-float-decimal-approximate s, infinity, 3
+  check-stream-equal s, "Inf", "F - test-write-float-decimal-approximate-infinity"
+}
+
+fn test-write-float-decimal-approximate-negative-infinity {
+  var s-storage: (stream byte 0x10)
+  var s/ecx: (addr stream byte) <- address s-storage
+  var n: int
+  copy-to n, 0xff800000
+  var negative-infinity/xmm0: float <- reinterpret n
+  write-float-decimal-approximate s, negative-infinity, 3
+  check-stream-equal s, "-Inf", "F - test-write-float-decimal-approximate-negative-infinity"
+}
+
+fn test-write-float-decimal-approximate-not-a-number {
+  var s-storage: (stream byte 0x10)
+  var s/ecx: (addr stream byte) <- address s-storage
+  var n: int
+  copy-to n, 0xffffffff  # exponent must be all 1's, and mantissa must be non-zero
+  var nan/xmm0: float <- reinterpret n
+  write-float-decimal-approximate s, nan, 3
+  check-stream-equal s, "NaN", "F - test-write-float-decimal-approximate-not-a-number"
+}
+
+fn print-float-decimal-approximate screen: (addr screen), in: float, precision: int {
+  var s-storage: (stream byte 0x10)
+  var s/esi: (addr stream byte) <- address s-storage
+  write-float-decimal-approximate s, in, precision
+  print-stream screen, s
+}
+
+# 'precision' controls the maximum width past which we resort to scientific notation
+fn write-float-decimal-approximate out: (addr stream byte), in: float, precision: int {
+  # - special names
+  var bits/eax: int <- reinterpret in
+  compare bits, 0
+  {
+    break-if-!=
+    write out, "0"
+    return
+  }
+  compare bits, 0x80000000
+  {
+    break-if-!=
+    write out, "-0"
+    return
+  }
+  compare bits, 0x7f800000
+  {
+    break-if-!=
+    write out, "Inf"
+    return
+  }
+  compare bits, 0xff800000
+  {
+    break-if-!=
+    write out, "-Inf"
+    return
+  }
+  var exponent/ecx: int <- copy bits
+  exponent <- shift-right 0x17  # 23 bits of mantissa
+  exponent <- and 0xff
+  exponent <- subtract 0x7f
+  compare exponent, 0x80
+  {
+    break-if-!=
+    write out, "NaN"
+    return
+  }
+  # - regular numbers
+  var sign/edx: int <- copy bits
+  sign <- shift-right 0x1f
+  {
+    compare sign, 1
+    break-if-!=
+    append-byte out, 0x2d/minus
+  }
+
+  # v = 1.mantissa (in base 2) << 0x17
+  var v/ebx: int <- copy bits
+  v <- and 0x7fffff
+  v <- or 0x00800000  # insert implicit 1
+  # e = exponent - 0x17
+  var e/ecx: int <- copy exponent
+  e <- subtract 0x17  # move decimal place from before mantissa to after
+
+  # initialize buffer with decimal representation of v
+  # unlike https://research.swtch.com/ftoa, no ascii here
+  var buf-storage: (array byte 0x7f)
+  var buf/edi: (addr array byte) <- address buf-storage
+  var n/eax: int <- decimal-digits v, buf
+  # I suspect we can do without reversing, but we'll follow https://research.swtch.com/ftoa
+  # closely for now.
+  reverse-digits buf, n
+
+  # loop if e > 0
+  {
+    compare e, 0
+    break-if-<=
+    n <- double-array-of-decimal-digits buf, n
+    e <- decrement
+    loop
+  }
+
+  var dp/edx: int <- copy n
+
+  # loop if e < 0
+  {
+    compare e, 0
+    break-if->=
+    n, dp <- halve-array-of-decimal-digits buf, n, dp
+    e <- increment
+    loop
+  }
+
+  _write-float-array-of-decimal-digits out, buf, n, dp, precision
+}
+
+# store the decimal digits of 'n' into 'buf', units first
+# n must be positive
+fn decimal-digits n: int, _buf: (addr array byte) -> _/eax: int {
+  var buf/edi: (addr array byte) <- copy _buf
+  var i/ecx: int <- copy 0
+  var curr/eax: int <- copy n
+  var curr-byte/edx: int <- copy 0
+  {
+    compare curr, 0
+    break-if-=
+    curr, curr-byte <- integer-divide curr, 0xa
+    var dest/ebx: (addr byte) <- index buf, i
+    copy-byte-to *dest, curr-byte
+    i <- increment
+    loop
+  }
+  return i
+}
+
+fn reverse-digits _buf: (addr array byte), n: int {
+  var buf/esi: (addr array byte) <- copy _buf
+  var left/ecx: int <- copy 0
+  var right/edx: int <- copy n
+  right <- decrement
+  {
+    compare left, right
+    break-if->=
+    {
+      var l-a/ecx: (addr byte) <- index buf, left
+      var r-a/edx: (addr byte) <- index buf, right
+      var l/ebx: byte <- copy-byte *l-a
+      var r/eax: byte <- copy-byte *r-a
+      copy-byte-to *l-a, r
+      copy-byte-to *r-a, l
+    }
+    left <- increment
+    right <- decrement
+    loop
+  }
+}
+
+# debug helper
+fn dump-digits _buf: (addr array byte), count: int, msg: (addr array byte) {
+  var buf/edi: (addr array byte) <- copy _buf
+  var i/ecx: int <- copy 0
+  print-string 0, msg
+  print-string 0, ": "
+  {
+    compare i, count
+    break-if->=
+    var curr/edx: (addr byte) <- index buf, i
+    var curr-byte/eax: byte <- copy-byte *curr
+    var curr-int/eax: int <- copy curr-byte
+    print-int32-decimal 0, curr-int
+    print-string 0, " "
+    break-if-=
+    i <- increment
+    loop
+  }
+  print-string 0, "\n"
+}
+
+fn double-array-of-decimal-digits _buf: (addr array byte), _n: int -> _/eax: int {
+  var buf/edi: (addr array byte) <- copy _buf
+  # initialize delta
+  var delta/edx: int <- copy 0
+  {
+    var curr/ebx: (addr byte) <- index buf, 0
+    var tmp/eax: byte <- copy-byte *curr
+    compare tmp, 5
+    break-if-<
+    delta <- copy 1
+  }
+  # loop
+  var x/eax: int <- copy 0
+  var i/ecx: int <- copy _n
+  i <- decrement
+  {
+    compare i, 0
+    break-if-<=
+    # x += 2*buf[i]
+    {
+      var tmp/ecx: (addr byte) <- index buf, i
+      var tmp2/ecx: byte <- copy-byte *tmp
+      x <- add tmp2
+      x <- add tmp2
+    }
+    # x, buf[i+delta] = x/10, x%10
+    {
+      var dest-index/ecx: int <- copy i
+      dest-index <- add delta
+      var dest/edi: (addr byte) <- index buf, dest-index
+      var next-digit/edx: int <- copy 0
+      x, next-digit <- integer-divide x, 0xa
+      copy-byte-to *dest, next-digit
+    }
+    #
+    i <- decrement
+    loop
+  }
+  # final patch-up
+  var n/eax: int <- copy _n
+  compare delta, 1
+  {
+    break-if-!=
+    var curr/ebx: (addr byte) <- index buf, 0
+    var one/edx: int <- copy 1
+    copy-byte-to *curr, one
+    n <- increment
+  }
+  return n
+}
+
+fn halve-array-of-decimal-digits _buf: (addr array byte), _n: int, _dp: int -> _/eax: int, _/edx: int {
+  var buf/edi: (addr array byte) <- copy _buf
+  var n/eax: int <- copy _n
+  var dp/edx: int <- copy _dp
+  # initialize one side
+  {
+    # if buf[n-1]%2 == 0, break
+    var right-index/ecx: int <- copy n
+    right-index <- decrement
+    var right-a/ecx: (addr byte) <- index buf, right-index
+    var right/ecx: byte <- copy-byte *right-a
+    var right-int/ecx: int <- copy right
+    var remainder/edx: int <- copy 0
+    {
+      var dummy/eax: int <- copy 0
+      dummy, remainder <- integer-divide right-int, 2
+    }
+    compare remainder, 0
+    break-if-=
+    # buf[n] = 0
+    var next-a/ecx: (addr byte) <- index buf, n
+    var zero/edx: byte <- copy 0
+    copy-byte-to *next-a, zero
+    # n++
+    n <- increment
+  }
+  # initialize the other
+  var delta/ebx: int <- copy 0
+  var x/esi: int <- copy 0
+  {
+    # if buf[0] >= 2, break
+    var left/ecx: (addr byte) <- index buf, 0
+    var src/ecx: byte <- copy-byte *left
+    compare src, 2
+    break-if->=
+    # delta, x = 1, buf[0]
+    delta <- copy 1
+    x <- copy src
+    # n--
+    n <- decrement
+    # dp--
+    dp <- decrement
+  }
+  # loop
+  var i/ecx: int <- copy 0
+  {
+    compare i, n
+    break-if->=
+    # x = x*10 + buf[i+delta]
+    {
+      var ten/edx: int <- copy 0xa
+      x <- multiply ten
+      var src-index/edx: int <- copy i
+      src-index <- add delta
+      var src-a/edx: (addr byte) <- index buf, src-index
+      var src/edx: byte <- copy-byte *src-a
+      x <- add src
+    }
+    # buf[i], x = x/2, x%2
+    {
+      var quotient/eax: int <- copy 0
+      var remainder/edx: int <- copy 0
+      quotient, remainder <- integer-divide x, 2
+      x <- copy remainder
+      var dest/edx: (addr byte) <- index buf, i
+      copy-byte-to *dest, quotient
+    }
+    #
+    i <- increment
+    loop
+  }
+  return n, dp
+}
+
+fn _write-float-array-of-decimal-digits out: (addr stream byte), _buf: (addr array byte), n: int, dp: int, precision: int {
+  var buf/edi: (addr array byte) <- copy _buf
+  {
+    compare dp, 0
+    break-if->=
+    _write-float-array-of-decimal-digits-in-scientific-notation out, buf, n, dp, precision
+    return
+  }
+  {
+    var dp2/eax: int <- copy dp
+    compare dp2, precision
+    break-if-<=
+    _write-float-array-of-decimal-digits-in-scientific-notation out, buf, n, dp, precision
+    return
+  }
+  {
+    compare dp, 0
+    break-if-!=
+    append-byte out, 0x30/0
+  }
+  var i/eax: int <- copy 0
+  # bounds = min(n, dp+3)
+  var limit/edx: int <- copy dp
+  limit <- add 3
+  {
+    compare limit, n
+    break-if-<=
+    limit <- copy n
+  }
+  {
+    compare i, limit
+    break-if->=
+    # print '.' if necessary
+    compare i, dp
+    {
+      break-if-!=
+      append-byte out, 0x2e/decimal-point
+    }
+    var curr-a/ecx: (addr byte) <- index buf, i
+    var curr/ecx: byte <- copy-byte *curr-a
+    var curr-int/ecx: int <- copy curr
+    curr-int <- add 0x30/0
+    append-byte out, curr-int
+    #
+    i <- increment
+    loop
+  }
+}
+
+fn _write-float-array-of-decimal-digits-in-scientific-notation out: (addr stream byte), _buf: (addr array byte), n: int, dp: int, precision: int {
+  var buf/edi: (addr array byte) <- copy _buf
+  var i/eax: int <- copy 0
+  {
+    compare i, n
+    break-if->=
+    compare i, precision
+    break-if->=
+    compare i, 1
+    {
+      break-if-!=
+      append-byte out, 0x2e/decimal-point
+    }
+    var curr-a/ecx: (addr byte) <- index buf, i
+    var curr/ecx: byte <- copy-byte *curr-a
+    var curr-int/ecx: int <- copy curr
+    curr-int <- add 0x30/0
+    append-byte out, curr-int
+    #
+    i <- increment
+    loop
+  }
+  append-byte out, 0x65/e
+  decrement dp
+  write-int32-decimal out, dp
+}
+
+# follows the structure of write-float-decimal-approximate
+# 'precision' controls the maximum width past which we resort to scientific notation
+fn float-size in: float, precision: int -> _/eax: int {
+  # - special names
+  var bits/eax: int <- reinterpret in
+  compare bits, 0
+  {
+    break-if-!=
+    return 1  # for "0"
+  }
+  compare bits, 0x80000000
+  {
+    break-if-!=
+    return 2  # for "-0"
+  }
+  compare bits, 0x7f800000
+  {
+    break-if-!=
+    return 3  # for "Inf"
+  }
+  compare bits, 0xff800000
+  {
+    break-if-!=
+    return 4  # for "-Inf"
+  }
+  var exponent/ecx: int <- copy bits
+  exponent <- shift-right 0x17  # 23 bits of mantissa
+  exponent <- and 0xff
+  exponent <- subtract 0x7f
+  compare exponent, 0x80
+  {
+    break-if-!=
+    return 3  # for "NaN"
+  }
+  # - regular numbers
+  # v = 1.mantissa (in base 2) << 0x17
+  var v/ebx: int <- copy bits
+  v <- and 0x7fffff
+  v <- or 0x00800000  # insert implicit 1
+  # e = exponent - 0x17
+  var e/ecx: int <- copy exponent
+  e <- subtract 0x17  # move decimal place from before mantissa to after
+
+  # initialize buffer with decimal representation of v
+  var buf-storage: (array byte 0x7f)
+  var buf/edi: (addr array byte) <- address buf-storage
+  var n/eax: int <- decimal-digits v, buf
+  reverse-digits buf, n
+
+  # loop if e > 0
+  {
+    compare e, 0
+    break-if-<=
+    n <- double-array-of-decimal-digits buf, n
+    e <- decrement
+    loop
+  }
+
+  var dp/edx: int <- copy n
+
+  # loop if e < 0
+  {
+    compare e, 0
+    break-if->=
+    n, dp <- halve-array-of-decimal-digits buf, n, dp
+    e <- increment
+    loop
+  }
+
+  compare dp, 0
+  {
+    break-if->=
+    return 8  # hacky for scientific notation
+  }
+  {
+    var dp2/eax: int <- copy dp
+    compare dp2, precision
+    break-if-<=
+    return 8  # hacky for scientific notation
+  }
+
+  # result = min(n, dp+3)
+  var result/ecx: int <- copy dp
+  result <- add 3
+  {
+    compare result, n
+    break-if-<=
+    result <- copy n
+  }
+
+  # account for decimal point
+  compare dp, n
+  {
+    break-if->=
+    result <- increment
+  }
+
+  # account for sign
+  var sign/edx: int <- reinterpret in
+  sign <- shift-right 0x1f
+  {
+    compare sign, 1
+    break-if-!=
+    result <- increment
+  }
+  return result
+}
+
+## helper
+
+# like check-strings-equal, except array sizes don't have to match
+fn check-buffer-contains _buf: (addr array byte), _contents: (addr array byte), msg: (addr array byte) {
+  var buf/esi: (addr array byte) <- copy _buf
+  var contents/edi: (addr array byte) <- copy _contents
+  var a/eax: boolean <- string-starts-with? buf, contents
+  check-true a, msg
+  var len/ecx: int <- length contents
+  var len2/eax: int <- length buf
+  compare len, len2
+  break-if-=
+  var c/eax: (addr byte) <- index buf, len
+  var d/eax: byte <- copy-byte *c
+  var e/eax: int <- copy d
+  check-ints-equal e, 0, msg
+}
+
+fn test-check-buffer-contains {
+  var arr: (array byte 4)
+  var a/esi: (addr array byte) <- address arr
+  var b/eax: (addr byte) <- index a, 0
+  var c/ecx: byte <- copy 0x61/a
+  copy-byte-to *b, c
+  check-buffer-contains a, "a", "F - test-check-buffer-contains"
+  check-buffer-contains "a", "a", "F - test-check-buffer-contains/null"  # no null check when arrays have same length
+}
diff --git a/linux/README.md b/linux/README.md
new file mode 100644
index 00000000..23b61058
--- /dev/null
+++ b/linux/README.md
@@ -0,0 +1,31 @@
+
+
+
+Some apps written in SubX and Mu. Check out:
+
+* `tile`: [An experimental live-updating postfix shell environment](https://mastodon.social/@akkartik/105108305362341204)
+  that updates as you type. Prototype. Look at this to see what is currently
+  possible, not how I recommend building software.
+
+  <img alt='tile app' src='../html/rpn5.png' width='500px'>
+
+* `browse`: [A text-mode browser for a tiny subset of Markdown](https://mastodon.social/@akkartik/104845344081779025).
+
+* `ex*`: small stand-alone examples that don't need any of the shared code at
+  the top-level. They each have a simple pedagogical goal. Read these first.
+
+* `factorial*`: A simple program to compute factorials in 5 versions, showing
+  all the different syntax sugars and what they expand to.
+
+* Code unique to phases of our build toolchain:
+  * Core SubX: `hex`, `survey_elf`, `pack`, `dquotes`, `assort`, `tests`
+  * Syntax sugar for SubX: `sigils`, `calls`, `braces`
+  * More ambitious translator for a memory-safe language (in progress): `mu`
+
+* Miscellaneous test programs.
+
+All SubX apps include binaries. At any commit, an example's binary should be
+identical bit for bit with the result of translating the corresponding `.subx`
+file. The binary should also be natively runnable on a Linux system running on
+Intel x86 processors, either 32- or 64-bit. If either of these invariants is
+violated, it's a bug.
diff --git a/linux/advent2020/1a.mu b/linux/advent2020/1a.mu
new file mode 100644
index 00000000..67fdc358
--- /dev/null
+++ b/linux/advent2020/1a.mu
@@ -0,0 +1,97 @@
+# https://adventofcode.com/2020/day/1
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/1a.mu
+#   $ ./a.elf < input
+#   found
+#   1353 667
+#   902451
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  # data structure
+  var numbers-storage: (array int 0x100)  # 256 ints
+  var numbers/esi: (addr array int) <- address numbers-storage
+  var numbers-index/ecx: int <- copy 0
+  # phase 1: parse each line from stdin and add it to numbers
+  {
+    var line-storage: (stream byte 0x100)  # 256 bytes
+    var line/edx: (addr stream byte) <- address line-storage
+    {
+#?       print-string 0, "== iter\n"
+      # read line from stdin
+      clear-stream line
+      read-line-from-real-keyboard line
+      # if line is empty (not even a newline), quit
+      var done?/eax: boolean <- stream-empty? line
+      compare done?, 0/false
+      break-if-!=
+#?       print-stream-to-real-screen line
+      # convert line to int and append it to numbers
+      var n/eax: int <- parse-decimal-int-from-stream line
+#?       print-int32-decimal 0, n
+#?       print-string 0, "\n"
+      var dest/ebx: (addr int) <- index numbers, numbers-index
+      copy-to *dest, n
+      numbers-index <- increment
+#?       print-string 0, "== "
+#?       print-int32-decimal 0, numbers-index
+#?       print-string 0, "\n"
+      loop
+    }
+  }
+  # phase 2: for each number in the array, check if 2020-it is in the rest of
+  # the array
+  var i/eax: int <- copy 0
+  {
+    compare i, numbers-index
+    break-if->=
+    var src/ebx: (addr int) <- index numbers, i
+#?     print-int32-decimal 0, *src
+#?     print-string 0, "\n"
+    var target/ecx: int <- copy 0x7e4  # 2020
+    target <- subtract *src
+    {
+      var found?/eax: boolean <- find-after numbers, i, target
+      compare found?, 0/false
+      break-if-=
+      print-string 0, "found\n"
+      print-int32-decimal 0, *src
+      print-string 0, " "
+      print-int32-decimal 0, target
+      print-string 0, "\n"
+      target <- multiply *src
+      print-int32-decimal 0, target
+      print-string 0, "\n"
+      return 0/success
+    }
+    i <- increment
+    loop
+  }
+  return 1/not-found
+}
+
+fn find-after _numbers: (addr array int), start: int, _target: int -> _/eax: boolean {
+  var numbers/esi: (addr array int) <- copy _numbers
+  var target/edi: int <- copy _target
+  var len/ecx: int <- length numbers
+  var i/eax: int <- copy start
+  i <- increment
+  {
+    compare i, len
+    break-if->=
+    var src/edx: (addr int) <- index numbers, i
+    # if *src == target, return true
+    compare *src, target
+    {
+      break-if-!=
+      return 1/true
+    }
+    i <- increment
+    loop
+  }
+  return 0/false
+}
diff --git a/linux/advent2020/1b.mu b/linux/advent2020/1b.mu
new file mode 100644
index 00000000..a638d228
--- /dev/null
+++ b/linux/advent2020/1b.mu
@@ -0,0 +1,113 @@
+# https://adventofcode.com/2020/day/1
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/1b.mu
+#   $ ./a.elf < input
+#   found
+#   143 407 1470
+#   85555470
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  # data structure
+  var numbers-storage: (array int 0x100)  # 256 ints
+  var numbers/esi: (addr array int) <- address numbers-storage
+  var numbers-index/ecx: int <- copy 0
+  # phase 1: parse each line from stdin and add it to numbers
+  {
+    var line-storage: (stream byte 0x100)  # 256 bytes
+    var line/edx: (addr stream byte) <- address line-storage
+    {
+#?       print-string 0, "== iter\n"
+      # read line from stdin
+      clear-stream line
+      read-line-from-real-keyboard line
+      # if line is empty (not even a newline), quit
+      var done?/eax: boolean <- stream-empty? line
+      compare done?, 0/false
+      break-if-!=
+#?       print-stream-to-real-screen line
+      # convert line to int and append it to numbers
+      var n/eax: int <- parse-decimal-int-from-stream line
+#?       print-int32-decimal 0, n
+#?       print-string 0, "\n"
+      var dest/ebx: (addr int) <- index numbers, numbers-index
+      copy-to *dest, n
+      numbers-index <- increment
+#?       print-string 0, "== "
+#?       print-int32-decimal 0, numbers-index
+#?       print-string 0, "\n"
+      loop
+    }
+  }
+  # phase 2: for every pair of distinct numbers, check if the rest of the
+  # array has 2020-it
+  var i/edi: int <- copy 0
+  {
+    compare i, numbers-index
+    break-if->=
+    # for j from i+1 to end
+    var j/edx: int <- copy i
+    j <- increment
+    {
+      compare j, numbers-index
+      break-if->=
+      {
+        compare i, j
+        break-if-=
+        var target/ebx: int <- copy 0x7e4  # 2020
+        var src/edi: (addr int) <- index numbers, i
+        target <- subtract *src
+        var src2/ecx: (addr int) <- index numbers, j
+        target <- subtract *src2
+        {
+          var found?/eax: boolean <- find-after numbers, j, target
+          compare found?, 0/false
+          break-if-=
+          print-string 0, "found\n"
+          print-int32-decimal 0, *src
+          print-string 0, " "
+          print-int32-decimal 0, *src2
+          print-string 0, " "
+          print-int32-decimal 0, target
+          print-string 0, "\n"
+          target <- multiply *src
+          target <- multiply *src2
+          print-int32-decimal 0, target
+          print-string 0, "\n"
+          return 0/success
+        }
+      }
+      j <- increment
+      loop
+    }
+    i <- increment
+    loop
+  }
+  return 1/not-found
+}
+
+fn find-after _numbers: (addr array int), start: int, _target: int -> _/eax: boolean {
+  var numbers/esi: (addr array int) <- copy _numbers
+  var target/edi: int <- copy _target
+  var len/ecx: int <- length numbers
+  var i/eax: int <- copy start
+  i <- increment
+  {
+    compare i, len
+    break-if->=
+    var src/edx: (addr int) <- index numbers, i
+    # if *src == target, return true
+    compare *src, target
+    {
+      break-if-!=
+      return 1/true
+    }
+    i <- increment
+    loop
+  }
+  return 0/false
+}
diff --git a/linux/advent2020/2a.mu b/linux/advent2020/2a.mu
new file mode 100644
index 00000000..dc67b94a
--- /dev/null
+++ b/linux/advent2020/2a.mu
@@ -0,0 +1,92 @@
+# https://adventofcode.com/2020/day/2
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/2a.mu
+#   $ ./a.elf < input
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  var valid-password-count/edi: int <- copy 0
+  var line-storage: (stream byte 0x100)  # 256 bytes
+  var line/edx: (addr stream byte) <- address line-storage
+  var slice-storage: slice
+  var slice/ecx: (addr slice) <- address slice-storage
+  {
+    # read line from stdin
+    clear-stream line
+    read-line-from-real-keyboard line
+    # if line is empty (not even a newline), quit
+    var done?/eax: boolean <- stream-empty? line
+    compare done?, 0/false
+    break-if-!=
+    print-stream-to-real-screen line
+    # slice = next-token(line, '-')
+    next-token line, 0x2d, slice
+    # start = parse-int(slice)
+    var _start/eax: int <- parse-decimal-int-from-slice slice
+    var start/ebx: int <- copy _start
+    var dash/eax: byte <- read-byte line  # skip '-'
+    # slice = next-token(line, ' ')
+    next-token line, 0x20, slice
+    var _end/eax: int <- parse-decimal-int-from-slice slice
+    var end/esi: int <- copy _end
+    print-int32-decimal 0, start
+    print-string 0, " "
+    print-int32-decimal 0, end
+    print-string 0, "\n"
+    # letter = next non-space
+    skip-chars-matching-whitespace line
+    var letter/eax: byte <- read-byte line
+    # skip some stuff
+    {
+      var colon/eax: byte <- read-byte line  # skip ':'
+    }
+    skip-chars-matching-whitespace line
+    # now check the rest of the line
+    var is-valid?/eax: boolean <- is-valid? start, end, letter, line
+    compare is-valid?, 0/false
+    {
+      break-if-=
+      print-string 0, "valid!\n"
+      valid-password-count <- increment
+    }
+    loop
+  }
+  print-int32-decimal 0, valid-password-count
+  print-string 0, "\n"
+  return 0
+}
+
+fn is-valid? start: int, end: int, letter: byte, password: (addr stream byte) -> _/eax: boolean {
+  var letter-count/edi: int <- copy 0
+  # for every c in password
+  #   if (c == letter)
+  #     ++letter-count
+  {
+    var done?/eax: boolean <- stream-empty? password
+    compare done?, 0/false
+    break-if-!=
+    var c/eax: byte <- read-byte password
+    compare c, letter
+    {
+      break-if-!=
+      letter-count <- increment
+    }
+    loop
+  }
+  # return (start <= letter-count <= end)
+  compare letter-count, start
+  {
+    break-if->=
+    return 0/false
+  }
+  compare letter-count, end
+  {
+    break-if-<=
+    return 0/false
+  }
+  return 1/true
+}
diff --git a/linux/advent2020/2b.mu b/linux/advent2020/2b.mu
new file mode 100644
index 00000000..13f60f0f
--- /dev/null
+++ b/linux/advent2020/2b.mu
@@ -0,0 +1,122 @@
+# https://adventofcode.com/2020/day/2
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/2b.mu
+#   $ ./a.elf < input
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  var valid-password-count/edi: int <- copy 0
+  var line-storage: (stream byte 0x100)  # 256 bytes
+  var line/edx: (addr stream byte) <- address line-storage
+  var slice-storage: slice
+  var slice/ecx: (addr slice) <- address slice-storage
+  {
+    # read line from stdin
+    clear-stream line
+    read-line-from-real-keyboard line
+    # if line is empty (not even a newline), quit
+    var done?/eax: boolean <- stream-empty? line
+    compare done?, 0/false
+    break-if-!=
+    print-stream-to-real-screen line
+    # slice = next-token(line, '-')
+    next-token line, 0x2d, slice
+    # pos1 = parse-int(slice)
+    var _pos1/eax: int <- parse-decimal-int-from-slice slice
+    var pos1/ebx: int <- copy _pos1
+    var dash/eax: byte <- read-byte line  # skip '-'
+    # slice = next-token(line, ' ')
+    next-token line, 0x20, slice
+    var _pos2/eax: int <- parse-decimal-int-from-slice slice
+    var pos2/esi: int <- copy _pos2
+    print-int32-decimal 0, pos1
+    print-string 0, " "
+    print-int32-decimal 0, pos2
+    print-string 0, "\n"
+    compare pos1, pos2
+    {
+      break-if-<=
+      print-string 0, "out of order!\n"
+      return 1
+    }
+    # letter = next non-space
+    skip-chars-matching-whitespace line
+    var letter/eax: byte <- read-byte line
+    # skip some stuff
+    {
+      var colon/eax: byte <- read-byte line  # skip ':'
+    }
+    skip-chars-matching-whitespace line
+    # now check the rest of the line
+    var is-valid?/eax: boolean <- is-valid? pos1, pos2, letter, line
+    compare is-valid?, 0/false
+    {
+      break-if-=
+      print-string 0, "valid!\n"
+      valid-password-count <- increment
+    }
+    loop
+  }
+  print-int32-decimal 0, valid-password-count
+  print-string 0, "\n"
+  return 0
+}
+
+# ideally password would be a random-access array
+# we'll just track an index
+# one benefit: we can easily start at 1
+fn is-valid? pos1: int, pos2: int, letter: byte, password: (addr stream byte) -> _/eax: boolean {
+  var i/esi: int <- copy 1
+  var letter-count/edi: int <- copy 0
+  # while password stream isn't empty
+  #   c = read byte from password
+  #   if (c == letter)
+  #     if (i == pos1)
+  #       ++letter-count
+  #     if (i == pos2)
+  #       ++letter-count
+  #     ++i
+  {
+#?     print-string 0, "  "
+#?     print-int32-decimal 0, i
+#?     print-string 0, "\n"
+    var done?/eax: boolean <- stream-empty? password
+    compare done?, 0/false
+    break-if-!=
+    var c/eax: byte <- read-byte password
+#?     {
+#?       var c2/eax: int <- copy c
+#?       print-int32-decimal 0, c2
+#?       print-string 0, "\n"
+#?     }
+    compare c, letter
+    {
+      break-if-!=
+      compare i, pos1
+      {
+        break-if-!=
+        letter-count <- increment
+#?         print-string 0, "  hit\n"
+      }
+      compare i, pos2
+      {
+        break-if-!=
+        letter-count <- increment
+#?         print-string 0, "  hit\n"
+      }
+    }
+    i <- increment
+    loop
+  }
+  # return (letter-count == 1)
+  compare letter-count, 1
+  {
+    break-if-!=
+    return 1/true
+  }
+  return 0/false
+}
diff --git a/linux/advent2020/3a.mu b/linux/advent2020/3a.mu
new file mode 100644
index 00000000..76bda961
--- /dev/null
+++ b/linux/advent2020/3a.mu
@@ -0,0 +1,107 @@
+# https://adventofcode.com/2020/day/3
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/3a.mu
+#   $ ./a.elf < input
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  # represent trees in a 2D array of ints
+  # wasteful since each tree is just one bit
+  var trees-storage: (array int 0x2800)  # 10k ints
+  var trees/esi: (addr array int) <- address trees-storage
+  var trees-length/ecx: int <- copy 0
+  var num-rows: int
+  var width: int
+  # phase 1: parse each row of trees from stdin
+  {
+    var line-storage: (stream byte 0x40)  # 64 bytes
+    var line/edx: (addr stream byte) <- address line-storage
+    {
+      # read line from stdin
+      clear-stream line
+      read-line-from-real-keyboard line
+      # if line is empty (not even a newline), quit
+      var done?/eax: boolean <- stream-empty? line
+      compare done?, 0/false
+      break-if-!=
+      # wastefully recompute width on every line
+      # zero error-checking; we assume input lines are all equally long
+      copy-to width, 0
+      # turn each byte into a tree and append it
+      $main:line-loop: {
+        var done?/eax: boolean <- stream-empty? line
+        compare done?, 0/false
+        break-if-!=
+#?         print-int32-decimal 0, num-rows
+#?         print-string 0, " "
+#?         print-int32-decimal 0, width
+#?         print-string 0, "\n"
+        var dest/ebx: (addr int) <- index trees, trees-length
+        var c/eax: byte <- read-byte line
+        # newline comes only at end of line
+        compare c, 0xa/newline
+        break-if-=
+        # '#' = tree
+        compare c, 0x23/hash
+        {
+          break-if-!=
+          copy-to *dest, 1
+        }
+        # anything else = no tree
+        {
+          break-if-=
+          copy-to *dest, 0
+        }
+        increment width
+        trees-length <- increment
+        loop
+      }
+      increment num-rows
+      loop
+    }
+  }
+  # phase 2: compute
+  print-int32-decimal 0, num-rows
+  print-string 0, "x"
+  print-int32-decimal 0, width
+  print-string 0, "\n"
+  var row/ecx: int <- copy 0
+  var col/edx: int <- copy 0
+  var num-trees-hit/edi: int <- copy 0
+  {
+    compare row, num-rows
+    break-if->=
+    var curr/eax: int <- index2d trees, row, col, width
+    compare curr, 0
+    {
+      break-if-=
+      num-trees-hit <- increment
+    }
+    # right 3, down 1
+    col <- add 3
+    row <- add 1
+    loop
+  }
+  print-int32-decimal 0, num-trees-hit
+  print-string 0, "\n"
+  return 0
+}
+
+fn index2d _arr: (addr array int), _row: int, _col: int, width: int -> _/eax: int {
+  # handle repeating columns of trees
+  var dummy/eax: int <- copy 0
+  var col/edx: int <- copy 0
+  dummy, col <- integer-divide _col, width
+  # compute index
+  var index/eax: int <- copy _row
+  index <- multiply width
+  index <- add col
+  # look up array
+  var arr/esi: (addr array int) <- copy _arr
+  var src/eax: (addr int) <- index arr, index
+  return *src
+}
diff --git a/linux/advent2020/3b.mu b/linux/advent2020/3b.mu
new file mode 100644
index 00000000..fcc9261a
--- /dev/null
+++ b/linux/advent2020/3b.mu
@@ -0,0 +1,137 @@
+# https://adventofcode.com/2020/day/3
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/3a.mu
+#   $ ./a.elf < input
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  # represent trees in a 2D array of ints
+  # wasteful since each tree is just one bit
+  var trees-storage: (array int 0x2800)  # 10k ints
+  var trees/esi: (addr array int) <- address trees-storage
+  var trees-length/ecx: int <- copy 0
+  var num-rows: int
+  var width: int
+  # phase 1: parse each row of trees from stdin
+  {
+    var line-storage: (stream byte 0x40)  # 64 bytes
+    var line/edx: (addr stream byte) <- address line-storage
+    {
+      # read line from stdin
+      clear-stream line
+      read-line-from-real-keyboard line
+      # if line is empty (not even a newline), quit
+      var done?/eax: boolean <- stream-empty? line
+      compare done?, 0/false
+      break-if-!=
+      # wastefully recompute width on every line
+      # zero error-checking; we assume input lines are all equally long
+      copy-to width, 0
+      # turn each byte into a tree and append it
+      $main:line-loop: {
+        var done?/eax: boolean <- stream-empty? line
+        compare done?, 0/false
+        break-if-!=
+#?         print-int32-decimal 0, num-rows
+#?         print-string 0, " "
+#?         print-int32-decimal 0, width
+#?         print-string 0, "\n"
+        var dest/ebx: (addr int) <- index trees, trees-length
+        var c/eax: byte <- read-byte line
+        # newline comes only at end of line
+        compare c, 0xa/newline
+        break-if-=
+        # '#' = tree
+        compare c, 0x23/hash
+        {
+          break-if-!=
+          copy-to *dest, 1
+        }
+        # anything else = no tree
+        {
+          break-if-=
+          copy-to *dest, 0
+        }
+        increment width
+        trees-length <- increment
+        loop
+      }
+      increment num-rows
+      loop
+    }
+  }
+  # phase 2: compute
+  var product/edi: int <- copy 1
+  var result/eax: int <- num-trees-hit trees, width, num-rows, 1, 1
+  print-int32-decimal 0, result
+  print-string 0, " x "
+  product <- multiply result
+  var result/eax: int <- num-trees-hit trees, width, num-rows, 3, 1
+  print-int32-decimal 0, result
+  print-string 0, " x "
+  product <- multiply result
+  var result/eax: int <- num-trees-hit trees, width, num-rows, 5, 1
+  print-int32-decimal 0, result
+  print-string 0, " x "
+  product <- multiply result
+  var result/eax: int <- num-trees-hit trees, width, num-rows, 7, 1
+  print-int32-decimal 0, result
+  print-string 0, " x "
+  product <- multiply result
+  var result/eax: int <- num-trees-hit trees, width, num-rows, 1, 2
+  print-int32-decimal 0, result
+  print-string 0, " = "
+  product <- multiply result
+  print-int32-hex 0, product
+  print-string 0, "\n"
+  return 0
+}
+
+fn num-trees-hit trees: (addr array int), width: int, num-rows: int, right: int, down: int -> _/eax: int {
+#?   print-string 0, "== "
+#?   print-int32-decimal 0, right
+#?   print-string 0, " "
+#?   print-int32-decimal 0, down
+#?   print-string 0, "\n"
+  var row/ecx: int <- copy 0
+  var col/edx: int <- copy 0
+  var num-trees-hit/edi: int <- copy 0
+  {
+    compare row, num-rows
+    break-if->=
+#?     print-int32-decimal 0, col
+#?     print-string 0, "\n"
+    var curr/eax: int <- index2d trees, row, col, width
+    compare curr, 0
+    {
+      break-if-=
+      num-trees-hit <- increment
+    }
+    col <- add right
+    row <- add down
+    loop
+  }
+  return num-trees-hit
+}
+
+fn index2d _arr: (addr array int), _row: int, _col: int, width: int -> _/eax: int {
+  # handle repeating columns of trees
+  var dummy/eax: int <- copy 0
+  var col/edx: int <- copy 0
+  dummy, col <- integer-divide _col, width
+#?   print-string 0, "  "
+#?   print-int32-decimal 0, col
+#?   print-string 0, "\n"
+  # compute index
+  var index/eax: int <- copy _row
+  index <- multiply width
+  index <- add col
+  # look up array
+  var arr/esi: (addr array int) <- copy _arr
+  var src/eax: (addr int) <- index arr, index
+  return *src
+}
diff --git a/linux/advent2020/4a.mu b/linux/advent2020/4a.mu
new file mode 100644
index 00000000..e645da24
--- /dev/null
+++ b/linux/advent2020/4a.mu
@@ -0,0 +1,75 @@
+# https://adventofcode.com/2020/day/4
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/4a.mu
+#   $ ./a.elf < input
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  var curr-passport-field-count/esi: int <- copy 0
+  var valid-passport-count/edi: int <- copy 0
+  var line-storage: (stream byte 0x100)  # 256 bytes
+  var line/ecx: (addr stream byte) <- address line-storage
+  var slice-storage: slice
+  var slice/edx: (addr slice) <- address slice-storage
+  $main:line-loop: {
+    # read line from stdin
+    clear-stream line
+    read-line-from-real-keyboard line
+    # if line is empty (not even a newline), quit
+    var done?/eax: boolean <- stream-empty? line
+    compare done?, 0/false
+    break-if-!=
+    print-stream-to-real-screen line
+    # if line has just a newline, process passport
+    skip-chars-matching-whitespace line
+    var new-passport?/eax: boolean <- stream-empty? line
+    {
+      compare new-passport?, 0/false
+      break-if-=
+      compare curr-passport-field-count, 7
+      {
+        break-if-!=
+        valid-passport-count <- increment
+        print-string 0, "=> "
+        print-int32-decimal 0, valid-passport-count
+        print-string 0, "\n"
+      }
+      curr-passport-field-count <- copy 0
+      loop $main:line-loop
+    }
+    $main:word-loop: {
+      next-word line, slice
+      var done?/eax: boolean <- slice-empty? slice
+      compare done?, 0/false
+      break-if-!=
+      print-string 0, "  "
+      print-slice-to-real-screen slice
+      # treat cid as optional
+      var optional?/eax: boolean <- slice-starts-with? slice, "cid:"
+      compare optional?, 0/false
+      {
+        break-if-!=
+        # otherwise assume there are no invalid fields and no duplicate fields
+        curr-passport-field-count <- increment
+        print-string 0, " => "
+        print-int32-decimal 0, curr-passport-field-count
+      }
+      print-string 0, "\n"
+      loop
+    }
+    loop
+  }
+  # process final passport
+  compare curr-passport-field-count, 7
+  {
+    break-if-!=
+    valid-passport-count <- increment
+  }
+  print-int32-decimal 0, valid-passport-count
+  print-string 0, "\n"
+  return 0
+}
diff --git a/linux/advent2020/4b.mu b/linux/advent2020/4b.mu
new file mode 100644
index 00000000..1ab29456
--- /dev/null
+++ b/linux/advent2020/4b.mu
@@ -0,0 +1,314 @@
+# https://adventofcode.com/2020/day/4
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/4b.mu
+#   $ ./a.elf < input
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  var curr-passport-field-count/esi: int <- copy 0
+  var valid-passport-count/edi: int <- copy 0
+  var line-storage: (stream byte 0x100)  # 256 bytes
+  var line/ecx: (addr stream byte) <- address line-storage
+  var key-slice-storage: slice
+  var key-slice/edx: (addr slice) <- address key-slice-storage
+  var val-slice-storage: slice
+  var val-slice/ebx: (addr slice) <- address val-slice-storage
+  $main:line-loop: {
+    # read line from stdin
+    clear-stream line
+    read-line-from-real-keyboard line
+    # if line is empty (not even a newline), quit
+    var done?/eax: boolean <- stream-empty? line
+    compare done?, 0/false
+    break-if-!=
+    print-stream-to-real-screen line
+    # if line has just a newline, process passport
+    skip-chars-matching-whitespace line
+    var new-passport?/eax: boolean <- stream-empty? line
+    {
+      compare new-passport?, 0/false
+      break-if-=
+      compare curr-passport-field-count, 7
+      {
+        break-if-!=
+        valid-passport-count <- increment
+        print-string 0, "=> "
+        print-int32-decimal 0, valid-passport-count
+        print-string 0, "\n"
+      }
+      curr-passport-field-count <- copy 0
+      loop $main:line-loop
+    }
+    $main:word-loop: {
+      skip-chars-matching-whitespace line
+      var done?/eax: boolean <- stream-empty? line
+      compare done?, 0/false
+      break-if-!=
+      next-token line, 0x3a, key-slice  # ':'
+      var dummy/eax: byte <- read-byte line  # skip ':'
+      next-raw-word line, val-slice
+      print-slice-to-real-screen key-slice
+      print-string 0, " : "
+      print-slice-to-real-screen val-slice
+      print-string 0, "\n"
+      # treat cid as optional
+      var cid?/eax: boolean <- slice-equal? key-slice, "cid"
+      compare cid?, 0/false
+      loop-if-!=
+      # increment field count
+      curr-passport-field-count <- increment
+      # - validate fields one by one, setting curr-passport-field-count to impossibly high value to signal invalid
+      # byr
+      {
+        var byr?/eax: boolean <- slice-equal? key-slice, "byr"
+        compare byr?, 0/false
+        break-if-=
+        # 1920 <= byr <= 2002
+        var byr/eax: int <- parse-decimal-int-from-slice val-slice
+        compare byr, 0x780  # 1920
+        {
+          break-if->=
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+        }
+        compare byr, 0x7d2  # 2002
+        {
+          break-if-<=
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+        }
+      }
+      # iyr
+      {
+        var iyr?/eax: boolean <- slice-equal? key-slice, "iyr"
+        compare iyr?, 0/false
+        break-if-=
+        # 2010 <= iyr <= 2020
+        var iyr/eax: int <- parse-decimal-int-from-slice val-slice
+        compare iyr, 0x7da  # 2010
+        {
+          break-if->=
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+        }
+        compare iyr, 0x7e4  # 2020
+        {
+          break-if-<=
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+        }
+      }
+      # eyr
+      {
+        var eyr?/eax: boolean <- slice-equal? key-slice, "eyr"
+        compare eyr?, 0/false
+        break-if-=
+        # 2020 <= eyr <= 2030
+        var eyr/eax: int <- parse-decimal-int-from-slice val-slice
+        compare eyr, 0x7e4  # 2020
+        {
+          break-if->=
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+        }
+        compare eyr, 0x7ee  # 2030
+        {
+          break-if-<=
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+        }
+      }
+      # hgt
+      {
+        var hgt?/eax: boolean <- slice-equal? key-slice, "hgt"
+        compare hgt?, 0/false
+        break-if-=
+        # convert val
+        var s: (handle array byte)
+        var s2/eax: (addr handle array byte) <- address s
+        _slice-to-string val-slice, s2
+        var s3/eax: (addr array byte) <- lookup *s2
+        var s4/ebx: (addr array byte) <- copy s3
+        # check suffix
+        var start/edx: int <- length s4
+        start <- subtract 2  # luckily both 'in' and 'cm' have the same length
+        {
+          var suffix-h: (handle array byte)
+          var suffix-ah/ecx: (addr handle array byte) <- address suffix-h
+          substring s4, start, 2, suffix-ah
+          var suffix/eax: (addr array byte) <- lookup *suffix-ah
+          {
+            var match?/eax: boolean <- string-equal? suffix, "in"
+            compare match?, 0/false
+            break-if-=
+            # if suffix is "in", 59 <= val <= 96
+            var num-h: (handle array byte)
+            var num-ah/ecx: (addr handle array byte) <- address num-h
+            substring s4, 0, start, num-ah
+            var num/eax: (addr array byte) <- lookup *num-ah
+            var val/eax: int <- parse-decimal-int num
+            compare val, 0x3b  # 59
+            {
+              break-if->=
+          print-string 0, "invalid\n"
+              curr-passport-field-count <- copy 8
+            }
+            compare val, 0x60  # 96
+            {
+              break-if-<=
+          print-string 0, "invalid\n"
+              curr-passport-field-count <- copy 8
+            }
+            loop $main:word-loop
+          }
+          {
+            var match?/eax: boolean <- string-equal? suffix, "cm"
+            compare match?, 0/false
+            break-if-=
+            # if suffix is "cm", 150 <= val <= 193
+            var num-h: (handle array byte)
+            var num-ah/ecx: (addr handle array byte) <- address num-h
+            substring s4, 0, start, num-ah
+            var num/eax: (addr array byte) <- lookup *num-ah
+            var val/eax: int <- parse-decimal-int num
+            compare val, 0x96  # 150
+            {
+              break-if->=
+          print-string 0, "invalid\n"
+              curr-passport-field-count <- copy 8
+            }
+            compare val, 0xc1  # 193
+            {
+              break-if-<=
+          print-string 0, "invalid\n"
+              curr-passport-field-count <- copy 8
+            }
+            loop $main:word-loop
+          }
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+          loop $main:word-loop
+        }
+      }
+      # hcl
+      {
+        var hcl?/eax: boolean <- slice-equal? key-slice, "hcl"
+        compare hcl?, 0/false
+        break-if-=
+        # convert val
+        var s: (handle array byte)
+        var s2/eax: (addr handle array byte) <- address s
+        _slice-to-string val-slice, s2
+        var s3/eax: (addr array byte) <- lookup *s2
+        # check length
+        var len/ebx: int <- length s3
+        compare len, 7
+        {
+          break-if-=
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+          loop $main:word-loop
+        }
+        # check first byte
+        {
+          var c/eax: (addr byte) <- index s3, 0
+          var c2/eax: byte <- copy-byte *c
+          compare c2, 0x23/hash
+          break-if-=
+          print-string 0, "invalid2\n"
+          curr-passport-field-count <- copy 8
+          loop $main:word-loop
+        }
+        # check remaining bytes
+        var i/ebx: int <- copy 1  # skip 0
+        {
+          compare i, 7
+          break-if->=
+          var c/eax: (addr byte) <- index s3, i
+          {
+            var c2/eax: byte <- copy-byte *c
+            var valid?/eax: boolean <- is-hex-digit? c2
+            compare valid?, 0
+            loop-if-= $main:word-loop
+          }
+          i <- increment
+          loop
+        }
+      }
+      # ecl
+      {
+        var ecl?/eax: boolean <- slice-equal? key-slice, "ecl"
+        compare ecl?, 0/false
+        break-if-=
+        var amb?/eax: boolean <- slice-equal? val-slice, "amb"
+        compare amb?, 0/false
+        loop-if-!= $main:word-loop
+        var blu?/eax: boolean <- slice-equal? val-slice, "blu"
+        compare blu?, 0/false
+        loop-if-!= $main:word-loop
+        var brn?/eax: boolean <- slice-equal? val-slice, "brn"
+        compare brn?, 0/false
+        loop-if-!= $main:word-loop
+        var gry?/eax: boolean <- slice-equal? val-slice, "gry"
+        compare gry?, 0/false
+        loop-if-!= $main:word-loop
+        var grn?/eax: boolean <- slice-equal? val-slice, "grn"
+        compare grn?, 0/false
+        loop-if-!= $main:word-loop
+        var hzl?/eax: boolean <- slice-equal? val-slice, "hzl"
+        compare hzl?, 0/false
+        loop-if-!= $main:word-loop
+        var oth?/eax: boolean <- slice-equal? val-slice, "oth"
+        compare oth?, 0/false
+        loop-if-!= $main:word-loop
+        print-string 0, "invalid\n"
+        curr-passport-field-count <- copy 8
+      }
+      # pid
+      {
+        var pid?/eax: boolean <- slice-equal? key-slice, "pid"
+        compare pid?, 0/false
+        break-if-=
+        # convert val
+        var s: (handle array byte)
+        var s2/eax: (addr handle array byte) <- address s
+        _slice-to-string val-slice, s2
+        var s3/eax: (addr array byte) <- lookup *s2
+        # check length
+        var len/eax: int <- length s3
+        compare len, 9
+        {
+          break-if-=
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+          loop $main:word-loop
+        }
+        # check valid decimal int
+        # parse-decimal-int-from-slice currently returns 0 on invalid parse,
+        # which isn't ideal but suffices for our purposes
+        var val/eax: int <- parse-decimal-int-from-slice val-slice
+        compare val, 0
+        {
+          break-if->
+          print-string 0, "invalid\n"
+          curr-passport-field-count <- copy 8
+        }
+      }
+      loop
+    }
+    loop
+  }
+  # process final passport
+  compare curr-passport-field-count, 7
+  {
+    break-if-!=
+    valid-passport-count <- increment
+  }
+  print-int32-decimal 0, valid-passport-count
+  print-string 0, "\n"
+  return 0
+}
diff --git a/linux/advent2020/5a.mu b/linux/advent2020/5a.mu
new file mode 100644
index 00000000..5a456608
--- /dev/null
+++ b/linux/advent2020/5a.mu
@@ -0,0 +1,79 @@
+# https://adventofcode.com/2020/day/5
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/5a.mu
+#   $ ./a.elf < input
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  var line-storage: (stream byte 0x10)  # 16 bytes is enough
+  var line/edx: (addr stream byte) <- address line-storage
+  var max-seat-id/edi: int <- copy 0
+  {
+    # read line from stdin
+    clear-stream line
+    read-line-from-real-keyboard line
+    print-stream-to-real-screen line
+    # if line is empty (not even a newline), quit
+    var done?/eax: boolean <- stream-empty? line
+    compare done?, 0/false
+    break-if-!=
+    # process line
+    var seat-id/eax: int <- convert-from-binary line
+    compare seat-id, max-seat-id
+    {
+      break-if-<=
+      max-seat-id <- copy seat-id
+    }
+    loop
+  }
+  print-int32-decimal 0, max-seat-id
+  print-string 0, "\n"
+  return 0
+}
+
+fn convert-from-binary in: (addr stream byte) -> _/eax: int {
+  var result/edi: int <- copy 0
+  var i/ecx: int <- copy 9  # loop counter and also exponent
+  {
+    compare i, 0
+    break-if-<
+    var c/eax: byte <- read-byte in
+#?     print-string 0, "char: "
+#?     {
+#?       var c2/eax: int <- copy c
+#?       print-int32-hex 0, c2
+#?     }
+#?     print-string 0, "\n"
+    var bit/edx: int <- copy 0
+    {
+      compare c, 0x42/B
+      break-if-!=
+      bit <- copy 1
+    }
+    {
+      compare c, 0x52/R
+      break-if-!=
+      bit <- copy 1
+    }
+#?     print-string 0, "bit: "
+#?     print-int32-decimal 0, bit
+#?     print-string 0, "\n"
+    var bit-value/eax: int <- repeated-shift-left bit, i
+#?     print-string 0, "bit value: "
+#?     print-int32-decimal 0, bit-value
+#?     print-string 0, "\n"
+    result <- add bit-value
+#?     print-string 0, "result: "
+#?     print-int32-decimal 0, result
+#?     print-string 0, "\n"
+    i <- decrement
+    loop
+  }
+  print-int32-decimal 0, result
+  print-string 0, "\n"
+  return result
+}
diff --git a/linux/advent2020/5b.mu b/linux/advent2020/5b.mu
new file mode 100644
index 00000000..fbc0d618
--- /dev/null
+++ b/linux/advent2020/5b.mu
@@ -0,0 +1,81 @@
+# https://adventofcode.com/2020/day/5
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/advent2020/5b.mu
+#   $ ./a.elf < input
+#
+# You'll need to register to download the 'input' file for yourself.
+
+fn main -> _/ebx: int {
+  var pass-storage: (array int 0x400)  # 1k ints
+  var pass/esi: (addr array int) <- address pass-storage
+  # phase 1: populate pass array
+  var line-storage: (stream byte 0x10)  # 16 bytes is enough
+  var line/edx: (addr stream byte) <- address line-storage
+  {
+    # read line from stdin
+    clear-stream line
+    read-line-from-real-keyboard line
+    # if line is empty (not even a newline), quit
+    var done?/eax: boolean <- stream-empty? line
+    compare done?, 0/false
+    break-if-!=
+    # process line
+    var seat-id/eax: int <- convert-from-binary line
+    var dest/eax: (addr int) <- index pass, seat-id
+    copy-to *dest, 1
+    loop
+  }
+  # phase 2: skip empty seats
+  var i/eax: int <- copy 0
+  {
+    compare i, 0x400
+    break-if->=
+    var src/ecx: (addr int) <- index pass, i
+    compare *src, 0
+    break-if-!=
+    i <- increment
+    loop
+  }
+  # phase 3: skip non-empty seats
+  {
+    compare i, 0x400
+    break-if->=
+    var src/ecx: (addr int) <- index pass, i
+    compare *src, 0
+    break-if-=
+    i <- increment
+    loop
+  }
+  print-int32-decimal 0, i
+  print-string 0, "\n"
+  return 0
+}
+
+fn convert-from-binary in: (addr stream byte) -> _/eax: int {
+  var result/edi: int <- copy 0
+  var i/ecx: int <- copy 9  # loop counter and also exponent
+  {
+    compare i, 0
+    break-if-<
+    var c/eax: byte <- read-byte in
+    var bit/edx: int <- copy 0
+    {
+      compare c, 0x42/B
+      break-if-!=
+      bit <- copy 1
+    }
+    {
+      compare c, 0x52/R
+      break-if-!=
+      bit <- copy 1
+    }
+    var bit-value/eax: int <- repeated-shift-left bit, i
+    result <- add bit-value
+    i <- decrement
+    loop
+  }
+  return result
+}
diff --git a/linux/advent2020/vimrc.vim b/linux/advent2020/vimrc.vim
new file mode 100644
index 00000000..348fe364
--- /dev/null
+++ b/linux/advent2020/vimrc.vim
@@ -0,0 +1,2 @@
+" when opening files in this directory, load vimrc from cwd (top-level)
+source vimrc.vim
diff --git a/linux/arith.mu b/linux/arith.mu
new file mode 100644
index 00000000..3183cd31
--- /dev/null
+++ b/linux/arith.mu
@@ -0,0 +1,258 @@
+# Integer arithmetic using conventional precedence.
+#
+# Follows part 2 of Jack Crenshaw's "Let's build a compiler!"
+#   https://compilers.iecc.com/crenshaw
+#
+# Limitations:
+#   No division yet.
+#
+# To build:
+#   $ ./translate_mu apps/arith.mu
+#
+# Example session:
+#   $ ./a.elf
+#   press ctrl-c or ctrl-d to exit
+#   > 1
+#   1
+#   > 1+1
+#   2
+#   > 1 + 1
+#   2
+#   > 1+2 +3
+#   6
+#   > 1+2 *3
+#   7
+#   > (1+2) *3
+#   9
+#   > 1 + 3*4
+#   13
+#   > ^D
+#   $
+#
+# Error handling is non-existent. This is just a prototype.
+
+fn main -> _/ebx: int {
+  enable-keyboard-immediate-mode
+  var look/esi: grapheme <- copy 0  # lookahead
+  var n/eax: int <- copy 0  # result of each expression
+  print-string 0/screen, "press ctrl-c or ctrl-d to exit\n"
+  # read-eval-print loop
+  {
+    # print prompt
+    print-string 0/screen, "> "
+    # read and eval
+    n, look <- simplify  # we explicitly thread 'look' everywhere
+    # if (look == 0) break
+    compare look, 0
+    break-if-=
+    # print
+    print-int32-decimal 0/screen, n
+    print-string 0/screen, "\n"
+    #
+    loop
+  }
+  enable-keyboard-type-mode
+  return 0
+}
+
+fn simplify -> _/eax: int, _/esi: grapheme {
+  # prime the pump
+  var look/esi: grapheme <- get-char
+  # do it
+  var result/eax: int <- copy 0
+  result, look <- expression look
+  return result, look
+}
+
+fn expression _look: grapheme -> _/eax: int, _/esi: grapheme {
+  var look/esi: grapheme <- copy _look
+  # read arg
+  var result/eax: int <- copy 0
+  result, look <- term look
+  $expression:loop: {
+    # while next non-space char in ['+', '-']
+    look <- skip-spaces look
+    {
+      var continue?/eax: boolean <- is-add-or-sub? look
+      compare continue?, 0/false
+      break-if-= $expression:loop
+    }
+    # read operator
+    var op/ecx: grapheme <- copy 0
+    op, look <- operator look
+    # read next arg
+    var second/edx: int <- copy 0
+    look <- skip-spaces look
+    {
+      var tmp/eax: int <- copy 0
+      tmp, look <- term look
+      second <- copy tmp
+    }
+    # reduce
+    $expression:perform-op: {
+      {
+        compare op, 0x2b/+
+        break-if-!=
+        result <- add second
+        break $expression:perform-op
+      }
+      {
+        compare op, 0x2d/minus
+        break-if-!=
+        result <- subtract second
+        break $expression:perform-op
+      }
+    }
+    loop
+  }
+  look <- skip-spaces look
+  return result, look
+}
+
+fn term _look: grapheme -> _/eax: int, _/esi: grapheme {
+  var look/esi: grapheme <- copy _look
+  # read arg
+  look <- skip-spaces look
+  var result/eax: int <- copy 0
+  result, look <- factor look
+  $term:loop: {
+    # while next non-space char in ['*', '/']
+    look <- skip-spaces look
+    {
+      var continue?/eax: boolean <- is-mul-or-div? look
+      compare continue?, 0/false
+      break-if-= $term:loop
+    }
+    # read operator
+    var op/ecx: grapheme <- copy 0
+    op, look <- operator look
+    # read next arg
+    var second/edx: int <- copy 0
+    look <- skip-spaces look
+    {
+      var tmp/eax: int <- copy 0
+      tmp, look <- factor look
+      second <- copy tmp
+    }
+    # reduce
+    $term:perform-op: {
+      {
+        compare op, 0x2a/*
+        break-if-!=
+        result <- multiply second
+        break $term:perform-op
+      }
+#?       {
+#?         compare op, 0x2f/slash
+#?         break-if-!=
+#?         result <- divide second  # not in Mu yet
+#?         break $term:perform-op
+#?       }
+    }
+    loop
+  }
+  return result, look
+}
+
+fn factor _look: grapheme -> _/eax: int, _/esi: grapheme {
+  var look/esi: grapheme <- copy _look  # should be a no-op
+  look <- skip-spaces look
+  # if next char is not '(', parse a number
+  compare look, 0x28/open-paren
+  {
+    break-if-=
+    var result/eax: int <- copy 0
+    result, look <- num look
+    return result, look
+  }
+  # otherwise recurse
+  look <- get-char  # '('
+  var result/eax: int <- copy 0
+  result, look <- expression look
+  look <- skip-spaces look
+  look <- get-char  # ')'
+  return result, look
+}
+
+fn is-mul-or-div? c: grapheme -> _/eax: boolean {
+  compare c, 0x2a/*
+  {
+    break-if-!=
+    return 1/true
+  }
+  compare c, 0x2f/slash
+  {
+    break-if-!=
+    return 1/true
+  }
+  return 0/false
+}
+
+fn is-add-or-sub? c: grapheme -> _/eax: boolean {
+  compare c, 0x2b/+
+  {
+    break-if-!=
+    return 1/true
+  }
+  compare c, 0x2d/minus
+  {
+    break-if-!=
+    return 1/true
+  }
+  return 0/false
+}
+
+fn operator _look: grapheme -> _/ecx: grapheme, _/esi: grapheme {
+  var op/ecx: grapheme <- copy _look
+  var look/esi: grapheme <- get-char
+  return op, look
+}
+
+fn num _look: grapheme -> _/eax: int, _/esi: grapheme {
+  var look/esi: grapheme <- copy _look
+  var result/edi: int <- copy 0
+  {
+    var first-digit/eax: int <- to-decimal-digit look
+    result <- copy first-digit
+  }
+  {
+    look <- get-char
+    # done?
+    var digit?/eax: boolean <- is-decimal-digit? look
+    compare digit?, 0/false
+    break-if-=
+    # result *= 10
+    {
+      var ten/eax: int <- copy 0xa
+      result <- multiply ten
+    }
+    # result += digit(look)
+    var digit/eax: int <- to-decimal-digit look
+    result <- add digit
+    loop
+  }
+  return result, look
+}
+
+fn skip-spaces _look: grapheme -> _/esi: grapheme {
+  var look/esi: grapheme <- copy _look  # should be a no-op
+  {
+    compare look, 0x20
+    break-if-!=
+    look <- get-char
+    loop
+  }
+  return look
+}
+
+fn get-char -> _/esi: grapheme {
+  var look/eax: grapheme <- read-key-from-real-keyboard
+  print-grapheme-to-real-screen look
+  compare look, 4
+  {
+    break-if-!=
+    print-string 0/screen, "^D\n"
+    syscall_exit
+  }
+  return look
+}
diff --git a/linux/assort b/linux/assort
new file mode 100755
index 00000000..f3ef87a2
--- /dev/null
+++ b/linux/assort
Binary files differdiff --git a/linux/assort.subx b/linux/assort.subx
new file mode 100644
index 00000000..c4a38410
--- /dev/null
+++ b/linux/assort.subx
@@ -0,0 +1,1062 @@
+# Read a series of segments from stdin and concatenate segments with the same
+# name on stdout.
+#
+# Segments are emitted in order of first encounter.
+#
+# Drop lines that are all comments. They could get misleading after assortment
+# because we don't know if they refer to the line above or the line below.
+#
+# To run:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/subx-params.subx apps/assort.subx  -o apps/assort
+#   $ cat x
+#   == code
+#   abc
+#   == code
+#   def
+#   $ cat x  |./bootstrap run apps/assort
+#   == code
+#   abc
+#   def
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto interactive
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $subx-assort-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto interactive
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto interactive
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-assort-main:interactive/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $subx-assort-main:end/disp8
+$subx-assort-main:interactive:
+    # - otherwise convert stdin
+    # var ed/eax: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # configure ed to really exit()
+    # . ed->target = 0
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # copy to *eax
+    # subx-assort(Stdin, Stdout, Stderr, ed)
+    # . . push args
+    50/push-eax/ed
+    68/push  Stderr/imm32
+    68/push  Stdout/imm32
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  subx-assort/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$subx-assort-main:end:
+    e8/call  syscall_exit/disp32
+
+# data structure:
+#   table: (addr stream {(handle array byte), (handle stream byte)})     (16 bytes/row)
+# inefficient; uses sequential search for looking up segments by name
+
+subx-assort:  # in: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode:
+    #   var table: (addr stream {(handle array byte), (handle stream byte)} 10 rows)
+    #   read-segments(in, table)
+    #   write-segments(out, table)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # var table/ecx: (stream {string, (handle stream byte)} 160)  # 10 rows * 16 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xa0/imm32        # subtract from esp
+    68/push  0xa0/imm32/length
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # clear-stream(table)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$subx-assort:read:
+#?     # print("read\n") {{{
+#?     # . . push args
+#?     68/push  "read\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # read-segments(in, table)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-segments/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-assort:write:
+#?     # print("write\n") {{{
+#?     # . . push args
+#?     68/push  "write\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # write-segments(out, table)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-segments/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-assort:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xac/imm32        # add to esp
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-assort:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input (meta comments in parens)
+    #   # comment 1
+    #     # comment 2 indented
+    #   == code 0x09000000  (new segment)
+    #   # comment 3 inside a segment
+    #   1
+    #                         (empty line)
+    #   2 3 # comment 4 inline with other contents
+    #   == data 0x0a000000  (new segment)
+    #   4 5/imm32
+    #   == code  (existing segment but non-contiguous with previous iteration)
+    #   6 7
+    #   8 9  (multiple lines)
+    #   == code  (existing segment contiguous with previous iteration)
+    #   10 11
+    # . write(_test-input-stream, "# comment 1\n")
+    # . . push args
+    68/push  "# comment 1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "  # comment 2 indented\n")
+    # . . push args
+    68/push  "  # comment 2 indented\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== code 0x09000000\n")
+    # . . push args
+    68/push  "== code 0x09000000\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "# comment 3 inside a segment\n")
+    # . . push args
+    68/push  "# comment 3 inside a segment\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "1\n")
+    # . . push args
+    68/push  "1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "\n")  # empty line
+    # . . push args
+    68/push  Newline/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "2 3 # comment 4 inline with other contents\n")
+    # . . push args
+    68/push  "2 3 # comment 4 inline with other contents\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data 0x0a000000\n")
+    # . . push args
+    68/push  "== data 0x0a000000\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "4 5/imm32\n")
+    # . . push args
+    68/push  "4 5/imm32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== code\n")
+    # . . push args
+    68/push  "== code\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "6 7\n")
+    # . . push args
+    68/push  "6 7\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "8 9\n")
+    # . . push args
+    68/push  "8 9\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== code\n")
+    # . . push args
+    68/push  "== code\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "10 11\n")
+    # . . push args
+    68/push  "10 11\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-assort(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-assort/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check output
+    #   == code 0x09000000
+    #   1
+    #   2 3 # comment 4 inline with other contents
+    #   6 7
+    #   8 9
+    #   10 11
+    #   == data 0x0a000000
+    #   4 5/imm32
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "== code 0x09000000", msg)
+    # . . push args
+    68/push  "F - test-subx-assort/0"/imm32
+    68/push  "== code 0x09000000"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "1", msg)
+    # . . push args
+    68/push  "F - test-subx-assort/1"/imm32
+    68/push  "1"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "2 3 # comment 4 inline with other contents", msg)
+    # . . push args
+    68/push  "F - test-subx-assort/2"/imm32
+    68/push  "2 3 # comment 4 inline with other contents"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "6 7", msg)
+    # . . push args
+    68/push  "F - test-subx-assort/3"/imm32
+    68/push  "6 7"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "8 9", msg)
+    # . . push args
+    68/push  "F - test-subx-assort/4"/imm32
+    68/push  "8 9"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "10 11", msg)
+    # . . push args
+    68/push  "F - test-subx-assort/5"/imm32
+    68/push  "10 11"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "== data 0x0a000000", msg)
+    # . . push args
+    68/push  "F - test-subx-assort/6"/imm32
+    68/push  "== data 0x0a000000"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "4 5/imm32", msg)
+    # . . push args
+    68/push  "F - test-subx-assort/7"/imm32
+    68/push  "4 5/imm32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+read-segments:  # in: (addr buffered-file), table: (addr stream {(handle array byte), (handle stream byte)})
+    # pseudocode:
+    #   var curr-segment: (addr stream byte) = 0
+    #   var line: (stream byte 512)
+    #   while true
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break             # end of file
+    #     var word-slice = next-word-or-string(line)
+    #     if slice-empty?(word-slice)             # whitespace
+    #       continue
+    #     if slice-starts-with?(word-slice, "#")  # comment
+    #       continue
+    #     if slice-equal?(word-slice, "==")
+    #       var segment-name = next-word-or-string(line)
+    #       var segment-slot: (addr handle stream byte) = get-or-insert-slice(table, segment-name, row-size=16)
+    #       if *segment-slot != 0
+    #         curr-segment = lookup(*segment-slot)
+    #         continue
+    #       new-stream(Heap, Segment-size, 1, segment-slot)
+    #       curr-segment = lookup(*segment-slot)
+    #     rewind-stream(line)
+    #     write-stream(curr-segment, line)  # abort if curr-segment overflows
+    #
+    # word-slice and segment-name are both slices with disjoint lifetimes, so
+    # we'll use the same address for them.
+    #
+    # registers:
+    #   line: ecx
+    #   word-slice and segment-name: edx
+    #   segment-name and curr-segment: ebx
+    #   word-slice->start: esi
+    #   temporary: eax
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/length
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+$read-segments:loop:
+    # clear-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line-buffered(in, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-line-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$read-segments:check0:
+    # if (line->write == 0) break
+    81          7/subop/compare     0/mod/indirect  1/rm32/ecx    .           .             .           .           .               0/imm32           # compare *ecx
+    0f 84/jump-if-=  $read-segments:break/disp32
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, line)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(line)
+#?     # . . push args
+#?     51/push-ecx
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # next-word-or-string(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word-or-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$read-segments:check1:
+#?     # print("check1\n") {{{
+#?     # . . push args
+#?     68/push  "check1\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # if (slice-empty?(word-slice)) continue
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) continue
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $read-segments:loop/disp32
+$read-segments:check-for-comment:
+#?     # print("check for comment\n") {{{
+#?     # . . push args
+#?     68/push  "check for comment\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # if (slice-starts-with?(word-slice, "#")) continue
+    # . var start/esi: (addr byte) = word-slice->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           6/r32/esi   .               .                 # copy *ecx to esi
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           0/r32/AL    .               .                 # copy byte at *esi to AL
+    # . if (c == '#') continue
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $read-segments:loop/disp32
+$read-segments:check-for-segment-header:
+#?     # print("check for segment header\n") {{{
+#?     # . . push args
+#?     68/push  "check for segment header\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     52/push-edx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # if !slice-equal?(word-slice, "==") goto next check
+    # . eax = slice-equal?(word-slice, "==")
+    # . . push args
+    68/push  "=="/imm32
+    52/push-edx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $read-segments:regular-line/disp32
+    # segment-name = next-word-or-string(line)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word-or-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump segment name {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     52/push-edx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # var segment-slot/edi: (addr handle stream byte) = get-or-insert-slice(table, segment-name, row-size=16, Heap)
+    # . eax = get-or-insert-slice(table, segment-name, row-size=16, Heap)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0x10/imm32/row-size
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  get-or-insert-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . edi = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+#?     # print("slot: " segment-slot "\n") {{{
+#?     # . write("slot: ")
+#?     # . . push args
+#?     68/push  "slot: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, segment-slot)
+#?     # . . push args
+#?     57/push-edi
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write("\n")
+#?     # . . push args
+#?     68/push  Newline/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # if (*segment-slot != 0) update curr-segment and continue
+    81          7/subop/compare     0/mod/indirect  7/rm32/edi    .           .             .           .           .               0/imm32           # compare edi
+    0f 84/jump-if-=  $read-segments:create-segment/disp32
+    # var curr-segment/ebx: (addr stream byte) = lookup(*segment-slot)
+    # . eax = lookup(*segment-slot)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         .                 # push *(edi+4)
+    ff          6/subop/push        0/mod/indirect  7/rm32/edi    .           .             .           .           .               .                 # push *edi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . ebx = eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    # continue
+    e9/jump  $read-segments:loop/disp32
+$read-segments:create-segment:
+    # new-stream(Heap, Segment-size, 1, segment-slot)
+    # . . push args
+    57/push-edi
+    68/push  1/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Segment-size/disp32               # push *Segment-size
+    68/push  Heap/imm32
+    # . . call
+    e8/call  new-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # var curr-segment/ebx: (addr stream byte) = lookup(*segment-slot)
+    # . eax = lookup(*segment-slot)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         .                 # push *(edi+4)
+    ff          6/subop/push        0/mod/indirect  7/rm32/edi    .           .             .           .           .               .                 # push *edi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . ebx = eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    # fall through
+$read-segments:regular-line:
+#?     # print("regular line\n") {{{
+#?     # . . push args
+#?     68/push  "regular line\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+#?     # dump line {{{
+#?     # . write(2/stderr, "regular line: ")
+#?     # . . push args
+#?     68/push  "regular line: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(line)
+#?     # . . push args
+#?     51/push-ecx
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-stream(2/stderr, line)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+#?     # print("addr: " curr-segment->write "\n") {{{
+#?     # . write("addr: ")
+#?     # . . push args
+#?     68/push  "addr: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, curr-segment)
+#?     # . . push args
+#?     53/push-ebx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write("\n")
+#?     # . . push args
+#?     68/push  Newline/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+#?     # print("write: " curr-segment->write "\n") {{{
+#?     # . write("write: ")
+#?     # . . push args
+#?     68/push  "write: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, curr-segment->write)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write("\n")
+#?     # . . push args
+#?     68/push  Newline/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+#?     # print("size: " curr-segment->size "\n") {{{
+#?     # . write("size: ")
+#?     # . . push args
+#?     68/push  "size: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, curr-segment->size)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           8/disp8         .                 # push *(ebx+8)
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write("\n")
+#?     # . . push args
+#?     68/push  Newline/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # rewind-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # print("write stream\n") {{{
+#?     # . . push args
+#?     68/push  "write stream\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # write-stream(curr-segment, line)
+    # . . push args
+    51/push-ecx
+    53/push-ebx
+    # . . call
+    e8/call  write-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+#?     # print("loop\n") {{{
+#?     # . . push args
+#?     68/push  "loop\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    e9/jump  $read-segments:loop/disp32
+$read-segments:break:
+$read-segments:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x214/imm32       # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+write-segments:  # out: (addr buffered-file), table: (addr stream {(handle array byte), (handle stream byte)})
+    # pseudocode:
+    #   var curr = table->data
+    #   var max = &table->data[table->write]
+    #   while curr < max
+    #     var stream: (addr stream byte) = lookup(table[i].stream)
+    #     write-stream-data(out, stream)
+    #     curr += 16
+    #   flush(out)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    52/push-edx
+    56/push-esi
+    # esi = table
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var write/edx: int = table->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    # var curr/esi: (addr byte) = table->data
+    81          0/subop/add         3/mod/direct    6/rm32/esi    .           .             .           .           .               0xc/imm32         # add to eax
+    # var max/edx: (addr byte) = curr + write
+    01/add                          3/mod/direct    2/rm32/edx    .           .             .           6/r32/esi   .               .                 # add esi to edx
+$write-segments:loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    6/rm32/esi    .           .             .           2/r32/edx   .               .                 # compare esi with edx
+    73/jump-if-addr>=  $write-segments:break/disp8
+    # var stream/eax: (addr stream byte) = lookup(table[i].stream)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           0xc/disp8       .                 # push *(esi+12)
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           8/disp8         .                 # push *(esi+8)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-stream-data(out, stream)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$write-segments:continue:
+    # curr += 16
+    81          0/subop/add         3/mod/direct    6/rm32/esi    .           .             .           .           .               0x10/imm32        # add to esi
+    eb/jump  $write-segments:loop/disp8
+$write-segments:break:
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$write-segments:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/bootstrap/000organization.cc b/linux/bootstrap/000organization.cc
new file mode 100644
index 00000000..1bbaa057
--- /dev/null
+++ b/linux/bootstrap/000organization.cc
@@ -0,0 +1,164 @@
+//: You guessed right: the '000' prefix means you should start reading here.
+//:
+//: This project is set up to load all files with a numeric prefix. Just
+//: create a new file and start hacking.
+//:
+//: The first few files (00*) are independent of what this program does, an
+//: experimental skeleton that will hopefully make it both easier for others to
+//: understand and more malleable, easier to rewrite and remould into radically
+//: different shapes without breaking in subtle corner cases. The premise is
+//: that understandability and rewrite-friendliness are related in a virtuous
+//: cycle. Doing one well makes it easier to do the other.
+//:
+//: Lower down, this file contains a legal, bare-bones C++ program. It doesn't
+//: do anything yet; subsequent files will contain :(...) directives to insert
+//: lines into it. For example:
+//:   :(after "more events")
+//: This directive means: insert the following lines after a line in the
+//: program containing the words "more events".
+//:
+//: A simple tool is included to 'tangle' all the files together in sequence
+//: according to their directives into a single source file containing all the
+//: code for the project, and then feed the source file to the compiler.
+//: (It'll drop these comments starting with a '//:' prefix that only make
+//: sense before tangling.)
+//:
+//: Directives free up the programmer to order code for others to read rather
+//: than as forced by the computer or compiler. Each individual feature can be
+//: organized in a self-contained 'layer' that adds code to many different data
+//: structures and functions all over the program. The right decomposition into
+//: layers will let each layer make sense in isolation.
+//:
+//:   "If I look at any small part of it, I can see what is going on -- I don't
+//:   need to refer to other parts to understand what something is doing.
+//:
+//:   If I look at any large part in overview, I can see what is going on -- I
+//:   don't need to know all the details to get it.
+//:
+//:   Every level of detail is as locally coherent and as well thought-out as
+//:   any other level."
+//:
+//:       -- Richard Gabriel, "The Quality Without A Name"
+//:          (http://dreamsongs.com/Files/PatternsOfSoftware.pdf, page 42)
+//:
+//: Directives are powerful; they permit inserting or modifying any point in
+//: the program. Using them tastefully requires mapping out specific lines as
+//: waypoints for future layers to hook into. Often such waypoints will be in
+//: comments, capitalized to hint that other layers rely on their presence.
+//:
+//: A single waypoint might have many different code fragments hooking into
+//: it from all over the codebase. Use 'before' directives to insert
+//: code at a location in order, top to bottom, and 'after' directives to
+//: insert code in reverse order. By convention waypoints intended for insertion
+//: before begin with 'End'. Notice below how the layers line up above the "End
+//: Foo" waypoint.
+//:
+//:   File 001          File 002                File 003
+//:   ============      ===================     ===================
+//:   // Foo
+//:   ------------
+//:              <----  :(before "End Foo")
+//:                     ....
+//:                     ...
+//:   ------------
+//:              <----------------------------  :(before "End Foo")
+//:                                             ....
+//:                                             ...
+//:   // End Foo
+//:   ============
+//:
+//: Here's part of a layer in color: http://i.imgur.com/0eONnyX.png. Directives
+//: are shaded dark.
+//:
+//: Layers do more than just shuffle code around. In a well-organized codebase
+//: it should be possible to stop loading after any file/layer, build and run
+//: the program, and pass all tests for loaded features. (Relevant is
+//: http://youtube.com/watch?v=c8N72t7aScY, a scene from "2001: A Space
+//: Odyssey".) Get into the habit of running the included script called
+//: 'test_layers' before you commit any changes.
+//:
+//: This 'subsetting guarantee' ensures that this directory contains a
+//: cleaned-up narrative of the evolution of this codebase. Organizing
+//: autobiographically allows newcomers to rapidly orient themselves, reading
+//: the first few files to understand a simple gestalt of a program's core
+//: purpose and features, and later gradually working their way through other
+//: features as the need arises.
+//:
+//: Programmers shouldn't need to understand everything about a program to
+//: hack on it. But they shouldn't be prevented from a thorough understanding
+//: of each aspect either. The goal of layers is to reward curiosity.
+//:
+//: More information: http://akkartik.name/post/wart-layers
+
+// Includes
+// End Includes
+
+// Types
+// End Types
+
+// Function prototypes are auto-generated in the 'build' script; define your
+// functions in any order. Just be sure to declare each function header all on
+// one line, ending with the '{'. Our auto-generation scripts are too minimal
+// and simple-minded to handle anything else.
+#include "function_list"  // by convention, files ending with '_list' are auto-generated
+
+// Globals
+//
+// All statements in this section should always define a single variable on a
+// single line. The 'build' script will simple-mindedly auto-generate extern
+// declarations for them. Remember to define (not just declare) constants with
+// extern linkage in this section, since C++ global constants have internal
+// linkage by default.
+//
+// End Globals
+
+int main(int argc, char* argv[]) {
+  atexit(reset);
+  // we require a 32-bit little-endian system
+  assert(sizeof(int) == 4);
+  assert(sizeof(float) == 4);
+  assert_little_endian();
+
+  // End One-time Setup
+
+  // Commandline Parsing
+  // End Commandline Parsing
+
+  // End Main
+
+  return 0;
+}
+
+// Unit Tests
+// End Unit Tests
+
+//: our first directive; insert the following headers at the start of the program
+:(before "End Includes")
+#include <assert.h>
+#include <stdlib.h>
+
+//: Without directives or with the :(code) directive, lines get added at the
+//: end.
+//:
+//: Regardless of where functions are defined, we can call them anywhere we
+//: like as long as we format the function header in a specific way: put it
+//: all on a single line without indent, end the line with ') {' and no
+//: trailing whitespace. As long as functions uniformly start this way, our
+//: 'build' script contains a little command to automatically generate
+//: declarations for them.
+:(code)
+void reset() {
+  // End Reset
+}
+
+void assert_little_endian() {
+  const int x = 1;
+  const char* y = reinterpret_cast<const char*>(&x);
+  if (*y != 1) {
+    cerr << "SubX requires a little-endian processor. Do you have Intel (or AMD or Atom) inside?\n";
+    exit(1);
+  }
+}
+:(before "End Includes")
+#include<iostream>
+using std::cerr;
diff --git a/linux/bootstrap/001help.cc b/linux/bootstrap/001help.cc
new file mode 100644
index 00000000..87466acd
--- /dev/null
+++ b/linux/bootstrap/001help.cc
@@ -0,0 +1,271 @@
+//: Everything this project/binary supports.
+//: This should give you a sense for what to look forward to in later layers.
+
+:(before "End Commandline Parsing")
+if (argc <= 1 || is_equal(argv[1], "--help")) {
+  //: this is the functionality later layers will provide
+  // currently no automated tests for commandline arg parsing
+  cerr << get(Help, "usage");
+  return 0;
+}
+
+//: Support for option parsing.
+//: Options always begin with '--' and are always the first arguments. An
+//: option will never follow a non-option.
+char** arg = &argv[1];
+while (argc > 1 && starts_with(*arg, "--")) {
+  if (false)
+    ;  // no-op branch just so any further additions can consistently always start with 'else'
+  // End Commandline Options(*arg)
+  else
+    cerr << "skipping unknown option " << *arg << '\n';
+  --argc;  ++argv;  ++arg;
+}
+
+if (is_equal(argv[1], "help")) {
+  if (argc == 2) {
+    cerr << "help on what?\n";
+    help_contents();
+    return 0;
+  }
+  string key(argv[2]);
+  // End Help Special-cases(key)
+  if (contains_key(Help, key)) {
+    cerr << get(Help, key);
+    return 0;
+  }
+  else {
+    cerr << "No help found for '" << key << "'\n";
+    help_contents();
+    cerr << "Please check your command for typos.\n";
+    return 1;
+  }
+}
+
+:(code)
+void help_contents() {
+  cerr << "Available top-level topics:\n";
+  cerr << "  usage\n";
+  // End Help Contents
+}
+
+:(before "End Globals")
+map<string, string> Help;
+:(before "End Includes")
+#include <map>
+using std::map;
+:(before "End One-time Setup")
+init_help();
+:(code)
+void init_help() {
+  put(Help, "usage",
+    "bootstrap: the bootstrap translator for SubX.\n"
+    "This program also wraps some miscellaneous useful functionality:\n"
+    "  - an x86 emulator: `bootstrap run`\n"
+    "  - online help: `bootstrap help`\n"
+    "\n"
+    "== Ways to invoke bootstrap\n"
+    "- See this message:\n"
+    "    bootstrap --help\n"
+    "- Convert a textual SubX program into a standard ELF binary that you can\n"
+    "  run on your computer:\n"
+    "    bootstrap translate input1.subx input2.subx ... -o <output ELF binary>\n"
+    "- Run a SubX binary using SubX itself (for better error messages):\n"
+    "    bootstrap run <ELF binary>\n"
+    "- Run all bootstrap's unit tests:\n"
+    "    bootstrap test\n"
+    "- Run a single unit test:\n"
+    "    bootstrap test <test name>\n"
+    "     e.g. bootstrap test test_copy_imm32_to_EAX\n"
+    "\n"
+    "== Debugging aids\n"
+    "- Add '--trace' to any of these commands to save a trace to disk at the end.\n"
+    "  This can run out of memory for long-running commands.\n"
+    "- Add '--debug' to emit additional debug information during translation.\n"
+    "  'bootstrap --debug translate' will save metadata to disk that\n"
+    "  'bootstrap --trace run' uses to make traces more informative.\n"
+    "\n"
+    "Options starting with '--' must always come before any other arguments.\n"
+    "\n"
+    "To start learning how to write SubX programs, see Readme.md (particularly\n"
+    "the section on the x86 instruction set) and then run:\n"
+    "  bootstrap help\n"
+  );
+  // End Help Texts
+}
+
+:(code)
+bool is_equal(const char* s, const char* lit) {
+  size_t len = strlen(lit);
+  if (strlen(s) != len) return false;
+  return strncmp(s, lit, len) == 0;
+}
+
+bool starts_with(const string& s, const string& pat) {
+  string::const_iterator a=s.begin(), b=pat.begin();
+  for (/*nada*/;  a!=s.end() && b!=pat.end();  ++a, ++b)
+    if (*a != *b) return false;
+  return b == pat.end();
+}
+
+//: I'll throw some style conventions here for want of a better place for them.
+//: As a rule I hate style guides. Do what you want, that's my motto. But since
+//: we're dealing with C/C++, the one big thing we want to avoid is undefined
+//: behavior. If a compiler ever encounters undefined behavior it can make
+//: your program do anything it wants.
+//:
+//: For reference, my checklist of undefined behaviors to watch out for:
+//:   out-of-bounds access
+//:   uninitialized variables
+//:   use after free
+//:   dereferencing invalid pointers: null, a new of size 0, others
+//:
+//:   casting a large number to a type too small to hold it
+//:
+//:   integer overflow
+//:   division by zero and other undefined expressions
+//:   left-shift by negative count
+//:   shifting values by more than or equal to the number of bits they contain
+//:   bitwise operations on signed numbers
+//:
+//:   Converting pointers to types of different alignment requirements
+//:     T* -> void* -> T*: defined
+//:     T* -> U* -> T*: defined if non-function pointers and alignment requirements are same
+//:     function pointers may be cast to other function pointers
+//:
+//:       Casting a numeric value into a value that can't be represented by the target type (either directly or via static_cast)
+//:
+//: To guard against these, some conventions:
+//:
+//: 0. Initialize all primitive variables in functions and constructors.
+//:
+//: 1. Minimize use of pointers and pointer arithmetic. Avoid 'new' and
+//: 'delete' as far as possible. Rely on STL to perform memory management to
+//: avoid use-after-free issues (and memory leaks).
+//:
+//: 2. Avoid naked arrays to avoid out-of-bounds access. Never use operator[]
+//: except with map. Use at() with STL vectors and so on.
+//:
+//: 3. Valgrind all the things.
+//:
+//: 4. Avoid unsigned numbers. Not strictly an undefined-behavior issue, but
+//: the extra range doesn't matter, and it's one less confusing category of
+//: interaction gotchas to worry about.
+//:
+//: Corollary: don't use the size() method on containers, since it returns an
+//: unsigned and that'll cause warnings about mixing signed and unsigned,
+//: yadda-yadda. Instead use this macro below to perform an unsafe cast to
+//: signed. We'll just give up immediately if a container's ever too large.
+//: Basically, Mu is not concerned about this being a little slower than it
+//: could be. (https://gist.github.com/rygorous/e0f055bfb74e3d5f0af20690759de5a7)
+//:
+//: Addendum to corollary: We're going to uniformly use int everywhere, to
+//: indicate that we're oblivious to number size, and since Clang on 32-bit
+//: platforms doesn't yet support multiplication over 64-bit integers, and
+//: since multiplying two integers seems like a more common situation to end
+//: up in than integer overflow.
+:(before "End Includes")
+#define SIZE(X) (assert((X).size() < (1LL<<(sizeof(int)*8-2))), static_cast<int>((X).size()))
+
+//: 5. Integer overflow is guarded against at runtime using the -ftrapv flag
+//: to the compiler, supported by Clang (GCC version only works sometimes:
+//: http://stackoverflow.com/questions/20851061/how-to-make-gcc-ftrapv-work).
+:(before "atexit(reset)")
+initialize_signal_handlers();  // not always necessary, but doesn't hurt
+//? cerr << INT_MAX+1 << '\n';  // test overflow
+//? assert(false);  // test SIGABRT
+:(code)
+// based on https://spin.atomicobject.com/2013/01/13/exceptions-stack-traces-c
+void initialize_signal_handlers() {
+  struct sigaction action;
+  bzero(&action, sizeof(action));
+  action.sa_sigaction = dump_and_exit;
+  sigemptyset(&action.sa_mask);
+  sigaction(SIGABRT, &action, NULL);  // assert() failure or integer overflow on linux (with -ftrapv)
+  sigaction(SIGILL,  &action, NULL);  // integer overflow on OS X (with -ftrapv)
+}
+void dump_and_exit(int sig, siginfo_t* /*unused*/, void* /*unused*/) {
+  switch (sig) {
+    case SIGABRT:
+      #ifndef __APPLE__
+        cerr << "SIGABRT: might be an integer overflow if it wasn't an assert() failure\n";
+        _Exit(1);
+      #endif
+      break;
+    case SIGILL:
+      #ifdef __APPLE__
+        cerr << "SIGILL: most likely caused by integer overflow\n";
+        _Exit(1);
+      #endif
+      break;
+    default:
+      break;
+  }
+}
+:(before "End Includes")
+#include <signal.h>
+
+//: 6. Map's operator[] being non-const is fucking evil.
+:(before "Globals")  // can't generate prototypes for these
+// from http://stackoverflow.com/questions/152643/idiomatic-c-for-reading-from-a-const-map
+template<typename T> typename T::mapped_type& get(T& map, typename T::key_type const& key) {
+  typename T::iterator iter(map.find(key));
+  if (iter == map.end()) {
+    cerr << "get couldn't find key '" << key << "'\n";
+    assert(iter != map.end());
+  }
+  return iter->second;
+}
+template<typename T> typename T::mapped_type const& get(const T& map, typename T::key_type const& key) {
+  typename T::const_iterator iter(map.find(key));
+  if (iter == map.end()) {
+    cerr << "get couldn't find key '" << key << "'\n";
+    assert(iter != map.end());
+  }
+  return iter->second;
+}
+template<typename T> typename T::mapped_type const& put(T& map, typename T::key_type const& key, typename T::mapped_type const& value) {
+  map[key] = value;
+  return map[key];
+}
+template<typename T> bool contains_key(T& map, typename T::key_type const& key) {
+  return map.find(key) != map.end();
+}
+template<typename T> typename T::mapped_type& get_or_insert(T& map, typename T::key_type const& key) {
+  return map[key];
+}
+template<typename T> typename T::mapped_type const& put_new(T& map, typename T::key_type const& key, typename T::mapped_type const& value) {
+  assert(map.find(key) == map.end());
+  map[key] = value;
+  return map[key];
+}
+//: The contract: any container that relies on get_or_insert should never call
+//: contains_key.
+
+//: 7. istreams are a royal pain in the arse. You have to be careful about
+//: what subclass you try to putback into. You have to watch out for the pesky
+//: failbit and badbit. Just avoid eof() and use this helper instead.
+:(code)
+bool has_data(istream& in) {
+  return in && !in.eof();
+}
+
+:(before "End Includes")
+#include <assert.h>
+
+#include <iostream>
+using std::istream;
+using std::ostream;
+using std::iostream;
+using std::cin;
+using std::cout;
+using std::cerr;
+#include <iomanip>
+
+#include <string.h>
+#include <string>
+using std::string;
+
+#include <algorithm>
+using std::min;
+using std::max;
diff --git a/linux/bootstrap/002test.cc b/linux/bootstrap/002test.cc
new file mode 100644
index 00000000..7865c3b5
--- /dev/null
+++ b/linux/bootstrap/002test.cc
@@ -0,0 +1,123 @@
+//: A simple test harness. To create new tests, define functions starting with
+//: 'test_'. To run all tests so defined, run:
+//:   $ ./bootstrap test
+//:
+//: Every layer should include tests, and can reach into previous layers.
+//: However, it seems like a good idea never to reach into tests from previous
+//: layers. Every test should be a contract that always passes as originally
+//: written, regardless of any later layers. Avoid writing 'temporary' tests
+//: that are only meant to work until some layer.
+
+:(before "End Types")
+typedef void (*test_fn)(void);
+:(before "Globals")
+// move a global ahead into types that we can't generate an extern declaration for
+const test_fn Tests[] = {
+  #include "test_list"  // auto-generated; see 'build*' scripts
+};
+
+:(before "End Globals")
+bool Run_tests = false;
+bool Passed = true;  // set this to false inside any test to indicate failure
+
+:(before "End Includes")
+#define CHECK(X) \
+  if (Passed && !(X)) { \
+    cerr << "\nF - " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): " << #X << '\n'; \
+    Passed = false; \
+    return;  /* Currently we stop at the very first failure. */ \
+  }
+
+#define CHECK_EQ(X, Y) \
+  if (Passed && (X) != (Y)) { \
+    cerr << "\nF - " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): " << #X << " == " << #Y << '\n'; \
+    cerr << "  got " << (X) << '\n';  /* BEWARE: multiple eval */ \
+    Passed = false; \
+    return;  /* Currently we stop at the very first failure. */ \
+  }
+
+:(before "End Reset")
+Passed = true;
+
+:(before "End Commandline Parsing")
+if (argc > 1 && is_equal(argv[1], "test")) {
+  Run_tests = true;  --argc;  ++argv;  // shift 'test' out of commandline args
+}
+
+:(before "End Main")
+if (Run_tests) {
+  // Test Runs
+  // we run some tests and then exit; assume no state need be maintained afterward
+
+  long num_failures = 0;
+  // End Test Run Initialization
+  time_t t;  time(&t);
+  cerr << "C tests: " << ctime(&t);
+  for (size_t i=0;  i < sizeof(Tests)/sizeof(Tests[0]);  ++i) {
+//?     cerr << "running " << Test_names[i] << '\n';
+    run_test(i);
+    if (Passed) cerr << '.';
+    else ++num_failures;
+  }
+  cerr << '\n';
+  // End Tests
+  if (num_failures > 0) {
+    cerr << num_failures << " failure"
+         << (num_failures > 1 ? "s" : "")
+         << '\n';
+    return 1;
+  }
+  return 0;
+}
+
+:(after "End Main")
+//: Raise other unrecognized sub-commands as errors.
+//: We couldn't do this until now because we want `./bootstrap test` to always
+//: succeed, no matter how many layers are included in the build.
+cerr << "nothing to do\n";
+return 1;
+
+:(code)
+void run_test(size_t i) {
+  if (i >= sizeof(Tests)/sizeof(Tests[0])) {
+    cerr << "no test " << i << '\n';
+    return;
+  }
+  reset();
+  // End Test Setup
+  (*Tests[i])();
+  // End Test Teardown
+}
+
+//: Convenience: run a single test
+:(before "Globals")
+// Names for each element of the 'Tests' global, respectively.
+const string Test_names[] = {
+  #include "test_name_list"  // auto-generated; see 'build*' scripts
+};
+:(after "Test Runs")
+string maybe_single_test_to_run = argv[argc-1];
+for (size_t i=0;  i < sizeof(Tests)/sizeof(Tests[0]);  ++i) {
+  if (Test_names[i] == maybe_single_test_to_run) {
+    run_test(i);
+    if (Passed) cerr << ".\n";
+    return 0;
+  }
+}
+
+//: A pending test that also serves to put our test harness through its paces.
+
+:(code)
+void test_is_equal() {
+  CHECK(is_equal("", ""));
+  CHECK(!is_equal("", "foo"));
+  CHECK(!is_equal("foo", ""));
+  CHECK(!is_equal("f", "bar"));
+  CHECK(!is_equal("bar", "f"));
+  CHECK(!is_equal("bar", "ba"));
+  CHECK(!is_equal("ba", "bar"));
+  CHECK(is_equal("bar", "bar"));
+}
+
+:(before "End Includes")
+#include <stdlib.h>
diff --git a/linux/bootstrap/003trace.cc b/linux/bootstrap/003trace.cc
new file mode 100644
index 00000000..75dc0253
--- /dev/null
+++ b/linux/bootstrap/003trace.cc
@@ -0,0 +1,523 @@
+//: The goal of layers is to make programs more easy to understand and more
+//: malleable, easy to rewrite in radical ways without accidentally breaking
+//: some corner case. Tests further both goals. They help understandability by
+//: letting one make small changes and get feedback. What if I wrote this line
+//: like so? What if I removed this function call, is it really necessary?
+//: Just try it, see if the tests pass. Want to explore rewriting this bit in
+//: this way? Tests put many refactorings on a firmer footing.
+//:
+//: But the usual way we write tests seems incomplete. Refactorings tend to
+//: work in the small, but don't help with changes to function boundaries. If
+//: you want to extract a new function you have to manually test-drive it to
+//: create tests for it. If you want to inline a function its tests are no
+//: longer valid. In both cases you end up having to reorganize code as well as
+//: tests, an error-prone activity.
+//:
+//: In response, this layer introduces the notion of domain-driven *white-box*
+//: testing. We focus on the domain of inputs the whole program needs to
+//: handle rather than the correctness of individual functions. All white-box
+//: tests invoke the program in a single way: by calling run() with some
+//: input. As the program operates on the input, it traces out a list of
+//: _facts_ deduced about the domain:
+//:   trace("label") << "fact 1: " << val;
+//:
+//: Tests can now check for these facts in the trace:
+//:   CHECK_TRACE_CONTENTS("label", "fact 1: 34\n"
+//:                                 "fact 2: 35\n");
+//:
+//: Since we never call anything but the run() function directly, we never have
+//: to rewrite the tests when we reorganize the internals of the program. We
+//: just have to make sure our rewrite deduces the same facts about the domain,
+//: and that's something we're going to have to do anyway.
+//:
+//: To avoid the combinatorial explosion of integration tests, each layer
+//: mainly logs facts to the trace with a common *label*. All tests in a layer
+//: tend to check facts with this label. Validating the facts logged with a
+//: specific label is like calling functions of that layer directly.
+//:
+//: To build robust tests, trace facts about your domain rather than details of
+//: how you computed them.
+//:
+//: More details: http://akkartik.name/blog/tracing-tests
+//:
+//: ---
+//:
+//: Between layers and domain-driven testing, programming starts to look like a
+//: fundamentally different activity. Instead of focusing on a) superficial,
+//: b) local rules on c) code [like say http://blog.bbv.ch/2013/06/05/clean-code-cheat-sheet],
+//: we allow programmers to engage with the a) deep, b) global structure of
+//: the c) domain. If you can systematically track discontinuities in the
+//: domain, you don't care if the code used gotos as long as it passed all
+//: tests. If tests become more robust to run, it becomes easier to try out
+//: radically different implementations for the same program. If code is
+//: super-easy to rewrite, it becomes less important what indentation style it
+//: uses, or that the objects are appropriately encapsulated, or that the
+//: functions are referentially transparent.
+//:
+//: Instead of plumbing, programming becomes building and gradually refining a
+//: map of the environment the program must operate under. Whether a program
+//: is 'correct' at a given point in time is a red herring; what matters is
+//: avoiding regression by monotonically nailing down the more 'eventful'
+//: parts of the terrain. It helps readers new and old, and rewards curiosity,
+//: to organize large programs in self-similar hierarchies of example tests
+//: colocated with the code that makes them work.
+//:
+//:   "Programming properly should be regarded as an activity by which
+//:   programmers form a mental model, rather than as production of a program."
+//:   -- Peter Naur (http://akkartik.name/naur.pdf)
+
+//:: == Core data structures
+
+:(before "End Globals")
+trace_stream* Trace_stream = NULL;
+
+:(before "End Types")
+struct trace_stream {
+  vector<trace_line> past_lines;
+  // End trace_stream Fields
+
+  trace_stream() {
+    // End trace_stream Constructor
+  }
+  ~trace_stream() {
+    // End trace_stream Destructor
+  }
+  // End trace_stream Methods
+};
+
+//:: == Adding to the trace
+
+//: Top-level method is trace() which can be used like an ostream. Usage:
+//:   trace(depth, label) << ... << end();
+//: Don't forget the 'end()' to actually append to the trace.
+:(before "End Includes")
+// No brackets around the expansion so that it prints nothing if Trace_stream
+// isn't initialized.
+#define trace(...)  !Trace_stream ? cerr : Trace_stream->stream(__VA_ARGS__)
+
+:(before "End trace_stream Fields")
+// accumulator for current trace_line
+ostringstream* curr_stream;
+string curr_label;
+int curr_depth;
+// other stuff
+int collect_depth;  // avoid tracing lower levels for speed
+ofstream null_stream;  // never opened, so writes to it silently fail
+
+//: Some constants.
+:(before "struct trace_stream")  // include constants in all cleaved compilation units
+const int Max_depth = 9999;
+:(before "End trace_stream Constructor")
+curr_stream = NULL;
+curr_depth = Max_depth;
+collect_depth = Max_depth;
+
+:(before "struct trace_stream")
+struct trace_line {
+  string contents;
+  string label;
+  int depth;  // 0 is 'sea level'; positive integers are progressively 'deeper' and lower level
+  trace_line(string c, string l) {
+    contents = c;
+    label = l;
+    depth = 0;
+  }
+  trace_line(string c, string l, int d) {
+    contents = c;
+    label = l;
+    depth = d;
+  }
+};
+
+string unescape_newline(string& s) {
+  std::stringstream ss;
+  for (int i = 0;  i < SIZE(s);  ++i) {
+    if (s.at(i) == '\n')
+      ss << "\\n";
+    else
+      ss << s.at(i);
+  }
+  return ss.str();
+}
+
+void dump_trace_line(ostream& s, trace_line& t) {
+  s << std::setw(2) << t.depth << ' ' << t.label << ": " << unescape_newline(t.contents) << '\n';
+}
+
+//: Starting a new trace line.
+:(before "End trace_stream Methods")
+ostream& stream(string label) {
+  return stream(Max_depth, label);
+}
+
+ostream& stream(int depth, string label) {
+  if (depth > collect_depth) return null_stream;
+  curr_stream = new ostringstream;
+  curr_label = label;
+  curr_depth = depth;
+  (*curr_stream) << std::hex;  // printing addresses is the common case
+  return *curr_stream;
+}
+
+//: End of a trace line; append it to the trace.
+:(before "End Types")
+struct end {};
+:(code)
+ostream& operator<<(ostream& os, end /*unused*/) {
+  if (Trace_stream) Trace_stream->newline();
+  return os;
+}
+
+//: Fatal error.
+:(before "End Types")
+struct die {};
+:(code)
+ostream& operator<<(ostream& /*unused*/, die /*unused*/) {
+  if (Trace_stream) Trace_stream->newline();
+  exit(1);
+}
+
+:(before "End trace_stream Methods")
+void newline();
+:(code)
+void trace_stream::newline() {
+  if (!curr_stream) return;
+  string curr_contents = curr_stream->str();
+  if (!curr_contents.empty()) {
+    past_lines.push_back(trace_line(curr_contents, trim(curr_label), curr_depth));  // preserve indent in contents
+    // maybe print this line to stderr
+    trace_line& t = past_lines.back();
+    if (should_incrementally_print_trace()) {
+      dump_trace_line(cerr, t);
+    }
+    // End trace Commit
+  }
+
+  // clean up
+  delete curr_stream;
+  curr_stream = NULL;
+  curr_label.clear();
+  curr_depth = Max_depth;
+}
+
+//:: == Initializing the trace in tests
+
+:(before "End Includes")
+#define START_TRACING_UNTIL_END_OF_SCOPE  lease_tracer leased_tracer;
+:(before "End Test Setup")
+START_TRACING_UNTIL_END_OF_SCOPE
+
+//: Trace_stream is a resource, lease_tracer uses RAII to manage it.
+:(before "End Types")
+struct lease_tracer {
+  lease_tracer();
+  ~lease_tracer();
+};
+:(code)
+lease_tracer::lease_tracer() { Trace_stream = new trace_stream; }
+lease_tracer::~lease_tracer() {
+  delete Trace_stream;
+  Trace_stream = NULL;
+}
+
+//:: == Errors and warnings using traces
+
+:(before "End Includes")
+#define raise  (!Trace_stream ? (++Trace_errors,cerr) /*do print*/ : Trace_stream->stream(Error_depth, "error"))
+#define warn (!Trace_stream ? (++Trace_errors,cerr) /*do print*/ : Trace_stream->stream(Warn_depth, "warn"))
+
+//: Print errors and warnings to the screen by default.
+:(before "struct trace_stream")  // include constants in all cleaved compilation units
+const int Error_depth = 0;
+const int Warn_depth = 1;
+:(before "End Globals")
+int Hide_errors = false;  // if set, don't print errors or warnings to screen
+int Hide_warnings = false;  // if set, don't print warnings to screen
+:(before "End Reset")
+Hide_errors = false;
+Hide_warnings = false;
+//: Never dump warnings in tests
+:(before "End Test Setup")
+Hide_warnings = true;
+:(code)
+bool trace_stream::should_incrementally_print_trace() {
+  if (!Hide_errors && curr_depth == Error_depth) return true;
+  if (!Hide_warnings && !Hide_errors && curr_depth == Warn_depth) return true;
+  // End Incremental Trace Print Conditions
+  return false;
+}
+:(before "End trace_stream Methods")
+bool should_incrementally_print_trace();
+
+:(before "End Globals")
+int Trace_errors = 0;  // used only when Trace_stream is NULL
+
+// Fail tests that displayed (unexpected) errors.
+// Expected errors should always be hidden and silently checked for.
+:(before "End Test Teardown")
+if (Passed && !Hide_errors && trace_contains_errors()) {
+  Passed = false;
+}
+:(code)
+bool trace_contains_errors() {
+  return Trace_errors > 0 || trace_count("error") > 0;
+}
+
+:(before "End Includes")
+// If we aren't yet sure how to deal with some corner case, use assert_for_now
+// to indicate that it isn't an inviolable invariant.
+#define assert_for_now assert
+#define raise_for_now raise
+
+//:: == Other assertions on traces
+//: Primitives:
+//:   - CHECK_TRACE_CONTENTS(lines)
+//:     Assert that the trace contains the given lines (separated by newlines)
+//:     in order. There can be other intervening lines between them.
+//:   - CHECK_TRACE_DOESNT_CONTAIN(line)
+//:   - CHECK_TRACE_DOESNT_CONTAIN(label, contents)
+//:     Assert that the trace doesn't contain the given (single) line.
+//:   - CHECK_TRACE_COUNT(label, count)
+//:     Assert that the trace contains exactly 'count' lines with the given
+//:     'label'.
+//:   - CHECK_TRACE_CONTAINS_ERRORS()
+//:   - CHECK_TRACE_DOESNT_CONTAIN_ERRORS()
+//:   - trace_count_prefix(label, prefix)
+//:     Count the number of trace lines with the given 'label' that start with
+//:     the given 'prefix'.
+
+:(before "End Includes")
+#define CHECK_TRACE_CONTENTS(...)  check_trace_contents(__FUNCTION__, __FILE__, __LINE__, __VA_ARGS__)
+
+#define CHECK_TRACE_DOESNT_CONTAIN(...)  CHECK(trace_doesnt_contain(__VA_ARGS__))
+
+#define CHECK_TRACE_COUNT(label, count) \
+  if (Passed && trace_count(label) != (count)) { \
+    cerr << "\nF - " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): trace_count of " << label << " should be " << count << '\n'; \
+    cerr << "  got " << trace_count(label) << '\n';  /* multiple eval */ \
+    DUMP(label); \
+    Passed = false; \
+    return;  /* Currently we stop at the very first failure. */ \
+  }
+
+#define CHECK_TRACE_CONTAINS_ERRORS()  CHECK(trace_contains_errors())
+#define CHECK_TRACE_DOESNT_CONTAIN_ERRORS() \
+  if (Passed && trace_contains_errors()) { \
+    cerr << "\nF - " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): unexpected errors\n"; \
+    DUMP("error"); \
+    Passed = false; \
+    return; \
+  }
+
+// Allow tests to ignore trace lines generated during setup.
+#define CLEAR_TRACE  delete Trace_stream, Trace_stream = new trace_stream
+
+:(code)
+bool check_trace_contents(string FUNCTION, string FILE, int LINE, string expected) {
+  if (!Passed) return false;
+  if (!Trace_stream) return false;
+  vector<string> expected_lines = split(expected, "\n");
+  int curr_expected_line = 0;
+  while (curr_expected_line < SIZE(expected_lines) && expected_lines.at(curr_expected_line).empty())
+    ++curr_expected_line;
+  if (curr_expected_line == SIZE(expected_lines)) return true;
+  string label, contents;
+  split_label_contents(expected_lines.at(curr_expected_line), &label, &contents);
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label != p->label) continue;
+    string t = trim(p->contents);
+    if (contents != unescape_newline(t)) continue;
+    ++curr_expected_line;
+    while (curr_expected_line < SIZE(expected_lines) && expected_lines.at(curr_expected_line).empty())
+      ++curr_expected_line;
+    if (curr_expected_line == SIZE(expected_lines)) return true;
+    split_label_contents(expected_lines.at(curr_expected_line), &label, &contents);
+  }
+
+  if (line_exists_anywhere(label, contents)) {
+    cerr << "\nF - " << FUNCTION << "(" << FILE << ":" << LINE << "): line [" << label << ": " << contents << "] out of order in trace:\n";
+    DUMP("");
+  }
+  else {
+    cerr << "\nF - " << FUNCTION << "(" << FILE << ":" << LINE << "): missing [" << contents << "] in trace:\n";
+    DUMP(label);
+  }
+  Passed = false;
+  return false;
+}
+
+bool trace_doesnt_contain(string expected) {
+  vector<string> tmp = split_first(expected, ": ");
+  if (SIZE(tmp) == 1) {
+    raise << expected << ": missing label or contents in trace line\n" << end();
+    assert(false);
+  }
+  return trace_count(tmp.at(0), tmp.at(1)) == 0;
+}
+
+int trace_count(string label) {
+  return trace_count(label, "");
+}
+
+int trace_count(string label, string line) {
+  if (!Trace_stream) return 0;
+  long result = 0;
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label == p->label) {
+      if (line == "" || trim(line) == trim(p->contents))
+        ++result;
+    }
+  }
+  return result;
+}
+
+int trace_count_prefix(string label, string prefix) {
+  if (!Trace_stream) return 0;
+  long result = 0;
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label == p->label) {
+      if (starts_with(trim(p->contents), trim(prefix)))
+        ++result;
+    }
+  }
+  return result;
+}
+
+void split_label_contents(const string& s, string* label, string* contents) {
+  static const string delim(": ");
+  size_t pos = s.find(delim);
+  if (pos == string::npos) {
+    *label = "";
+    *contents = trim(s);
+  }
+  else {
+    *label = trim(s.substr(0, pos));
+    *contents = trim(s.substr(pos+SIZE(delim)));
+  }
+}
+
+bool line_exists_anywhere(const string& label, const string& contents) {
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label != p->label) continue;
+    if (contents == trim(p->contents)) return true;
+  }
+  return false;
+}
+
+vector<string> split(string s, string delim) {
+  vector<string> result;
+  size_t begin=0, end=s.find(delim);
+  while (true) {
+    if (end == string::npos) {
+      result.push_back(string(s, begin, string::npos));
+      break;
+    }
+    result.push_back(string(s, begin, end-begin));
+    begin = end+SIZE(delim);
+    end = s.find(delim, begin);
+  }
+  return result;
+}
+
+vector<string> split_first(string s, string delim) {
+  vector<string> result;
+  size_t end=s.find(delim);
+  result.push_back(string(s, 0, end));
+  if (end != string::npos)
+    result.push_back(string(s, end+SIZE(delim), string::npos));
+  return result;
+}
+
+//:: == Helpers for debugging using traces
+
+:(before "End Includes")
+// To debug why a test is failing, dump its trace using '?'.
+#define DUMP(label)  if (Trace_stream) cerr << Trace_stream->readable_contents(label);
+
+// To add temporary prints to the trace, use 'dbg'.
+// `git log` should never show any calls to 'dbg'.
+#define dbg trace(0, "a")
+
+//: Dump the entire trace to file where it can be browsed offline.
+//: Dump the trace as it happens; that way you get something even if the
+//: program crashes.
+
+:(before "End Globals")
+ofstream Trace_file;
+:(before "End Commandline Options(*arg)")
+else if (is_equal(*arg, "--trace")) {
+  cerr << "saving trace to 'last_run'\n";
+  Trace_file.open("last_run");
+  // Add a dummy line up top; otherwise the `browse_trace` tool currently has
+  // no way to expand any lines above an error.
+  Trace_file << "   0 dummy: start\n";
+  // End --trace Settings
+}
+:(before "End trace Commit")
+if (Trace_file.is_open()) {
+  dump_trace_line(Trace_file, t);
+  Trace_file.flush();
+  past_lines.pop_back();  // economize on memory
+}
+:(before "End One-time Setup")
+atexit(cleanup_main);
+:(code)
+void cleanup_main() {
+  if (Trace_file.is_open()) Trace_file.close();
+  // End cleanup_main
+}
+
+:(before "End trace_stream Methods")
+string readable_contents(string label) {
+  string trim(const string& s);  // prototype
+  ostringstream output;
+  label = trim(label);
+  for (vector<trace_line>::iterator p = past_lines.begin();  p != past_lines.end();  ++p)
+    if (label.empty() || label == p->label)
+      dump_trace_line(output, *p);
+  return output.str();
+}
+
+//: Print traces to the screen as they happen.
+//: Particularly useful when juggling multiple trace streams, like when
+//: debugging sandboxes.
+:(before "End Globals")
+bool Dump_trace = false;
+:(before "End Commandline Options(*arg)")
+else if (is_equal(*arg, "--dump")) {
+  Dump_trace = true;
+}
+:(before "End Incremental Trace Print Conditions")
+if (Dump_trace) return true;
+
+//: Miscellaneous helpers.
+
+:(code)
+string trim(const string& s) {
+  string::const_iterator first = s.begin();
+  while (first != s.end() && isspace(*first))
+    ++first;
+  if (first == s.end()) return "";
+
+  string::const_iterator last = --s.end();
+  while (last != s.begin() && isspace(*last))
+    --last;
+  ++last;
+  return string(first, last);
+}
+
+:(before "End Includes")
+#include <vector>
+using std::vector;
+#include <list>
+using std::list;
+#include <set>
+using std::set;
+
+#include <sstream>
+using std::istringstream;
+using std::ostringstream;
+
+#include <fstream>
+using std::ifstream;
+using std::ofstream;
diff --git a/linux/bootstrap/003trace.cc.filter b/linux/bootstrap/003trace.cc.filter
new file mode 100644
index 00000000..6d938c61
--- /dev/null
+++ b/linux/bootstrap/003trace.cc.filter
@@ -0,0 +1,525 @@
+//: The goal of layers is to make programs more easy to understand and more
+//: malleable, easy to rewrite in radical ways without accidentally breaking
+//: some corner case. Tests further both goals. They help understandability by
+//: letting one make small changes and get feedback. What if I wrote this line
+//: like so? What if I removed this function call, is it really necessary?
+//: Just try it, see if the tests pass. Want to explore rewriting this bit in
+//: this way? Tests put many refactorings on a firmer footing.
+//:
+//: But the usual way we write tests seems incomplete. Refactorings tend to
+//: work in the small, but don't help with changes to function boundaries. If
+//: you want to extract a new function you have to manually test-drive it to
+//: create tests for it. If you want to inline a function its tests are no
+//: longer valid. In both cases you end up having to reorganize code as well as
+//: tests, an error-prone activity.
+//:
+//: In response, this layer introduces the notion of domain-driven *white-box*
+//: testing. We focus on the domain of inputs the whole program needs to
+//: handle rather than the correctness of individual functions. All white-box
+//: tests invoke the program in a single way: by calling run() with some
+//: input. As the program operates on the input, it traces out a list of
+//: _facts_ deduced about the domain:
+//:   trace("label") << "fact 1: " << val;
+//:
+//: Tests can now check for these facts in the trace:
+//:   CHECK_TRACE_CONTENTS("label", "fact 1: 34\n"
+//:                                 "fact 2: 35\n");
+//:
+//: Since we never call anything but the run() function directly, we never have
+//: to rewrite the tests when we reorganize the internals of the program. We
+//: just have to make sure our rewrite deduces the same facts about the domain,
+//: and that's something we're going to have to do anyway.
+//:
+//: To avoid the combinatorial explosion of integration tests, each layer
+//: mainly logs facts to the trace with a common *label*. All tests in a layer
+//: tend to check facts with this label. Validating the facts logged with a
+//: specific label is like calling functions of that layer directly.
+//:
+//: To build robust tests, trace facts about your domain rather than details of
+//: how you computed them.
+//:
+//: More details: http://akkartik.name/blog/tracing-tests
+//:
+//: ---
+//:
+//: Between layers and domain-driven testing, programming starts to look like a
+//: fundamentally different activity. Instead of focusing on a) superficial,
+//: b) local rules on c) code [like say http://blog.bbv.ch/2013/06/05/clean-code-cheat-sheet],
+//: we allow programmers to engage with the a) deep, b) global structure of
+//: the c) domain. If you can systematically track discontinuities in the
+//: domain, you don't care if the code used gotos as long as it passed all
+//: tests. If tests become more robust to run, it becomes easier to try out
+//: radically different implementations for the same program. If code is
+//: super-easy to rewrite, it becomes less important what indentation style it
+//: uses, or that the objects are appropriately encapsulated, or that the
+//: functions are referentially transparent.
+//:
+//: Instead of plumbing, programming becomes building and gradually refining a
+//: map of the environment the program must operate under. Whether a program
+//: is 'correct' at a given point in time is a red herring; what matters is
+//: avoiding regression by monotonically nailing down the more 'eventful'
+//: parts of the terrain. It helps readers new and old, and rewards curiosity,
+//: to organize large programs in self-similar hierarchies of example tests
+//: colocated with the code that makes them work.
+//:
+//:   "Programming properly should be regarded as an activity by which
+//:   programmers form a mental model, rather than as production of a program."
+//:   -- Peter Naur (http://akkartik.name/naur.pdf)
+
+//:: == Core data structures
+
+:(before "End Globals")
+trace_stream* Trace_stream = NULL;
+
+:(before "End Types")
+struct trace_stream {
+  vector<trace_line> past_lines;
+  // End trace_stream Fields
+
+  trace_stream() {
+    // End trace_stream Constructor
+  }
+  ~trace_stream() {
+    // End trace_stream Destructor
+  }
+  // End trace_stream Methods
+};
+
+//:: == Adding to the trace
+
+//: Top-level method is trace() which can be used like an ostream. Usage:
+//:   trace(depth, label) << ... << end();
+//: Don't forget the 'end()' to actually append to the trace.
+:(before "End Includes")
+// No brackets around the expansion so that it prints nothing if Trace_stream
+// isn't initialized.
+#define trace(...)  !Trace_stream ? cerr : Trace_stream->stream(__VA_ARGS__)
+
+:(before "End trace_stream Fields")
+// accumulator for current trace_line
+ostringstream* curr_stream;
+string curr_label;
+int curr_depth;
+// other stuff
+int collect_depth;  // avoid tracing lower levels for speed
+ofstream null_stream;  // never opened, so writes to it silently fail
+
+//: Some constants.
+:(before "struct trace_stream")  // include constants in all cleaved compilation units
+const int Max_depth = 9999;
+:(before "End trace_stream Constructor")
+curr_stream = NULL;
+curr_depth = Max_depth;
+collect_depth = Max_depth;
+
+:(before "struct trace_stream")
+struct trace_line {
+  string contents;
+  string label;
+  int depth;  // 0 is 'sea level'; positive integers are progressively 'deeper' and lower level
+  trace_line(string c, string l) {
+    contents = c;
+    label = l;
+    depth = 0;
+  }
+  trace_line(string c, string l, int d) {
+    contents = c;
+    label = l;
+    depth = d;
+  }
+};
+
+string unescape_newline(string& s) {
+  std::stringstream ss;
+  for (int i = 0;  i < SIZE(s);  ++i) {
+    if (s.at(i) == '\n')
+      ss << "\\n";
+    else
+      ss << s.at(i);
+  }
+  return ss.str();
+}
+
+void dump_trace_line(ostream& s, trace_line& t) {
+  s << std::setw(2) << t.depth << ' ' << t.label << ": " << unescape_newline(t.contents) << '\n';
+}
+
+//: Starting a new trace line.
+:(before "End trace_stream Methods")
+ostream& stream(string label) {
+  return stream(Max_depth, label);
+}
+
+ostream& stream(int depth, string label) {
+  if (depth > collect_depth) return null_stream;
+  curr_stream = new ostringstream;
+  curr_label = label;
+  curr_depth = depth;
+  (*curr_stream) << std::hex;  // printing addresses is the common case
+  return *curr_stream;
+}
+
+//: End of a trace line; append it to the trace.
+:(before "End Types")
+struct end {};
+:(code)
+ostream& operator<<(ostream& os, end /*unused*/) {
+  if (Trace_stream) Trace_stream->newline();
+  return os;
+}
+
+//: Fatal error.
+:(before "End Types")
+struct die {};
+:(code)
+ostream& operator<<(ostream& /*unused*/, die /*unused*/) {
+  if (Trace_stream) Trace_stream->newline();
+  exit(1);
+}
+
+:(before "End trace_stream Methods")
+void newline();
+:(code)
+void trace_stream::newline() {
+  if (!curr_stream) return;
+  string curr_contents = curr_stream->str();
+  if (!curr_contents.empty()) {
+    past_lines.push_back(trace_line(curr_contents, trim(curr_label), curr_depth));  // preserve indent in contents
+    // maybe print this line to stderr
+    trace_line& t = past_lines.back();
+    if (should_incrementally_print_trace()) {
+      dump_trace_line(cerr, t);
+    }
+    // End trace Commit
+  }
+
+  // clean up
+  delete curr_stream;
+  curr_stream = NULL;
+  curr_label.clear();
+  curr_depth = Max_depth;
+}
+
+//:: == Initializing the trace in tests
+
+:(before "End Includes")
+#define START_TRACING_UNTIL_END_OF_SCOPE  lease_tracer leased_tracer;
+:(before "End Test Setup")
+START_TRACING_UNTIL_END_OF_SCOPE
+
+//: Trace_stream is a resource, lease_tracer uses RAII to manage it.
+:(before "End Types")
+struct lease_tracer {
+  lease_tracer();
+  ~lease_tracer();
+};
+:(code)
+lease_tracer::lease_tracer() { Trace_stream = new trace_stream; }
+lease_tracer::~lease_tracer() {
+  delete Trace_stream;
+  Trace_stream = NULL;
+}
+
+//:: == Errors and warnings using traces
+
+:(before "End Includes")
+#define raise  (!Trace_stream ? (++Trace_errors,cerr) /*do print*/ : Trace_stream->stream(Error_depth, "error"))
+#define warn (!Trace_stream ? (++Trace_errors,cerr) /*do print*/ : Trace_stream->stream(Warn_depth, "warn"))
+
+//: Print errors and warnings to the screen by default.
+:(before "struct trace_stream")  // include constants in all cleaved compilation units
+const int Error_depth = 0;
+const int Warn_depth = 1;
+:(before "End Globals")
+int Hide_errors = false;  // if set, don't print errors or warnings to screen
+int Hide_warnings = false;  // if set, don't print warnings to screen
+:(before "End Reset")
+Hide_errors = false;
+Hide_warnings = false;
+//: Never dump warnings in tests
+:(before "End Test Setup")
+Hide_warnings = true;
+:(code)
+bool trace_stream::should_incrementally_print_trace() {
+  if (!Hide_errors && curr_depth == Error_depth) return true;
+  if (!Hide_warnings && !Hide_errors && curr_depth == Warn_depth) return true;
+  // End Incremental Trace Print Conditions
+  return false;
+}
+:(before "End trace_stream Methods")
+bool should_incrementally_print_trace();
+
+:(before "End Globals")
+int Trace_errors = 0;  // used only when Trace_stream is NULL
+
+// Fail tests that displayed (unexpected) errors.
+// Expected errors should always be hidden and silently checked for.
+:(before "End Test Teardown")
+if (Passed && !Hide_errors && trace_contains_errors()) {
+  Passed = false;
+}
+:(code)
+bool trace_contains_errors() {
+  return Trace_errors > 0 || trace_count("error") > 0;
+}
+
+:(before "End Includes")
+// If we aren't yet sure how to deal with some corner case, use assert_for_now
+// to indicate that it isn't an inviolable invariant.
+#define assert_for_now assert
+#define raise_for_now raise
+
+//:: == Other assertions on traces
+//: Primitives:
+//:   - CHECK_TRACE_CONTENTS(lines)
+//:     Assert that the trace contains the given lines (separated by newlines)
+//:     in order. There can be other intervening lines between them.
+//:   - CHECK_TRACE_DOESNT_CONTAIN(line)
+//:   - CHECK_TRACE_DOESNT_CONTAIN(label, contents)
+//:     Assert that the trace doesn't contain the given (single) line.
+//:   - CHECK_TRACE_COUNT(label, count)
+//:     Assert that the trace contains exactly 'count' lines with the given
+//:     'label'.
+//:   - CHECK_TRACE_CONTAINS_ERRORS()
+//:   - CHECK_TRACE_DOESNT_CONTAIN_ERRORS()
+//:   - trace_count_prefix(label, prefix)
+//:     Count the number of trace lines with the given 'label' that start with
+//:     the given 'prefix'.
+
+:(before "End Includes")
+#define CHECK_TRACE_CONTENTS(...)  check_trace_contents(__FUNCTION__, __FILE__, __LINE__, __VA_ARGS__)
+
+#define CHECK_TRACE_DOESNT_CONTAIN(...)  CHECK(trace_doesnt_contain(__VA_ARGS__))
+
+#define CHECK_TRACE_COUNT(label, count) \
+  if (Passed && trace_count(label) != (count)) { \
+    cerr << "\nF - " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): trace_count of " << label << " should be " << count << '\n'; \
+    cerr << "  got " << trace_count(label) << '\n';  /* multiple eval */ \
+    DUMP(label); \
+    Passed = false; \
+    return;  /* Currently we stop at the very first failure. */ \
+  }
+
+#define CHECK_TRACE_CONTAINS_ERRORS()  CHECK(trace_contains_errors())
+#define CHECK_TRACE_DOESNT_CONTAIN_ERRORS() \
+  if (Passed && trace_contains_errors()) { \
+    cerr << "\nF - " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): unexpected errors\n"; \
+    DUMP("error"); \
+    Passed = false; \
+    return; \
+  }
+
+// Allow tests to ignore trace lines generated during setup.
+#define CLEAR_TRACE  delete Trace_stream, Trace_stream = new trace_stream
+
+:(code)
+bool check_trace_contents(string FUNCTION, string FILE, int LINE, string expected) {
+  if (!Passed) return false;
+  if (!Trace_stream) return false;
+  vector<string> expected_lines = split(expected, "\n");
+  int curr_expected_line = 0;
+  while (curr_expected_line < SIZE(expected_lines) && expected_lines.at(curr_expected_line).empty())
+    ++curr_expected_line;
+  if (curr_expected_line == SIZE(expected_lines)) return true;
+  string label, contents;
+  split_label_contents(expected_lines.at(curr_expected_line), &label, &contents);
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label != p->label) continue;
+    string t = trim(p->contents);
+    if (contents != unescape_newline(t)) continue;
+    ++curr_expected_line;
+    while (curr_expected_line < SIZE(expected_lines) && expected_lines.at(curr_expected_line).empty())
+      ++curr_expected_line;
+    if (curr_expected_line == SIZE(expected_lines)) return true;
+    split_label_contents(expected_lines.at(curr_expected_line), &label, &contents);
+  }
+
+  if (line_exists_anywhere(label, contents)) {
+    cerr << "\nF - " << FUNCTION << "(" << FILE << ":" << LINE << "): line [" << label << ": " << contents << "] out of order in trace:\n";
+    DUMP("");
+  }
+  else {
+    cerr << "\nF - " << FUNCTION << "(" << FILE << ":" << LINE << "): missing [" << contents << "] in trace:\n";
+    DUMP(label);
+  }
+  Passed = false;
+  return false;
+}
+
+bool trace_doesnt_contain(string expected) {
+  vector<string> tmp = split_first(expected, ": ");
+  if (SIZE(tmp) == 1) {
+    raise << expected << ": missing label or contents in trace line\n" << end();
+    assert(false);
+  }
+  return trace_count(tmp.at(0), tmp.at(1)) == 0;
+}
+
+int trace_count(string label) {
+  return trace_count(label, "");
+}
+
+int trace_count(string label, string line) {
+  if (!Trace_stream) return 0;
+  long result = 0;
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label == p->label) {
+      if (line == "" || trim(line) == trim(p->contents))
+        ++result;
+    }
+  }
+  return result;
+}
+
+int trace_count_prefix(string label, string prefix) {
+  if (!Trace_stream) return 0;
+  long result = 0;
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label == p->label) {
+      if (starts_with(trim(p->contents), trim(prefix)))
+        ++result;
+    }
+  }
+  return result;
+}
+
+void split_label_contents(const string& s, string* label, string* contents) {
+  static const string delim(": ");
+  size_t pos = s.find(delim);
+  if (pos == string::npos) {
+    *label = "";
+    *contents = trim(s);
+  }
+  else {
+    *label = trim(s.substr(0, pos));
+    *contents = trim(s.substr(pos+SIZE(delim)));
+  }
+}
+
+bool line_exists_anywhere(const string& label, const string& contents) {
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label != p->label) continue;
+    if (contents == trim(p->contents)) return true;
+  }
+  return false;
+}
+
+vector<string> split(string s, string delim) {
+  vector<string> result;
+  size_t begin=0, end=s.find(delim);
+  while (true) {
+    if (end == string::npos) {
+      result.push_back(string(s, begin, string::npos));
+      break;
+    }
+    result.push_back(string(s, begin, end-begin));
+    begin = end+SIZE(delim);
+    end = s.find(delim, begin);
+  }
+  return result;
+}
+
+vector<string> split_first(string s, string delim) {
+  vector<string> result;
+  size_t end=s.find(delim);
+  result.push_back(string(s, 0, end));
+  if (end != string::npos)
+    result.push_back(string(s, end+SIZE(delim), string::npos));
+  return result;
+}
+
+//:: == Helpers for debugging using traces
+
+:(before "End Includes")
+// To debug why a test is failing, dump its trace using '?'.
+#define DUMP(label)  if (Trace_stream) cerr << Trace_stream->readable_contents(label);
+
+// To add temporary prints to the trace, use 'dbg'.
+// `git log` should never show any calls to 'dbg'.
+#define dbg trace(0, "a")
+
+//: Dump the entire trace to file where it can be browsed offline.
+//: Dump the trace as it happens; that way you get something even if the
+//: program crashes.
+
+:(before "End Globals")
+ofstream Trace_file;
+:(before "End Commandline Options(*arg)")
+else if (is_equal(*arg, "--trace")) {
+  cerr << "saving trace to 'last_run'\n";
+  Trace_file.open("last_run");
+  // Add a dummy line up top; otherwise the `browse_trace` tool currently has
+  // no way to expand any lines above an error.
+  Trace_file << "   0 dummy: start\n";
+  // End --trace Settings
+}
+:(before "End trace Commit")
+if (Trace_file.is_open()) {
+  if (t.depth <= 4) {
+    dump_trace_line(Trace_file, t);
+    Trace_file.flush();
+  }
+  past_lines.pop_back();  // economize on memory
+}
+:(before "End One-time Setup")
+atexit(cleanup_main);
+:(code)
+void cleanup_main() {
+  if (Trace_file.is_open()) Trace_file.close();
+  // End cleanup_main
+}
+
+:(before "End trace_stream Methods")
+string readable_contents(string label) {
+  string trim(const string& s);  // prototype
+  ostringstream output;
+  label = trim(label);
+  for (vector<trace_line>::iterator p = past_lines.begin();  p != past_lines.end();  ++p)
+    if (label.empty() || label == p->label)
+      dump_trace_line(output, *p);
+  return output.str();
+}
+
+//: Print traces to the screen as they happen.
+//: Particularly useful when juggling multiple trace streams, like when
+//: debugging sandboxes.
+:(before "End Globals")
+bool Dump_trace = false;
+:(before "End Commandline Options(*arg)")
+else if (is_equal(*arg, "--dump")) {
+  Dump_trace = true;
+}
+:(before "End Incremental Trace Print Conditions")
+if (Dump_trace) return true;
+
+//: Miscellaneous helpers.
+
+:(code)
+string trim(const string& s) {
+  string::const_iterator first = s.begin();
+  while (first != s.end() && isspace(*first))
+    ++first;
+  if (first == s.end()) return "";
+
+  string::const_iterator last = --s.end();
+  while (last != s.begin() && isspace(*last))
+    --last;
+  ++last;
+  return string(first, last);
+}
+
+:(before "End Includes")
+#include <vector>
+using std::vector;
+#include <list>
+using std::list;
+#include <set>
+using std::set;
+
+#include <sstream>
+using std::istringstream;
+using std::ostringstream;
+
+#include <fstream>
+using std::ifstream;
+using std::ofstream;
diff --git a/linux/bootstrap/003trace.cc.rotate b/linux/bootstrap/003trace.cc.rotate
new file mode 100644
index 00000000..f68f65bb
--- /dev/null
+++ b/linux/bootstrap/003trace.cc.rotate
@@ -0,0 +1,537 @@
+//: The goal of layers is to make programs more easy to understand and more
+//: malleable, easy to rewrite in radical ways without accidentally breaking
+//: some corner case. Tests further both goals. They help understandability by
+//: letting one make small changes and get feedback. What if I wrote this line
+//: like so? What if I removed this function call, is it really necessary?
+//: Just try it, see if the tests pass. Want to explore rewriting this bit in
+//: this way? Tests put many refactorings on a firmer footing.
+//:
+//: But the usual way we write tests seems incomplete. Refactorings tend to
+//: work in the small, but don't help with changes to function boundaries. If
+//: you want to extract a new function you have to manually test-drive it to
+//: create tests for it. If you want to inline a function its tests are no
+//: longer valid. In both cases you end up having to reorganize code as well as
+//: tests, an error-prone activity.
+//:
+//: In response, this layer introduces the notion of domain-driven *white-box*
+//: testing. We focus on the domain of inputs the whole program needs to
+//: handle rather than the correctness of individual functions. All white-box
+//: tests invoke the program in a single way: by calling run() with some
+//: input. As the program operates on the input, it traces out a list of
+//: _facts_ deduced about the domain:
+//:   trace("label") << "fact 1: " << val;
+//:
+//: Tests can now check for these facts in the trace:
+//:   CHECK_TRACE_CONTENTS("label", "fact 1: 34\n"
+//:                                 "fact 2: 35\n");
+//:
+//: Since we never call anything but the run() function directly, we never have
+//: to rewrite the tests when we reorganize the internals of the program. We
+//: just have to make sure our rewrite deduces the same facts about the domain,
+//: and that's something we're going to have to do anyway.
+//:
+//: To avoid the combinatorial explosion of integration tests, each layer
+//: mainly logs facts to the trace with a common *label*. All tests in a layer
+//: tend to check facts with this label. Validating the facts logged with a
+//: specific label is like calling functions of that layer directly.
+//:
+//: To build robust tests, trace facts about your domain rather than details of
+//: how you computed them.
+//:
+//: More details: http://akkartik.name/blog/tracing-tests
+//:
+//: ---
+//:
+//: Between layers and domain-driven testing, programming starts to look like a
+//: fundamentally different activity. Instead of focusing on a) superficial,
+//: b) local rules on c) code [like say http://blog.bbv.ch/2013/06/05/clean-code-cheat-sheet],
+//: we allow programmers to engage with the a) deep, b) global structure of
+//: the c) domain. If you can systematically track discontinuities in the
+//: domain, you don't care if the code used gotos as long as it passed all
+//: tests. If tests become more robust to run, it becomes easier to try out
+//: radically different implementations for the same program. If code is
+//: super-easy to rewrite, it becomes less important what indentation style it
+//: uses, or that the objects are appropriately encapsulated, or that the
+//: functions are referentially transparent.
+//:
+//: Instead of plumbing, programming becomes building and gradually refining a
+//: map of the environment the program must operate under. Whether a program
+//: is 'correct' at a given point in time is a red herring; what matters is
+//: avoiding regression by monotonically nailing down the more 'eventful'
+//: parts of the terrain. It helps readers new and old, and rewards curiosity,
+//: to organize large programs in self-similar hierarchies of example tests
+//: colocated with the code that makes them work.
+//:
+//:   "Programming properly should be regarded as an activity by which
+//:   programmers form a mental model, rather than as production of a program."
+//:   -- Peter Naur (http://akkartik.name/naur.pdf)
+
+//:: == Core data structures
+
+:(before "End Globals")
+trace_stream* Trace_stream = NULL;
+
+:(before "End Types")
+struct trace_stream {
+  vector<trace_line> past_lines;
+  // End trace_stream Fields
+
+  trace_stream() {
+    // End trace_stream Constructor
+  }
+  ~trace_stream() {
+    // End trace_stream Destructor
+  }
+  // End trace_stream Methods
+};
+
+//:: == Adding to the trace
+
+//: Top-level method is trace() which can be used like an ostream. Usage:
+//:   trace(depth, label) << ... << end();
+//: Don't forget the 'end()' to actually append to the trace.
+:(before "End Includes")
+// No brackets around the expansion so that it prints nothing if Trace_stream
+// isn't initialized.
+#define trace(...)  !Trace_stream ? cerr : Trace_stream->stream(__VA_ARGS__)
+
+:(before "End trace_stream Fields")
+// accumulator for current trace_line
+ostringstream* curr_stream;
+string curr_label;
+int curr_depth;
+// other stuff
+int collect_depth;  // avoid tracing lower levels for speed
+ofstream null_stream;  // never opened, so writes to it silently fail
+
+//: Some constants.
+:(before "struct trace_stream")  // include constants in all cleaved compilation units
+const int Max_depth = 9999;
+:(before "End trace_stream Constructor")
+curr_stream = NULL;
+curr_depth = Max_depth;
+collect_depth = Max_depth;
+
+:(before "struct trace_stream")
+struct trace_line {
+  string contents;
+  string label;
+  int depth;  // 0 is 'sea level'; positive integers are progressively 'deeper' and lower level
+  trace_line(string c, string l) {
+    contents = c;
+    label = l;
+    depth = 0;
+  }
+  trace_line(string c, string l, int d) {
+    contents = c;
+    label = l;
+    depth = d;
+  }
+};
+
+string unescape_newline(string& s) {
+  std::stringstream ss;
+  for (int i = 0;  i < SIZE(s);  ++i) {
+    if (s.at(i) == '\n')
+      ss << "\\n";
+    else
+      ss << s.at(i);
+  }
+  return ss.str();
+}
+
+void dump_trace_line(ostream& s, trace_line& t) {
+  s << std::setw(2) << t.depth << ' ' << t.label << ": " << unescape_newline(t.contents) << '\n';
+}
+
+//: Starting a new trace line.
+:(before "End trace_stream Methods")
+ostream& stream(string label) {
+  return stream(Max_depth, label);
+}
+
+ostream& stream(int depth, string label) {
+  if (depth > collect_depth) return null_stream;
+  curr_stream = new ostringstream;
+  curr_label = label;
+  curr_depth = depth;
+  (*curr_stream) << std::hex;  // printing addresses is the common case
+  return *curr_stream;
+}
+
+//: End of a trace line; append it to the trace.
+:(before "End Types")
+struct end {};
+:(code)
+ostream& operator<<(ostream& os, end /*unused*/) {
+  if (Trace_stream) Trace_stream->newline();
+  return os;
+}
+
+//: Fatal error.
+:(before "End Types")
+struct die {};
+:(code)
+ostream& operator<<(ostream& /*unused*/, die /*unused*/) {
+  if (Trace_stream) Trace_stream->newline();
+  exit(1);
+}
+
+:(before "End trace_stream Methods")
+void newline();
+:(code)
+void trace_stream::newline() {
+  if (!curr_stream) return;
+  string curr_contents = curr_stream->str();
+  if (!curr_contents.empty()) {
+    past_lines.push_back(trace_line(curr_contents, trim(curr_label), curr_depth));  // preserve indent in contents
+    // maybe print this line to stderr
+    trace_line& t = past_lines.back();
+    if (should_incrementally_print_trace()) {
+      dump_trace_line(cerr, t);
+    }
+    // End trace Commit
+  }
+
+  // clean up
+  delete curr_stream;
+  curr_stream = NULL;
+  curr_label.clear();
+  curr_depth = Max_depth;
+}
+
+//:: == Initializing the trace in tests
+
+:(before "End Includes")
+#define START_TRACING_UNTIL_END_OF_SCOPE  lease_tracer leased_tracer;
+:(before "End Test Setup")
+START_TRACING_UNTIL_END_OF_SCOPE
+
+//: Trace_stream is a resource, lease_tracer uses RAII to manage it.
+:(before "End Types")
+struct lease_tracer {
+  lease_tracer();
+  ~lease_tracer();
+};
+:(code)
+lease_tracer::lease_tracer() { Trace_stream = new trace_stream; }
+lease_tracer::~lease_tracer() {
+  delete Trace_stream;
+  Trace_stream = NULL;
+}
+
+//:: == Errors and warnings using traces
+
+:(before "End Includes")
+#define raise  (!Trace_stream ? (++Trace_errors,cerr) /*do print*/ : Trace_stream->stream(Error_depth, "error"))
+#define warn (!Trace_stream ? (++Trace_errors,cerr) /*do print*/ : Trace_stream->stream(Warn_depth, "warn"))
+
+//: Print errors and warnings to the screen by default.
+:(before "struct trace_stream")  // include constants in all cleaved compilation units
+const int Error_depth = 0;
+const int Warn_depth = 1;
+:(before "End Globals")
+int Hide_errors = false;  // if set, don't print errors or warnings to screen
+int Hide_warnings = false;  // if set, don't print warnings to screen
+:(before "End Reset")
+Hide_errors = false;
+Hide_warnings = false;
+//: Never dump warnings in tests
+:(before "End Test Setup")
+Hide_warnings = true;
+:(code)
+bool trace_stream::should_incrementally_print_trace() {
+  if (!Hide_errors && curr_depth == Error_depth) return true;
+  if (!Hide_warnings && !Hide_errors && curr_depth == Warn_depth) return true;
+  // End Incremental Trace Print Conditions
+  return false;
+}
+:(before "End trace_stream Methods")
+bool should_incrementally_print_trace();
+
+:(before "End Globals")
+int Trace_errors = 0;  // used only when Trace_stream is NULL
+
+// Fail tests that displayed (unexpected) errors.
+// Expected errors should always be hidden and silently checked for.
+:(before "End Test Teardown")
+if (Passed && !Hide_errors && trace_contains_errors()) {
+  Passed = false;
+}
+:(code)
+bool trace_contains_errors() {
+  return Trace_errors > 0 || trace_count("error") > 0;
+}
+
+:(before "End Includes")
+// If we aren't yet sure how to deal with some corner case, use assert_for_now
+// to indicate that it isn't an inviolable invariant.
+#define assert_for_now assert
+#define raise_for_now raise
+
+//:: == Other assertions on traces
+//: Primitives:
+//:   - CHECK_TRACE_CONTENTS(lines)
+//:     Assert that the trace contains the given lines (separated by newlines)
+//:     in order. There can be other intervening lines between them.
+//:   - CHECK_TRACE_DOESNT_CONTAIN(line)
+//:   - CHECK_TRACE_DOESNT_CONTAIN(label, contents)
+//:     Assert that the trace doesn't contain the given (single) line.
+//:   - CHECK_TRACE_COUNT(label, count)
+//:     Assert that the trace contains exactly 'count' lines with the given
+//:     'label'.
+//:   - CHECK_TRACE_CONTAINS_ERRORS()
+//:   - CHECK_TRACE_DOESNT_CONTAIN_ERRORS()
+//:   - trace_count_prefix(label, prefix)
+//:     Count the number of trace lines with the given 'label' that start with
+//:     the given 'prefix'.
+
+:(before "End Includes")
+#define CHECK_TRACE_CONTENTS(...)  check_trace_contents(__FUNCTION__, __FILE__, __LINE__, __VA_ARGS__)
+
+#define CHECK_TRACE_DOESNT_CONTAIN(...)  CHECK(trace_doesnt_contain(__VA_ARGS__))
+
+#define CHECK_TRACE_COUNT(label, count) \
+  if (Passed && trace_count(label) != (count)) { \
+    cerr << "\nF - " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): trace_count of " << label << " should be " << count << '\n'; \
+    cerr << "  got " << trace_count(label) << '\n';  /* multiple eval */ \
+    DUMP(label); \
+    Passed = false; \
+    return;  /* Currently we stop at the very first failure. */ \
+  }
+
+#define CHECK_TRACE_CONTAINS_ERRORS()  CHECK(trace_contains_errors())
+#define CHECK_TRACE_DOESNT_CONTAIN_ERRORS() \
+  if (Passed && trace_contains_errors()) { \
+    cerr << "\nF - " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): unexpected errors\n"; \
+    DUMP("error"); \
+    Passed = false; \
+    return; \
+  }
+
+// Allow tests to ignore trace lines generated during setup.
+#define CLEAR_TRACE  delete Trace_stream, Trace_stream = new trace_stream
+
+:(code)
+bool check_trace_contents(string FUNCTION, string FILE, int LINE, string expected) {
+  if (!Passed) return false;
+  if (!Trace_stream) return false;
+  vector<string> expected_lines = split(expected, "\n");
+  int curr_expected_line = 0;
+  while (curr_expected_line < SIZE(expected_lines) && expected_lines.at(curr_expected_line).empty())
+    ++curr_expected_line;
+  if (curr_expected_line == SIZE(expected_lines)) return true;
+  string label, contents;
+  split_label_contents(expected_lines.at(curr_expected_line), &label, &contents);
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label != p->label) continue;
+    string t = trim(p->contents);
+    if (contents != unescape_newline(t)) continue;
+    ++curr_expected_line;
+    while (curr_expected_line < SIZE(expected_lines) && expected_lines.at(curr_expected_line).empty())
+      ++curr_expected_line;
+    if (curr_expected_line == SIZE(expected_lines)) return true;
+    split_label_contents(expected_lines.at(curr_expected_line), &label, &contents);
+  }
+
+  if (line_exists_anywhere(label, contents)) {
+    cerr << "\nF - " << FUNCTION << "(" << FILE << ":" << LINE << "): line [" << label << ": " << contents << "] out of order in trace:\n";
+    DUMP("");
+  }
+  else {
+    cerr << "\nF - " << FUNCTION << "(" << FILE << ":" << LINE << "): missing [" << contents << "] in trace:\n";
+    DUMP(label);
+  }
+  Passed = false;
+  return false;
+}
+
+bool trace_doesnt_contain(string expected) {
+  vector<string> tmp = split_first(expected, ": ");
+  if (SIZE(tmp) == 1) {
+    raise << expected << ": missing label or contents in trace line\n" << end();
+    assert(false);
+  }
+  return trace_count(tmp.at(0), tmp.at(1)) == 0;
+}
+
+int trace_count(string label) {
+  return trace_count(label, "");
+}
+
+int trace_count(string label, string line) {
+  if (!Trace_stream) return 0;
+  long result = 0;
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label == p->label) {
+      if (line == "" || trim(line) == trim(p->contents))
+        ++result;
+    }
+  }
+  return result;
+}
+
+int trace_count_prefix(string label, string prefix) {
+  if (!Trace_stream) return 0;
+  long result = 0;
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label == p->label) {
+      if (starts_with(trim(p->contents), trim(prefix)))
+        ++result;
+    }
+  }
+  return result;
+}
+
+void split_label_contents(const string& s, string* label, string* contents) {
+  static const string delim(": ");
+  size_t pos = s.find(delim);
+  if (pos == string::npos) {
+    *label = "";
+    *contents = trim(s);
+  }
+  else {
+    *label = trim(s.substr(0, pos));
+    *contents = trim(s.substr(pos+SIZE(delim)));
+  }
+}
+
+bool line_exists_anywhere(const string& label, const string& contents) {
+  for (vector<trace_line>::iterator p = Trace_stream->past_lines.begin();  p != Trace_stream->past_lines.end();  ++p) {
+    if (label != p->label) continue;
+    if (contents == trim(p->contents)) return true;
+  }
+  return false;
+}
+
+vector<string> split(string s, string delim) {
+  vector<string> result;
+  size_t begin=0, end=s.find(delim);
+  while (true) {
+    if (end == string::npos) {
+      result.push_back(string(s, begin, string::npos));
+      break;
+    }
+    result.push_back(string(s, begin, end-begin));
+    begin = end+SIZE(delim);
+    end = s.find(delim, begin);
+  }
+  return result;
+}
+
+vector<string> split_first(string s, string delim) {
+  vector<string> result;
+  size_t end=s.find(delim);
+  result.push_back(string(s, 0, end));
+  if (end != string::npos)
+    result.push_back(string(s, end+SIZE(delim), string::npos));
+  return result;
+}
+
+//:: == Helpers for debugging using traces
+
+:(before "End Includes")
+// To debug why a test is failing, dump its trace using '?'.
+#define DUMP(label)  if (Trace_stream) cerr << Trace_stream->readable_contents(label);
+
+// To add temporary prints to the trace, use 'dbg'.
+// `git log` should never show any calls to 'dbg'.
+#define dbg trace(0, "a")
+
+//: Dump the entire trace to file where it can be browsed offline.
+//: Dump the trace as it happens; that way you get something even if the
+//: program crashes.
+
+:(before "End Globals")
+ofstream Trace_file;
+unsigned long long int Count = 0;
+int File_count = 0;
+:(before "End Commandline Options(*arg)")
+else if (is_equal(*arg, "--trace")) {
+  ostringstream filename;
+  filename << "last_run." << File_count;
+  cerr << "saving trace to " << filename.str() << '\n';
+  Trace_file.open(filename.str().c_str());
+  // Add a dummy line up top; otherwise the `browse_trace` tool currently has
+  // no way to expand any lines above an error.
+  Trace_file << "   0 dummy: start\n";
+  // End --trace Settings
+}
+:(before "End trace Commit")
+if (Trace_file.is_open()) {
+  dump_trace_line(Trace_file, t);
+  Trace_file.flush();
+  past_lines.pop_back();  // economize on memory
+  ++Count;
+  if (Count >= 10000000) {
+    Trace_file.close();
+    ++File_count;
+    ostringstream filename;
+    filename << "last_run." << File_count;
+    Trace_file.open(filename.str().c_str());
+    cerr << "switching to " << filename.str() << '\n';
+    Count = 0;
+  }
+}
+:(before "End One-time Setup")
+atexit(cleanup_main);
+:(code)
+void cleanup_main() {
+  if (Trace_file.is_open()) Trace_file.close();
+  // End cleanup_main
+}
+
+:(before "End trace_stream Methods")
+string readable_contents(string label) {
+  string trim(const string& s);  // prototype
+  ostringstream output;
+  label = trim(label);
+  for (vector<trace_line>::iterator p = past_lines.begin();  p != past_lines.end();  ++p)
+    if (label.empty() || label == p->label)
+      dump_trace_line(output, *p);
+  return output.str();
+}
+
+//: Print traces to the screen as they happen.
+//: Particularly useful when juggling multiple trace streams, like when
+//: debugging sandboxes.
+:(before "End Globals")
+bool Dump_trace = false;
+:(before "End Commandline Options(*arg)")
+else if (is_equal(*arg, "--dump")) {
+  Dump_trace = true;
+}
+:(before "End Incremental Trace Print Conditions")
+if (Dump_trace) return true;
+
+//: Miscellaneous helpers.
+
+:(code)
+string trim(const string& s) {
+  string::const_iterator first = s.begin();
+  while (first != s.end() && isspace(*first))
+    ++first;
+  if (first == s.end()) return "";
+
+  string::const_iterator last = --s.end();
+  while (last != s.begin() && isspace(*last))
+    --last;
+  ++last;
+  return string(first, last);
+}
+
+:(before "End Includes")
+#include <vector>
+using std::vector;
+#include <list>
+using std::list;
+#include <set>
+using std::set;
+
+#include <sstream>
+using std::istringstream;
+using std::ostringstream;
+
+#include <fstream>
+using std::ifstream;
+using std::ofstream;
diff --git a/linux/bootstrap/003trace.test.cc b/linux/bootstrap/003trace.test.cc
new file mode 100644
index 00000000..bec1b789
--- /dev/null
+++ b/linux/bootstrap/003trace.test.cc
@@ -0,0 +1,133 @@
+void test_trace_check_compares() {
+  trace("test layer") << "foo" << end();
+  CHECK_TRACE_CONTENTS("test layer: foo");
+}
+
+void test_trace_check_ignores_other_layers() {
+  trace("test layer 1") << "foo" << end();
+  trace("test layer 2") << "bar" << end();
+  CHECK_TRACE_CONTENTS("test layer 1: foo");
+  CHECK_TRACE_DOESNT_CONTAIN("test layer 2: foo");
+}
+
+void test_trace_check_ignores_leading_whitespace() {
+  trace("test layer 1") << " foo" << end();
+  CHECK_EQ(trace_count("test layer 1", /*too little whitespace*/"foo"), 1);
+  CHECK_EQ(trace_count("test layer 1", /*too much whitespace*/"  foo"), 1);
+}
+
+void test_trace_check_ignores_other_lines() {
+  trace("test layer 1") << "foo" << end();
+  trace("test layer 1") << "bar" << end();
+  CHECK_TRACE_CONTENTS("test layer 1: foo");
+}
+
+void test_trace_check_ignores_other_lines2() {
+  trace("test layer 1") << "foo" << end();
+  trace("test layer 1") << "bar" << end();
+  CHECK_TRACE_CONTENTS("test layer 1: bar");
+}
+
+void test_trace_ignores_trailing_whitespace() {
+  trace("test layer 1") << "foo\n" << end();
+  CHECK_TRACE_CONTENTS("test layer 1: foo");
+}
+
+void test_trace_ignores_trailing_whitespace2() {
+  trace("test layer 1") << "foo " << end();
+  CHECK_TRACE_CONTENTS("test layer 1: foo");
+}
+
+void test_trace_orders_across_layers() {
+  trace("test layer 1") << "foo" << end();
+  trace("test layer 2") << "bar" << end();
+  trace("test layer 1") << "qux" << end();
+  CHECK_TRACE_CONTENTS("test layer 1: foo\n"
+                       "test layer 2: bar\n"
+                       "test layer 1: qux\n");
+}
+
+void test_trace_supports_count() {
+  trace("test layer 1") << "foo" << end();
+  trace("test layer 1") << "foo" << end();
+  CHECK_EQ(trace_count("test layer 1", "foo"), 2);
+}
+
+void test_trace_supports_count2() {
+  trace("test layer 1") << "foo" << end();
+  trace("test layer 1") << "bar" << end();
+  CHECK_EQ(trace_count("test layer 1"), 2);
+}
+
+void test_trace_count_ignores_trailing_whitespace() {
+  trace("test layer 1") << "foo\n" << end();
+  CHECK_EQ(trace_count("test layer 1", "foo"), 1);
+}
+
+void test_trace_unescapes_newlines() {
+  trace("test layer 1") << "f\no\no\n" << end();
+  CHECK_TRACE_CONTENTS("test layer 1: f\\no\\no");
+}
+
+// pending: DUMP tests
+// pending: readable_contents() adds newline if necessary.
+// pending: raise also prints to stderr.
+// pending: raise doesn't print to stderr if Hide_errors is set.
+// pending: warn doesn't print to stderr if Hide_errors is set.
+// pending: warn doesn't print to stderr if Hide_warnings is set.
+// pending: raise doesn't have to be saved if Hide_errors is set, just printed.
+// pending: raise prints to stderr if Trace_stream is NULL.
+// pending: raise prints to stderr if Trace_stream is NULL even if Hide_errors is set.
+
+// can't check trace because trace methods call 'split'
+
+void test_split_returns_at_least_one_elem() {
+  vector<string> result = split("", ",");
+  CHECK_EQ(result.size(), 1);
+  CHECK_EQ(result.at(0), "");
+}
+
+void test_split_returns_entire_input_when_no_delim() {
+  vector<string> result = split("abc", ",");
+  CHECK_EQ(result.size(), 1);
+  CHECK_EQ(result.at(0), "abc");
+}
+
+void test_split_works() {
+  vector<string> result = split("abc,def", ",");
+  CHECK_EQ(result.size(), 2);
+  CHECK_EQ(result.at(0), "abc");
+  CHECK_EQ(result.at(1), "def");
+}
+
+void test_split_works2() {
+  vector<string> result = split("abc,def,ghi", ",");
+  CHECK_EQ(result.size(), 3);
+  CHECK_EQ(result.at(0), "abc");
+  CHECK_EQ(result.at(1), "def");
+  CHECK_EQ(result.at(2), "ghi");
+}
+
+void test_split_handles_multichar_delim() {
+  vector<string> result = split("abc,,def,,ghi", ",,");
+  CHECK_EQ(result.size(), 3);
+  CHECK_EQ(result.at(0), "abc");
+  CHECK_EQ(result.at(1), "def");
+  CHECK_EQ(result.at(2), "ghi");
+}
+
+void test_trim() {
+  CHECK_EQ(trim(""), "");
+  CHECK_EQ(trim(" "), "");
+  CHECK_EQ(trim("  "), "");
+  CHECK_EQ(trim("a"), "a");
+  CHECK_EQ(trim(" a"), "a");
+  CHECK_EQ(trim("  a"), "a");
+  CHECK_EQ(trim("  ab"), "ab");
+  CHECK_EQ(trim("a "), "a");
+  CHECK_EQ(trim("a  "), "a");
+  CHECK_EQ(trim("ab  "), "ab");
+  CHECK_EQ(trim(" a "), "a");
+  CHECK_EQ(trim("  a  "), "a");
+  CHECK_EQ(trim("  ab  "), "ab");
+}
diff --git a/linux/bootstrap/010vm.cc b/linux/bootstrap/010vm.cc
new file mode 100644
index 00000000..bce4467c
--- /dev/null
+++ b/linux/bootstrap/010vm.cc
@@ -0,0 +1,411 @@
+//: Core data structures for simulating the SubX VM (subset of an x86 processor),
+//: either in tests or debug aids.
+
+//:: registers
+//: assume segment registers are hard-coded to 0
+//: no MMX, etc.
+
+:(before "End Types")
+enum {
+  EAX,
+  ECX,
+  EDX,
+  EBX,
+  ESP,
+  EBP,
+  ESI,
+  EDI,
+  NUM_INT_REGISTERS,
+};
+union reg {
+  int32_t i;
+  uint32_t u;
+};
+:(before "End Globals")
+reg Reg[NUM_INT_REGISTERS] = { {0} };
+uint32_t EIP = 1;  // preserve null pointer
+:(before "End Reset")
+bzero(Reg, sizeof(Reg));
+EIP = 1;  // preserve null pointer
+
+:(before "End Types")
+const int NUM_XMM_REGISTERS = 8;
+float Xmm[NUM_XMM_REGISTERS] = { 0.0 };
+const string Xname[NUM_XMM_REGISTERS] = { "XMM0", "XMM1", "XMM2", "XMM3", "XMM4", "XMM5", "XMM6", "XMM7" };
+:(before "End Reset")
+bzero(Xmm, sizeof(Xmm));
+
+:(before "End Help Contents")
+cerr << "  registers\n";
+:(before "End Help Texts")
+put_new(Help, "registers",
+  "SubX supports 16 registers: eight 32-bit integer registers and eight single-precision\n"
+  "floating-point registers. From 0 to 7, they are:\n"
+  "  integer: EAX ECX EDX EBX ESP EBP ESI EDI\n"
+  "  floating point: XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7\n"
+  "ESP contains the top of the stack.\n"
+  "\n"
+  "-- 8-bit registers\n"
+  "Some instructions operate on eight *overlapping* 8-bit registers.\n"
+  "From 0 to 7, they are:\n"
+  "  AL CL DL BL AH CH DH BH\n"
+  "The 8-bit registers overlap with the 32-bit ones. AL is the lowest signicant byte\n"
+  "of EAX, AH is the second lowest significant byte, and so on.\n"
+  "\n"
+  "For example, if EBX contains 0x11223344, then BL contains 0x44, and BH contains 0x33.\n"
+  "\n"
+  "There is no way to access bytes within ESP, EBP, ESI or EDI.\n"
+  "\n"
+  "For complete details consult the IA-32 software developer's manual, volume 2,\n"
+  "table 2-2, \"32-bit addressing forms with the ModR/M byte\".\n"
+  "It is included in this repository as 'modrm.pdf'.\n"
+  "The register encodings are described in the top row of the table, but you'll need\n"
+  "to spend some time with it.\n"
+  "\n"
+  "-- flag registers\n"
+  "Various instructions (particularly 'compare') modify one or more of four 1-bit\n"
+  "'flag' registers, as a side-effect:\n"
+  "- the sign flag (SF): usually set if an arithmetic result is negative, or\n"
+  "  reset if not.\n"
+  "- the zero flag (ZF): usually set if a result is zero, or reset if not.\n"
+  "- the carry flag (CF): usually set if an arithmetic result overflows by just one bit.\n"
+  "  Useful for operating on unsigned numbers.\n"
+  "- the overflow flag (OF): usually set if an arithmetic result overflows by more\n"
+  "  than one bit. Useful for operating on signed numbers.\n"
+  "The flag bits are read by conditional jumps.\n"
+  "\n"
+  "For complete details on how different instructions update the flags, consult the IA-32\n"
+  "manual (volume 2). There's various versions of it online, such as https://c9x.me/x86,\n"
+  "though of course you'll need to be careful to ignore instructions and flag registers\n"
+  "that SubX doesn't support.\n"
+  "\n"
+  "It isn't simple, but if this is the processor you have running on your computer,\n"
+  "might as well get good at it.\n"
+);
+
+:(before "End Globals")
+// the subset of x86 flag registers we care about
+bool SF = false;  // sign flag
+bool ZF = false;  // zero flag
+bool CF = false;  // carry flag
+bool OF = false;  // overflow flag
+:(before "End Reset")
+SF = ZF = CF = OF = false;
+
+//:: simulated RAM
+
+:(before "End Types")
+const uint32_t SEGMENT_ALIGNMENT = 0x1000000;  // 16MB
+inline uint32_t align_upwards(uint32_t x, uint32_t align) {
+  return (x+align-1) & -(align);
+}
+
+// Like in real-world Linux, we'll allocate RAM for our programs in disjoint
+// slabs called VMAs or Virtual Memory Areas.
+struct vma {
+  uint32_t start;  // inclusive
+  uint32_t end;  // exclusive
+  vector<uint8_t> _data;
+  vma(uint32_t s, uint32_t e) :start(s), end(e) {}
+  vma(uint32_t s) :start(s), end(align_upwards(s+1, SEGMENT_ALIGNMENT)) {}
+  bool match(uint32_t a) {
+    return a >= start && a < end;
+  }
+  bool match32(uint32_t a) {
+    return a >= start && a+4 <= end;
+  }
+  uint8_t& data(uint32_t a) {
+    assert(match(a));
+    uint32_t result_index = a-start;
+    if (_data.size() <= result_index+/*largest word size that can be accessed in one instruction*/sizeof(int)) {
+      const int align = 0x1000;
+      uint32_t result_size = result_index + 1;  // size needed for result_index to be valid
+      uint32_t new_size = align_upwards(result_size, align);
+      // grow at least 2x to maintain some amortized complexity guarantees
+      if (new_size < _data.size() * 2)
+        new_size = _data.size() * 2;
+      // never grow past the stated limit
+      if (new_size > end-start)
+        new_size = end-start;
+      _data.resize(new_size);
+    }
+    return _data.at(result_index);
+  }
+  void grow_until(uint32_t new_end_address) {
+    if (new_end_address < end) return;
+    // Ugly: vma knows about the global Memory list of vmas
+    void sanity_check(uint32_t start, uint32_t end);
+    sanity_check(start, new_end_address);
+    end = new_end_address;
+  }
+  // End vma Methods
+};
+:(code)
+void sanity_check(uint32_t start, uint32_t end) {
+  bool dup_found = false;
+  for (int i = 0;  i < SIZE(Mem);  ++i) {
+    const vma& curr = Mem.at(i);
+    if (curr.start == start) {
+      assert(!dup_found);
+      dup_found = true;
+    }
+    else if (curr.start > start) {
+      assert(curr.start > end);
+    }
+    else if (curr.start < start) {
+      assert(curr.end < start);
+    }
+  }
+}
+
+:(before "End Globals")
+// RAM is made of VMAs.
+vector<vma> Mem;
+:(code)
+:(before "End Globals")
+uint32_t End_of_program = 0;  // when the program executes past this address in tests we'll stop the test
+// The stack grows downward. Can't increase its size for now.
+:(before "End Reset")
+Mem.clear();
+End_of_program = 0;
+:(code)
+// These helpers depend on Mem being laid out contiguously (so you can't use a
+// map, etc.) and on the host also being little-endian.
+inline uint8_t read_mem_u8(uint32_t addr) {
+  uint8_t* handle = mem_addr_u8(addr);  // error messages get printed here
+  return handle ? *handle : 0;
+}
+inline int8_t read_mem_i8(uint32_t addr) {
+  return static_cast<int8_t>(read_mem_u8(addr));
+}
+inline uint32_t read_mem_u32(uint32_t addr) {
+  uint32_t* handle = mem_addr_u32(addr);  // error messages get printed here
+  return handle ? *handle : 0;
+}
+inline int32_t read_mem_i32(uint32_t addr) {
+  return static_cast<int32_t>(read_mem_u32(addr));
+}
+inline float read_mem_f32(uint32_t addr) {
+  return static_cast<float>(read_mem_u32(addr));
+}
+
+inline uint8_t* mem_addr_u8(uint32_t addr) {
+  uint8_t* result = NULL;
+  for (int i = 0;  i < SIZE(Mem);  ++i) {
+    if (Mem.at(i).match(addr)) {
+      if (result)
+        raise << "address 0x" << HEXWORD << addr << " is in two segments\n" << end();
+      result = &Mem.at(i).data(addr);
+    }
+  }
+  if (result == NULL) {
+    if (Trace_file.is_open()) Trace_file.flush();
+    raise << "Tried to access uninitialized memory at address 0x" << HEXWORD << addr << '\n' << end();
+    exit(1);
+  }
+  return result;
+}
+inline int8_t* mem_addr_i8(uint32_t addr) {
+  return reinterpret_cast<int8_t*>(mem_addr_u8(addr));
+}
+inline uint32_t* mem_addr_u32(uint32_t addr) {
+  uint32_t* result = NULL;
+  for (int i = 0;  i < SIZE(Mem);  ++i) {
+    if (Mem.at(i).match32(addr)) {
+      if (result)
+        raise << "address 0x" << HEXWORD << addr << " is in two segments\n" << end();
+      result = reinterpret_cast<uint32_t*>(&Mem.at(i).data(addr));
+    }
+  }
+  if (result == NULL) {
+    if (Trace_file.is_open()) Trace_file.flush();
+    raise << "Tried to access uninitialized memory at address 0x" << HEXWORD << addr << '\n' << end();
+    exit(1);
+  }
+  return result;
+}
+inline int32_t* mem_addr_i32(uint32_t addr) {
+  return reinterpret_cast<int32_t*>(mem_addr_u32(addr));
+}
+inline float* mem_addr_f32(uint32_t addr) {
+  return reinterpret_cast<float*>(mem_addr_u32(addr));
+}
+// helper for some syscalls. But read-only.
+inline const char* mem_addr_kernel_string(uint32_t addr) {
+  return reinterpret_cast<const char*>(mem_addr_u8(addr));
+}
+inline string mem_addr_string(uint32_t addr, uint32_t size) {
+  ostringstream out;
+  for (size_t i = 0;  i < size;  ++i)
+    out << read_mem_u8(addr+i);
+  return out.str();
+}
+
+inline void write_mem_u8(uint32_t addr, uint8_t val) {
+  uint8_t* handle = mem_addr_u8(addr);
+  if (handle != NULL) *handle = val;
+}
+inline void write_mem_i8(uint32_t addr, int8_t val) {
+  int8_t* handle = mem_addr_i8(addr);
+  if (handle != NULL) *handle = val;
+}
+inline void write_mem_u32(uint32_t addr, uint32_t val) {
+  uint32_t* handle = mem_addr_u32(addr);
+  if (handle != NULL) *handle = val;
+}
+inline void write_mem_i32(uint32_t addr, int32_t val) {
+  int32_t* handle = mem_addr_i32(addr);
+  if (handle != NULL) *handle = val;
+}
+
+inline bool already_allocated(uint32_t addr) {
+  bool result = false;
+  for (int i = 0;  i < SIZE(Mem);  ++i) {
+    if (Mem.at(i).match(addr)) {
+      if (result)
+        raise << "address 0x" << HEXWORD << addr << " is in two segments\n" << end();
+      result = true;
+    }
+  }
+  return result;
+}
+
+//:: core interpreter loop
+
+:(code)
+// skeleton of how x86 instructions are decoded
+void run_one_instruction() {
+  uint8_t op=0, op2=0, op3=0;
+  // Run One Instruction
+  if (Trace_file.is_open()) {
+    dump_registers();
+    // End Dump Info for Instruction
+  }
+  uint32_t inst_start_address = EIP;
+  op = next();
+  trace(Callstack_depth+1, "run") << "0x" << HEXWORD << inst_start_address << " opcode: " << HEXBYTE << NUM(op) << end();
+  switch (op) {
+  case 0xf4:  // hlt
+    EIP = End_of_program;
+    break;
+  // End Single-Byte Opcodes
+  case 0x0f:
+    switch(op2 = next()) {
+    // End Two-Byte Opcodes Starting With 0f
+    default:
+      cerr << "unrecognized second opcode after 0f: " << HEXBYTE << NUM(op2) << '\n';
+      exit(1);
+    }
+    break;
+  case 0xf2:
+    switch(op2 = next()) {
+    // End Two-Byte Opcodes Starting With f2
+    case 0x0f:
+      switch(op3 = next()) {
+      // End Three-Byte Opcodes Starting With f2 0f
+      default:
+        cerr << "unrecognized third opcode after f2 0f: " << HEXBYTE << NUM(op3) << '\n';
+        exit(1);
+      }
+      break;
+    default:
+      cerr << "unrecognized second opcode after f2: " << HEXBYTE << NUM(op2) << '\n';
+      exit(1);
+    }
+    break;
+  case 0xf3:
+    switch(op2 = next()) {
+    // End Two-Byte Opcodes Starting With f3
+    case 0x0f:
+      switch(op3 = next()) {
+      // End Three-Byte Opcodes Starting With f3 0f
+      default:
+        cerr << "unrecognized third opcode after f3 0f: " << HEXBYTE << NUM(op3) << '\n';
+        exit(1);
+      }
+      break;
+    default:
+      cerr << "unrecognized second opcode after f3: " << HEXBYTE << NUM(op2) << '\n';
+      exit(1);
+    }
+    break;
+  default:
+    cerr << "unrecognized opcode: " << HEXBYTE << NUM(op) << '\n';
+    exit(1);
+  }
+}
+
+inline uint8_t next() {
+  return read_mem_u8(EIP++);
+}
+
+void dump_registers() {
+  ostringstream out;
+  out << "regs: ";
+  for (int i = 0;  i < NUM_INT_REGISTERS;  ++i) {
+    if (i > 0) out << "  ";
+    out << i << ": " << std::hex << std::setw(8) << std::setfill('_') << Reg[i].u;
+  }
+  out << " -- SF: " << SF << "; ZF: " << ZF << "; CF: " << CF << "; OF: " << OF;
+  trace(Callstack_depth+1, "run") << out.str() << end();
+}
+
+//: start tracking supported opcodes
+:(before "End Globals")
+map</*op*/string, string> Name;
+map</*op*/string, string> Name_0f;
+map</*op*/string, string> Name_f3;
+map</*op*/string, string> Name_f3_0f;
+:(before "End One-time Setup")
+init_op_names();
+:(code)
+void init_op_names() {
+  put(Name, "f4", "halt (hlt)");
+  // End Initialize Op Names
+}
+
+:(before "End Help Special-cases(key)")
+if (key == "opcodes") {
+  cerr << "Opcodes currently supported by SubX:\n";
+  for (map<string, string>::iterator p = Name.begin();  p != Name.end();  ++p)
+    cerr << "  " << p->first << ": " << p->second << '\n';
+  for (map<string, string>::iterator p = Name_0f.begin();  p != Name_0f.end();  ++p)
+    cerr << "  0f " << p->first << ": " << p->second << '\n';
+  for (map<string, string>::iterator p = Name_f3.begin();  p != Name_f3.end();  ++p)
+    cerr << "  f3 " << p->first << ": " << p->second << '\n';
+  for (map<string, string>::iterator p = Name_f3_0f.begin();  p != Name_f3_0f.end();  ++p)
+    cerr << "  f3 0f " << p->first << ": " << p->second << '\n';
+  cerr << "Run `bootstrap help instructions` for details on words like 'r32' and 'disp8'.\n"
+          "For complete details on these instructions, consult the IA-32 manual (volume 2).\n"
+          "There's various versions of it online, such as https://c9x.me/x86.\n"
+          "The mnemonics in brackets will help you locate each instruction.\n";
+  return 0;
+}
+:(before "End Help Contents")
+cerr << "  opcodes\n";
+
+//: Helpers for managing trace depths
+//:
+//: We're going to use trace depths primarily to segment code running at
+//: different frames of the call stack. This will make it easy for the trace
+//: browser to collapse over entire calls.
+//:
+//: Errors will be at depth 0.
+//: Warnings will be at depth 1.
+//: SubX instructions will occupy depth 2 and up to Max_depth, organized by
+//: stack frames. Each instruction's internal details will be one level deeper
+//: than its 'main' depth. So 'call' instruction details will be at the same
+//: depth as the instructions of the function it calls.
+:(before "End Globals")
+extern const int Initial_callstack_depth = 2;
+int Callstack_depth = Initial_callstack_depth;
+:(before "End Reset")
+Callstack_depth = Initial_callstack_depth;
+
+:(before "End Includes")
+#include <iomanip>
+#define HEXBYTE  std::hex << std::setw(2) << std::setfill('0')
+#define HEXWORD  std::hex << std::setw(8) << std::setfill('0')
+// ugly that iostream doesn't print uint8_t as an integer
+#define NUM(X) static_cast<int>(X)
+#include <stdint.h>
diff --git a/linux/bootstrap/011run.cc b/linux/bootstrap/011run.cc
new file mode 100644
index 00000000..424e40e9
--- /dev/null
+++ b/linux/bootstrap/011run.cc
@@ -0,0 +1,453 @@
+//: Running SubX programs on the VM.
+
+//: (Not to be confused with the 'run' subcommand for running ELF binaries on
+//: the VM. That comes later.)
+
+:(before "End Help Texts")
+put_new(Help, "syntax",
+  "SubX programs consist of segments, each segment in turn consisting of lines.\n"
+  "Line-endings are significant; each line should contain a single\n"
+  "instruction, macro or directive.\n"
+  "\n"
+  "Comments start with the '#' character. It should be at the start of a word\n"
+  "(start of line, or following a space).\n"
+  "\n"
+  "Each segment starts with a header line: a '==' delimiter followed by the name of\n"
+  "the segment and a (sometimes approximate) starting address in memory.\n"
+  "The name 'code' is special; instructions to execute should always go here.\n"
+  "\n"
+  "The resulting binary starts running code from a label called 'Entry'\n"
+  "in the code segment.\n"
+  "\n"
+  "Segments with the same name get merged together. This rule helps keep functions\n"
+  "and their data close together in .subx files.\n"
+  "You don't have to specify the starting address after the first time.\n"
+  "\n"
+  "Lines consist of a series of words. Words can contain arbitrary metadata\n"
+  "after a '/', but they can never contain whitespace. Metadata has no effect\n"
+  "at runtime, but can be handy when rewriting macros.\n"
+  "\n"
+  "Check out the example programs in the apps/ directory, particularly apps/ex*.\n"
+);
+:(before "End Help Contents")
+cerr << "  syntax\n";
+
+:(code)
+void test_copy_imm32_to_EAX() {
+  // At the lowest level, SubX programs are a series of hex bytes, each
+  // (variable-length) instruction on one line.
+  run(
+      // Comments start with '#' and are ignored.
+      "# comment\n"
+      // Segment headers start with '==', a name and a starting hex address.
+      // There's usually one code and one data segment. The code segment
+      // always comes first.
+      "== code 0x1\n"  // code segment
+
+      // After the header, each segment consists of lines, and each line
+      // consists of words separated by whitespace.
+      //
+      // All words can have metadata after a '/'. No spaces allowed in
+      // metadata, of course.
+      // Unrecognized metadata never causes errors, so you can use it for
+      // documentation.
+      //
+      // Within the code segment in particular, x86 instructions consist of
+      // some number of the following parts and sub-parts (see the Readme and
+      // cheatsheet.pdf for details):
+      //   opcodes: 1-3 bytes
+      //   ModR/M byte
+      //   SIB byte
+      //   displacement: 0/1/2/4 bytes
+      //   immediate: 0/1/2/4 bytes
+      // opcode        ModR/M                    SIB                   displacement    immediate
+      // instruction   mod, reg, Reg/Mem bits    scale, index, base
+      // 1-3 bytes     0/1 byte                  0/1 byte              0/1/2/4 bytes   0/1/2/4 bytes
+      "  b8            .                         .                     .               0a 0b 0c 0d\n"  // copy 0x0d0c0b0a to EAX
+      // The periods are just to help the eye track long gaps between columns,
+      // and are otherwise ignored.
+  );
+  // This program, when run, causes the following events in the trace:
+  CHECK_TRACE_CONTENTS(
+      "load: 0x00000001 -> b8\n"
+      "load: 0x00000002 -> 0a\n"
+      "load: 0x00000003 -> 0b\n"
+      "load: 0x00000004 -> 0c\n"
+      "load: 0x00000005 -> 0d\n"
+      "run: copy imm32 0x0d0c0b0a to EAX\n"
+  );
+}
+
+// top-level helper for tests: parse the input, load the hex bytes into memory, run
+void run(const string& text_bytes) {
+  program p;
+  istringstream in(text_bytes);
+  // Loading Test Program
+  parse(in, p);
+  if (trace_contains_errors()) return;  // if any stage raises errors, stop immediately
+  // Running Test Program
+  load(p);
+  if (trace_contains_errors()) return;
+  // convenience to keep tests concise: 'Entry' label need not be provided
+  // not allowed in real programs
+  if (p.entry)
+    EIP = p.entry;
+  else
+    EIP = find(p, "code")->start;
+  while (EIP < End_of_program)
+    run_one_instruction();
+}
+
+//:: core data structures
+
+:(before "End Types")
+struct program {
+  uint32_t entry;
+  vector<segment> segments;
+  program() { entry = 0; }
+};
+:(before "struct program")
+struct segment {
+  string name;
+  uint32_t start;
+  vector<line> lines;
+  // End segment Fields
+  segment() {
+    start = 0;
+    // End segment Constructor
+  }
+};
+:(before "struct segment")
+struct line {
+  vector<word> words;
+  vector<string> metadata;
+  string original;
+};
+:(before "struct line")
+struct word {
+  string original;
+  string data;
+  vector<string> metadata;
+};
+
+//:: parse
+
+:(code)
+void parse(istream& fin, program& out) {
+  segment* curr_segment = NULL;
+  vector<line> l;
+  while (has_data(fin)) {
+    string line_data;
+    line curr;
+    getline(fin, line_data);
+    curr.original = line_data;
+    trace(99, "parse") << "line: " << line_data << end();
+    // End Line Parsing Special-cases(line_data -> l)
+    istringstream lin(line_data);
+    while (has_data(lin)) {
+      string word_data;
+      lin >> word_data;
+      if (word_data.empty()) continue;
+      if (word_data[0] == '#') break;  // comment
+      if (word_data == ".") continue;  // comment token
+      if (word_data == "==") {
+        flush(curr_segment, l);
+        string segment_name;
+        lin >> segment_name;
+        curr_segment = find(out, segment_name);
+        if (curr_segment != NULL) {
+          trace(3, "parse") << "appending to segment '" << segment_name << "'" << end();
+        }
+        else {
+          trace(3, "parse") << "new segment '" << segment_name << "'" << end();
+          uint32_t seg_start = 0;
+          lin >> std::hex >> seg_start;
+          sanity_check_program_segment(out, seg_start);
+          out.segments.push_back(segment());
+          curr_segment = &out.segments.back();
+          curr_segment->name = segment_name;
+          curr_segment->start = seg_start;
+          if (trace_contains_errors()) continue;
+          trace(3, "parse") << "starts at address 0x" << HEXWORD << curr_segment->start << end();
+        }
+        break;  // skip rest of line
+      }
+      if (word_data[0] == ':') {
+        // todo: line metadata
+        break;
+      }
+      curr.words.push_back(word());
+      parse_word(word_data, curr.words.back());
+      trace(99, "parse") << "word: " << to_string(curr.words.back());
+    }
+    if (!curr.words.empty())
+      l.push_back(curr);
+  }
+  flush(curr_segment, l);
+  trace(99, "parse") << "done" << end();
+}
+
+segment* find(program& p, const string& segment_name) {
+  for (int i = 0;  i < SIZE(p.segments);  ++i) {
+    if (p.segments.at(i).name == segment_name)
+      return &p.segments.at(i);
+  }
+  return NULL;
+}
+
+void flush(segment* s, vector<line>& lines) {
+  if (lines.empty()) return;
+  if (s == NULL) {
+    raise << "input does not start with a '==' section header\n" << end();
+    return;
+  }
+  trace(3, "parse") << "flushing segment" << end();
+  s->lines.insert(s->lines.end(), lines.begin(), lines.end());
+  lines.clear();
+}
+
+void parse_word(const string& data, word& out) {
+  out.original = data;
+  istringstream win(data);
+  if (getline(win, out.data, '/')) {
+    string m;
+    while (getline(win, m, '/'))
+      out.metadata.push_back(m);
+  }
+}
+
+void sanity_check_program_segment(const program& p, uint32_t addr) {
+  for (int i = 0;  i < SIZE(p.segments);  ++i) {
+    if (p.segments.at(i).start == addr)
+      raise << "can't have multiple segments starting at address 0x" << HEXWORD << addr << '\n' << end();
+  }
+}
+
+// helper for tests
+void parse(const string& text_bytes) {
+  program p;
+  istringstream in(text_bytes);
+  parse(in, p);
+}
+
+void test_detect_duplicate_segments() {
+  Hide_errors = true;
+  parse(
+      "== segment1 0xee\n"
+      "ab\n"
+      "== segment2 0xee\n"
+      "cd\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: can't have multiple segments starting at address 0x000000ee\n"
+  );
+}
+
+//:: load
+
+void load(const program& p) {
+  if (find(p, "code") == NULL) {
+    raise << "no code to run\n" << end();
+    return;
+  }
+  // Ensure segments are disjoint.
+  set<uint32_t> overlap;
+  for (int i = 0;   i < SIZE(p.segments);  ++i) {
+    const segment& seg = p.segments.at(i);
+    uint32_t addr = seg.start;
+    if (!already_allocated(addr))
+      Mem.push_back(vma(seg.start));
+    trace(99, "load") << "loading segment " << i << " from " << HEXWORD << addr << end();
+    for (int j = 0;  j < SIZE(seg.lines);  ++j) {
+      const line& l = seg.lines.at(j);
+      for (int k = 0;  k < SIZE(l.words);  ++k) {
+        const word& w = l.words.at(k);
+        uint8_t val = hex_byte(w.data);
+        if (trace_contains_errors()) return;
+        assert(overlap.find(addr) == overlap.end());
+        write_mem_u8(addr, val);
+        overlap.insert(addr);
+        trace(99, "load") << "0x" << HEXWORD << addr << " -> " << HEXBYTE << NUM(read_mem_u8(addr)) << end();
+        ++addr;
+      }
+    }
+    if (seg.name == "code") {
+      End_of_program = addr;
+    }
+  }
+}
+
+const segment* find(const program& p, const string& segment_name) {
+  for (int i = 0;  i < SIZE(p.segments);  ++i) {
+    if (p.segments.at(i).name == segment_name)
+      return &p.segments.at(i);
+  }
+  return NULL;
+}
+
+uint8_t hex_byte(const string& s) {
+  if (contains_uppercase(s)) {
+    raise << "uppercase hex not allowed: " << s << '\n' << end();
+    return 0;
+  }
+  istringstream in(s);
+  int result = 0;
+  in >> std::hex >> result;
+  if (!in || !in.eof()) {
+    raise << "token '" << s << "' is not a hex byte\n" << end();
+    return '\0';
+  }
+  if (result > 0xff || result < -0x8f) {
+    raise << "token '" << s << "' is not a hex byte\n" << end();
+    return '\0';
+  }
+  return static_cast<uint8_t>(result);
+}
+
+void test_number_too_large() {
+  Hide_errors = true;
+  parse_and_load(
+      "== code 0x1\n"
+      "01 cab\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: token 'cab' is not a hex byte\n"
+  );
+}
+
+void test_invalid_hex() {
+  Hide_errors = true;
+  parse_and_load(
+      "== code 0x1\n"
+      "01 cx\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: token 'cx' is not a hex byte\n"
+  );
+}
+
+void test_negative_number() {
+  parse_and_load(
+      "== code 0x1\n"
+      "01 -02\n"
+  );
+  CHECK_TRACE_COUNT("error", 0);
+}
+
+void test_negative_number_too_small() {
+  Hide_errors = true;
+  parse_and_load(
+      "== code 0x1\n"
+      "01 -12345\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: token '-12345' is not a hex byte\n"
+  );
+}
+
+void test_hex_prefix() {
+  parse_and_load(
+      "== code 0x1\n"
+      "0x01 -0x02\n"
+  );
+  CHECK_TRACE_COUNT("error", 0);
+}
+
+void test_repeated_segment_merges_data() {
+  parse_and_load(
+      "== code 0x1\n"
+      "11 22\n"
+      "== code\n"  // again
+      "33 44\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse: new segment 'code'\n"
+      "parse: appending to segment 'code'\n"
+      // first segment
+      "load: 0x00000001 -> 11\n"
+      "load: 0x00000002 -> 22\n"
+      // second segment
+      "load: 0x00000003 -> 33\n"
+      "load: 0x00000004 -> 44\n"
+  );
+}
+
+void test_error_on_missing_segment_header() {
+  Hide_errors = true;
+  parse_and_load(
+      "01 02\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: input does not start with a '==' section header\n"
+  );
+}
+
+void test_error_on_uppercase_hex() {
+  Hide_errors = true;
+  parse_and_load(
+      "== code\n"
+      "01 Ab\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: uppercase hex not allowed: Ab\n"
+  );
+}
+
+//: helper for tests
+void parse_and_load(const string& text_bytes) {
+  program p;
+  istringstream in(text_bytes);
+  parse(in, p);
+  if (trace_contains_errors()) return;  // if any stage raises errors, stop immediately
+  load(p);
+}
+
+//:: run
+
+:(before "End Initialize Op Names")
+put_new(Name, "b8", "copy imm32 to EAX (mov)");
+
+//: our first opcode
+
+:(before "End Single-Byte Opcodes")
+case 0xb8: {  // copy imm32 to EAX
+  const int32_t src = next32();
+  trace(Callstack_depth+1, "run") << "copy imm32 0x" << HEXWORD << src << " to EAX" << end();
+  Reg[EAX].i = src;
+  break;
+}
+
+:(code)
+void test_copy_imm32_to_EAX_again() {
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  b8                                 0a 0b 0c 0d \n"  // copy 0x0d0c0b0a to EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy imm32 0x0d0c0b0a to EAX\n"
+  );
+}
+
+// read a 32-bit int in little-endian order from the instruction stream
+int32_t next32() {
+  int32_t result = read_mem_i32(EIP);
+  EIP+=4;
+  return result;
+}
+
+//:: helpers
+
+string to_string(const word& w) {
+  ostringstream out;
+  out << w.data;
+  for (int i = 0;  i < SIZE(w.metadata);  ++i)
+    out << " /" << w.metadata.at(i);
+  return out.str();
+}
+
+bool contains_uppercase(const string& s) {
+  for (int i = 0;  i < SIZE(s);  ++i)
+    if (isupper(s.at(i))) return true;
+  return false;
+}
diff --git a/linux/bootstrap/012elf.cc b/linux/bootstrap/012elf.cc
new file mode 100644
index 00000000..c852e372
--- /dev/null
+++ b/linux/bootstrap/012elf.cc
@@ -0,0 +1,193 @@
+//: Loading SubX programs from ELF binaries.
+//: This will allow us to run them natively on a Linux kernel.
+//: Based on https://github.com/kragen/stoneknifeforth/blob/702d2ebe1b/386.c
+
+:(before "End Main")
+assert(argc > 1);
+if (is_equal(argv[1], "run")) {
+  // Outside of tests, traces must be explicitly requested.
+  if (Trace_file.is_open()) Trace_stream = new trace_stream;
+  trace(2, "run") << "=== Starting to run" << end();
+  if (argc <= 2) {
+    raise << "Not enough arguments provided.\n" << die();
+  }
+  reset();
+  cerr << std::hex;
+  load_elf(argv[2], argc, argv);
+  while (EIP < End_of_program)  // weak final-gasp termination check
+    run_one_instruction();
+  raise << "executed past end of the world: " << EIP << " vs " << End_of_program << '\n' << end();
+  return 1;
+}
+
+:(code)
+void load_elf(const string& filename, int argc, char* argv[]) {
+  int fd = open(filename.c_str(), O_RDONLY);
+  if (fd < 0) raise << filename.c_str() << ": open" << perr() << '\n' << die();
+  off_t size = lseek(fd, 0, SEEK_END);
+  lseek(fd, 0, SEEK_SET);
+  uint8_t* elf_contents = static_cast<uint8_t*>(malloc(size));
+  if (elf_contents == NULL) raise << "malloc(" << size << ')' << perr() << '\n' << die();
+  ssize_t read_size = read(fd, elf_contents, size);
+  if (size != read_size) raise << "read → " << size << " (!= " << read_size << ')' << perr() << '\n' << die();
+  load_elf_contents(elf_contents, size, argc, argv);
+  free(elf_contents);
+}
+
+void load_elf_contents(uint8_t* elf_contents, size_t size, int argc, char* argv[]) {
+  uint8_t magic[5] = {0};
+  memcpy(magic, elf_contents, 4);
+  if (memcmp(magic, "\177ELF", 4) != 0)
+    raise << "Invalid ELF file; starts with \"" << magic << '"' << die();
+  if (elf_contents[4] != 1)
+    raise << "Only 32-bit ELF files (4-byte words; virtual addresses up to 4GB) supported.\n" << die();
+  if (elf_contents[5] != 1)
+    raise << "Only little-endian ELF files supported.\n" << die();
+  // unused: remaining 10 bytes of e_ident
+  uint32_t e_machine_type = u32_in(&elf_contents[16]);
+  if (e_machine_type != 0x00030002)
+    raise << "ELF type/machine 0x" << HEXWORD << e_machine_type << " isn't i386 executable\n" << die();
+  // unused: e_version. We only support version 1, and later versions will be backwards compatible.
+  uint32_t e_entry = u32_in(&elf_contents[24]);
+  uint32_t e_phoff = u32_in(&elf_contents[28]);
+  // unused: e_shoff
+  // unused: e_flags
+  uint32_t e_ehsize = u16_in(&elf_contents[40]);
+  if (e_ehsize < 52) raise << "Invalid binary; ELF header too small\n" << die();
+  uint32_t e_phentsize = u16_in(&elf_contents[42]);
+  uint32_t e_phnum = u16_in(&elf_contents[44]);
+  trace(90, "load") << e_phnum << " entries in the program header, each " << e_phentsize << " bytes long" << end();
+  // unused: e_shentsize
+  // unused: e_shnum
+  // unused: e_shstrndx
+
+  set<uint32_t> overlap;  // to detect overlapping segments
+  for (size_t i = 0;  i < e_phnum;  ++i)
+    load_segment_from_program_header(elf_contents, i, size, e_phoff + i*e_phentsize, e_ehsize, overlap);
+
+  // initialize code and stack
+  assert(overlap.find(STACK_SEGMENT) == overlap.end());
+  Mem.push_back(vma(STACK_SEGMENT));
+  assert(overlap.find(AFTER_STACK) == overlap.end());
+  // The stack grows downward.
+  Reg[ESP].u = AFTER_STACK;
+  Reg[EBP].u = 0;
+  EIP = e_entry;
+
+  // initialize args on stack
+  // no envp for now
+  // we wastefully use a separate page of memory for argv
+  Mem.push_back(vma(ARGV_DATA_SEGMENT));
+  uint32_t argv_data = ARGV_DATA_SEGMENT;
+  for (int i = argc-1;  i >= /*skip 'subx_bin' and 'run'*/2;  --i) {
+    push(argv_data);
+    for (size_t j = 0;  j <= strlen(argv[i]);  ++j) {
+      assert(overlap.find(argv_data) == overlap.end());  // don't bother comparing ARGV and STACK
+      write_mem_u8(argv_data, argv[i][j]);
+      argv_data += sizeof(char);
+      assert(argv_data < ARGV_DATA_SEGMENT + SEGMENT_ALIGNMENT);
+    }
+  }
+  push(argc-/*skip 'subx_bin' and 'run'*/2);
+}
+
+void push(uint32_t val) {
+  Reg[ESP].u -= 4;
+  if (Reg[ESP].u < STACK_SEGMENT) {
+    raise << "The stack overflowed its segment. "
+          << "Maybe SPACE_FOR_SEGMENT should be larger? "
+          << "Or you need to carve out an exception for the stack segment "
+          << "to be larger.\n" << die();
+  }
+  trace(Callstack_depth+1, "run") << "decrementing ESP to 0x" << HEXWORD << Reg[ESP].u << end();
+  trace(Callstack_depth+1, "run") << "pushing value 0x" << HEXWORD << val << end();
+  write_mem_u32(Reg[ESP].u, val);
+}
+
+void load_segment_from_program_header(uint8_t* elf_contents, int segment_index, size_t size, uint32_t offset, uint32_t e_ehsize, set<uint32_t>& overlap) {
+  uint32_t p_type = u32_in(&elf_contents[offset]);
+  trace(90, "load") << "program header at offset " << offset << ": type " << p_type << end();
+  if (p_type != 1) {
+    trace(90, "load") << "ignoring segment at offset " << offset << " of non PT_LOAD type " << p_type << " (see http://refspecs.linuxbase.org/elf/elf.pdf)" << end();
+    return;
+  }
+  uint32_t p_offset = u32_in(&elf_contents[offset + 4]);
+  uint32_t p_vaddr = u32_in(&elf_contents[offset + 8]);
+  if (e_ehsize > p_vaddr) raise << "Invalid binary; program header overlaps ELF header\n" << die();
+  // unused: p_paddr
+  uint32_t p_filesz = u32_in(&elf_contents[offset + 16]);
+  uint32_t p_memsz = u32_in(&elf_contents[offset + 20]);
+  if (p_filesz != p_memsz)
+    raise << "Can't yet handle segments where p_filesz != p_memsz (see http://refspecs.linuxbase.org/elf/elf.pdf)\n" << die();
+
+  if (p_offset + p_filesz > size)
+    raise << "Invalid binary; segment at offset " << offset << " is too large: wants to end at " << p_offset+p_filesz << " but the file ends at " << size << '\n' << die();
+  if (p_memsz >= SEGMENT_ALIGNMENT) {
+    raise << "Code segment too small for SubX; for now please manually increase SEGMENT_ALIGNMENT.\n" << end();
+    return;
+  }
+  trace(90, "load") << "blitting file offsets (" << p_offset << ", " << (p_offset+p_filesz) << ") to addresses (" << p_vaddr << ", " << (p_vaddr+p_memsz) << ')' << end();
+  if (size > p_memsz) size = p_memsz;
+  Mem.push_back(vma(p_vaddr));
+  for (size_t i = 0;  i < p_filesz;  ++i) {
+    assert(overlap.find(p_vaddr+i) == overlap.end());
+    write_mem_u8(p_vaddr+i, elf_contents[p_offset+i]);
+    overlap.insert(p_vaddr+i);
+  }
+  if (segment_index == 0 && End_of_program < p_vaddr+p_memsz)
+    End_of_program = p_vaddr+p_memsz;
+}
+
+:(before "End Includes")
+// Very primitive/fixed/insecure ELF segments for now.
+//   --- inaccessible:        0x00000000 -> 0x08047fff
+//   code:                    0x09000000 -> 0x09ffffff (specified in ELF binary)
+//   data:                    0x0a000000 -> 0x0affffff (specified in ELF binary)
+//                      --- heap gets mmap'd somewhere here ---
+//   stack:                   0xbdffffff -> 0xbd000000 (downward; not in ELF binary)
+//   argv hack:               0xbf000000 -> 0xbfffffff (not in ELF binary)
+//   --- reserved for kernel: 0xc0000000 -> ...
+const uint32_t START_HEAP        = 0x0b000000;
+const uint32_t END_HEAP          = 0xbd000000;
+const uint32_t STACK_SEGMENT     = 0xbd000000;
+const uint32_t AFTER_STACK       = 0xbe000000;
+const uint32_t ARGV_DATA_SEGMENT = 0xbf000000;
+// When updating the above memory map, don't forget to update `mmap`'s
+// implementation in the 'syscalls' layer.
+:(before "End Dump Info for Instruction")
+//? dump_stack();  // slow
+:(code)
+void dump_stack() {
+  ostringstream out;
+  trace(Callstack_depth+1, "run") << "stack:" << end();
+  for (uint32_t a = AFTER_STACK-4;  a > Reg[ESP].u;  a -= 4)
+    trace(Callstack_depth+2, "run") << "  0x" << HEXWORD << a << " => 0x" << HEXWORD << read_mem_u32(a) << end();
+  trace(Callstack_depth+2, "run") << "  0x" << HEXWORD << Reg[ESP].u << " => 0x" << HEXWORD << read_mem_u32(Reg[ESP].u) << "  <=== ESP" << end();
+  for (uint32_t a = Reg[ESP].u-4;  a > Reg[ESP].u-40;  a -= 4)
+    trace(Callstack_depth+2, "run") << "  0x" << HEXWORD << a << " => 0x" << HEXWORD << read_mem_u32(a) << end();
+}
+
+inline uint32_t u32_in(uint8_t* p) {
+  return p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24;
+}
+
+inline uint16_t u16_in(uint8_t* p) {
+  return p[0] | p[1] << 8;
+}
+
+:(before "End Types")
+struct perr {};
+:(code)
+ostream& operator<<(ostream& os, perr /*unused*/) {
+  if (errno)
+    os << ": " << strerror(errno);
+  return os;
+}
+
+:(before "End Includes")
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdarg.h>
+#include <errno.h>
+#include <unistd.h>
diff --git a/linux/bootstrap/013direct_addressing.cc b/linux/bootstrap/013direct_addressing.cc
new file mode 100644
index 00000000..cbdc25a8
--- /dev/null
+++ b/linux/bootstrap/013direct_addressing.cc
@@ -0,0 +1,1280 @@
+//: operating directly on a register
+
+:(before "End Initialize Op Names")
+put_new(Name, "01", "add r32 to rm32 (add)");
+
+:(code)
+void test_add_r32_to_r32() {
+  Reg[EAX].i = 0x10;
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     d8                                    \n" // add EBX to EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x01: {  // add r32 to r/m32
+  uint8_t modrm = next();
+  uint8_t arg2 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "add " << rname(arg2) << " to r/m32" << end();
+  int32_t* signed_arg1 = effective_address(modrm);
+  int32_t signed_result = *signed_arg1 + Reg[arg2].i;
+  SF = (signed_result < 0);
+  ZF = (signed_result == 0);
+  int64_t signed_full_result = static_cast<int64_t>(*signed_arg1) + Reg[arg2].i;
+  OF = (signed_result != signed_full_result);
+  // set CF
+  uint32_t unsigned_arg1 = static_cast<uint32_t>(*signed_arg1);
+  uint32_t unsigned_result = unsigned_arg1 + Reg[arg2].u;
+  uint64_t unsigned_full_result = static_cast<uint64_t>(unsigned_arg1) + Reg[arg2].u;
+  CF = (unsigned_result != unsigned_full_result);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  *signed_arg1 = signed_result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  break;
+}
+
+:(code)
+void test_add_r32_to_r32_signed_overflow() {
+  Reg[EAX].i = INT32_MAX;
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     d8                                    \n" // add EBX to EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=1; ZF=0; CF=0; OF=1\n"
+      "run: storing 0x80000000\n"
+  );
+}
+
+void test_add_r32_to_r32_unsigned_overflow() {
+  Reg[EAX].u = UINT32_MAX;
+  Reg[EBX].u = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     d8                                    \n" // add EBX to EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=0; ZF=1; CF=1; OF=0\n"
+      "run: storing 0x00000000\n"
+  );
+}
+
+void test_add_r32_to_r32_unsigned_and_signed_overflow() {
+  Reg[EAX].i = Reg[EBX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     d8                                    \n" // add EBX to EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=0; ZF=1; CF=1; OF=1\n"
+      "run: storing 0x00000000\n"
+  );
+}
+
+:(code)
+// Implement tables 2-2 and 2-3 in the Intel manual, Volume 2.
+// We return a pointer so that instructions can write to multiple bytes in
+// 'Mem' at once.
+// beware: will eventually have side-effects
+int32_t* effective_address(uint8_t modrm) {
+  const uint8_t mod = (modrm>>6);
+  // ignore middle 3 'reg opcode' bits
+  const uint8_t rm = modrm & 0x7;
+  if (mod == 3) {
+    // mod 3 is just register direct addressing
+    trace(Callstack_depth+1, "run") << "r/m32 is " << rname(rm) << end();
+    return &Reg[rm].i;
+  }
+  uint32_t addr = effective_address_number(modrm);
+  trace(Callstack_depth+1, "run") << "effective address contains 0x" << HEXWORD << read_mem_i32(addr) << end();
+  return mem_addr_i32(addr);
+}
+
+// beware: will eventually have side-effects
+uint32_t effective_address_number(uint8_t modrm) {
+  const uint8_t mod = (modrm>>6);
+  // ignore middle 3 'reg opcode' bits
+  const uint8_t rm = modrm & 0x7;
+  uint32_t addr = 0;
+  switch (mod) {
+  case 3:
+    // mod 3 is just register direct addressing
+    raise << "unexpected direct addressing mode\n" << end();
+    return 0;
+  // End Mod Special-cases(addr)
+  default:
+    cerr << "unrecognized mod bits: " << NUM(mod) << '\n';
+    exit(1);
+  }
+  //: other mods are indirect, and they'll set addr appropriately
+  // Found effective_address(addr)
+  return addr;
+}
+
+string rname(uint8_t r) {
+  switch (r) {
+  case 0: return "EAX";
+  case 1: return "ECX";
+  case 2: return "EDX";
+  case 3: return "EBX";
+  case 4: return "ESP";
+  case 5: return "EBP";
+  case 6: return "ESI";
+  case 7: return "EDI";
+  default: raise << "invalid register " << r << '\n' << end();  return "";
+  }
+}
+
+//:: subtract
+
+:(before "End Initialize Op Names")
+put_new(Name, "29", "subtract r32 from rm32 (sub)");
+
+:(code)
+void test_subtract_r32_from_r32() {
+  Reg[EAX].i = 10;
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  29     d8                                    \n"  // subtract EBX from EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract EBX from r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing 0x00000009\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x29: {  // subtract r32 from r/m32
+  const uint8_t modrm = next();
+  const uint8_t arg2 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "subtract " << rname(arg2) << " from r/m32" << end();
+  int32_t* signed_arg1 = effective_address(modrm);
+  int32_t signed_result = *signed_arg1 - Reg[arg2].i;
+  SF = (signed_result < 0);
+  ZF = (signed_result == 0);
+  int64_t signed_full_result = static_cast<int64_t>(*signed_arg1) - Reg[arg2].i;
+  OF = (signed_result != signed_full_result);
+  // set CF
+  uint32_t unsigned_arg1 = static_cast<uint32_t>(*signed_arg1);
+  uint32_t unsigned_result = unsigned_arg1 - Reg[arg2].u;
+  uint64_t unsigned_full_result = static_cast<uint64_t>(unsigned_arg1) - Reg[arg2].u;
+  CF = (unsigned_result != unsigned_full_result);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  *signed_arg1 = signed_result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  break;
+}
+
+:(code)
+void test_subtract_r32_from_r32_signed_overflow() {
+  Reg[EAX].i = INT32_MIN;
+  Reg[EBX].i = INT32_MAX;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  29     d8                                    \n"  // subtract EBX from EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract EBX from r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=0; ZF=0; CF=0; OF=1\n"
+      "run: storing 0x00000001\n"
+  );
+}
+
+void test_subtract_r32_from_r32_unsigned_overflow() {
+  Reg[EAX].i = 0;
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  29     d8                                    \n"  // subtract EBX from EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract EBX from r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+      "run: storing 0xffffffff\n"
+  );
+}
+
+void test_subtract_r32_from_r32_signed_and_unsigned_overflow() {
+  Reg[EAX].i = 0;
+  Reg[EBX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  29     d8                                    \n"  // subtract EBX from EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract EBX from r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=1; ZF=0; CF=1; OF=1\n"
+      "run: storing 0x80000000\n"
+  );
+}
+
+//:: multiply
+
+:(before "End Initialize Op Names")
+put_new(Name, "f7", "negate/multiply/divide rm32 (with EAX and EDX if necessary) depending on subop (neg/mul/idiv)");
+
+:(code)
+void test_multiply_EAX_by_r32() {
+  Reg[EAX].i = 4;
+  Reg[ECX].i = 3;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     e1                                    \n"  // multiply EAX by ECX
+      // ModR/M in binary: 11 (direct mode) 100 (subop mul) 001 (src ECX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is ECX\n"
+      "run: subop: multiply EAX by r/m32\n"
+      "run: storing 0x0000000c\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xf7: {
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "operate on r/m32" << end();
+  int32_t* arg1 = effective_address(modrm);
+  const uint8_t subop = (modrm>>3)&0x7;  // middle 3 'reg opcode' bits
+  switch (subop) {
+  case 4: {  // mul unsigned EAX by r/m32
+    trace(Callstack_depth+1, "run") << "subop: multiply EAX by r/m32" << end();
+    const uint64_t result = static_cast<uint64_t>(Reg[EAX].u) * static_cast<uint32_t>(*arg1);
+    Reg[EAX].u = result & 0xffffffff;
+    Reg[EDX].u = result >> 32;
+    OF = (Reg[EDX].u != 0);
+    CF = OF;
+    trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+    trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[EAX].u << end();
+    break;
+  }
+  // End Op f7 Subops
+  default:
+    cerr << "unrecognized subop for opcode f7: " << NUM(subop) << '\n';
+    exit(1);
+  }
+  break;
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "af", "multiply rm32 into r32 (imul)");
+
+:(code)
+void test_multiply_r32_into_r32() {
+  Reg[EAX].i = 4;
+  Reg[EBX].i = 2;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f af  d8                                    \n"  // subtract EBX into EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: multiply EBX by r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing 0x00000008\n"
+  );
+}
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0xaf: {  // multiply r32 by r/m32
+  const uint8_t modrm = next();
+  const uint8_t arg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "multiply " << rname(arg1) << " by r/m32" << end();
+  const int32_t* arg2 = effective_address(modrm);
+  int32_t result = Reg[arg1].i * (*arg2);
+  int64_t full_result = static_cast<int64_t>(Reg[arg1].i) * (*arg2);
+  OF = (result != full_result);
+  CF = OF;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  Reg[arg1].i = result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[arg1].i << end();
+  break;
+}
+
+//:: negate
+
+:(code)
+void test_negate_r32() {
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     db                                    \n"  // negate EBX
+      // ModR/M in binary: 11 (direct mode) 011 (subop negate) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: negate\n"
+      "run: storing 0xffffffff\n"
+  );
+}
+
+:(before "End Op f7 Subops")
+case 3: {  // negate r/m32
+  trace(Callstack_depth+1, "run") << "subop: negate" << end();
+  // one case that can overflow
+  if (static_cast<uint32_t>(*arg1) == 0x80000000) {
+    trace(Callstack_depth+1, "run") << "overflow" << end();
+    SF = true;
+    ZF = false;
+    OF = true;
+    break;
+  }
+  int32_t result = -(*arg1);
+  SF = (result >> 31);
+  ZF = (result == 0);
+  OF = false;
+  CF = (*arg1 != 0);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  *arg1 = result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << end();
+  break;
+}
+
+:(code)
+// negate can overflow in exactly one situation
+void test_negate_can_overflow() {
+  Reg[EBX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     db                                    \n"  // negate EBX
+      // ModR/M in binary: 11 (direct mode) 011 (subop negate) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: negate\n"
+      "run: overflow\n"
+  );
+}
+
+//:: divide with remainder
+
+void test_divide_EAX_by_rm32() {
+  Reg[EAX].u = 7;
+  Reg[EDX].u = 0;
+  Reg[ECX].i = 3;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     f9                                    \n"  // multiply EAX by ECX
+      // ModR/M in binary: 11 (direct mode) 111 (subop idiv) 001 (divisor ECX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is ECX\n"
+      "run: subop: divide EDX:EAX by r/m32, storing quotient in EAX and remainder in EDX\n"
+      "run: quotient: 0x00000002\n"
+      "run: remainder: 0x00000001\n"
+  );
+}
+
+:(before "End Op f7 Subops")
+case 7: {  // divide EDX:EAX by r/m32, storing quotient in EAX and remainder in EDX
+  trace(Callstack_depth+1, "run") << "subop: divide EDX:EAX by r/m32, storing quotient in EAX and remainder in EDX" << end();
+  int64_t dividend = static_cast<int64_t>((static_cast<uint64_t>(Reg[EDX].u) << 32) | Reg[EAX].u);
+  int32_t divisor = *arg1;
+  assert(divisor != 0);
+  Reg[EAX].i = dividend/divisor;  // quotient
+  Reg[EDX].i = dividend%divisor;  // remainder
+  // flag state undefined
+  trace(Callstack_depth+1, "run") << "quotient: 0x" << HEXWORD << Reg[EAX].i << end();
+  trace(Callstack_depth+1, "run") << "remainder: 0x" << HEXWORD << Reg[EDX].i << end();
+  break;
+}
+
+:(code)
+void test_divide_EAX_by_negative_rm32() {
+  Reg[EAX].u = 7;
+  Reg[EDX].u = 0;
+  Reg[ECX].i = -3;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     f9                                    \n"  // multiply EAX by ECX
+      // ModR/M in binary: 11 (direct mode) 111 (subop idiv) 001 (divisor ECX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is ECX\n"
+      "run: subop: divide EDX:EAX by r/m32, storing quotient in EAX and remainder in EDX\n"
+      "run: quotient: 0xfffffffe\n"  // -2
+      "run: remainder: 0x00000001\n"
+  );
+}
+
+void test_divide_negative_EAX_by_rm32() {
+  Reg[EAX].i = -7;
+  Reg[EDX].i = -1;  // sign extend
+  Reg[ECX].i = 3;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     f9                                    \n"  // multiply EAX by ECX
+      // ModR/M in binary: 11 (direct mode) 111 (subop idiv) 001 (divisor ECX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is ECX\n"
+      "run: subop: divide EDX:EAX by r/m32, storing quotient in EAX and remainder in EDX\n"
+      "run: quotient: 0xfffffffe\n"  // -2
+      "run: remainder: 0xffffffff\n"  // -1, same sign as divident (EDX:EAX)
+  );
+}
+
+void test_divide_negative_EDX_EAX_by_rm32() {
+  Reg[EAX].i = 0;  // lower 32 bits are clear
+  Reg[EDX].i = -7;
+  Reg[ECX].i = 0x40000000;  // 2^30 (largest positive power of 2)
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     f9                                    \n"  // multiply EAX by ECX
+      // ModR/M in binary: 11 (direct mode) 111 (subop idiv) 001 (divisor ECX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is ECX\n"
+      "run: subop: divide EDX:EAX by r/m32, storing quotient in EAX and remainder in EDX\n"
+      "run: quotient: 0xffffffe4\n"  // (-7 << 32) / (1 << 30) = -7 << 2 = -28
+      "run: remainder: 0x00000000\n"
+  );
+}
+
+//:: shift left
+
+:(before "End Initialize Op Names")
+put_new(Name, "d3", "shift rm32 by CL bits depending on subop (sal/sar/shl/shr)");
+
+:(code)
+void test_shift_left_r32_with_cl() {
+  Reg[EBX].i = 13;
+  Reg[ECX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  d3     e3                                    \n"  // shift EBX left by CL bits
+      // ModR/M in binary: 11 (direct mode) 100 (subop shift left) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift left by CL bits\n"
+      "run: storing 0x0000001a\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xd3: {
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "operate on r/m32" << end();
+  int32_t* arg1 = effective_address(modrm);
+  const uint8_t subop = (modrm>>3)&0x7;  // middle 3 'reg opcode' bits
+  switch (subop) {
+  case 4: {  // shift left r/m32 by CL
+    trace(Callstack_depth+1, "run") << "subop: shift left by CL bits" << end();
+    uint8_t count = Reg[ECX].u & 0x1f;
+    // OF is only defined if count is 1
+    if (count == 1) {
+      bool msb = (*arg1 & 0x80000000) >> 1;
+      bool pnsb = (*arg1 & 0x40000000);
+      OF = (msb != pnsb);
+    }
+    int32_t result = (*arg1 << count);
+    ZF = (result == 0);
+    SF = (result < 0);
+    CF = (*arg1 << (count-1)) & 0x80000000;
+    trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+    *arg1 = result;
+    trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << end();
+    break;
+  }
+  // End Op d3 Subops
+  default:
+    cerr << "unrecognized subop for opcode d3: " << NUM(subop) << '\n';
+    exit(1);
+  }
+  break;
+}
+
+//:: shift right arithmetic
+
+:(code)
+void test_shift_right_arithmetic_r32_with_cl() {
+  Reg[EBX].i = 26;
+  Reg[ECX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  d3     fb                                    \n"  // shift EBX right by CL bits, while preserving sign
+      // ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while preserving sign\n"
+      "run: storing 0x0000000d\n"
+  );
+}
+
+:(before "End Op d3 Subops")
+case 7: {  // shift right r/m32 by CL, preserving sign
+  trace(Callstack_depth+1, "run") << "subop: shift right by CL bits, while preserving sign" << end();
+  uint8_t count = Reg[ECX].u & 0x1f;
+  *arg1 = (*arg1 >> count);
+  ZF = (*arg1 == 0);
+  SF = (*arg1 < 0);
+  // OF is only defined if count is 1
+  if (count == 1) OF = false;
+  // CF undefined
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << end();
+  break;
+}
+
+:(code)
+void test_shift_right_arithmetic_odd_r32_with_cl() {
+  Reg[EBX].i = 27;
+  Reg[ECX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  d3     fb                                    \n"  // shift EBX right by CL bits, while preserving sign
+      // ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while preserving sign\n"
+      // result: 13
+      "run: storing 0x0000000d\n"
+  );
+}
+
+void test_shift_right_arithmetic_negative_r32_with_cl() {
+  Reg[EBX].i = 0xfffffffd;  // -3
+  Reg[ECX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  d3     fb                                    \n"  // shift EBX right by CL bits, while preserving sign
+      // ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while preserving sign\n"
+      // result: -2
+      "run: storing 0xfffffffe\n"
+  );
+}
+
+//:: shift right logical
+
+:(code)
+void test_shift_right_logical_r32_with_cl() {
+  Reg[EBX].i = 26;
+  Reg[ECX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  d3     eb                                    \n"  // shift EBX right by CL bits, while padding zeroes
+      // ModR/M in binary: 11 (direct mode) 101 (subop shift right logical) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while padding zeroes\n"
+      // result: 13
+      "run: storing 0x0000000d\n"
+  );
+}
+
+:(before "End Op d3 Subops")
+case 5: {  // shift right r/m32 by CL, padding zeroes
+  trace(Callstack_depth+1, "run") << "subop: shift right by CL bits, while padding zeroes" << end();
+  uint8_t count = Reg[ECX].u & 0x1f;
+  // OF is only defined if count is 1
+  if (count == 1) {
+    bool msb = (*arg1 & 0x80000000) >> 1;
+    bool pnsb = (*arg1 & 0x40000000);
+    OF = (msb != pnsb);
+  }
+  uint32_t* uarg1 = reinterpret_cast<uint32_t*>(arg1);
+  *uarg1 = (*uarg1 >> count);
+  ZF = (*uarg1 == 0);
+  // result is always positive by definition
+  SF = false;
+  // CF undefined
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << end();
+  break;
+}
+
+:(code)
+void test_shift_right_logical_odd_r32_with_cl() {
+  Reg[EBX].i = 27;
+  Reg[ECX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  d3     eb                                    \n"  // shift EBX right by CL bits, while padding zeroes
+      // ModR/M in binary: 11 (direct mode) 101 (subop shift right logical) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while padding zeroes\n"
+      // result: 13
+      "run: storing 0x0000000d\n"
+  );
+}
+
+void test_shift_right_logical_negative_r32_with_cl() {
+  Reg[EBX].i = 0xfffffffd;
+  Reg[ECX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  d3     eb                                    \n"  // shift EBX right by CL bits, while padding zeroes
+      // ModR/M in binary: 11 (direct mode) 101 (subop shift right logical) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while padding zeroes\n"
+      "run: storing 0x7ffffffe\n"
+  );
+}
+
+//:: and
+
+:(before "End Initialize Op Names")
+put_new(Name, "21", "rm32 = bitwise AND of r32 with rm32 (and)");
+
+:(code)
+void test_and_r32_with_r32() {
+  Reg[EAX].i = 0x0a0b0c0d;
+  Reg[EBX].i = 0x000000ff;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  21     d8                                    \n"  // and EBX with destination EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: and EBX with r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing 0x0000000d\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x21: {  // and r32 with r/m32
+  const uint8_t modrm = next();
+  const uint8_t arg2 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "and " << rname(arg2) << " with r/m32" << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  int32_t* signed_arg1 = effective_address(modrm);
+  *signed_arg1 &= Reg[arg2].i;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  SF = (*signed_arg1 >> 31);
+  ZF = (*signed_arg1 == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:: or
+
+:(before "End Initialize Op Names")
+put_new(Name, "09", "rm32 = bitwise OR of r32 with rm32 (or)");
+
+:(code)
+void test_or_r32_with_r32() {
+  Reg[EAX].i = 0x0a0b0c0d;
+  Reg[EBX].i = 0xa0b0c0d0;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  09     d8                                    \n"  // or EBX with destination EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: or EBX with r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing 0xaabbccdd\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x09: {  // or r32 with r/m32
+  const uint8_t modrm = next();
+  const uint8_t arg2 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "or " << rname(arg2) << " with r/m32" << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  int32_t* signed_arg1 = effective_address(modrm);
+  *signed_arg1 |= Reg[arg2].i;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  SF = (*signed_arg1 >> 31);
+  ZF = (*signed_arg1 == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:: xor
+
+:(before "End Initialize Op Names")
+put_new(Name, "31", "rm32 = bitwise XOR of r32 with rm32 (xor)");
+
+:(code)
+void test_xor_r32_with_r32() {
+  Reg[EAX].i = 0x0a0b0c0d;
+  Reg[EBX].i = 0xaabbc0d0;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  31     d8                                    \n"  // xor EBX with destination EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: xor EBX with r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing 0xa0b0ccdd\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x31: {  // xor r32 with r/m32
+  const uint8_t modrm = next();
+  const uint8_t arg2 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "xor " << rname(arg2) << " with r/m32" << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  int32_t* signed_arg1 = effective_address(modrm);
+  *signed_arg1 ^= Reg[arg2].i;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  SF = (*signed_arg1 >> 31);
+  ZF = (*signed_arg1 == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:: not
+
+:(code)
+void test_not_r32() {
+  Reg[EBX].i = 0x0f0f00ff;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     d3                                    \n"  // not EBX
+      // ModR/M in binary: 11 (direct mode) 010 (subop not) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: not\n"
+      "run: storing 0xf0f0ff00\n"
+  );
+}
+
+:(before "End Op f7 Subops")
+case 2: {  // not r/m32
+  trace(Callstack_depth+1, "run") << "subop: not" << end();
+  *arg1 = ~(*arg1);
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << end();
+  // no flags affected
+  break;
+}
+
+//:: compare (cmp)
+
+:(before "End Initialize Op Names")
+put_new(Name, "39", "compare: set SF if rm32 < r32 (cmp)");
+
+:(code)
+void test_compare_r32_with_r32_greater() {
+  Reg[EAX].i = 0x0a0b0c0d;
+  Reg[EBX].i = 0x0a0b0c07;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     d8                                    \n"  // compare EAX with EBX
+      // ModR/M in binary: 11 (direct mode) 011 (rhs EBX) 000 (lhs EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=0; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x39: {  // set SF if r/m32 < r32
+  const uint8_t modrm = next();
+  const uint8_t reg2 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "compare r/m32 with " << rname(reg2) << end();
+  const int32_t* signed_arg1 = effective_address(modrm);
+  const int32_t signed_difference = *signed_arg1 - Reg[reg2].i;
+  SF = (signed_difference < 0);
+  ZF = (signed_difference == 0);
+  const int64_t signed_full_difference = static_cast<int64_t>(*signed_arg1) - Reg[reg2].i;
+  OF = (signed_difference != signed_full_difference);
+  // set CF
+  const uint32_t unsigned_arg1 = static_cast<uint32_t>(*signed_arg1);
+  const uint32_t unsigned_difference = unsigned_arg1 - Reg[reg2].u;
+  const uint64_t unsigned_full_difference = static_cast<uint64_t>(unsigned_arg1) - Reg[reg2].u;
+  CF = (unsigned_difference != unsigned_full_difference);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+:(code)
+void test_compare_r32_with_r32_lesser_unsigned_and_signed() {
+  Reg[EAX].i = 0x0a0b0c07;
+  Reg[EBX].i = 0x0a0b0c0d;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     d8                                    \n"  // compare EAX with EBX
+      // ModR/M in binary: 11 (direct mode) 011 (rhs EBX) 000 (lhs EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+void test_compare_r32_with_r32_lesser_unsigned_and_signed_due_to_overflow() {
+  Reg[EAX].i = INT32_MAX;
+  Reg[EBX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     d8                                    \n"  // compare EAX with EBX
+      // ModR/M in binary: 11 (direct mode) 011 (rhs EBX) 000 (lhs EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=1; ZF=0; CF=1; OF=1\n"
+  );
+}
+
+void test_compare_r32_with_r32_lesser_signed() {
+  Reg[EAX].i = -1;
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     d8                                    \n"  // compare EAX with EBX
+      // ModR/M in binary: 11 (direct mode) 011 (rhs EBX) 000 (lhs EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=1; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+void test_compare_r32_with_r32_lesser_unsigned() {
+  Reg[EAX].i = 1;
+  Reg[EBX].i = -1;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     d8                                    \n"  // compare EAX with EBX
+      // ModR/M in binary: 11 (direct mode) 011 (rhs EBX) 000 (lhs EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=0; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+void test_compare_r32_with_r32_equal() {
+  Reg[EAX].i = 0x0a0b0c0d;
+  Reg[EBX].i = 0x0a0b0c0d;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     d8                                    \n"  // compare EAX and EBX
+      // ModR/M in binary: 11 (direct mode) 011 (rhs EBX) 000 (lhs EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: r/m32 is EAX\n"
+      "run: SF=0; ZF=1; CF=0; OF=0\n"
+  );
+}
+
+//:: copy (mov)
+
+:(before "End Initialize Op Names")
+put_new(Name, "89", "copy r32 to rm32 (mov)");
+
+:(code)
+void test_copy_r32_to_r32() {
+  Reg[EBX].i = 0xaf;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  89     d8                                    \n"  // copy EBX to EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy EBX to r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing 0x000000af\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x89: {  // copy r32 to r/m32
+  const uint8_t modrm = next();
+  const uint8_t rsrc = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "copy " << rname(rsrc) << " to r/m32" << end();
+  int32_t* dest = effective_address(modrm);
+  *dest = Reg[rsrc].i;  // Write multiple elements of vector<uint8_t> at once. Assumes sizeof(int) == 4 on the host as well.
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *dest << end();
+  break;
+}
+
+//:: xchg
+
+:(before "End Initialize Op Names")
+put_new(Name, "87", "swap the contents of r32 and rm32 (xchg)");
+
+:(code)
+void test_xchg_r32_with_r32() {
+  Reg[EBX].i = 0xaf;
+  Reg[EAX].i = 0x2e;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  87     d8                                    \n"  // exchange EBX with EAX
+      // ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: exchange EBX with r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing 0x000000af in r/m32\n"
+      "run: storing 0x0000002e in EBX\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x87: {  // exchange r32 with r/m32
+  const uint8_t modrm = next();
+  const uint8_t reg2 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "exchange " << rname(reg2) << " with r/m32" << end();
+  int32_t* arg1 = effective_address(modrm);
+  const int32_t tmp = *arg1;
+  *arg1 = Reg[reg2].i;
+  Reg[reg2].i = tmp;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << " in r/m32" << end();
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[reg2].i << " in " << rname(reg2) << end();
+  break;
+}
+
+//:: increment
+
+:(before "End Initialize Op Names")
+put_new(Name, "40", "increment EAX (inc)");
+put_new(Name, "41", "increment ECX (inc)");
+put_new(Name, "42", "increment EDX (inc)");
+put_new(Name, "43", "increment EBX (inc)");
+put_new(Name, "44", "increment ESP (inc)");
+put_new(Name, "45", "increment EBP (inc)");
+put_new(Name, "46", "increment ESI (inc)");
+put_new(Name, "47", "increment EDI (inc)");
+
+:(code)
+void test_increment_r32() {
+  Reg[ECX].u = 0x1f;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  41                                           \n"  // increment ECX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: increment ECX\n"
+      "run: storing value 0x00000020\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x40:
+case 0x41:
+case 0x42:
+case 0x43:
+case 0x44:
+case 0x45:
+case 0x46:
+case 0x47: {  // increment r32
+  const uint8_t reg = op & 0x7;
+  trace(Callstack_depth+1, "run") << "increment " << rname(reg) << end();
+  ++Reg[reg].u;
+  trace(Callstack_depth+1, "run") << "storing value 0x" << HEXWORD << Reg[reg].u << end();
+  break;
+}
+
+:(before "End Initialize Op Names")
+put_new(Name, "ff", "increment/decrement/jump/push/call rm32 based on subop (inc/dec/jmp/push/call)");
+
+:(code)
+void test_increment_rm32() {
+  Reg[EAX].u = 0x20;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  ff     c0                                    \n"  // increment EAX
+      // ModR/M in binary: 11 (direct mode) 000 (subop inc) 000 (EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: increment r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing value 0x00000021\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xff: {
+  const uint8_t modrm = next();
+  const uint8_t subop = (modrm>>3)&0x7;  // middle 3 'reg opcode' bits
+  switch (subop) {
+    case 0: {  // increment r/m32
+      trace(Callstack_depth+1, "run") << "increment r/m32" << end();
+      int32_t* arg = effective_address(modrm);
+      ++*arg;
+      trace(Callstack_depth+1, "run") << "storing value 0x" << HEXWORD << *arg << end();
+      break;
+    }
+    default:
+      cerr << "unrecognized subop for ff: " << HEXBYTE << NUM(subop) << '\n';
+      exit(1);
+    // End Op ff Subops
+  }
+  break;
+}
+
+//:: decrement
+
+:(before "End Initialize Op Names")
+put_new(Name, "48", "decrement EAX (dec)");
+put_new(Name, "49", "decrement ECX (dec)");
+put_new(Name, "4a", "decrement EDX (dec)");
+put_new(Name, "4b", "decrement EBX (dec)");
+put_new(Name, "4c", "decrement ESP (dec)");
+put_new(Name, "4d", "decrement EBP (dec)");
+put_new(Name, "4e", "decrement ESI (dec)");
+put_new(Name, "4f", "decrement EDI (dec)");
+
+:(code)
+void test_decrement_r32() {
+  Reg[ECX].u = 0x1f;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  49                                           \n"  // decrement ECX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: decrement ECX\n"
+      "run: storing value 0x0000001e\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x48:
+case 0x49:
+case 0x4a:
+case 0x4b:
+case 0x4c:
+case 0x4d:
+case 0x4e:
+case 0x4f: {  // decrement r32
+  const uint8_t reg = op & 0x7;
+  trace(Callstack_depth+1, "run") << "decrement " << rname(reg) << end();
+  --Reg[reg].u;
+  trace(Callstack_depth+1, "run") << "storing value 0x" << HEXWORD << Reg[reg].u << end();
+  break;
+}
+
+:(code)
+void test_decrement_rm32() {
+  Reg[EAX].u = 0x20;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  ff     c8                                    \n"  // decrement EAX
+      // ModR/M in binary: 11 (direct mode) 001 (subop inc) 000 (EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: decrement r/m32\n"
+      "run: r/m32 is EAX\n"
+      "run: storing value 0x0000001f\n"
+  );
+}
+
+:(before "End Op ff Subops")
+case 1: {  // decrement r/m32
+  trace(Callstack_depth+1, "run") << "decrement r/m32" << end();
+  int32_t* arg = effective_address(modrm);
+  --*arg;
+  trace(Callstack_depth+1, "run") << "storing value 0x" << HEXWORD << *arg << end();
+  break;
+}
+
+//:: push
+
+:(before "End Initialize Op Names")
+put_new(Name, "50", "push EAX to stack (push)");
+put_new(Name, "51", "push ECX to stack (push)");
+put_new(Name, "52", "push EDX to stack (push)");
+put_new(Name, "53", "push EBX to stack (push)");
+put_new(Name, "54", "push ESP to stack (push)");
+put_new(Name, "55", "push EBP to stack (push)");
+put_new(Name, "56", "push ESI to stack (push)");
+put_new(Name, "57", "push EDI to stack (push)");
+
+:(code)
+void test_push_r32() {
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000008;
+  Reg[EBX].i = 0x0000000a;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  53                                           \n"  // push EBX to stack
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: push EBX\n"
+      "run: decrementing ESP to 0xbd000004\n"
+      "run: pushing value 0x0000000a\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x50:
+case 0x51:
+case 0x52:
+case 0x53:
+case 0x54:
+case 0x55:
+case 0x56:
+case 0x57: {  // push r32 to stack
+  uint8_t reg = op & 0x7;
+  trace(Callstack_depth+1, "run") << "push " << rname(reg) << end();
+//?   cerr << "push: " << NUM(reg) << ": " << Reg[reg].u << " => " << Reg[ESP].u << '\n';
+  push(Reg[reg].u);
+  break;
+}
+
+//:: pop
+
+:(before "End Initialize Op Names")
+put_new(Name, "58", "pop top of stack to EAX (pop)");
+put_new(Name, "59", "pop top of stack to ECX (pop)");
+put_new(Name, "5a", "pop top of stack to EDX (pop)");
+put_new(Name, "5b", "pop top of stack to EBX (pop)");
+put_new(Name, "5c", "pop top of stack to ESP (pop)");
+put_new(Name, "5d", "pop top of stack to EBP (pop)");
+put_new(Name, "5e", "pop top of stack to ESI (pop)");
+put_new(Name, "5f", "pop top of stack to EDI (pop)");
+
+:(code)
+void test_pop_r32() {
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000008;
+  write_mem_i32(0xbd000008, 0x0000000a);  // ..before this write
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "  5b                                           \n"  // pop stack to EBX
+      "== data 0x2000\n"  // data segment
+      "0a 00 00 00\n"  // 0xa
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: pop into EBX\n"
+      "run: popping value 0x0000000a\n"
+      "run: incrementing ESP to 0xbd00000c\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x58:
+case 0x59:
+case 0x5a:
+case 0x5b:
+case 0x5c:
+case 0x5d:
+case 0x5e:
+case 0x5f: {  // pop stack into r32
+  const uint8_t reg = op & 0x7;
+  trace(Callstack_depth+1, "run") << "pop into " << rname(reg) << end();
+//?   cerr << "pop from " << Reg[ESP].u << '\n';
+  Reg[reg].u = pop();
+//?   cerr << "=> " << NUM(reg) << ": " << Reg[reg].u << '\n';
+  break;
+}
+:(code)
+uint32_t pop() {
+  const uint32_t result = read_mem_u32(Reg[ESP].u);
+  trace(Callstack_depth+1, "run") << "popping value 0x" << HEXWORD << result << end();
+  Reg[ESP].u += 4;
+  trace(Callstack_depth+1, "run") << "incrementing ESP to 0x" << HEXWORD << Reg[ESP].u << end();
+  assert(Reg[ESP].u < AFTER_STACK);
+  return result;
+}
+
+:(before "End Includes")
+#include <climits>
diff --git a/linux/bootstrap/014indirect_addressing.cc b/linux/bootstrap/014indirect_addressing.cc
new file mode 100644
index 00000000..a96b6ebb
--- /dev/null
+++ b/linux/bootstrap/014indirect_addressing.cc
@@ -0,0 +1,1005 @@
+//: operating on memory at the address provided by some register
+//: we'll now start providing data in a separate segment
+
+void test_add_r32_to_mem_at_rm32() {
+  Reg[EBX].i = 0x10;
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     18                                    \n"  // add EBX to *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Mod Special-cases(addr)")
+case 0:  // indirect addressing
+  switch (rm) {
+  default:  // address in register
+    trace(Callstack_depth+1, "run") << "effective address is 0x" << HEXWORD << Reg[rm].u << " (" << rname(rm) << ")" << end();
+    addr = Reg[rm].u;
+    break;
+  // End Mod 0 Special-cases(addr)
+  }
+  break;
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "03", "add rm32 to r32 (add)");
+
+:(code)
+void test_add_mem_at_rm32_to_r32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0x10;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  03     18                                    \n"  // add *EAX to EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add r/m32 to EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x03: {  // add r/m32 to r32
+  const uint8_t modrm = next();
+  const uint8_t arg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "add r/m32 to " << rname(arg1) << end();
+  const int32_t* signed_arg2 = effective_address(modrm);
+  int32_t signed_result = Reg[arg1].i + *signed_arg2;
+  SF = (signed_result < 0);
+  ZF = (signed_result == 0);
+  int64_t signed_full_result = static_cast<int64_t>(Reg[arg1].i) + *signed_arg2;
+  OF = (signed_result != signed_full_result);
+  // set CF
+  uint32_t unsigned_arg2 = static_cast<uint32_t>(*signed_arg2);
+  uint32_t unsigned_result = Reg[arg1].u + unsigned_arg2;
+  uint64_t unsigned_full_result = static_cast<uint64_t>(Reg[arg1].u) + unsigned_arg2;
+  CF = (unsigned_result != unsigned_full_result);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  Reg[arg1].i = signed_result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[arg1].i << end();
+  break;
+}
+
+:(code)
+void test_add_mem_at_rm32_to_r32_signed_overflow() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = INT32_MAX;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  03     18                                    \n" // add *EAX to EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add r/m32 to EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x00000001\n"
+      "run: SF=1; ZF=0; CF=0; OF=1\n"
+      "run: storing 0x80000000\n"
+  );
+}
+
+void test_add_mem_at_rm32_to_r32_unsigned_overflow() {
+  Reg[EAX].u = 0x2000;
+  Reg[EBX].u = UINT32_MAX;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  03     18                                    \n" // add *EAX to EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add r/m32 to EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x00000001\n"
+      "run: SF=0; ZF=1; CF=1; OF=0\n"
+      "run: storing 0x00000000\n"
+  );
+}
+
+void test_add_mem_at_rm32_to_r32_unsigned_and_signed_overflow() {
+  Reg[EAX].u = 0x2000;
+  Reg[EBX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  03     18                                    \n" // add *EAX to EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "00 00 00 80\n"  // INT32_MIN
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add r/m32 to EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x80000000\n"
+      "run: SF=0; ZF=1; CF=1; OF=1\n"
+      "run: storing 0x00000000\n"
+  );
+}
+
+//:: subtract
+
+:(code)
+void test_subtract_r32_from_mem_at_rm32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  29     18                                    \n"  // subtract EBX from *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "0a 00 00 00\n"  // 0xa
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract EBX from r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0x00000009\n"
+  );
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "2b", "subtract rm32 from r32 (sub)");
+
+:(code)
+void test_subtract_mem_at_rm32_from_r32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 10;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  2b     18                                    \n"  // subtract *EAX from EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract r/m32 from EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0x00000009\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x2b: {  // subtract r/m32 from r32
+  const uint8_t modrm = next();
+  const uint8_t arg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "subtract r/m32 from " << rname(arg1) << end();
+  const int32_t* signed_arg2 = effective_address(modrm);
+  const int32_t signed_result = Reg[arg1].i - *signed_arg2;
+  SF = (signed_result < 0);
+  ZF = (signed_result == 0);
+  int64_t signed_full_result = static_cast<int64_t>(Reg[arg1].i) - *signed_arg2;
+  OF = (signed_result != signed_full_result);
+  // set CF
+  uint32_t unsigned_arg2 = static_cast<uint32_t>(*signed_arg2);
+  uint32_t unsigned_result = Reg[arg1].u - unsigned_arg2;
+  uint64_t unsigned_full_result = static_cast<uint64_t>(Reg[arg1].u) - unsigned_arg2;
+  CF = (unsigned_result != unsigned_full_result);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  Reg[arg1].i = signed_result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[arg1].i << end();
+  break;
+}
+
+:(code)
+void test_subtract_mem_at_rm32_from_r32_signed_overflow() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  2b     18                                    \n"  // subtract *EAX from EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "ff ff ff 7f\n"  // INT32_MAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract r/m32 from EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x7fffffff\n"
+      "run: SF=0; ZF=0; CF=0; OF=1\n"
+      "run: storing 0x00000001\n"
+  );
+}
+
+void test_subtract_mem_at_rm32_from_r32_unsigned_overflow() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  2b     18                                    \n"  // subtract *EAX from EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract r/m32 from EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x00000001\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+      "run: storing 0xffffffff\n"
+  );
+}
+
+void test_subtract_mem_at_rm32_from_r32_signed_and_unsigned_overflow() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  2b     18                                    \n"  // subtract *EAX from EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "00 00 00 80\n"  // INT32_MIN
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract r/m32 from EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x80000000\n"
+      "run: SF=1; ZF=0; CF=1; OF=1\n"
+      "run: storing 0x80000000\n"
+  );
+}
+
+//:: and
+:(code)
+void test_and_r32_with_mem_at_rm32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0xff;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  21     18                                    \n"  // and EBX with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "0d 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: and EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0x0000000d\n"
+  );
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "23", "r32 = bitwise AND of r32 with rm32 (and)");
+
+:(code)
+void test_and_mem_at_rm32_with_r32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0x0a0b0c0d;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  23     18                                    \n"  // and *EAX with EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "ff 00 00 00\n"  // 0xff
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: and r/m32 with EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0x0000000d\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x23: {  // and r/m32 with r32
+  const uint8_t modrm = next();
+  const uint8_t arg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "and r/m32 with " << rname(arg1) << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  const int32_t* signed_arg2 = effective_address(modrm);
+  Reg[arg1].i &= *signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[arg1].i << end();
+  SF = (Reg[arg1].i >> 31);
+  ZF = (Reg[arg1].i == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:: or
+
+:(code)
+void test_or_r32_with_mem_at_rm32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0xa0b0c0d0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  09     18                                   #\n"  // EBX with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "0d 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: or EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0xaabbccdd\n"
+  );
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "0b", "r32 = bitwise OR of r32 with rm32 (or)");
+
+:(code)
+void test_or_mem_at_rm32_with_r32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0xa0b0c0d0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0b     18                                    \n"  // or *EAX with EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "0d 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: or r/m32 with EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0xaabbccdd\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x0b: {  // or r/m32 with r32
+  const uint8_t modrm = next();
+  const uint8_t arg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "or r/m32 with " << rname(arg1) << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  const int32_t* signed_arg2 = effective_address(modrm);
+  Reg[arg1].i |= *signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[arg1].i << end();
+  SF = (Reg[arg1].i >> 31);
+  ZF = (Reg[arg1].i == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:: xor
+
+:(code)
+void test_xor_r32_with_mem_at_rm32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0xa0b0c0d0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  31     18                                    \n"  // xor EBX with *EAX
+      "== data 0x2000\n"
+      "0d 0c bb aa\n"  // 0xaabb0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: xor EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0x0a0bccdd\n"
+  );
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "33", "r32 = bitwise XOR of r32 with rm32 (xor)");
+
+:(code)
+void test_xor_mem_at_rm32_with_r32() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0xa0b0c0d0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  33     18                                    \n"  // xor *EAX with EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "0d 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: xor r/m32 with EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0xaabbccdd\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x33: {  // xor r/m32 with r32
+  const uint8_t modrm = next();
+  const uint8_t arg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "xor r/m32 with " << rname(arg1) << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  const int32_t* signed_arg2 = effective_address(modrm);
+  Reg[arg1].i |= *signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[arg1].i << end();
+  SF = (Reg[arg1].i >> 31);
+  ZF = (Reg[arg1].i == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:: not
+
+:(code)
+void test_not_of_mem_at_rm32() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  f7     13                                    \n"  // not *EBX
+      // ModR/M in binary: 00 (indirect mode) 010 (subop not) 011 (dest EBX)
+      "== data 0x2000\n"
+      "ff 00 0f 0f\n"  // 0x0f0f00ff
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: subop: not\n"
+      "run: storing 0xf0f0ff00\n"
+  );
+}
+
+//:: compare (cmp)
+
+:(code)
+void test_compare_mem_at_rm32_with_r32_greater() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0x0a0b0c07;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     18                                    \n"  // compare *EAX with EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "0d 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: SF=0; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+:(code)
+void test_compare_mem_at_rm32_with_r32_lesser() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0x0a0b0c0d;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     18                                    \n"  // compare *EAX with EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "07 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+:(code)
+void test_compare_mem_at_rm32_with_r32_equal() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0x0a0b0c0d;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  39     18                                    \n"  // compare *EAX and EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "0d 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare r/m32 with EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: SF=0; ZF=1; CF=0; OF=0\n"
+  );
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "3b", "compare: set SF if r32 < rm32 (cmp)");
+
+:(code)
+void test_compare_r32_with_mem_at_rm32_greater() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0x0a0b0c0d;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3b     18                                    \n"  // compare EBX with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (lhs EBX) 000 (rhs EAX)
+      "== data 0x2000\n"
+      "07 0c 0b 0a\n"  // 0x0a0b0c07
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: SF=0; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x3b: {  // set SF if r32 < r/m32
+  const uint8_t modrm = next();
+  const uint8_t reg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "compare " << rname(reg1) << " with r/m32" << end();
+  const int32_t* signed_arg2 = effective_address(modrm);
+  const int32_t signed_difference = Reg[reg1].i - *signed_arg2;
+  SF = (signed_difference < 0);
+  ZF = (signed_difference == 0);
+  int64_t full_signed_difference = static_cast<int64_t>(Reg[reg1].i) - *signed_arg2;
+  OF = (signed_difference != full_signed_difference);
+  const uint32_t unsigned_arg2 = static_cast<uint32_t>(*signed_arg2);
+  const uint32_t unsigned_difference = Reg[reg1].u - unsigned_arg2;
+  const uint64_t full_unsigned_difference = static_cast<uint64_t>(Reg[reg1].u) - unsigned_arg2;
+  CF = (unsigned_difference != full_unsigned_difference);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+:(code)
+void test_compare_r32_with_mem_at_rm32_lesser_unsigned_and_signed() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0x0a0b0c07;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3b     18                                    \n"  // compare EBX with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (lhs EBX) 000 (rhs EAX)
+      "== data 0x2000\n"
+      "0d 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x0a0b0c0d\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+void test_compare_r32_with_mem_at_rm32_lesser_unsigned_and_signed_due_to_overflow() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = INT32_MAX;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3b     18                                    \n"  // compare EBX with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (lhs EBX) 000 (rhs EAX)
+      "== data 0x2000\n"
+      "00 00 00 80\n"  // INT32_MIN
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x80000000\n"
+      "run: SF=1; ZF=0; CF=1; OF=1\n"
+  );
+}
+
+void test_compare_r32_with_mem_at_rm32_lesser_signed() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = -1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3b     18                                    \n"  // compare EBX with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (lhs EBX) 000 (rhs EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0x00000001\n"
+      "run: SF=1; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+void test_compare_r32_with_mem_at_rm32_lesser_unsigned() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3b     18                                    \n"  // compare EBX with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (lhs EBX) 000 (rhs EAX)
+      "== data 0x2000\n"
+      "ff ff ff ff\n"  // -1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: effective address contains 0xffffffff\n"
+      "run: SF=0; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+void test_compare_r32_with_mem_at_rm32_equal() {
+  Reg[EAX].i = 0x2000;
+  Reg[EBX].i = 0x0a0b0c0d;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3b     18                                    \n"  // compare EBX with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (lhs EBX) 000 (rhs EAX)
+      "== data 0x2000\n"
+      "0d 0c 0b 0a\n"  // 0x0a0b0c0d
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EBX with r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: SF=0; ZF=1; CF=0; OF=0\n"
+  );
+}
+
+//:: copy (mov)
+
+void test_copy_r32_to_mem_at_rm32() {
+  Reg[EBX].i = 0xaf;
+  Reg[EAX].i = 0x60;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  89     18                                    \n"  // copy EBX to *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy EBX to r/m32\n"
+      "run: effective address is 0x00000060 (EAX)\n"
+      "run: storing 0x000000af\n"
+  );
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "8b", "copy rm32 to r32 (mov)");
+
+:(code)
+void test_copy_mem_at_rm32_to_r32() {
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  8b     18                                    \n"  // copy *EAX to EBX
+      "== data 0x2000\n"
+      "af 00 00 00\n"  // 0xaf
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy r/m32 to EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0x000000af\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x8b: {  // copy r32 to r/m32
+  const uint8_t modrm = next();
+  const uint8_t rdest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "copy r/m32 to " << rname(rdest) << end();
+  const int32_t* src = effective_address(modrm);
+  Reg[rdest].i = *src;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *src << end();
+  break;
+}
+
+//:: jump
+
+:(code)
+void test_jump_mem_at_rm32() {
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  ff     20                                    \n"  // jump to *EAX
+      // ModR/M in binary: 00 (indirect mode) 100 (jump to r/m32) 000 (src EAX)
+      "  b8                                 00 00 00 01\n"
+      "  b8                                 00 00 00 02\n"
+      "== data 0x2000\n"
+      "08 00 00 00\n"  // 0x8
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: ff\n"
+      "run: jump to r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: jumping to 0x00000008\n"
+      "run: 0x00000008 opcode: b8\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: b8");
+}
+
+:(before "End Op ff Subops")
+case 4: {  // jump to r/m32
+  trace(Callstack_depth+1, "run") << "jump to r/m32" << end();
+  const int32_t* arg2 = effective_address(modrm);
+  EIP = *arg2;
+  trace(Callstack_depth+1, "run") << "jumping to 0x" << HEXWORD << EIP << end();
+  break;
+}
+
+//:: push
+
+:(code)
+void test_push_mem_at_rm32() {
+  Reg[EAX].i = 0x2000;
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000014;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  ff     30                                    \n"  // push *EAX to stack
+      "== data 0x2000\n"
+      "af 00 00 00\n"  // 0xaf
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: push r/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: decrementing ESP to 0xbd000010\n"
+      "run: pushing value 0x000000af\n"
+  );
+}
+
+:(before "End Op ff Subops")
+case 6: {  // push r/m32 to stack
+  trace(Callstack_depth+1, "run") << "push r/m32" << end();
+  const int32_t* val = effective_address(modrm);
+  push(*val);
+  break;
+}
+
+//:: pop
+
+:(before "End Initialize Op Names")
+put_new(Name, "8f", "pop top of stack to rm32 (pop)");
+
+:(code)
+void test_pop_mem_at_rm32() {
+  Reg[EAX].i = 0x60;
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000000;
+  write_mem_i32(0xbd000000, 0x00000030);
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  8f     00                                    \n"  // pop stack into *EAX
+      // ModR/M in binary: 00 (indirect mode) 000 (pop r/m32) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: pop into r/m32\n"
+      "run: effective address is 0x00000060 (EAX)\n"
+      "run: popping value 0x00000030\n"
+      "run: incrementing ESP to 0xbd000004\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x8f: {  // pop stack into r/m32
+  const uint8_t modrm = next();
+  const uint8_t subop = (modrm>>3)&0x7;
+  switch (subop) {
+    case 0: {
+      trace(Callstack_depth+1, "run") << "pop into r/m32" << end();
+      int32_t* dest = effective_address(modrm);
+      *dest = pop();  // Write multiple elements of vector<uint8_t> at once. Assumes sizeof(int) == 4 on the host as well.
+      break;
+    }
+  }
+  break;
+}
+
+//:: special-case for loading address from disp32 rather than register
+
+:(code)
+void test_add_r32_to_mem_at_displacement() {
+  Reg[EBX].i = 0x10;  // source
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     1d            00 20 00 00             \n"  // add EBX to *0x2000
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 101 (dest in disp32)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is 0x00002000 (disp32)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Mod 0 Special-cases(addr)")
+case 5:  // exception: mod 0b00 rm 0b101 => incoming disp32
+  addr = next32();
+  trace(Callstack_depth+1, "run") << "effective address is 0x" << HEXWORD << addr << " (disp32)" << end();
+  break;
+
+//:
+
+:(code)
+void test_add_r32_to_mem_at_rm32_plus_disp8() {
+  Reg[EBX].i = 0x10;  // source
+  Reg[EAX].i = 0x1ffe;  // dest
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     58            02                      \n"  // add EBX to *(EAX+2)
+      // ModR/M in binary: 01 (indirect+disp8 mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00001ffe (EAX)\n"
+      "run: effective address is 0x00002000 (after adding disp8)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Mod Special-cases(addr)")
+case 1: {  // indirect + disp8 addressing
+  switch (rm) {
+  default:
+    addr = Reg[rm].u;
+    trace(Callstack_depth+1, "run") << "effective address is initially 0x" << HEXWORD << addr << " (" << rname(rm) << ")" << end();
+    break;
+  // End Mod 1 Special-cases(addr)
+  }
+  int8_t displacement = static_cast<int8_t>(next());
+  if (addr > 0) {
+    addr += displacement;
+    trace(Callstack_depth+1, "run") << "effective address is 0x" << HEXWORD << addr << " (after adding disp8)" << end();
+  }
+  else {
+    trace(Callstack_depth+1, "run") << "null address; skipping displacement" << end();
+  }
+  break;
+}
+
+:(code)
+void test_add_r32_to_mem_at_rm32_plus_negative_disp8() {
+  Reg[EBX].i = 0x10;  // source
+  Reg[EAX].i = 0x2001;  // dest
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     58            ff                      \n"  // add EBX to *(EAX-1)
+      // ModR/M in binary: 01 (indirect+disp8 mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00002001 (EAX)\n"
+      "run: effective address is 0x00002000 (after adding disp8)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+//:
+
+:(code)
+void test_add_r32_to_mem_at_rm32_plus_disp32() {
+  Reg[EBX].i = 0x10;  // source
+  Reg[EAX].i = 0x1ffe;  // dest
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     98            02 00 00 00             \n"  // add EBX to *(EAX+2)
+      // ModR/M in binary: 10 (indirect+disp32 mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00001ffe (EAX)\n"
+      "run: effective address is 0x00002000 (after adding disp32)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Mod Special-cases(addr)")
+case 2: {  // indirect + disp32 addressing
+  switch (rm) {
+  default:
+    addr = Reg[rm].u;
+    trace(Callstack_depth+1, "run") << "effective address is initially 0x" << HEXWORD << addr << " (" << rname(rm) << ")" << end();
+    break;
+  // End Mod 2 Special-cases(addr)
+  }
+  int32_t displacement = static_cast<int32_t>(next32());
+  if (addr > 0) {
+    addr += displacement;
+    trace(Callstack_depth+1, "run") << "effective address is 0x" << HEXWORD << addr << " (after adding disp32)" << end();
+  }
+  else {
+    trace(Callstack_depth+1, "run") << "null address; skipping displacement" << end();
+  }
+  break;
+}
+
+:(code)
+void test_add_r32_to_mem_at_rm32_plus_negative_disp32() {
+  Reg[EBX].i = 0x10;  // source
+  Reg[EAX].i = 0x2001;  // dest
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     98            ff ff ff ff             \n"  // add EBX to *(EAX-1)
+      // ModR/M in binary: 10 (indirect+disp32 mode) 011 (src EBX) 000 (dest EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00002001 (EAX)\n"
+      "run: effective address is 0x00002000 (after adding disp32)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+//:: copy address (lea)
+
+:(before "End Initialize Op Names")
+put_new(Name, "8d", "copy address in rm32 into r32 (lea)");
+
+:(code)
+void test_copy_address() {
+  Reg[EAX].u = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  8d     18                                    \n"  // copy address in EAX into EBX
+      // ModR/M in binary: 00 (indirect mode) 011 (dest EBX) 000 (src EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy address into EBX\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x8d: {  // copy address of m32 to r32
+  const uint8_t modrm = next();
+  const uint8_t arg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "copy address into " << rname(arg1) << end();
+  Reg[arg1].u = effective_address_number(modrm);
+  break;
+}
diff --git a/linux/bootstrap/015immediate_addressing.cc b/linux/bootstrap/015immediate_addressing.cc
new file mode 100644
index 00000000..17025e70
--- /dev/null
+++ b/linux/bootstrap/015immediate_addressing.cc
@@ -0,0 +1,1311 @@
+//: instructions that (immediately) contain an argument to act with
+
+:(before "End Initialize Op Names")
+put_new(Name, "05", "add imm32 to EAX (add)");
+
+:(before "End Single-Byte Opcodes")
+case 0x05: {  // add imm32 to EAX
+  int32_t signed_arg2 = next32();
+  trace(Callstack_depth+1, "run") << "add imm32 0x" << HEXWORD << signed_arg2 << " to EAX" << end();
+  int32_t signed_result = Reg[EAX].i + signed_arg2;
+  SF = (signed_result < 0);
+  ZF = (signed_result == 0);
+  int64_t signed_full_result = static_cast<int64_t>(Reg[EAX].i) + signed_arg2;
+  OF = (signed_result != signed_full_result);
+  // set CF
+  uint32_t unsigned_arg2 = static_cast<uint32_t>(signed_arg2);
+  uint32_t unsigned_result = Reg[EAX].u + unsigned_arg2;
+  uint64_t unsigned_full_result = static_cast<uint64_t>(Reg[EAX].u) + unsigned_arg2;
+  CF = (unsigned_result != unsigned_full_result);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  Reg[EAX].i = signed_result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[EAX].i << end();
+  break;
+}
+
+:(code)
+void test_add_imm32_to_EAX_signed_overflow() {
+  Reg[EAX].i = INT32_MAX;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  05                                 01 00 00 00 \n" // add 1 to EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add imm32 0x00000001 to EAX\n"
+      "run: SF=1; ZF=0; CF=0; OF=1\n"
+      "run: storing 0x80000000\n"
+  );
+}
+
+void test_add_imm32_to_EAX_unsigned_overflow() {
+  Reg[EAX].u = UINT32_MAX;
+  Reg[EBX].u = 1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  05                                 01 00 00 00 \n" // add 1 to EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add imm32 0x00000001 to EAX\n"
+      "run: SF=0; ZF=1; CF=1; OF=0\n"
+      "run: storing 0x00000000\n"
+  );
+}
+
+void test_add_imm32_to_EAX_unsigned_and_signed_overflow() {
+  Reg[EAX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  05                                 00 00 00 80 \n" // add 0x80000000 to EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add imm32 0x80000000 to EAX\n"
+      "run: SF=0; ZF=1; CF=1; OF=1\n"
+      "run: storing 0x00000000\n"
+  );
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "81", "combine rm32 with imm32 based on subop (add/sub/and/or/xor/cmp)");
+
+:(code)
+void test_add_imm32_to_r32() {
+  Reg[EBX].i = 1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     c3                          0a 0b 0c 0d\n"  // add 0x0d0c0b0a to EBX
+      // ModR/M in binary: 11 (direct mode) 000 (subop add) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: subop add\n"
+      "run: storing 0x0d0c0b0b\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x81: {  // combine r/m32 with imm32
+  trace(Callstack_depth+1, "run") << "combine r/m32 with imm32" << end();
+  const uint8_t modrm = next();
+  int32_t* signed_arg1 = effective_address(modrm);
+  const int32_t signed_arg2 = next32();
+  trace(Callstack_depth+1, "run") << "imm32 is 0x" << HEXWORD << signed_arg2 << end();
+  const uint8_t subop = (modrm>>3)&0x7;  // middle 3 'reg opcode' bits
+  switch (subop) {
+  case 0: {
+    trace(Callstack_depth+1, "run") << "subop add" << end();
+    int32_t signed_result = *signed_arg1 + signed_arg2;
+    SF = (signed_result < 0);
+    ZF = (signed_result == 0);
+    int64_t signed_full_result = static_cast<int64_t>(*signed_arg1) + signed_arg2;
+    OF = (signed_result != signed_full_result);
+    // set CF
+    uint32_t unsigned_arg1 = static_cast<uint32_t>(*signed_arg1);
+    uint32_t unsigned_arg2 = static_cast<uint32_t>(signed_arg2);
+    uint32_t unsigned_result = unsigned_arg1 + unsigned_arg2;
+    uint64_t unsigned_full_result = static_cast<uint64_t>(unsigned_arg1) + unsigned_arg2;
+    CF = (unsigned_result != unsigned_full_result);
+    trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+    *signed_arg1 = signed_result;
+    trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+    break;
+  }
+  // End Op 81 Subops
+  default:
+    cerr << "unrecognized subop for opcode 81: " << NUM(subop) << '\n';
+    exit(1);
+  }
+  break;
+}
+
+:(code)
+void test_add_imm32_to_r32_signed_overflow() {
+  Reg[EBX].i = INT32_MAX;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     c3                          01 00 00 00\n"  // add 1 to EBX
+      // ModR/M in binary: 11 (direct mode) 000 (subop add) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x00000001\n"
+      "run: subop add\n"
+      "run: SF=1; ZF=0; CF=0; OF=1\n"
+      "run: storing 0x80000000\n"
+  );
+}
+
+void test_add_imm32_to_r32_unsigned_overflow() {
+  Reg[EBX].u = UINT32_MAX;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     c3                          01 00 00 00\n"  // add 1 to EBX
+      // ModR/M in binary: 11 (direct mode) 011 (subop add) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x00000001\n"
+      "run: subop add\n"
+      "run: SF=0; ZF=1; CF=1; OF=0\n"
+      "run: storing 0x00000000\n"
+  );
+}
+
+void test_add_imm32_to_r32_unsigned_and_signed_overflow() {
+  Reg[EBX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     c3                          00 00 00 80\n"  // add 0x80000000 to EBX
+      // ModR/M in binary: 11 (direct mode) 011 (subop add) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x80000000\n"
+      "run: subop add\n"
+      "run: SF=0; ZF=1; CF=1; OF=1\n"
+      "run: storing 0x00000000\n"
+  );
+}
+
+//:
+
+:(code)
+void test_add_imm32_to_mem_at_rm32() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     03                          0a 0b 0c 0d \n"  // add 0x0d0c0b0a to *EBX
+      // ModR/M in binary: 00 (indirect mode) 000 (subop add) 011 (dest EBX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: subop add\n"
+      "run: storing 0x0d0c0b0b\n"
+  );
+}
+
+//:: subtract
+
+:(before "End Initialize Op Names")
+put_new(Name, "2d", "subtract imm32 from EAX (sub)");
+
+:(code)
+void test_subtract_imm32_from_EAX() {
+  Reg[EAX].i = 0x0d0c0baa;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  2d                                 0a 0b 0c 0d \n"  // subtract 0x0d0c0b0a from EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract imm32 0x0d0c0b0a from EAX\n"
+      "run: storing 0x000000a0\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x2d: {  // subtract imm32 from EAX
+  const int32_t signed_arg2 = next32();
+  trace(Callstack_depth+1, "run") << "subtract imm32 0x" << HEXWORD << signed_arg2 << " from EAX" << end();
+  int32_t signed_result = Reg[EAX].i - signed_arg2;
+  SF = (signed_result < 0);
+  ZF = (signed_result == 0);
+  int64_t signed_full_result = static_cast<int64_t>(Reg[EAX].i) - signed_arg2;
+  OF = (signed_result != signed_full_result);
+  // set CF
+  uint32_t unsigned_arg2 = static_cast<uint32_t>(signed_arg2);
+  uint32_t unsigned_result = Reg[EAX].u - unsigned_arg2;
+  uint64_t unsigned_full_result = static_cast<uint64_t>(Reg[EAX].u) - unsigned_arg2;
+  CF = (unsigned_result != unsigned_full_result);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  Reg[EAX].i = signed_result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[EAX].i << end();
+  break;
+}
+
+:(code)
+void test_subtract_imm32_from_EAX_signed_overflow() {
+  Reg[EAX].i = INT32_MIN;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  2d                                 01 00 00 00 \n"  // subtract 1 from EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract imm32 0x00000001 from EAX\n"
+      "run: SF=0; ZF=0; CF=0; OF=1\n"
+      "run: storing 0x7fffffff\n"  // INT32_MAX
+  );
+}
+
+void test_subtract_imm32_from_EAX_unsigned_overflow() {
+  Reg[EAX].i = 0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  2d                                 01 00 00 00 \n"  // subtract 1 from EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract imm32 0x00000001 from EAX\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+      "run: storing 0xffffffff\n"
+  );
+}
+
+void test_subtract_imm32_from_EAX_signed_and_unsigned_overflow() {
+  Reg[EAX].i = 0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  2d                                 00 00 00 80 \n"  // subtract INT32_MIN from EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract imm32 0x80000000 from EAX\n"
+      "run: SF=1; ZF=0; CF=1; OF=1\n"
+      "run: storing 0x80000000\n"
+  );
+}
+
+//:
+
+void test_subtract_imm32_from_mem_at_rm32() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     2b                          01 00 00 00 \n"  // subtract 1 from *EBX
+      // ModR/M in binary: 00 (indirect mode) 101 (subop subtract) 011 (dest EBX)
+      "== data 0x2000\n"
+      "0a 00 00 00\n"  // 0xa
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: imm32 is 0x00000001\n"
+      "run: subop subtract\n"
+      "run: storing 0x00000009\n"
+  );
+}
+
+:(before "End Op 81 Subops")
+case 5: {
+  trace(Callstack_depth+1, "run") << "subop subtract" << end();
+  int32_t signed_result = *signed_arg1 - signed_arg2;
+  SF = (signed_result < 0);
+  ZF = (signed_result == 0);
+  int64_t signed_full_result = static_cast<int64_t>(*signed_arg1) - signed_arg2;
+  OF = (signed_result != signed_full_result);
+  // set CF
+  uint32_t unsigned_arg1 = static_cast<uint32_t>(*signed_arg1);
+  uint32_t unsigned_arg2 = static_cast<uint32_t>(signed_arg2);
+  uint32_t unsigned_result = unsigned_arg1 - unsigned_arg2;
+  uint64_t unsigned_full_result = static_cast<uint64_t>(unsigned_arg1) - unsigned_arg2;
+  CF = (unsigned_result != unsigned_full_result);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  *signed_arg1 = signed_result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  break;
+}
+
+:(code)
+void test_subtract_imm32_from_mem_at_rm32_signed_overflow() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     2b                          ff ff ff 7f \n"  // subtract INT32_MAX from *EBX
+      // ModR/M in binary: 00 (indirect mode) 101 (subop subtract) 011 (dest EBX)
+      "== data 0x2000\n"
+      "00 00 00 80\n"  // INT32_MIN
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: effective address contains 0x80000000\n"
+      "run: imm32 is 0x7fffffff\n"
+      "run: subop subtract\n"
+      "run: SF=0; ZF=0; CF=0; OF=1\n"
+      "run: storing 0x00000001\n"
+  );
+}
+
+void test_subtract_imm32_from_mem_at_rm32_unsigned_overflow() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     2b                          01 00 00 00 \n"  // subtract 1 from *EBX
+      // ModR/M in binary: 00 (indirect mode) 101 (subop subtract) 011 (dest EBX)
+      "== data 0x2000\n"
+      "00 00 00 00\n"  // 0
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: effective address contains 0x00000000\n"
+      "run: imm32 is 0x00000001\n"
+      "run: subop subtract\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+      "run: storing 0xffffffff\n"
+  );
+}
+
+void test_subtract_imm32_from_mem_at_rm32_signed_and_unsigned_overflow() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     2b                          00 00 00 80 \n"  // subtract INT32_MIN from *EBX
+      // ModR/M in binary: 00 (indirect mode) 101 (subop subtract) 011 (dest EBX)
+      "== data 0x2000\n"
+      "00 00 00 00\n"  // 0
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: effective address contains 0x00000000\n"
+      "run: imm32 is 0x80000000\n"
+      "run: subop subtract\n"
+      "run: SF=1; ZF=0; CF=1; OF=1\n"
+      "run: storing 0x80000000\n"
+  );
+}
+
+//:
+
+void test_subtract_imm32_from_r32() {
+  Reg[EBX].i = 10;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     eb                          01 00 00 00 \n"  // subtract 1 from EBX
+      // ModR/M in binary: 11 (direct mode) 101 (subop subtract) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x00000001\n"
+      "run: subop subtract\n"
+      "run: storing 0x00000009\n"
+  );
+}
+
+//:: shift left
+
+:(before "End Initialize Op Names")
+put_new(Name, "c1", "shift rm32 by imm8 bits depending on subop (sal/sar/shl/shr)");
+
+:(code)
+void test_shift_left_r32_with_imm8() {
+  Reg[EBX].i = 13;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c1     e3                          01          \n"  // shift EBX left by 1 bit
+      // ModR/M in binary: 11 (direct mode) 100 (subop shift left) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift left by CL bits\n"
+      "run: storing 0x0000001a\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xc1: {
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "operate on r/m32" << end();
+  int32_t* arg1 = effective_address(modrm);
+  const uint8_t subop = (modrm>>3)&0x7;  // middle 3 'reg opcode' bits
+  switch (subop) {
+  case 4: {  // shift left r/m32 by CL
+    trace(Callstack_depth+1, "run") << "subop: shift left by CL bits" << end();
+    uint8_t count = next() & 0x1f;
+    // OF is only defined if count is 1
+    if (count == 1) {
+      bool msb = (*arg1 & 0x80000000) >> 1;
+      bool pnsb = (*arg1 & 0x40000000);
+      OF = (msb != pnsb);
+    }
+    *arg1 = (*arg1 << count);
+    ZF = (*arg1 == 0);
+    SF = (*arg1 < 0);
+    // CF undefined
+    trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+    trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << end();
+    break;
+  }
+  // End Op c1 Subops
+  default:
+    cerr << "unrecognized subop for opcode c1: " << NUM(subop) << '\n';
+    exit(1);
+  }
+  break;
+}
+
+//:: shift right arithmetic
+
+:(code)
+void test_shift_right_arithmetic_r32_with_imm8() {
+  Reg[EBX].i = 26;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c1     fb                          01          \n"  // shift EBX right by 1 bit
+      // ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while preserving sign\n"
+      "run: storing 0x0000000d\n"
+  );
+}
+
+:(before "End Op c1 Subops")
+case 7: {  // shift right r/m32 by CL, preserving sign
+  trace(Callstack_depth+1, "run") << "subop: shift right by CL bits, while preserving sign" << end();
+  uint8_t count = next() & 0x1f;
+  int32_t result = (*arg1 >> count);
+  ZF = (*arg1 == 0);
+  SF = (*arg1 < 0);
+  // OF is only defined if count is 1
+  if (count == 1) OF = false;
+  // CF
+  CF = ((*arg1 >> (count-1)) & 0x1);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  *arg1 = result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << end();
+  break;
+}
+
+:(code)
+void test_shift_right_arithmetic_odd_r32_with_imm8() {
+  Reg[EBX].i = 27;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c1     fb                          01          \n"  // shift EBX right by 1 bit
+      // ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while preserving sign\n"
+      // result: 13
+      "run: storing 0x0000000d\n"
+  );
+}
+
+:(code)
+void test_shift_right_arithmetic_negative_r32_with_imm8() {
+  Reg[EBX].i = 0xfffffffd;  // -3
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c1     fb                          01          \n"  // shift EBX right by 1 bit, while preserving sign
+      // ModR/M in binary: 11 (direct mode) 111 (subop shift right arithmetic) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while preserving sign\n"
+      // result: -2
+      "run: storing 0xfffffffe\n"
+  );
+}
+
+//:: shift right logical
+
+:(code)
+void test_shift_right_logical_r32_with_imm8() {
+  Reg[EBX].i = 26;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c1     eb                          01          \n"  // shift EBX right by 1 bit, while padding zeroes
+      // ModR/M in binary: 11 (direct mode) 101 (subop shift right logical) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while padding zeroes\n"
+      "run: storing 0x0000000d\n"
+  );
+}
+
+:(before "End Op c1 Subops")
+case 5: {  // shift right r/m32 by CL, preserving sign
+  trace(Callstack_depth+1, "run") << "subop: shift right by CL bits, while padding zeroes" << end();
+  uint8_t count = next() & 0x1f;
+  // OF is only defined if count is 1
+  if (count == 1) {
+    bool msb = (*arg1 & 0x80000000) >> 1;
+    bool pnsb = (*arg1 & 0x40000000);
+    OF = (msb != pnsb);
+  }
+  uint32_t* uarg1 = reinterpret_cast<uint32_t*>(arg1);
+  *uarg1 = (*uarg1 >> count);
+  ZF = (*uarg1 == 0);
+  // result is always positive by definition
+  SF = false;
+  // CF undefined
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *arg1 << end();
+  break;
+}
+
+:(code)
+void test_shift_right_logical_odd_r32_with_imm8() {
+  Reg[EBX].i = 27;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c1     eb                          01          \n"  // shift EBX right by 1 bit, while padding zeroes
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while padding zeroes\n"
+      // result: 13
+      "run: storing 0x0000000d\n"
+  );
+}
+
+:(code)
+void test_shift_right_logical_negative_r32_with_imm8() {
+  Reg[EBX].i = 0xfffffffd;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c1     eb                          01          \n"  // shift EBX right by 1 bit, while padding zeroes
+      // ModR/M in binary: 11 (direct mode) 101 (subop shift right logical) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: operate on r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: subop: shift right by CL bits, while padding zeroes\n"
+      "run: storing 0x7ffffffe\n"
+  );
+}
+
+//:: and
+
+:(before "End Initialize Op Names")
+put_new(Name, "25", "EAX = bitwise AND of imm32 with EAX (and)");
+
+:(code)
+void test_and_EAX_with_imm32() {
+  Reg[EAX].i = 0xff;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  25                                 0a 0b 0c 0d \n"  // and 0x0d0c0b0a with EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: and imm32 0x0d0c0b0a with EAX\n"
+      "run: storing 0x0000000a\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x25: {  // and imm32 with EAX
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  const int32_t signed_arg2 = next32();
+  trace(Callstack_depth+1, "run") << "and imm32 0x" << HEXWORD << signed_arg2 << " with EAX" << end();
+  Reg[EAX].i &= signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[EAX].i << end();
+  SF = (Reg[EAX].i >> 31);
+  ZF = (Reg[EAX].i == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:
+
+:(code)
+void test_and_imm32_with_mem_at_rm32() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     23                          0a 0b 0c 0d \n"  // and 0x0d0c0b0a with *EBX
+      // ModR/M in binary: 00 (indirect mode) 100 (subop and) 011 (dest EBX)
+      "== data 0x2000\n"
+      "ff 00 00 00\n"  // 0xff
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: subop and\n"
+      "run: storing 0x0000000a\n"
+  );
+}
+
+:(before "End Op 81 Subops")
+case 4: {
+  trace(Callstack_depth+1, "run") << "subop and" << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  *signed_arg1 &= signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  SF = (*signed_arg1 >> 31);
+  ZF = (*signed_arg1 == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:
+
+:(code)
+void test_and_imm32_with_r32() {
+  Reg[EBX].i = 0xff;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     e3                          0a 0b 0c 0d \n"  // and 0x0d0c0b0a with EBX
+      // ModR/M in binary: 11 (direct mode) 100 (subop and) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: subop and\n"
+      "run: storing 0x0000000a\n"
+  );
+}
+
+//:: or
+
+:(before "End Initialize Op Names")
+put_new(Name, "0d", "EAX = bitwise OR of imm32 with EAX (or)");
+
+:(code)
+void test_or_EAX_with_imm32() {
+  Reg[EAX].i = 0xd0c0b0a0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0d                                 0a 0b 0c 0d \n"  // or 0x0d0c0b0a with EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: or imm32 0x0d0c0b0a with EAX\n"
+      "run: storing 0xddccbbaa\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x0d: {  // or imm32 with EAX
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  const int32_t signed_arg2 = next32();
+  trace(Callstack_depth+1, "run") << "or imm32 0x" << HEXWORD << signed_arg2 << " with EAX" << end();
+  Reg[EAX].i |= signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[EAX].i << end();
+  SF = (Reg[EAX].i >> 31);
+  ZF = (Reg[EAX].i == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:
+
+:(code)
+void test_or_imm32_with_mem_at_rm32() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     0b                          0a 0b 0c 0d \n"  // or 0x0d0c0b0a with *EBX
+      // ModR/M in binary: 00 (indirect mode) 001 (subop or) 011 (dest EBX)
+      "== data 0x2000\n"
+      "a0 b0 c0 d0\n"  // 0xd0c0b0a0
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: subop or\n"
+      "run: storing 0xddccbbaa\n"
+  );
+}
+
+:(before "End Op 81 Subops")
+case 1: {
+  trace(Callstack_depth+1, "run") << "subop or" << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  *signed_arg1 |= signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  SF = (*signed_arg1 >> 31);
+  ZF = (*signed_arg1 == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+:(code)
+void test_or_imm32_with_r32() {
+  Reg[EBX].i = 0xd0c0b0a0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     cb                          0a 0b 0c 0d \n"  // or 0x0d0c0b0a with EBX
+      // ModR/M in binary: 11 (direct mode) 001 (subop or) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: subop or\n"
+      "run: storing 0xddccbbaa\n"
+  );
+}
+
+//:: xor
+
+:(before "End Initialize Op Names")
+put_new(Name, "35", "EAX = bitwise XOR of imm32 with EAX (xor)");
+
+:(code)
+void test_xor_EAX_with_imm32() {
+  Reg[EAX].i = 0xddccb0a0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  35                                 0a 0b 0c 0d \n"  // xor 0x0d0c0b0a with EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: xor imm32 0x0d0c0b0a with EAX\n"
+      "run: storing 0xd0c0bbaa\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x35: {  // xor imm32 with EAX
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  const int32_t signed_arg2 = next32();
+  trace(Callstack_depth+1, "run") << "xor imm32 0x" << HEXWORD << signed_arg2 << " with EAX" << end();
+  Reg[EAX].i ^= signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[EAX].i << end();
+  SF = (Reg[EAX].i >> 31);
+  ZF = (Reg[EAX].i == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+//:
+
+:(code)
+void test_xor_imm32_with_mem_at_rm32() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     33                          0a 0b 0c 0d \n"  // xor 0x0d0c0b0a with *EBX
+      // ModR/M in binary: 00 (indirect mode) 110 (subop xor) 011 (dest EBX)
+      "== data 0x2000\n"
+      "a0 b0 c0 d0\n"  // 0xd0c0b0a0
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: subop xor\n"
+      "run: storing 0xddccbbaa\n"
+  );
+}
+
+:(before "End Op 81 Subops")
+case 6: {
+  trace(Callstack_depth+1, "run") << "subop xor" << end();
+  // bitwise ops technically operate on unsigned numbers, but it makes no
+  // difference
+  *signed_arg1 ^= signed_arg2;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << *signed_arg1 << end();
+  SF = (*signed_arg1 >> 31);
+  ZF = (*signed_arg1 == 0);
+  CF = false;
+  OF = false;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+:(code)
+void test_xor_imm32_with_r32() {
+  Reg[EBX].i = 0xd0c0b0a0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     f3                          0a 0b 0c 0d \n"  // xor 0x0d0c0b0a with EBX
+      // ModR/M in binary: 11 (direct mode) 110 (subop xor) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: subop xor\n"
+      "run: storing 0xddccbbaa\n"
+  );
+}
+
+//:: compare (cmp)
+
+:(before "End Initialize Op Names")
+put_new(Name, "3d", "compare: set SF if EAX < imm32 (cmp)");
+
+:(code)
+void test_compare_EAX_with_imm32_greater() {
+  Reg[EAX].i = 0x0d0c0b0a;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3d                                 07 0b 0c 0d \n"  // compare EAX with 0x0d0c0b07
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EAX with imm32 0x0d0c0b07\n"
+      "run: SF=0; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x3d: {  // compare EAX with imm32
+  const int32_t signed_arg1 = Reg[EAX].i;
+  const int32_t signed_arg2 = next32();
+  trace(Callstack_depth+1, "run") << "compare EAX with imm32 0x" << HEXWORD << signed_arg2 << end();
+  const int32_t signed_difference = signed_arg1 - signed_arg2;
+  SF = (signed_difference < 0);
+  ZF = (signed_difference == 0);
+  const int64_t full_signed_difference = static_cast<int64_t>(signed_arg1) - signed_arg2;
+  OF = (signed_difference != full_signed_difference);
+  const uint32_t unsigned_arg1 = static_cast<uint32_t>(signed_arg1);
+  const uint32_t unsigned_arg2 = static_cast<uint32_t>(signed_arg2);
+  const uint32_t unsigned_difference = unsigned_arg1 - unsigned_arg2;
+  const uint64_t full_unsigned_difference = static_cast<uint64_t>(unsigned_arg1) - unsigned_arg2;
+  CF = (unsigned_difference != full_unsigned_difference);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+:(code)
+void test_compare_EAX_with_imm32_lesser_unsigned_and_signed() {
+  Reg[EAX].i = 0x0a0b0c07;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3d                                 0d 0c 0b 0a \n"  // compare EAX with imm32
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EAX with imm32 0x0a0b0c0d\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+void test_compare_EAX_with_imm32_lesser_unsigned_and_signed_due_to_overflow() {
+  Reg[EAX].i = INT32_MAX;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3d                                 00 00 00 80\n"  // compare EAX with INT32_MIN
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EAX with imm32 0x80000000\n"
+      "run: SF=1; ZF=0; CF=1; OF=1\n"
+  );
+}
+
+void test_compare_EAX_with_imm32_lesser_signed() {
+  Reg[EAX].i = -1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3d                                 01 00 00 00\n"  // compare EAX with 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EAX with imm32 0x00000001\n"
+      "run: SF=1; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+void test_compare_EAX_with_imm32_lesser_unsigned() {
+  Reg[EAX].i = 1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3d                                 ff ff ff ff\n"  // compare EAX with -1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EAX with imm32 0xffffffff\n"
+      "run: SF=0; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+void test_compare_EAX_with_imm32_equal() {
+  Reg[EAX].i = 0x0d0c0b0a;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  3d                                 0a 0b 0c 0d \n"  // compare 0x0d0c0b0a with EAX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare EAX with imm32 0x0d0c0b0a\n"
+      "run: SF=0; ZF=1; CF=0; OF=0\n"
+  );
+}
+
+//:
+
+void test_compare_imm32_with_r32_greater() {
+  Reg[EBX].i = 0x0d0c0b0a;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     fb                          07 0b 0c 0d \n"  // compare 0x0d0c0b07 with EBX
+      // ModR/M in binary: 11 (direct mode) 111 (subop compare) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x0d0c0b07\n"
+      "run: SF=0; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+:(before "End Op 81 Subops")
+case 7: {
+  trace(Callstack_depth+1, "run") << "subop compare" << end();
+  const int32_t tmp1 = *signed_arg1 - signed_arg2;
+  SF = (tmp1 < 0);
+  ZF = (tmp1 == 0);
+  const int64_t tmp2 = static_cast<int64_t>(*signed_arg1) - signed_arg2;
+  OF = (tmp1 != tmp2);
+  const uint32_t unsigned_arg1 = static_cast<uint32_t>(*signed_arg1);
+  const uint32_t unsigned_arg2 = static_cast<uint32_t>(signed_arg2);
+  const uint32_t tmp3 = unsigned_arg1 - unsigned_arg2;
+  const uint64_t tmp4 = static_cast<uint64_t>(unsigned_arg1) - unsigned_arg2;
+  CF = (tmp3 != tmp4);
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
+
+:(code)
+void test_compare_rm32_with_imm32_lesser_unsigned_and_signed() {
+  Reg[EAX].i = 0x0a0b0c07;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     f8                          0d 0c 0b 0a \n"  // compare EAX with imm32
+      // ModR/M in binary: 11 (direct mode) 111 (subop compare) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EAX\n"
+      "run: imm32 is 0x0a0b0c0d\n"
+      "run: subop compare\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+void test_compare_rm32_with_imm32_lesser_unsigned_and_signed_due_to_overflow() {
+  Reg[EAX].i = INT32_MAX;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     f8                          00 00 00 80\n"  // compare EAX with INT32_MIN
+      // ModR/M in binary: 11 (direct mode) 111 (subop compare) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EAX\n"
+      "run: imm32 is 0x80000000\n"
+      "run: subop compare\n"
+      "run: SF=1; ZF=0; CF=1; OF=1\n"
+  );
+}
+
+void test_compare_rm32_with_imm32_lesser_signed() {
+  Reg[EAX].i = -1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     f8                          01 00 00 00\n"  // compare EAX with 1
+      // ModR/M in binary: 11 (direct mode) 111 (subop compare) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EAX\n"
+      "run: imm32 is 0x00000001\n"
+      "run: subop compare\n"
+      "run: SF=1; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+void test_compare_rm32_with_imm32_lesser_unsigned() {
+  Reg[EAX].i = 1;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     f8                          ff ff ff ff\n"  // compare EAX with -1
+      // ModR/M in binary: 11 (direct mode) 111 (subop compare) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EAX\n"
+      "run: imm32 is 0xffffffff\n"
+      "run: subop compare\n"
+      "run: SF=0; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+:(code)
+void test_compare_imm32_with_r32_equal() {
+  Reg[EBX].i = 0x0d0c0b0a;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     fb                          0a 0b 0c 0d \n"  // compare 0x0d0c0b0a with EBX
+      // ModR/M in binary: 11 (direct mode) 111 (subop compare) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: r/m32 is EBX\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: SF=0; ZF=1; CF=0; OF=0\n"
+  );
+}
+
+:(code)
+void test_compare_imm32_with_mem_at_rm32_greater() {
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     3b                          07 0b 0c 0d \n"  // compare 0x0d0c0b07 with *EBX
+      // ModR/M in binary: 00 (indirect mode) 111 (subop compare) 011 (dest EBX)
+      "== data 0x2000\n"
+      "0a 0b 0c 0d\n"  // 0x0d0c0b0a
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: imm32 is 0x0d0c0b07\n"
+      "run: SF=0; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+:(code)
+void test_compare_imm32_with_mem_at_rm32_lesser() {
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     38                          0a 0b 0c 0d \n"  // compare 0x0d0c0b0a with *EAX
+      // ModR/M in binary: 00 (indirect mode) 111 (subop compare) 000 (dest EAX)
+      "== data 0x2000\n"
+      "07 0b 0c 0d\n"  // 0x0d0c0b07
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: SF=1; ZF=0; CF=1; OF=0\n"
+  );
+}
+
+:(code)
+void test_compare_imm32_with_mem_at_rm32_equal() {
+  Reg[EBX].i = 0x0d0c0b0a;
+  Reg[EBX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  81     3b                          0a 0b 0c 0d \n"  // compare 0x0d0c0b0a with *EBX
+      // ModR/M in binary: 00 (indirect mode) 111 (subop compare) 011 (dest EBX)
+      "== data 0x2000\n"
+      "0a 0b 0c 0d\n"  // 0x0d0c0b0a
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: combine r/m32 with imm32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+      "run: SF=0; ZF=1; CF=0; OF=0\n"
+  );
+}
+
+//:: copy (mov)
+
+:(before "End Initialize Op Names")
+// b8 defined earlier to copy imm32 to EAX
+put_new(Name, "b9", "copy imm32 to ECX (mov)");
+put_new(Name, "ba", "copy imm32 to EDX (mov)");
+put_new(Name, "bb", "copy imm32 to EBX (mov)");
+put_new(Name, "bc", "copy imm32 to ESP (mov)");
+put_new(Name, "bd", "copy imm32 to EBP (mov)");
+put_new(Name, "be", "copy imm32 to ESI (mov)");
+put_new(Name, "bf", "copy imm32 to EDI (mov)");
+
+:(code)
+void test_copy_imm32_to_r32() {
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  bb                                 0a 0b 0c 0d \n"  // copy 0x0d0c0b0a to EBX
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy imm32 0x0d0c0b0a to EBX\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xb9:
+case 0xba:
+case 0xbb:
+case 0xbc:
+case 0xbd:
+case 0xbe:
+case 0xbf: {  // copy imm32 to r32
+  const uint8_t rdest = op & 0x7;
+  const int32_t src = next32();
+  trace(Callstack_depth+1, "run") << "copy imm32 0x" << HEXWORD << src << " to " << rname(rdest) << end();
+  Reg[rdest].i = src;
+  break;
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "c7", "copy imm32 to rm32 with subop 0 (mov)");
+
+:(code)
+void test_copy_imm32_to_mem_at_rm32() {
+  Reg[EBX].i = 0x60;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c7     03                          0a 0b 0c 0d \n"  // copy 0x0d0c0b0a to *EBX
+      // ModR/M in binary: 00 (indirect mode) 000 (subop) 011 (dest EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy imm32 to r/m32\n"
+      "run: effective address is 0x00000060 (EBX)\n"
+      "run: imm32 is 0x0d0c0b0a\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xc7: {  // copy imm32 to r32
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "copy imm32 to r/m32" << end();
+  const uint8_t subop = (modrm>>3)&0x7;  // middle 3 'reg opcode' bits
+  if (subop != 0) {
+    cerr << "unrecognized subop for opcode c7: " << NUM(subop) << " (only 0/copy currently implemented)\n";
+    exit(1);
+  }
+  int32_t* dest = effective_address(modrm);
+  const int32_t src = next32();
+  trace(Callstack_depth+1, "run") << "imm32 is 0x" << HEXWORD << src << end();
+  *dest = src;  // Write multiple elements of vector<uint8_t> at once. Assumes sizeof(int) == 4 on the host as well.
+  break;
+}
+
+//:: push
+
+:(before "End Initialize Op Names")
+put_new(Name, "68", "push imm32 to stack (push)");
+
+:(code)
+void test_push_imm32() {
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000014;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  68                                 af 00 00 00 \n"  // push *EAX to stack
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: push imm32 0x000000af\n"
+      "run: ESP is now 0xbd000010\n"
+      "run: contents at ESP: 0x000000af\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x68: {
+  const uint32_t val = static_cast<uint32_t>(next32());
+  trace(Callstack_depth+1, "run") << "push imm32 0x" << HEXWORD << val << end();
+//?   cerr << "push: " << val << " => " << Reg[ESP].u << '\n';
+  push(val);
+  trace(Callstack_depth+1, "run") << "ESP is now 0x" << HEXWORD << Reg[ESP].u << end();
+  trace(Callstack_depth+1, "run") << "contents at ESP: 0x" << HEXWORD << read_mem_u32(Reg[ESP].u) << end();
+  break;
+}
+
+//:: multiply
+
+:(before "End Initialize Op Names")
+put_new(Name, "69", "multiply rm32 by imm32 and store result in r32 (imul)");
+
+:(code)
+void test_multiply_imm32() {
+  Reg[EAX].i = 2;
+  Reg[EBX].i = 3;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  69     c3                          04 00 00 00 \n"  // EAX = EBX * 4
+      // ModR/M in binary: 11 (direct) 000 (dest EAX) 011 (src EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: multiply r/m32 by 0x00000004 and store result in EAX\n"
+      "run: r/m32 is EBX\n"
+      "run: storing 0x0000000c\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x69: {
+  const uint8_t modrm = next();
+  const uint8_t rdest = (modrm>>3)&0x7;
+  const int32_t val = next32();
+  trace(Callstack_depth+1, "run") << "multiply r/m32 by 0x" << HEXWORD << val << " and store result in " << rname(rdest) << end();
+  const int32_t* signed_arg1 = effective_address(modrm);
+  int32_t result = *signed_arg1 * val;
+  int64_t full_result = static_cast<int64_t>(*signed_arg1) * val;
+  OF = (result != full_result);
+  CF = OF;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  Reg[rdest].i = result;
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXWORD << Reg[rdest].i << end();
+  break;
+}
diff --git a/linux/bootstrap/016index_addressing.cc b/linux/bootstrap/016index_addressing.cc
new file mode 100644
index 00000000..f6c6f2aa
--- /dev/null
+++ b/linux/bootstrap/016index_addressing.cc
@@ -0,0 +1,155 @@
+//: operating on memory at the address provided by some register plus optional scale and offset
+
+:(code)
+void test_add_r32_to_mem_at_rm32_with_sib() {
+  Reg[EBX].i = 0x10;
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     1c      20                              \n"  // add EBX to *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 100 (dest in SIB)
+      // SIB in binary: 00 (scale 1) 100 (no index) 000 (base EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00002000 (EAX)\n"
+      "run: effective address is 0x00002000\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Mod 0 Special-cases(addr)")
+case 4:  // exception: mod 0b00 rm 0b100 => incoming SIB (scale-index-base) byte
+  addr = effective_address_from_sib(mod);
+  break;
+:(code)
+uint32_t effective_address_from_sib(uint8_t mod) {
+  const uint8_t sib = next();
+  const uint8_t base = sib&0x7;
+  uint32_t addr = 0;
+  if (base != EBP || mod != 0) {
+    addr = Reg[base].u;
+    trace(Callstack_depth+1, "run") << "effective address is initially 0x" << HEXWORD << addr << " (" << rname(base) << ")" << end();
+  }
+  else {
+    // base == EBP && mod == 0
+    addr = next32();  // ignore base
+    trace(Callstack_depth+1, "run") << "effective address is initially 0x" << HEXWORD << addr << " (disp32)" << end();
+  }
+  const uint8_t index = (sib>>3)&0x7;
+  if (index == ESP) {
+    // ignore index and scale
+    trace(Callstack_depth+1, "run") << "effective address is 0x" << HEXWORD << addr << end();
+  }
+  else {
+    const uint8_t scale = (1 << (sib>>6));
+    addr += Reg[index].i*scale;  // treat index register as signed. Maybe base as well? But we'll always ensure it's non-negative.
+    trace(Callstack_depth+1, "run") << "effective address is 0x" << HEXWORD << addr << " (after adding " << rname(index) << "*" << NUM(scale) << ")" << end();
+  }
+  return addr;
+}
+
+:(code)
+void test_add_r32_to_mem_at_base_r32_index_r32() {
+  Reg[EBX].i = 0x10;  // source
+  Reg[EAX].i = 0x1ffe;  // dest base
+  Reg[ECX].i = 0x2;  // dest index
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     1c      08                              \n"  // add EBX to *(EAX+ECX)
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 100 (dest in SIB)
+      // SIB in binary: 00 (scale 1) 001 (index ECX) 000 (base EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00001ffe (EAX)\n"
+      "run: effective address is 0x00002000 (after adding ECX*1)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(code)
+void test_add_r32_to_mem_at_displacement_using_sib() {
+  Reg[EBX].i = 0x10;  // source
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     1c      25    00 20 00 00               \n"  // add EBX to *0x2000
+      // ModR/M in binary: 00 (indirect mode) 011 (src EBX) 100 (dest in SIB)
+      // SIB in binary: 00 (scale 1) 100 (no index) 101 (not EBP but disp32)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00002000 (disp32)\n"
+      "run: effective address is 0x00002000\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+//:
+
+:(code)
+void test_add_r32_to_mem_at_base_r32_index_r32_plus_disp8() {
+  Reg[EBX].i = 0x10;  // source
+  Reg[EAX].i = 0x1ff9;  // dest base
+  Reg[ECX].i = 0x5;  // dest index
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     5c      08    02                        \n"  // add EBX to *(EAX+ECX+2)
+      // ModR/M in binary: 01 (indirect+disp8 mode) 011 (src EBX) 100 (dest in SIB)
+      // SIB in binary: 00 (scale 1) 001 (index ECX) 000 (base EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00001ff9 (EAX)\n"
+      "run: effective address is 0x00001ffe (after adding ECX*1)\n"
+      "run: effective address is 0x00002000 (after adding disp8)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Mod 1 Special-cases(addr)")
+case 4:  // exception: mod 0b01 rm 0b100 => incoming SIB (scale-index-base) byte
+  addr = effective_address_from_sib(mod);
+  break;
+
+//:
+
+:(code)
+void test_add_r32_to_mem_at_base_r32_index_r32_plus_disp32() {
+  Reg[EBX].i = 0x10;  // source
+  Reg[EAX].i = 0x1ff9;  // dest base
+  Reg[ECX].i = 0x5;  // dest index
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  01     9c      08    02 00 00 00               \n"  // add EBX to *(EAX+ECX+2)
+      // ModR/M in binary: 10 (indirect+disp32 mode) 011 (src EBX) 100 (dest in SIB)
+      // SIB in binary: 00 (scale 1) 001 (index ECX) 000 (base EAX)
+      "== data 0x2000\n"
+      "01 00 00 00\n"  // 1
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add EBX to r/m32\n"
+      "run: effective address is initially 0x00001ff9 (EAX)\n"
+      "run: effective address is 0x00001ffe (after adding ECX*1)\n"
+      "run: effective address is 0x00002000 (after adding disp32)\n"
+      "run: storing 0x00000011\n"
+  );
+}
+
+:(before "End Mod 2 Special-cases(addr)")
+case 4:  // exception: mod 0b10 rm 0b100 => incoming SIB (scale-index-base) byte
+  addr = effective_address_from_sib(mod);
+  break;
diff --git a/linux/bootstrap/017jump_disp8.cc b/linux/bootstrap/017jump_disp8.cc
new file mode 100644
index 00000000..30e60a74
--- /dev/null
+++ b/linux/bootstrap/017jump_disp8.cc
@@ -0,0 +1,407 @@
+//: jump to 8-bit offset
+
+//:: jump
+
+:(before "End Initialize Op Names")
+put_new(Name, "eb", "jump disp8 bytes away (jmp)");
+
+:(code)
+void test_jump_disp8() {
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  eb                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: eb\n"
+      "run: jump 5\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: 05");
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xeb: {  // jump disp8
+  int8_t offset = static_cast<int>(next());
+  trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+  EIP += offset;
+  break;
+}
+
+//:: jump if equal/zero
+
+:(before "End Initialize Op Names")
+put_new(Name, "74", "jump disp8 bytes away if equal, if ZF is set (jcc/jz/je)");
+
+:(code)
+void test_je_disp8_success() {
+  ZF = true;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  74                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 74\n"
+      "run: jump 5\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: 05");
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x74: {  // jump disp8 if ZF
+  const int8_t offset = static_cast<int>(next());
+  if (ZF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_je_disp8_fail() {
+  ZF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  74                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 74\n"
+      "run: 0x00000003 opcode: 05\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if not equal/not zero
+
+:(before "End Initialize Op Names")
+put_new(Name, "75", "jump disp8 bytes away if not equal, if ZF is not set (jcc/jnz/jne)");
+
+:(code)
+void test_jne_disp8_success() {
+  ZF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  75                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 75\n"
+      "run: jump 5\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: 05");
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x75: {  // jump disp8 if !ZF
+  const int8_t offset = static_cast<int>(next());
+  if (!ZF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jne_disp8_fail() {
+  ZF = true;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  75                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 75\n"
+      "run: 0x00000003 opcode: 05\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if greater
+
+:(before "End Initialize Op Names")
+put_new(Name, "7f", "jump disp8 bytes away if greater, if ZF is unset and SF == OF (jcc/jg/jnle)");
+put_new(Name, "77", "jump disp8 bytes away if greater (addr, float), if ZF is unset and CF is unset (jcc/ja/jnbe)");
+
+:(code)
+void test_jg_disp8_success() {
+  ZF = false;
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7f                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7f\n"
+      "run: jump 5\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: 05");
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x7f: {  // jump disp8 if SF == OF and !ZF
+  const int8_t offset = static_cast<int>(next());
+  if (SF == OF && !ZF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+case 0x77: {  // jump disp8 if !CF and !ZF
+  const int8_t offset = static_cast<int>(next());
+  if (!CF && !ZF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jg_disp8_fail() {
+  ZF = false;
+  SF = true;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7f                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7f\n"
+      "run: 0x00000003 opcode: 05\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if greater or equal
+
+:(before "End Initialize Op Names")
+put_new(Name, "7d", "jump disp8 bytes away if greater or equal, if SF == OF (jcc/jge/jnl)");
+put_new(Name, "73", "jump disp8 bytes away if greater or equal (addr, float), if CF is unset (jcc/jae/jnb)");
+
+:(code)
+void test_jge_disp8_success() {
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7d                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7d\n"
+      "run: jump 5\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: 05");
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x7d: {  // jump disp8 if SF == OF
+  const int8_t offset = static_cast<int>(next());
+  if (SF == OF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+case 0x73: {  // jump disp8 if !CF
+  const int8_t offset = static_cast<int>(next());
+  if (!CF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jge_disp8_fail() {
+  SF = true;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7d                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7d\n"
+      "run: 0x00000003 opcode: 05\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if lesser
+
+:(before "End Initialize Op Names")
+put_new(Name, "7c", "jump disp8 bytes away if lesser, if SF != OF (jcc/jl/jnge)");
+put_new(Name, "72", "jump disp8 bytes away if lesser (addr, float), if CF is set (jcc/jb/jnae)");
+
+:(code)
+void test_jl_disp8_success() {
+  ZF = false;
+  SF = true;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7c                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7c\n"
+      "run: jump 5\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: 05");
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x7c: {  // jump disp8 if SF != OF
+  const int8_t offset = static_cast<int>(next());
+  if (SF != OF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+case 0x72: {  // jump disp8 if CF
+  const int8_t offset = static_cast<int>(next());
+  if (CF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jl_disp8_fail() {
+  ZF = false;
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7c                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7c\n"
+      "run: 0x00000003 opcode: 05\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if lesser or equal
+
+:(before "End Initialize Op Names")
+put_new(Name, "7e", "jump disp8 bytes away if lesser or equal, if ZF is set or SF != OF (jcc/jle/jng)");
+put_new(Name, "76", "jump disp8 bytes away if lesser or equal (addr, float), if ZF is set or CF is set (jcc/jbe/jna)");
+
+:(code)
+void test_jle_disp8_equal() {
+  ZF = true;
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7e                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7e\n"
+      "run: jump 5\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: 05");
+}
+
+:(code)
+void test_jle_disp8_lesser() {
+  ZF = false;
+  SF = true;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7e                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7e\n"
+      "run: jump 5\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000003 opcode: 05");
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x7e: {  // jump disp8 if ZF or SF != OF
+  const int8_t offset = static_cast<int>(next());
+  if (ZF || SF != OF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+case 0x76: {  // jump disp8 if ZF or CF
+  const int8_t offset = static_cast<int>(next());
+  if (ZF || CF) {
+    trace(Callstack_depth+1, "run") << "jump " << NUM(offset) << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jle_disp8_greater() {
+  ZF = false;
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  7e                   05                        \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 7e\n"
+      "run: 0x00000003 opcode: 05\n"
+      "run: 0x00000008 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
diff --git a/linux/bootstrap/018jump_disp32.cc b/linux/bootstrap/018jump_disp32.cc
new file mode 100644
index 00000000..e77bc584
--- /dev/null
+++ b/linux/bootstrap/018jump_disp32.cc
@@ -0,0 +1,407 @@
+//: jump to 32-bit offset
+
+//:: jump
+
+:(before "End Initialize Op Names")
+put_new(Name, "e9", "jump disp32 bytes away (jmp)");
+
+:(code)
+void test_jump_disp32() {
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  e9                   05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: e9\n"
+      "run: jump 5\n"
+      "run: 0x0000000b opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000006 opcode: 05");
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xe9: {  // jump disp32
+  const int32_t offset = next32();
+  trace(Callstack_depth+1, "run") << "jump " << offset << end();
+  EIP += offset;
+  break;
+}
+
+//:: jump if equal/zero
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "84", "jump disp32 bytes away if equal, if ZF is set (jcc/jz/je)");
+
+:(code)
+void test_je_disp32_success() {
+  ZF = true;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 84                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: jump 5\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000007 opcode: 05");
+}
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0x84: {  // jump disp32 if ZF
+  const int32_t offset = next32();
+  if (ZF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_je_disp32_fail() {
+  ZF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 84                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: 0x00000007 opcode: 05\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if not equal/not zero
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "85", "jump disp32 bytes away if not equal, if ZF is not set (jcc/jnz/jne)");
+
+:(code)
+void test_jne_disp32_success() {
+  ZF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 85                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: jump 5\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000007 opcode: 05");
+}
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0x85: {  // jump disp32 if !ZF
+  const int32_t offset = next32();
+  if (!ZF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jne_disp32_fail() {
+  ZF = true;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 85                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: 0x00000007 opcode: 05\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if greater
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "8f", "jump disp32 bytes away if greater, if ZF is unset and SF == OF (jcc/jg/jnle)");
+put_new(Name_0f, "87", "jump disp32 bytes away if greater (addr, float), if ZF is unset and CF is unset (jcc/ja/jnbe)");
+
+:(code)
+void test_jg_disp32_success() {
+  ZF = false;
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8f                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: jump 5\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000007 opcode: 05");
+}
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0x8f: {  // jump disp32 if !SF and !ZF
+  const int32_t offset = next32();
+  if (!ZF && SF == OF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+case 0x87: {  // jump disp32 if !CF and !ZF
+  const int32_t offset = next32();
+  if (!CF && !ZF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jg_disp32_fail() {
+  ZF = false;
+  SF = true;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8f                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: 0x00000007 opcode: 05\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if greater or equal
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "8d", "jump disp32 bytes away if greater or equal, if SF == OF (jcc/jge/jnl)");
+put_new(Name_0f, "83", "jump disp32 bytes away if greater or equal (addr, float), if CF is unset (jcc/jae/jnb)");
+
+:(code)
+void test_jge_disp32_success() {
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8d                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: jump 5\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000007 opcode: 05");
+}
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0x8d: {  // jump disp32 if !SF
+  const int32_t offset = next32();
+  if (SF == OF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+case 0x83: {  // jump disp32 if !CF
+  const int32_t offset = next32();
+  if (!CF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jge_disp32_fail() {
+  SF = true;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8d                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: 0x00000007 opcode: 05\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if lesser
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "8c", "jump disp32 bytes away if lesser, if SF != OF (jcc/jl/jnge)");
+put_new(Name_0f, "82", "jump disp32 bytes away if lesser (addr, float), if CF is set (jcc/jb/jnae)");
+
+:(code)
+void test_jl_disp32_success() {
+  ZF = false;
+  SF = true;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8c                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: jump 5\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000007 opcode: 05");
+}
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0x8c: {  // jump disp32 if SF and !ZF
+  const int32_t offset = next32();
+  if (SF != OF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+case 0x82: {  // jump disp32 if CF
+  const int32_t offset = next32();
+  if (CF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jl_disp32_fail() {
+  ZF = false;
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8c                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: 0x00000007 opcode: 05\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
+
+//:: jump if lesser or equal
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "8e", "jump disp32 bytes away if lesser or equal, if ZF is set or SF != OF (jcc/jle/jng)");
+put_new(Name_0f, "86", "jump disp32 bytes away if lesser or equal (addr, float), if ZF is set or CF is set (jcc/jbe/jna)");
+
+:(code)
+void test_jle_disp32_equal() {
+  ZF = true;
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8e                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: jump 5\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000007 opcode: 05");
+}
+
+:(code)
+void test_jle_disp32_lesser() {
+  ZF = false;
+  SF = true;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8e                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: jump 5\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000007 opcode: 05");
+}
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0x8e: {  // jump disp32 if SF or ZF
+  const int32_t offset = next32();
+  if (ZF || SF != OF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+case 0x86: {  // jump disp32 if ZF or CF
+  const int32_t offset = next32();
+  if (ZF || CF) {
+    trace(Callstack_depth+1, "run") << "jump " << offset << end();
+    EIP += offset;
+  }
+  break;
+}
+
+:(code)
+void test_jle_disp32_greater() {
+  ZF = false;
+  SF = false;
+  OF = false;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 8e                05 00 00 00               \n"  // skip 1 instruction
+      "  05                                 00 00 00 01 \n"
+      "  05                                 00 00 00 02 \n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000001 opcode: 0f\n"
+      "run: 0x00000007 opcode: 05\n"
+      "run: 0x0000000c opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: jump 5");
+}
diff --git a/linux/bootstrap/019functions.cc b/linux/bootstrap/019functions.cc
new file mode 100644
index 00000000..2fde10ef
--- /dev/null
+++ b/linux/bootstrap/019functions.cc
@@ -0,0 +1,122 @@
+//:: call
+
+:(before "End Initialize Op Names")
+put_new(Name, "e8", "call disp32 (call)");
+
+:(code)
+void test_call_disp32() {
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000064;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  e8                                 a0 00 00 00 \n"  // call function offset at 0xa0
+      // next EIP is 6
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: call imm32 0x000000a0\n"
+      "run: decrementing ESP to 0xbd000060\n"
+      "run: pushing value 0x00000006\n"
+      "run: jumping to 0x000000a6\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xe8: {  // call disp32 relative to next EIP
+  const int32_t offset = next32();
+  ++Callstack_depth;
+  trace(Callstack_depth+1, "run") << "call imm32 0x" << HEXWORD << offset << end();
+//?   cerr << "push: EIP: " << EIP << " => " << Reg[ESP].u << '\n';
+  push(EIP);
+  EIP += offset;
+  trace(Callstack_depth+1, "run") << "jumping to 0x" << HEXWORD << EIP << end();
+  break;
+}
+
+//:
+
+:(code)
+void test_call_r32() {
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000064;
+  Reg[EBX].u = 0x000000a0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  ff     d3                                      \n"  // call function offset at EBX
+      // next EIP is 3
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: call to r/m32\n"
+      "run: r/m32 is EBX\n"
+      "run: decrementing ESP to 0xbd000060\n"
+      "run: pushing value 0x00000003\n"
+      "run: jumping to 0x000000a0\n"
+  );
+}
+
+:(before "End Op ff Subops")
+case 2: {  // call function pointer at r/m32
+  trace(Callstack_depth+1, "run") << "call to r/m32" << end();
+  const int32_t* offset = effective_address(modrm);
+  push(EIP);
+  EIP = *offset;
+  trace(Callstack_depth+1, "run") << "jumping to 0x" << HEXWORD << EIP << end();
+  ++Callstack_depth;
+  break;
+}
+
+:(code)
+void test_call_mem_at_rm32() {
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000064;
+  Reg[EBX].u = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  ff     13                                      \n"  // call function offset at *EBX
+      // next EIP is 3
+      "== data 0x2000\n"
+      "a0 00 00 00\n"  // 0xa0
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: call to r/m32\n"
+      "run: effective address is 0x00002000 (EBX)\n"
+      "run: decrementing ESP to 0xbd000060\n"
+      "run: pushing value 0x00000003\n"
+      "run: jumping to 0x000000a0\n"
+  );
+}
+
+//:: ret
+
+:(before "End Initialize Op Names")
+put_new(Name, "c3", "return from most recent unfinished call (ret)");
+
+:(code)
+void test_ret() {
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000064;
+  write_mem_u32(Reg[ESP].u, 0x10);
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c3                                           \n"  // return
+      "== data 0x2000\n"
+      "10 00 00 00\n"  // 0x10
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: return\n"
+      "run: popping value 0x00000010\n"
+      "run: jumping to 0x00000010\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xc3: {  // return from a call
+  trace(Callstack_depth+1, "run") << "return" << end();
+  --Callstack_depth;
+  EIP = pop();
+  trace(Callstack_depth+1, "run") << "jumping to 0x" << HEXWORD << EIP << end();
+  break;
+}
diff --git a/linux/bootstrap/020byte_addressing.cc b/linux/bootstrap/020byte_addressing.cc
new file mode 100644
index 00000000..399e9199
--- /dev/null
+++ b/linux/bootstrap/020byte_addressing.cc
@@ -0,0 +1,272 @@
+//: SubX mostly deals with instructions operating on 32-bit operands, but we
+//: still need to deal with raw bytes for strings and so on.
+
+//: Unfortunately the register encodings when dealing with bytes are a mess.
+//: We need a special case for them.
+:(code)
+string rname_8bit(uint8_t r) {
+  switch (r) {
+  case 0: return "AL";  // lowest byte of EAX
+  case 1: return "CL";  // lowest byte of ECX
+  case 2: return "DL";  // lowest byte of EDX
+  case 3: return "BL";  // lowest byte of EBX
+  case 4: return "AH";  // second lowest byte of EAX
+  case 5: return "CH";  // second lowest byte of ECX
+  case 6: return "DH";  // second lowest byte of EDX
+  case 7: return "BH";  // second lowest byte of EBX
+  default: raise << "invalid 8-bit register " << r << '\n' << end();  return "";
+  }
+}
+
+uint8_t* effective_byte_address(uint8_t modrm) {
+  uint8_t mod = (modrm>>6);
+  uint8_t rm = modrm & 0x7;
+  if (mod == 3) {
+    // select an 8-bit register
+    trace(Callstack_depth+1, "run") << "r/m8 is " << rname_8bit(rm) << end();
+    return reg_8bit(rm);
+  }
+  // the rest is as usual
+  return mem_addr_u8(effective_address_number(modrm));
+}
+
+uint8_t* reg_8bit(uint8_t rm) {
+  uint8_t* result = reinterpret_cast<uint8_t*>(&Reg[rm & 0x3].i);  // _L register
+  if (rm & 0x4)
+    ++result;  // _H register;  assumes host is little-endian
+  return result;
+}
+
+:(before "End Initialize Op Names")
+put_new(Name, "88", "copy r8 to r8/m8-at-r32");
+
+:(code)
+void test_copy_r8_to_mem_at_rm32() {
+  Reg[EBX].i = 0x224488ab;
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  88     18                                      \n"  // copy BL to the byte at *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (src BL) 000 (dest EAX)
+      "== data 0x2000\n"
+      "f0 cc bb aa\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy BL to r8/m8-at-r32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0xab\n"
+  );
+  CHECK_EQ(0xaabbccab, read_mem_u32(0x2000));
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x88: {  // copy r8 to r/m8
+  const uint8_t modrm = next();
+  const uint8_t rsrc = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "copy " << rname_8bit(rsrc) << " to r8/m8-at-r32" << end();
+  // use unsigned to zero-extend 8-bit value to 32 bits
+  uint8_t* dest = effective_byte_address(modrm);
+  const uint8_t* src = reg_8bit(rsrc);
+  *dest = *src;  // Read/write multiple elements of vector<uint8_t> at once. Assumes sizeof(int) == 4 on the host as well.
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXBYTE << NUM(*dest) << end();
+  break;
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "8a", "copy r8/m8-at-r32 to r8");
+
+:(code)
+void test_copy_mem_at_rm32_to_r8() {
+  Reg[EBX].i = 0xaabbcc0f;  // one nibble each of lowest byte set to all 0s and all 1s, to maximize value of this test
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  8a     18                                      \n"  // copy just the byte at *EAX to BL
+      // ModR/M in binary: 00 (indirect mode) 011 (dest EBX) 000 (src EAX)
+      "== data 0x2000\n"
+      "ab ff ff ff\n"  // 0xab with more data in following bytes
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy r8/m8-at-r32 to BL\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0xab\n"
+      // remaining bytes of EBX are *not* cleared
+      "run: EBX now contains 0xaabbccab\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x8a: {  // copy r/m8 to r8
+  const uint8_t modrm = next();
+  const uint8_t rdest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "copy r8/m8-at-r32 to " << rname_8bit(rdest) << end();
+  // use unsigned to zero-extend 8-bit value to 32 bits
+  const uint8_t* src = effective_byte_address(modrm);
+  uint8_t* dest = reg_8bit(rdest);
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXBYTE << NUM(*src) << end();
+  *dest = *src;  // Read/write multiple elements of vector<uint8_t> at once. Assumes sizeof(int) == 4 on the host as well.
+  const uint8_t rdest_32bit = rdest & 0x3;
+  trace(Callstack_depth+1, "run") << rname(rdest_32bit) << " now contains 0x" << HEXWORD << Reg[rdest_32bit].u << end();
+  break;
+}
+
+:(code)
+void test_cannot_copy_byte_to_ESP_EBP_ESI_EDI() {
+  Reg[ESI].u = 0xaabbccdd;
+  Reg[EBX].u = 0x11223344;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  8a     f3                                      \n"  // copy just the byte at *EBX to 8-bit register '6'
+      // ModR/M in binary: 11 (direct mode) 110 (dest 8-bit 'register 6') 011 (src EBX)
+  );
+  CHECK_TRACE_CONTENTS(
+      // ensure 8-bit register '6' is DH, not ESI
+      "run: copy r8/m8-at-r32 to DH\n"
+      "run: storing 0x44\n"
+  );
+  // ensure ESI is unchanged
+  CHECK_EQ(Reg[ESI].u, 0xaabbccdd);
+}
+
+//:
+
+:(before "End Initialize Op Names")
+put_new(Name, "c6", "copy imm8 to r8/m8-at-r32 with subop 0 (mov)");
+
+:(code)
+void test_copy_imm8_to_mem_at_rm32() {
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  c6     00                          dd          \n"  // copy to the byte at *EAX
+      // ModR/M in binary: 00 (indirect mode) 000 (unused) 000 (dest EAX)
+      "== data 0x2000\n"
+      "f0 cc bb aa\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy imm8 to r8/m8-at-r32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0xdd\n"
+  );
+  CHECK_EQ(0xaabbccdd, read_mem_u32(0x2000));
+}
+
+:(before "End Single-Byte Opcodes")
+case 0xc6: {  // copy imm8 to r/m8
+  const uint8_t modrm = next();
+  const uint8_t src = next();
+  trace(Callstack_depth+1, "run") << "copy imm8 to r8/m8-at-r32" << end();
+  trace(Callstack_depth+1, "run") << "imm8 is 0x" << HEXBYTE << NUM(src) << end();
+  const uint8_t subop = (modrm>>3)&0x7;  // middle 3 'reg opcode' bits
+  if (subop != 0) {
+    cerr << "unrecognized subop for opcode c6: " << NUM(subop) << " (only 0/copy currently implemented)\n";
+    exit(1);
+  }
+  // use unsigned to zero-extend 8-bit value to 32 bits
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = src;  // Write multiple elements of vector<uint8_t> at once. Assumes sizeof(int) == 4 on the host as well.
+  trace(Callstack_depth+1, "run") << "storing 0x" << HEXBYTE << NUM(*dest) << end();
+  break;
+}
+
+//:: set flags (setcc)
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "94", "set r8/m8-at-rm32 to 1 if equal, if ZF is set, 0 otherwise (setcc/setz/sete)");
+put_new(Name_0f, "95", "set r8/m8-at-rm32 to 1 if not equal, if ZF is not set, 0 otherwise (setcc/setnz/setne)");
+put_new(Name_0f, "9f", "set r8/m8-at-rm32 to 1 if greater, if ZF is unset and SF == OF, 0 otherwise (setcc/setg/setnle)");
+put_new(Name_0f, "97", "set r8/m8-at-rm32 to 1 if greater (addr, float), if ZF is unset and CF is unset, 0 otherwise (setcc/seta/setnbe)");
+put_new(Name_0f, "9d", "set r8/m8-at-rm32 to 1 if greater or equal, if SF == OF, 0 otherwise (setcc/setge/setnl)");
+put_new(Name_0f, "93", "set r8/m8-at-rm32 to 1 if greater or equal (addr, float), if CF is unset, 0 otherwise (setcc/setae/setnb)");
+put_new(Name_0f, "9c", "set r8/m8-at-rm32 to 1 if lesser, if SF != OF, 0 otherwise (setcc/setl/setnge)");
+put_new(Name_0f, "92", "set r8/m8-at-rm32 to 1 if lesser (addr, float), if CF is set, 0 otherwise (setcc/setb/setnae)");
+put_new(Name_0f, "9e", "set r8/m8-at-rm32 to 1 if lesser or equal, if ZF is set or SF != OF, 0 otherwise (setcc/setle/setng)");
+put_new(Name_0f, "96", "set r8/m8-at-rm32 to 1 if lesser or equal (addr, float), if ZF is set or CF is set, 0 otherwise (setcc/setbe/setna)");
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0x94: {  // set r8/m8-at-rm32 if ZF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = ZF;
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x95: {  // set r8/m8-at-rm32 if !ZF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = !ZF;
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x9f: {  // set r8/m8-at-rm32 if !SF and !ZF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = !ZF && SF == OF;
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x97: {  // set r8/m8-at-rm32 if !CF and !ZF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = (!CF && !ZF);
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x9d: {  // set r8/m8-at-rm32 if !SF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = (SF == OF);
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x93: {  // set r8/m8-at-rm32 if !CF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = !CF;
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x9c: {  // set r8/m8-at-rm32 if SF and !ZF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = (SF != OF);
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x92: {  // set r8/m8-at-rm32 if CF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = CF;
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x9e: {  // set r8/m8-at-rm32 if SF or ZF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = (ZF || SF != OF);
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
+case 0x96: {  // set r8/m8-at-rm32 if ZF or CF
+  const uint8_t modrm = next();
+  trace(Callstack_depth+1, "run") << "set r8/m8-at-rm32" << end();
+  uint8_t* dest = effective_byte_address(modrm);
+  *dest = (ZF || CF);
+  trace(Callstack_depth+1, "run") << "storing " << NUM(*dest) << end();
+  break;
+}
diff --git a/linux/bootstrap/021div.cc b/linux/bootstrap/021div.cc
new file mode 100644
index 00000000..15ed89d8
--- /dev/null
+++ b/linux/bootstrap/021div.cc
@@ -0,0 +1,38 @@
+//: helper for division operations: sign-extend EAX into EDX
+
+:(before "End Initialize Op Names")
+put_new(Name, "99", "sign-extend EAX into EDX (cdq)");
+
+:(code)
+void test_cdq() {
+  Reg[EAX].i = 10;
+  run(
+      "== code 0x1\n"
+      "99\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: sign-extend EAX into EDX\n"
+      "run: EDX is now 0x00000000\n"
+  );
+}
+
+:(before "End Single-Byte Opcodes")
+case 0x99: {  // sign-extend EAX into EDX
+  trace(Callstack_depth+1, "run") << "sign-extend EAX into EDX" << end();
+  Reg[EDX].i = (Reg[EAX].i < 0) ? -1 : 0;
+  trace(Callstack_depth+1, "run") << "EDX is now 0x" << HEXWORD << Reg[EDX].u << end();
+  break;
+}
+
+:(code)
+void test_cdq_negative() {
+  Reg[EAX].i = -10;
+  run(
+      "== code 0x1\n"
+      "99\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: sign-extend EAX into EDX\n"
+      "run: EDX is now 0xffffffff\n"
+  );
+}
diff --git a/linux/bootstrap/022float.cc b/linux/bootstrap/022float.cc
new file mode 100644
index 00000000..7b313c25
--- /dev/null
+++ b/linux/bootstrap/022float.cc
@@ -0,0 +1,519 @@
+//: floating-point operations
+
+//:: copy
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "10", "copy xm32 to x32 (movss)");
+put_new(Name_f3_0f, "11", "copy x32 to xm32 (movss)");
+
+:(code)
+void test_copy_x32_to_x32() {
+  Xmm[3] = 0.5;
+  run(
+      "== code 0x1\n"  // code segment
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 11 d8                                    \n"  // copy XMM3 to XMM0
+      // ModR/M in binary: 11 (direct mode) 011 (src XMM3) 000 (dest XMM0)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy XMM3 to x/m32\n"
+      "run: x/m32 is XMM0\n"
+      "run: storing 0.5\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x10: {  // copy x/m32 to x32
+  const uint8_t modrm = next();
+  const uint8_t rdest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "copy x/m32 to " << Xname[rdest] << end();
+  float* src = effective_address_float(modrm);
+  Xmm[rdest] = *src;  // Write multiple elements of vector<uint8_t> at once. Assumes sizeof(float) == 4 on the host as well.
+  trace(Callstack_depth+1, "run") << "storing " << Xmm[rdest] << end();
+  break;
+}
+case 0x11: {  // copy x32 to x/m32
+  const uint8_t modrm = next();
+  const uint8_t rsrc = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "copy " << Xname[rsrc] << " to x/m32" << end();
+  float* dest = effective_address_float(modrm);
+  *dest = Xmm[rsrc];  // Write multiple elements of vector<uint8_t> at once. Assumes sizeof(float) == 4 on the host as well.
+  trace(Callstack_depth+1, "run") << "storing " << *dest << end();
+  break;
+}
+
+:(code)
+void test_copy_x32_to_mem_at_xm32() {
+  Xmm[3] = 0.5;
+  Reg[EAX].i = 0x60;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 11 18                                    \n"  // copy XMM3 to *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (src XMM3) 000 (dest EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy XMM3 to x/m32\n"
+      "run: effective address is 0x00000060 (EAX)\n"
+      "run: storing 0.5\n"
+  );
+}
+
+void test_copy_mem_at_xm32_to_x32() {
+  Reg[EAX].i = 0x2000;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 10 18                                    \n"  // copy *EAX to XMM3
+      "== data 0x2000\n"
+      "00 00 00 3f\n"  // 0x3f000000 = 0.5
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: copy x/m32 to XMM3\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: storing 0.5\n"
+  );
+}
+
+//:: convert to floating point
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "2a", "convert integer to floating-point (cvtsi2ss)");
+
+:(code)
+void test_cvtsi2ss() {
+  Reg[EAX].i = 10;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 2a c0                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 000 (EAX)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: convert r/m32 to XMM0\n"
+      "run: r/m32 is EAX\n"
+      "run: XMM0 is now 10\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x2a: {  // convert integer to float
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "convert r/m32 to " << Xname[dest] << end();
+  const int32_t* src = effective_address(modrm);
+  Xmm[dest] = *src;
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+//:: convert floating point to int
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "2d", "convert floating-point to int (cvtss2si)");
+put_new(Name_f3_0f, "2c", "truncate floating-point to int (cvttss2si)");
+
+:(code)
+void test_cvtss2si() {
+  Xmm[0] = 9.8;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 2d c0                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (EAX) 000 (XMM0)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: convert x/m32 to EAX\n"
+      "run: x/m32 is XMM0\n"
+      "run: EAX is now 0x0000000a\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x2d: {  // convert float to integer
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "convert x/m32 to " << rname(dest) << end();
+  const float* src = effective_address_float(modrm);
+  Reg[dest].i = round(*src);
+  trace(Callstack_depth+1, "run") << rname(dest) << " is now 0x" << HEXWORD << Reg[dest].i << end();
+  break;
+}
+
+:(code)
+void test_cvttss2si() {
+  Xmm[0] = 9.8;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 2c c0                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (EAX) 000 (XMM0)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: truncate x/m32 to EAX\n"
+      "run: x/m32 is XMM0\n"
+      "run: EAX is now 0x00000009\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x2c: {  // truncate float to integer
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "truncate x/m32 to " << rname(dest) << end();
+  const float* src = effective_address_float(modrm);
+  Reg[dest].i = trunc(*src);
+  trace(Callstack_depth+1, "run") << rname(dest) << " is now 0x" << HEXWORD << Reg[dest].i << end();
+  break;
+}
+
+//:: add
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "58", "add floats (addss)");
+
+:(code)
+void test_addss() {
+  Xmm[0] = 3.0;
+  Xmm[1] = 2.0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 58 c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: add x/m32 to XMM0\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 5\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x58: {  // add x/m32 to x32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "add x/m32 to " << Xname[dest] << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] += *src;
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+//:: subtract
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "5c", "subtract floats (subss)");
+
+:(code)
+void test_subss() {
+  Xmm[0] = 3.0;
+  Xmm[1] = 2.0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 5c c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: subtract x/m32 from XMM0\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 1\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x5c: {  // subtract x/m32 from x32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "subtract x/m32 from " << Xname[dest] << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] -= *src;
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+//:: multiply
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "59", "multiply floats (mulss)");
+
+:(code)
+void test_mulss() {
+  Xmm[0] = 3.0;
+  Xmm[1] = 2.0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 59 c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: multiply XMM0 by x/m32\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 6\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x59: {  // multiply x32 by x/m32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "multiply " << Xname[dest] << " by x/m32" << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] *= *src;
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+//:: divide
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "5e", "divide floats (divss)");
+
+:(code)
+void test_divss() {
+  Xmm[0] = 3.0;
+  Xmm[1] = 2.0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 5e c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: divide XMM0 by x/m32\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 1.5\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x5e: {  // divide x32 by x/m32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "divide " << Xname[dest] << " by x/m32" << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] /= *src;
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+//:: min
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "5d", "minimum of two floats (minss)");
+
+:(code)
+void test_minss() {
+  Xmm[0] = 3.0;
+  Xmm[1] = 2.0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 5d c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: minimum of XMM0 and x/m32\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 2\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x5d: {  // minimum of x32, x/m32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "minimum of " << Xname[dest] << " and x/m32" << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] = min(Xmm[dest], *src);
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+//:: max
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "5f", "maximum of two floats (maxss)");
+
+:(code)
+void test_maxss() {
+  Xmm[0] = 3.0;
+  Xmm[1] = 2.0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 5f c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: maximum of XMM0 and x/m32\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 3\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x5f: {  // maximum of x32, x/m32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "maximum of " << Xname[dest] << " and x/m32" << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] = max(Xmm[dest], *src);
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+//:: reciprocal
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "53", "reciprocal of float (rcpss)");
+
+:(code)
+void test_rcpss() {
+  Xmm[1] = 2.0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 53 c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: reciprocal of x/m32 into XMM0\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 0.5\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x53: {  // reciprocal of x/m32 into x32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "reciprocal of x/m32 into " << Xname[dest] << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] = 1.0 / *src;
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+//:: square root
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "51", "square root of float (sqrtss)");
+
+:(code)
+void test_sqrtss() {
+  Xmm[1] = 2.0;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 51 c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: square root of x/m32 into XMM0\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 1.41421\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x51: {  // square root of x/m32 into x32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "square root of x/m32 into " << Xname[dest] << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] = sqrt(*src);
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+:(before "End Includes")
+#include <math.h>
+
+//:: inverse square root
+
+:(before "End Initialize Op Names")
+put_new(Name_f3_0f, "52", "inverse square root of float (rsqrtss)");
+
+:(code)
+void test_rsqrtss() {
+  Xmm[1] = 0.01;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "f3 0f 52 c1                                    \n"
+      // ModR/M in binary: 11 (direct mode) 000 (XMM0) 001 (XMM1)
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: inverse square root of x/m32 into XMM0\n"
+      "run: x/m32 is XMM1\n"
+      "run: XMM0 is now 10\n"
+  );
+}
+
+:(before "End Three-Byte Opcodes Starting With f3 0f")
+case 0x52: {  // inverse square root of x/m32 into x32
+  const uint8_t modrm = next();
+  const uint8_t dest = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "inverse square root of x/m32 into " << Xname[dest] << end();
+  const float* src = effective_address_float(modrm);
+  Xmm[dest] = 1.0 / sqrt(*src);
+  trace(Callstack_depth+1, "run") << Xname[dest] << " is now " << Xmm[dest] << end();
+  break;
+}
+
+:(code)
+float* effective_address_float(uint8_t modrm) {
+  const uint8_t mod = (modrm>>6);
+  // ignore middle 3 'reg opcode' bits
+  const uint8_t rm = modrm & 0x7;
+  if (mod == 3) {
+    // mod 3 is just register direct addressing
+    trace(Callstack_depth+1, "run") << "x/m32 is " << Xname[rm] << end();
+    return &Xmm[rm];
+  }
+  uint32_t addr = effective_address_number(modrm);
+  trace(Callstack_depth+1, "run") << "effective address contains " << read_mem_f32(addr) << end();
+  return mem_addr_f32(addr);
+}
+
+//: compare
+
+:(before "End Initialize Op Names")
+put_new(Name_0f, "2f", "compare: set CF if x32 < xm32 (comiss)");
+
+:(code)
+void test_compare_x32_with_mem_at_rm32() {
+  Reg[EAX].i = 0x2000;
+  Xmm[3] = 0.5;
+  run(
+      "== code 0x1\n"
+      // op     ModR/M  SIB   displacement  immediate
+      "  0f 2f  18                                    \n"  // compare XMM3 with *EAX
+      // ModR/M in binary: 00 (indirect mode) 011 (lhs XMM3) 000 (rhs EAX)
+      "== data 0x2000\n"
+      "00 00 00 00\n"  // 0x00000000 = 0.0
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: compare XMM3 with x/m32\n"
+      "run: effective address is 0x00002000 (EAX)\n"
+      "run: SF=0; ZF=0; CF=0; OF=0\n"
+  );
+}
+
+:(before "End Two-Byte Opcodes Starting With 0f")
+case 0x2f: {  // set CF if x32 < x/m32
+  const uint8_t modrm = next();
+  const uint8_t reg1 = (modrm>>3)&0x7;
+  trace(Callstack_depth+1, "run") << "compare " << Xname[reg1] << " with x/m32" << end();
+  const float* arg2 = effective_address_float(modrm);
+  // Flag settings carefully copied from the Intel manual.
+  // See also https://stackoverflow.com/questions/7057501/x86-assembler-floating-point-compare/7057771#7057771
+  SF = ZF = CF = OF = false;
+  if (Xmm[reg1] == *arg2) ZF = true;
+  if (Xmm[reg1] < *arg2) CF = true;
+  trace(Callstack_depth+1, "run") << "SF=" << SF << "; ZF=" << ZF << "; CF=" << CF << "; OF=" << OF << end();
+  break;
+}
diff --git a/linux/bootstrap/029syscalls.cc b/linux/bootstrap/029syscalls.cc
new file mode 100644
index 00000000..84a6af34
--- /dev/null
+++ b/linux/bootstrap/029syscalls.cc
@@ -0,0 +1,126 @@
+:(before "End Initialize Op Names")
+put_new(Name, "cd", "software interrupt (int)");
+
+:(before "End Single-Byte Opcodes")
+case 0xcd: {  // int imm8 (software interrupt)
+  trace(Callstack_depth+1, "run") << "syscall" << end();
+  uint8_t code = next();
+  if (code != 0x80) {
+    raise << "Unimplemented interrupt code " << HEXBYTE << code << '\n' << end();
+    raise << "  Only `int 80h` supported for now.\n" << end();
+    break;
+  }
+  process_int80();
+  break;
+}
+
+:(code)
+void process_int80() {
+  switch (Reg[EAX].u) {
+  case 1:
+    exit(/*exit code*/Reg[EBX].u);
+    break;
+  case 3:
+    trace(Callstack_depth+1, "run") << "read: " << Reg[EBX].u << ' ' << Reg[ECX].u << ' ' << Reg[EDX].u << end();
+    Reg[EAX].i = read(/*file descriptor*/Reg[EBX].u, /*memory buffer*/mem_addr_u8(Reg[ECX].u), /*size*/Reg[EDX].u);
+    trace(Callstack_depth+1, "run") << "result: " << Reg[EAX].i << end();
+    if (Reg[EAX].i == -1) raise << "read: " << strerror(errno) << '\n' << end();
+    break;
+  case 4:
+    trace(Callstack_depth+1, "run") << "write: " << Reg[EBX].u << ' ' << Reg[ECX].u << ' ' << Reg[EDX].u << end();
+    trace(Callstack_depth+1, "run") << Reg[ECX].u << " => " << mem_addr_string(Reg[ECX].u, Reg[EDX].u) << end();
+    Reg[EAX].i = write(/*file descriptor*/Reg[EBX].u, /*memory buffer*/mem_addr_u8(Reg[ECX].u), /*size*/Reg[EDX].u);
+    trace(Callstack_depth+1, "run") << "result: " << Reg[EAX].i << end();
+    if (Reg[EAX].i == -1) raise << "write: " << strerror(errno) << '\n' << end();
+    break;
+  case 5: {
+    check_flags(ECX);
+    check_mode(EDX);
+    trace(Callstack_depth+1, "run") << "open: " << Reg[EBX].u << ' ' << Reg[ECX].u << end();
+    trace(Callstack_depth+1, "run") << Reg[EBX].u << " => " << mem_addr_kernel_string(Reg[EBX].u) << end();
+    Reg[EAX].i = open(/*filename*/mem_addr_kernel_string(Reg[EBX].u), /*flags*/Reg[ECX].u, /*mode*/0640);
+    trace(Callstack_depth+1, "run") << "result: " << Reg[EAX].i << end();
+    if (Reg[EAX].i == -1) raise << "open: " << strerror(errno) << '\n' << end();
+    break;
+  }
+  case 6:
+    trace(Callstack_depth+1, "run") << "close: " << Reg[EBX].u << end();
+    Reg[EAX].i = close(/*file descriptor*/Reg[EBX].u);
+    trace(Callstack_depth+1, "run") << "result: " << Reg[EAX].i << end();
+    if (Reg[EAX].i == -1) raise << "close: " << strerror(errno) << '\n' << end();
+    break;
+  case 8:
+    check_mode(ECX);
+    trace(Callstack_depth+1, "run") << "creat: " << Reg[EBX].u << end();
+    trace(Callstack_depth+1, "run") << Reg[EBX].u << " => " << mem_addr_kernel_string(Reg[EBX].u) << end();
+    Reg[EAX].i = creat(/*filename*/mem_addr_kernel_string(Reg[EBX].u), /*mode*/0640);
+    trace(Callstack_depth+1, "run") << "result: " << Reg[EAX].i << end();
+    if (Reg[EAX].i == -1) raise << "creat: " << strerror(errno) << '\n' << end();
+    break;
+  case 10:
+    trace(Callstack_depth+1, "run") << "unlink: " << Reg[EBX].u << end();
+    trace(Callstack_depth+1, "run") << Reg[EBX].u << " => " << mem_addr_kernel_string(Reg[EBX].u) << end();
+    Reg[EAX].i = unlink(/*filename*/mem_addr_kernel_string(Reg[EBX].u));
+    trace(Callstack_depth+1, "run") << "result: " << Reg[EAX].i << end();
+    if (Reg[EAX].i == -1) raise << "unlink: " << strerror(errno) << '\n' << end();
+    break;
+  case 38:
+    trace(Callstack_depth+1, "run") << "rename: " << Reg[EBX].u << " -> " << Reg[ECX].u << end();
+    trace(Callstack_depth+1, "run") << Reg[EBX].u << " => " << mem_addr_kernel_string(Reg[EBX].u) << end();
+    trace(Callstack_depth+1, "run") << Reg[ECX].u << " => " << mem_addr_kernel_string(Reg[ECX].u) << end();
+    Reg[EAX].i = rename(/*old filename*/mem_addr_kernel_string(Reg[EBX].u), /*new filename*/mem_addr_kernel_string(Reg[ECX].u));
+    trace(Callstack_depth+1, "run") << "result: " << Reg[EAX].i << end();
+    if (Reg[EAX].i == -1) raise << "rename: " << strerror(errno) << '\n' << end();
+    break;
+  case 90:  // mmap: allocate memory outside existing segment allocations
+    trace(Callstack_depth+1, "run") << "mmap: allocate new segment" << end();
+    // Ignore most arguments for now: address hint, protection flags, sharing flags, fd, offset.
+    // We only support anonymous maps.
+    Reg[EAX].u = new_segment(/*length*/read_mem_u32(Reg[EBX].u+0x4));
+    trace(Callstack_depth+1, "run") << "result: " << Reg[EAX].u << end();
+    break;
+  case 0xa2:  // nanosleep
+    cerr << "not sleeping\n";
+    break;
+  default:
+    raise << HEXWORD << EIP << ": unimplemented syscall " << Reg[EAX].u << '\n' << end();
+  }
+}
+
+// SubX is oblivious to file permissions, directories, symbolic links, terminals, and much else besides.
+// Also ignoring any concurrency considerations for now.
+void check_flags(int reg) {
+  uint32_t flags = Reg[reg].u;
+  if (flags != ((flags & O_RDONLY) | (flags & O_WRONLY))) {
+    cerr << HEXWORD << EIP << ": most POSIX flags to the open() syscall are not supported. Just O_RDONLY and O_WRONLY for now. Zero concurrent access support.\n";
+    exit(1);
+  }
+  if ((flags & O_RDONLY) && (flags & O_WRONLY)) {
+    cerr << HEXWORD << EIP << ": can't open a file for both reading and writing at once. See http://man7.org/linux/man-pages/man2/open.2.html.\n";
+    exit(1);
+  }
+}
+
+void check_mode(int reg) {
+  if (Reg[reg].u != 0600) {
+    cerr << HEXWORD << EIP << ": SubX is oblivious to file permissions; register " << reg << " must be 0x180.\n";
+    exit(1);
+  }
+}
+
+:(before "End Globals")
+// Very primitive/fixed/insecure mmap segments for now.
+uint32_t Segments_allocated_above = END_HEAP;
+:(code)
+// always allocate multiples of the segment size
+uint32_t new_segment(uint32_t length) {
+  assert(length > 0);
+  uint32_t result = (Segments_allocated_above - length) & 0xff000000;  // same number of zeroes as SEGMENT_ALIGNMENT
+  if (result <= START_HEAP) {
+    raise << "Allocated too many segments; the VM ran out of memory. "
+          << "Maybe SEGMENT_ALIGNMENT can be smaller?\n" << die();
+  }
+  Mem.push_back(vma(result, result+length));
+  Segments_allocated_above = result;
+  return result;
+}
diff --git a/linux/bootstrap/030translate.cc b/linux/bootstrap/030translate.cc
new file mode 100644
index 00000000..3c4c7f2f
--- /dev/null
+++ b/linux/bootstrap/030translate.cc
@@ -0,0 +1,206 @@
+//: After that lengthy prelude to define an x86 emulator, we are now ready to
+//: start translating SubX notation.
+
+//: Translator workflow: read 'source' file. Run a series of transforms on it,
+//: each passing through what it doesn't understand. The final program should
+//: be just machine code, suitable to emulate, or to write to an ELF binary.
+
+:(before "End Main")
+if (is_equal(argv[1], "translate")) {
+  // Outside of tests, traces must be explicitly requested.
+  if (Trace_file.is_open()) Trace_stream = new trace_stream;
+  reset();
+  // Begin bootstrap translate
+  program p;
+  string output_filename;
+  for (int i = /*skip 'bootstrap translate'*/2;  i < argc;  ++i) {
+    if (is_equal(argv[i], "-o")) {
+      ++i;
+      if (i >= argc) {
+        print_translate_usage();
+        cerr << "'-o' must be followed by a filename to write results to\n";
+        exit(1);
+      }
+      output_filename = argv[i];
+    }
+    else {
+      trace(2, "parse") << argv[i] << end();
+      ifstream fin(argv[i]);
+      if (!fin) {
+        cerr << "could not open " << argv[i] << '\n';
+        return 1;
+      }
+      parse(fin, p);
+      if (trace_contains_errors()) return 1;
+    }
+  }
+  if (p.segments.empty()) {
+    print_translate_usage();
+    cerr << "nothing to do; must provide at least one file to read\n";
+    exit(1);
+  }
+  if (output_filename.empty()) {
+    print_translate_usage();
+    cerr << "must provide a filename to write to using '-o'\n";
+    exit(1);
+  }
+  trace(2, "transform") << "begin" << end();
+  transform(p);
+  if (trace_contains_errors()) return 1;
+  trace(2, "translate") << "begin" << end();
+  save_elf(p, output_filename);
+  if (trace_contains_errors()) {
+    unlink(output_filename.c_str());
+    return 1;
+  }
+  // End bootstrap translate
+  return 0;
+}
+
+:(code)
+void transform(program& p) {
+  // End transform(program& p)
+}
+
+void print_translate_usage() {
+  cerr << "Usage: bootstrap translate file1 file2 ... -o output\n";
+}
+
+// write out a program to a bare-bones ELF file
+void save_elf(const program& p, const string& filename) {
+  ofstream out(filename.c_str(), ios::binary);
+  save_elf(p, out);
+  out.close();
+}
+
+void save_elf(const program& p, ostream& out) {
+  // validation: stay consistent with the self-hosted translator
+  if (p.entry == 0) {
+    raise << "no 'Entry' label found\n" << end();
+    return;
+  }
+  if (find(p, "data") == NULL) {
+    raise << "must include a 'data' segment\n" << end();
+    return;
+  }
+  // processing
+  write_elf_header(out, p);
+  for (size_t i = 0;  i < p.segments.size();  ++i)
+    write_segment(p.segments.at(i), out);
+}
+
+void write_elf_header(ostream& out, const program& p) {
+  char c = '\0';
+#define O(X)  c = (X); out.write(&c, sizeof(c))
+// host is required to be little-endian
+#define emit(X)  out.write(reinterpret_cast<const char*>(&X), sizeof(X))
+  //// ehdr
+  // e_ident
+  O(0x7f); O(/*E*/0x45); O(/*L*/0x4c); O(/*F*/0x46);
+    O(0x1);  // 32-bit format
+    O(0x1);  // little-endian
+    O(0x1); O(0x0);
+  for (size_t i = 0;  i < 8;  ++i) { O(0x0); }
+  // e_type
+  O(0x02); O(0x00);
+  // e_machine
+  O(0x03); O(0x00);
+  // e_version
+  O(0x01); O(0x00); O(0x00); O(0x00);
+  // e_entry
+  uint32_t e_entry = p.entry;
+  // Override e_entry
+  emit(e_entry);
+  // e_phoff -- immediately after ELF header
+  uint32_t e_phoff = 0x34;
+  emit(e_phoff);
+  // e_shoff; unused
+  uint32_t dummy32 = 0;
+  emit(dummy32);
+  // e_flags; unused
+  emit(dummy32);
+  // e_ehsize
+  uint16_t e_ehsize = 0x34;
+  emit(e_ehsize);
+  // e_phentsize
+  uint16_t e_phentsize = 0x20;
+  emit(e_phentsize);
+  // e_phnum
+  uint16_t e_phnum = SIZE(p.segments);
+  emit(e_phnum);
+  // e_shentsize
+  uint16_t dummy16 = 0x0;
+  emit(dummy16);
+  // e_shnum
+  emit(dummy16);
+  // e_shstrndx
+  emit(dummy16);
+
+  uint32_t p_offset = /*size of ehdr*/0x34 + SIZE(p.segments)*0x20/*size of each phdr*/;
+  for (int i = 0;  i < SIZE(p.segments);  ++i) {
+    const segment& curr = p.segments.at(i);
+    //// phdr
+    // p_type
+    uint32_t p_type = 0x1;
+    emit(p_type);
+    // p_offset
+    emit(p_offset);
+    // p_vaddr
+    uint32_t p_start = curr.start;
+    emit(p_start);
+    // p_paddr
+    emit(p_start);
+    // p_filesz
+    uint32_t size = num_words(curr);
+    assert(p_offset + size < SEGMENT_ALIGNMENT);
+    emit(size);
+    // p_memsz
+    emit(size);
+    // p_flags
+    uint32_t p_flags = (curr.name == "code") ? /*r-x*/0x5 : /*rw-*/0x6;
+    emit(p_flags);
+
+    // p_align
+    // "As the system creates or augments a process image, it logically copies
+    // a file's segment to a virtual memory segment.  When—and if— the system
+    // physically reads the file depends on the program's execution behavior,
+    // system load, and so on.  A process does not require a physical page
+    // unless it references the logical page during execution, and processes
+    // commonly leave many pages unreferenced. Therefore delaying physical
+    // reads frequently obviates them, improving system performance. To obtain
+    // this efficiency in practice, executable and shared object files must
+    // have segment images whose file offsets and virtual addresses are
+    // congruent, modulo the page size." -- http://refspecs.linuxbase.org/elf/elf.pdf (page 95)
+    uint32_t p_align = 0x1000;  // default page size on linux
+    emit(p_align);
+    if (p_offset % p_align != p_start % p_align) {
+      raise << "segment starting at 0x" << HEXWORD << p_start << " is improperly aligned; alignment for p_offset " << p_offset << " should be " << (p_offset % p_align) << " but is " << (p_start % p_align) << '\n' << end();
+      return;
+    }
+
+    // prepare for next segment
+    p_offset += size;
+  }
+#undef O
+#undef emit
+}
+
+void write_segment(const segment& s, ostream& out) {
+  for (int i = 0;  i < SIZE(s.lines);  ++i) {
+    const vector<word>& w = s.lines.at(i).words;
+    for (int j = 0;  j < SIZE(w);  ++j) {
+      uint8_t x = hex_byte(w.at(j).data);  // we're done with metadata by this point
+      out.write(reinterpret_cast<const char*>(&x), /*sizeof(byte)*/1);
+    }
+  }
+}
+
+uint32_t num_words(const segment& s) {
+  uint32_t sum = 0;
+  for (int i = 0;  i < SIZE(s.lines);  ++i)
+    sum += SIZE(s.lines.at(i).words);
+  return sum;
+}
+
+:(before "End Includes")
+using std::ios;
diff --git a/linux/bootstrap/031transforms.cc b/linux/bootstrap/031transforms.cc
new file mode 100644
index 00000000..5f13b697
--- /dev/null
+++ b/linux/bootstrap/031transforms.cc
@@ -0,0 +1,12 @@
+:(before "End Types")
+typedef void (*transform_fn)(program&);
+:(before "End Globals")
+vector<transform_fn> Transform;
+
+:(before "End transform(program& p)")
+for (int t = 0;  t < SIZE(Transform);  ++t)
+  (*Transform.at(t))(p);
+
+:(before "End One-time Setup")
+// Begin Transforms
+// End Transforms
diff --git a/linux/bootstrap/032operands.cc b/linux/bootstrap/032operands.cc
new file mode 100644
index 00000000..8c163932
--- /dev/null
+++ b/linux/bootstrap/032operands.cc
@@ -0,0 +1,641 @@
+//: Metadata for fields of an x86 instruction.
+//:
+//: The x86 instruction set is variable-length, and how a byte is interpreted
+//: affects later instruction boundaries. A lot of the pain in programming
+//: machine code stems from computer and programmer going out of sync on what
+//: a byte means. The miscommunication is usually not immediately caught, and
+//: metastasizes at runtime into kilobytes of misinterpreted instructions.
+//:
+//: To mitigate these issues, we'll start programming in terms of logical
+//: arguments rather than physical bytes. Some arguments are smaller than a
+//: byte, and others may consist of multiple bytes. This layer will correctly
+//: pack and order the bytes corresponding to the arguments in an instruction.
+
+:(before "End Help Texts")
+put_new(Help, "instructions",
+  "Each x86 instruction consists of an instruction or opcode and some number\n"
+  "of arguments.\n"
+  "Each argument has a type. An instruction won't have more than one argument of\n"
+  "any type.\n"
+  "Each instruction has some set of allowed argument types. It'll reject others.\n"
+  "The complete list of argument types: mod, subop, r32 (integer register),\n"
+  "rm32 (integer register or memory), x32 (floating point register),\n"
+  "xm32 (floating point register or memory), scale, index, base, disp8, disp16,\n"
+  "disp32,imm8,imm32.\n"
+  "Each of these has its own help page. Try reading 'bootstrap help mod' next.\n"
+);
+:(before "End Help Contents")
+cerr << "  instructions\n";
+
+:(before "Running Test Program")
+transform(p);
+if (trace_contains_errors()) return;
+
+:(code)
+void test_pack_immediate_constants() {
+  run(
+      "== code 0x1\n"
+      "bb  0x2a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'bb 0x2a/imm32'\n"
+      "transform: instruction after packing: 'bb 2a 00 00 00'\n"
+      "run: copy imm32 0x0000002a to EBX\n"
+  );
+}
+
+//: complete set of valid argument types
+
+:(before "End Globals")
+set<string> Instruction_arguments;
+:(before "End One-time Setup")
+Instruction_arguments.insert("subop");
+Instruction_arguments.insert("mod");
+Instruction_arguments.insert("rm32");
+Instruction_arguments.insert("xm32");
+Instruction_arguments.insert("base");
+Instruction_arguments.insert("index");
+Instruction_arguments.insert("scale");
+Instruction_arguments.insert("r32");
+Instruction_arguments.insert("x32");
+Instruction_arguments.insert("disp8");
+Instruction_arguments.insert("disp16");
+Instruction_arguments.insert("disp32");
+Instruction_arguments.insert("imm8");
+Instruction_arguments.insert("imm32");
+
+:(before "End Help Texts")
+init_argument_type_help();
+:(code)
+void init_argument_type_help() {
+  put(Help, "mod",
+    "2-bit argument controlling the _addressing mode_ of many instructions,\n"
+    "to determine how to compute the _effective address_ to look up memory at\n"
+    "based on the 'rm32' argument and potentially others.\n"
+    "\n"
+    "If mod = 3, just operate on the contents of the register specified by rm32\n"
+    "            (direct mode).\n"
+    "If mod = 2, effective address is usually* rm32 + disp32\n"
+    "            (indirect mode with displacement).\n"
+    "If mod = 1, effective address is usually* rm32 + disp8\n"
+    "            (indirect mode with displacement).\n"
+    "If mod = 0, effective address is usually* rm32 (indirect mode).\n"
+    "(* - The exception is when rm32 is '4'. Register 4 is the stack pointer (ESP).\n"
+    "     Using it as an address gets more involved. For more details,\n"
+    "     try reading the help pages for 'base', 'index' and 'scale'.)\n"
+    "\n"
+    "For complete details, spend some time with two tables in the IA-32 software\n"
+    "developer's manual that are also included in this repo:\n"
+    "  - modrm.pdf: volume 2, table 2-2, \"32-bit addressing with the ModR/M byte.\".\n"
+    "  - sib.pdf: volume 2, table 2-3, \"32-bit addressing with the SIB byte.\".\n"
+  );
+  put(Help, "subop",
+    "Additional 3-bit argument for determining the instruction when the opcode\n"
+    "is 81, 8f, d3, f7 or ff.\n"
+    "Can't coexist with argument of type 'r32' in a single instruction, because\n"
+    "the two use the same bits.\n"
+  );
+  put(Help, "r32",
+    "3-bit argument specifying an integer register argument used directly,\n"
+    "without any further addressing modes.\n"
+  );
+  put(Help, "x32",
+    "3-bit argument specifying a floating-point register argument used directly,\n"
+    "without any further addressing modes.\n"
+  );
+  put(Help, "rm32",
+    "32-bit value in an integer register or memory. The precise details of its\n"
+    "construction depend on the eponymous 3-bit 'rm32' argument, the 'mod' argument,\n"
+    "and also potentially the 'SIB' arguments ('scale', 'index' and 'base')\n"
+    "and a displacement ('disp8' or 'disp32').\n"
+    "\n"
+    "For complete details, spend some time with two tables in the IA-32 software\n"
+    "developer's manual that are also included in this repo:\n"
+    "  - modrm.pdf: volume 2, table 2-2, \"32-bit addressing with the ModR/M byte.\".\n"
+    "  - sib.pdf: volume 2, table 2-3, \"32-bit addressing with the SIB byte.\".\n"
+  );
+  put(Help, "xm32",
+    "32-bit value in a floating-point register or memory. The precise details of its\n"
+    "construction depend on the eponymous 3-bit 'xm32' argument, the 'mod' argument,\n"
+    "and also potentially the 'SIB' arguments ('scale', 'index' and 'base')\n"
+    "and a displacement ('disp8' or 'disp32').\n"
+    "\n"
+    "For complete details, spend some time with two tables in the IA-32 software\n"
+    "developer's manual that are also included in this repo:\n"
+    "  - modrm.pdf: volume 2, table 2-2, \"32-bit addressing with the ModR/M byte.\".\n"
+    "  - sib.pdf: volume 2, table 2-3, \"32-bit addressing with the SIB byte.\".\n"
+    "\n"
+    "One subtlety here: while /xm32 refers to floating-point registers in direct mode\n"
+    "(when /mod is 3), other addressing modes to construct memory addresses use integer registers\n"
+    "(just like /rm32). Other than direct mode, its behavior is identical to /rm32.\n"
+  );
+  put(Help, "base",
+    "Additional 3-bit argument (when 'rm32' is 4, unless 'mod' is 3) specifying the\n"
+    "register containing an address to look up.\n"
+    "This address may be further modified by 'index' and 'scale' arguments.\n"
+    "  effective address = base + index*scale + displacement (disp8 or disp32)\n"
+    "For complete details, spend some time with the IA-32 software developer's manual,\n"
+    "volume 2, table 2-3, \"32-bit addressing with the SIB byte\".\n"
+    "It is included in this repository as 'sib.pdf'.\n"
+  );
+  put(Help, "index",
+    "Optional 3-bit argument (when 'rm32' is 4 unless 'mod' is 3) that can be added to\n"
+    "the 'base' argument to compute the 'effective address' at which to look up memory.\n"
+    "  effective address = base + index*scale + displacement (disp8 or disp32)\n"
+    "For complete details, spend some time with the IA-32 software developer's manual,\n"
+    "volume 2, table 2-3, \"32-bit addressing with the SIB byte\".\n"
+    "It is included in this repository as 'sib.pdf'.\n"
+  );
+  put(Help, "scale",
+    "Optional 2-bit argument (when 'rm32' is 4 unless 'mod' is 3) that encodes a\n"
+    "power of 2 to be multiplied to the 'index' argument before adding the result to\n"
+    "the 'base' argument to compute the _effective address_ to operate on.\n"
+    "  effective address = base + index * scale + displacement (disp8 or disp32)\n"
+    "\n"
+    "When scale is 0, use index unmodified.\n"
+    "When scale is 1, multiply index by 2.\n"
+    "When scale is 2, multiply index by 4.\n"
+    "When scale is 3, multiply index by 8.\n"
+    "\n"
+    "For complete details, spend some time with the IA-32 software developer's manual,\n"
+    "volume 2, table 2-3, \"32-bit addressing with the SIB byte\".\n"
+    "It is included in this repository as 'sib.pdf'.\n"
+  );
+  put(Help, "disp8",
+    "8-bit value to be added in many instructions.\n"
+  );
+  put(Help, "disp16",
+    "16-bit value to be added in many instructions.\n"
+    "Currently not used in any SubX instructions.\n"
+  );
+  put(Help, "disp32",
+    "32-bit value to be added in many instructions.\n"
+  );
+  put(Help, "imm8",
+    "8-bit value for many instructions.\n"
+  );
+  put(Help, "imm32",
+    "32-bit value for many instructions.\n"
+  );
+}
+
+//:: transform packing arguments into bytes in the right order
+
+:(after "Begin Transforms")
+Transform.push_back(pack_arguments);
+
+:(code)
+void pack_arguments(program& p) {
+  if (p.segments.empty()) return;
+  segment& code = *find(p, "code");
+  // Pack Operands(segment code)
+  trace(3, "transform") << "-- pack arguments" << end();
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    line& inst = code.lines.at(i);
+    if (all_hex_bytes(inst)) continue;
+    trace(99, "transform") << "packing instruction '" << to_string(/*with metadata*/inst) << "'" << end();
+    pack_arguments(inst);
+    trace(99, "transform") << "instruction after packing: '" << to_string(/*without metadata*/inst.words) << "'" << end();
+  }
+}
+
+void pack_arguments(line& inst) {
+  line new_inst;
+  add_opcodes(inst, new_inst);
+  add_modrm_byte(inst, new_inst);
+  add_sib_byte(inst, new_inst);
+  add_disp_bytes(inst, new_inst);
+  add_imm_bytes(inst, new_inst);
+  inst.words.swap(new_inst.words);
+}
+
+void add_opcodes(const line& in, line& out) {
+  out.words.push_back(in.words.at(0));
+  if (in.words.at(0).data == "0f" || in.words.at(0).data == "f2" || in.words.at(0).data == "f3")
+    out.words.push_back(in.words.at(1));
+  if (in.words.at(0).data == "f3" && in.words.at(1).data == "0f")
+    out.words.push_back(in.words.at(2));
+  if (in.words.at(0).data == "f2" && in.words.at(1).data == "0f")
+    out.words.push_back(in.words.at(2));
+}
+
+void add_modrm_byte(const line& in, line& out) {
+  uint8_t mod=0, reg_subop=0, rm32=0;
+  bool emit = false;
+  for (int i = 0;  i < SIZE(in.words);  ++i) {
+    const word& curr = in.words.at(i);
+    if (has_argument_metadata(curr, "mod")) {
+      mod = hex_byte(curr.data);
+      emit = true;
+    }
+    else if (has_argument_metadata(curr, "rm32")) {
+      rm32 = hex_byte(curr.data);
+      emit = true;
+    }
+    else if (has_argument_metadata(curr, "r32")) {
+      reg_subop = hex_byte(curr.data);
+      emit = true;
+    }
+    else if (has_argument_metadata(curr, "xm32")) {
+      rm32 = hex_byte(curr.data);
+      emit = true;
+    }
+    else if (has_argument_metadata(curr, "x32")) {
+      reg_subop = hex_byte(curr.data);
+      emit = true;
+    }
+    else if (has_argument_metadata(curr, "subop")) {
+      reg_subop = hex_byte(curr.data);
+      emit = true;
+    }
+  }
+  if (emit)
+    out.words.push_back(hex_byte_text((mod << 6) | (reg_subop << 3) | rm32));
+}
+
+void add_sib_byte(const line& in, line& out) {
+  uint8_t scale=0, index=0, base=0;
+  bool emit = false;
+  for (int i = 0;  i < SIZE(in.words);  ++i) {
+    const word& curr = in.words.at(i);
+    if (has_argument_metadata(curr, "scale")) {
+      scale = hex_byte(curr.data);
+      emit = true;
+    }
+    else if (has_argument_metadata(curr, "index")) {
+      index = hex_byte(curr.data);
+      emit = true;
+    }
+    else if (has_argument_metadata(curr, "base")) {
+      base = hex_byte(curr.data);
+      emit = true;
+    }
+  }
+  if (emit)
+    out.words.push_back(hex_byte_text((scale << 6) | (index << 3) | base));
+}
+
+void add_disp_bytes(const line& in, line& out) {
+  for (int i = 0;  i < SIZE(in.words);  ++i) {
+    const word& curr = in.words.at(i);
+    if (has_argument_metadata(curr, "disp8"))
+      emit_hex_bytes(out, curr, 1);
+    if (has_argument_metadata(curr, "disp16"))
+      emit_hex_bytes(out, curr, 2);
+    else if (has_argument_metadata(curr, "disp32"))
+      emit_hex_bytes(out, curr, 4);
+  }
+}
+
+void add_imm_bytes(const line& in, line& out) {
+  for (int i = 0;  i < SIZE(in.words);  ++i) {
+    const word& curr = in.words.at(i);
+    if (has_argument_metadata(curr, "imm8"))
+      emit_hex_bytes(out, curr, 1);
+    else if (has_argument_metadata(curr, "imm32"))
+      emit_hex_bytes(out, curr, 4);
+  }
+}
+
+void emit_hex_bytes(line& out, const word& w, int num) {
+  assert(num <= 4);
+  bool is_number = looks_like_hex_int(w.data);
+  if (num == 1 || !is_number) {
+    out.words.push_back(w);  // preserve existing metadata
+    if (is_number)
+      out.words.back().data = hex_byte_to_string(parse_int(w.data));
+    return;
+  }
+  emit_hex_bytes(out, static_cast<uint32_t>(parse_int(w.data)), num);
+}
+
+void emit_hex_bytes(line& out, uint32_t val, int num) {
+  assert(num <= 4);
+  for (int i = 0;  i < num;  ++i) {
+    out.words.push_back(hex_byte_text(val & 0xff));
+    val = val >> 8;
+  }
+}
+
+word hex_byte_text(uint8_t val) {
+  word result;
+  result.data = hex_byte_to_string(val);
+  result.original = result.data+"/auto";
+  return result;
+}
+
+string hex_byte_to_string(uint8_t val) {
+  ostringstream out;
+  // uint8_t prints without padding, but int8_t will expand to 32 bits again
+  out << HEXBYTE << NUM(val);
+  return out.str();
+}
+
+string to_string(const vector<word>& in) {
+  ostringstream out;
+  for (int i = 0;  i < SIZE(in);  ++i) {
+    if (i > 0) out << ' ';
+    out << in.at(i).data;
+  }
+  return out.str();
+}
+
+:(before "End Unit Tests")
+void test_preserve_metadata_when_emitting_single_byte() {
+  word in;
+  in.data = "f0";
+  in.original = "f0/foo";
+  line out;
+  emit_hex_bytes(out, in, 1);
+  CHECK_EQ(out.words.at(0).data, "f0");
+  CHECK_EQ(out.words.at(0).original, "f0/foo");
+}
+
+:(code)
+void test_pack_disp8() {
+  run(
+      "== code 0x1\n"
+      "74 2/disp8\n"  // jump 2 bytes away if ZF is set
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction '74 2/disp8'\n"
+      "transform: instruction after packing: '74 02'\n"
+  );
+}
+
+void test_pack_disp8_negative() {
+  transform(
+      "== code 0x1\n"
+      // running this will cause an infinite loop
+      "74 -1/disp8\n"  // jump 1 byte before if ZF is set
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction '74 -1/disp8'\n"
+      "transform: instruction after packing: '74 ff'\n"
+  );
+}
+
+void test_pack_rm32_direct() {
+  run(
+      "== code 0x1\n"
+      // instruction                     effective address                                                   operand     displacement    immediate\n"
+      // op          subop               mod             rm32          base        index         scale       r32\n"
+      // 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes\n"
+      "  01                              3/mod/direct    3/rm32/ebx                                          0/r32/eax                                \n"  // add EAX to EBX
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction '01 3/mod/direct 3/rm32/ebx 0/r32/eax'\n"
+      "transform: instruction after packing: '01 c3'\n"
+  );
+}
+
+void test_pack_rm32_indirect() {
+  transform(
+      "== code 0x1\n"
+      // instruction                     effective address                                                   operand     displacement    immediate\n"
+      // op          subop               mod             rm32          base        index         scale       r32\n"
+      // 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes\n"
+      "  01                              0/mod/indirect  3/rm32/ebx                                          0/r32/eax                                \n"  // add EAX to *EBX
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction '01 0/mod/indirect 3/rm32/ebx 0/r32/eax'\n"
+      "transform: instruction after packing: '01 03'\n"
+  );
+}
+
+void test_pack_x32() {
+  run(
+      "== code 0x1\n"
+      // instruction                     effective address                                                   operand     displacement    immediate\n"
+      // op          subop               mod             rm32          base        index         scale       r32\n"
+      // 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes\n"
+      "  f3 0f 2a                        3/mod/direct    3/rm32/ebx                                          1/x32                                    \n"  // convert EBX to XMM1
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'f3 0f 2a 3/mod/direct 3/rm32/ebx 1/x32'\n"
+      "transform: instruction after packing: 'f3 0f 2a cb'\n"
+  );
+}
+
+void test_pack_xm32_direct() {
+  transform(
+      "== code 0x1\n"
+      // instruction                     effective address                                                   operand     displacement    immediate\n"
+      // op          subop               mod             rm32          base        index         scale       r32\n"
+      // 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes\n"
+      "  f3 0f 5e                        3/mod/direct    3/xm32                                              1/x32                                    \n"  // divide XMM1 by XMM3
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'f3 0f 5e 3/mod/direct 3/xm32 1/x32'\n"
+      "transform: instruction after packing: 'f3 0f 5e cb'\n"
+  );
+}
+
+void test_pack_xm32_indirect() {
+  transform(
+      "== code 0x1\n"
+      // instruction                     effective address                                                   operand     displacement    immediate\n"
+      // op          subop               mod             rm32          base        index         scale       r32\n"
+      // 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes\n"
+      "  f3 0f 5e                        0/mod/indirect  3/rm32/ebx                                          1/x32                                    \n"  // divide XMM1 by *EBX
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'f3 0f 5e 0/mod/indirect 3/rm32/ebx 1/x32'\n"
+      "transform: instruction after packing: 'f3 0f 5e 0b'\n"
+  );
+}
+
+//: helper for scenario
+void transform(const string& text_bytes) {
+  program p;
+  istringstream in(text_bytes);
+  parse(in, p);
+  if (trace_contains_errors()) return;
+  transform(p);
+}
+
+void test_pack_modrm_imm32() {
+  run(
+      "== code 0x1\n"
+      // instruction                     effective address                                                   operand     displacement    immediate\n"
+      // op          subop               mod             rm32          base        index         scale       r32\n"
+      // 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes\n"
+      "  81          0/add/subop         3/mod/direct    3/rm32/ebx                                                                      1/imm32      \n"  // add 1 to EBX
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction '81 0/add/subop 3/mod/direct 3/rm32/ebx 1/imm32'\n"
+      "transform: instruction after packing: '81 c3 01 00 00 00'\n"
+  );
+}
+
+void test_pack_imm32_large() {
+  run(
+      "== code 0x1\n"
+      "b9  0x080490a7/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'b9 0x080490a7/imm32'\n"
+      "transform: instruction after packing: 'b9 a7 90 04 08'\n"
+  );
+}
+
+void test_pack_immediate_constants_hex() {
+  run(
+      "== code 0x1\n"
+      "b9  0x2a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'b9 0x2a/imm32'\n"
+      "transform: instruction after packing: 'b9 2a 00 00 00'\n"
+      "run: copy imm32 0x0000002a to ECX\n"
+  );
+}
+
+void test_pack_silently_ignores_non_hex() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "b9  foo/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'b9 foo/imm32'\n"
+      // no change (we're just not printing metadata to the trace)
+      "transform: instruction after packing: 'b9 foo'\n"
+  );
+}
+
+void test_pack_flags_bad_hex() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "b9  0xfoo/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: not a number: 0xfoo\n"
+  );
+}
+
+void test_pack_flags_uppercase_hex() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "b9 0xAb/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: uppercase hex not allowed: 0xAb\n"
+  );
+}
+
+//:: helpers
+
+bool all_hex_bytes(const line& inst) {
+  for (int i = 0;  i < SIZE(inst.words);  ++i)
+    if (!is_hex_byte(inst.words.at(i)))
+      return false;
+  return true;
+}
+
+bool is_hex_byte(const word& curr) {
+  if (contains_any_argument_metadata(curr))
+    return false;
+  if (SIZE(curr.data) != 2)
+    return false;
+  if (curr.data.find_first_not_of("0123456789abcdef") != string::npos)
+    return false;
+  return true;
+}
+
+bool contains_any_argument_metadata(const word& word) {
+  for (int i = 0;  i < SIZE(word.metadata);  ++i)
+    if (Instruction_arguments.find(word.metadata.at(i)) != Instruction_arguments.end())
+      return true;
+  return false;
+}
+
+bool has_argument_metadata(const line& inst, const string& m) {
+  bool result = false;
+  for (int i = 0;  i < SIZE(inst.words);  ++i) {
+    if (!has_argument_metadata(inst.words.at(i), m)) continue;
+    if (result) {
+      raise << "'" << to_string(inst) << "' has conflicting " << m << " arguments\n" << end();
+      return false;
+    }
+    result = true;
+  }
+  return result;
+}
+
+bool has_argument_metadata(const word& w, const string& m) {
+  bool result = false;
+  bool metadata_found = false;
+  for (int i = 0;  i < SIZE(w.metadata);  ++i) {
+    const string& curr = w.metadata.at(i);
+    if (Instruction_arguments.find(curr) == Instruction_arguments.end()) continue;  // ignore unrecognized metadata
+    if (metadata_found) {
+      raise << "'" << w.original << "' has conflicting argument types; it should have only one\n" << end();
+      return false;
+    }
+    metadata_found = true;
+    result = (curr == m);
+  }
+  return result;
+}
+
+word metadata(const line& inst, const string& m) {
+  for (int i = 0;  i < SIZE(inst.words);  ++i)
+    if (has_argument_metadata(inst.words.at(i), m))
+      return inst.words.at(i);
+  assert(false);
+}
+
+bool looks_like_hex_int(const string& s) {
+  if (s.empty()) return false;
+  if (s.at(0) == '-' || s.at(0) == '+') return true;
+  if (isdigit(s.at(0))) return true;  // includes '0x' prefix
+  // End looks_like_hex_int(s) Detectors
+  return false;
+}
+
+string to_string(const line& inst) {
+  ostringstream out;
+  for (int i = 0;  i < SIZE(inst.words);  ++i) {
+    if (i > 0) out << ' ';
+    out << inst.words.at(i).original;
+  }
+  return out.str();
+}
+
+int32_t parse_int(const string& s) {
+  if (s.empty()) return 0;
+  if (contains_uppercase(s)) {
+    raise << "uppercase hex not allowed: " << s << '\n' << end();
+    return 0;
+  }
+  istringstream in(s);
+  in >> std::hex;
+  if (s.at(0) == '-') {
+    int32_t result = 0;
+    in >> result;
+    if (!in || !in.eof()) {
+      raise << "not a number: " << s << '\n' << end();
+      return 0;
+    }
+    return result;
+  }
+  uint32_t uresult = 0;
+  in >> uresult;
+  if (!in || !in.eof()) {
+    raise << "not a number: " << s << '\n' << end();
+    return 0;
+  }
+  return static_cast<int32_t>(uresult);
+}
+:(before "End Unit Tests")
+void test_parse_int() {
+  CHECK_EQ(0, parse_int("0"));
+  CHECK_EQ(0, parse_int("0x0"));
+  CHECK_EQ(0, parse_int("0x0"));
+  CHECK_EQ(16, parse_int("10"));  // hex always
+  CHECK_EQ(-1, parse_int("-1"));
+  CHECK_EQ(-1, parse_int("0xffffffff"));
+}
diff --git a/linux/bootstrap/033check_operands.cc b/linux/bootstrap/033check_operands.cc
new file mode 100644
index 00000000..c764fc61
--- /dev/null
+++ b/linux/bootstrap/033check_operands.cc
@@ -0,0 +1,786 @@
+//: Since we're tagging arguments with their types, let's start checking these
+//: argument types for each instruction.
+
+void test_check_missing_imm8_argument() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "cd\n"  // interrupt ??
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: 'cd' (software interrupt): missing imm8 argument\n"
+  );
+}
+
+:(before "Pack Operands(segment code)")
+check_arguments(code);
+if (trace_contains_errors()) return;
+
+:(code)
+void check_arguments(const segment& code) {
+  trace(3, "transform") << "-- check arguments" << end();
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    check_arguments(code.lines.at(i));
+    if (trace_contains_errors()) return;  // stop at the first mal-formed instruction
+  }
+}
+
+void check_arguments(const line& inst) {
+  word op = preprocess_op(inst.words.at(0));
+  if (op.data == "0f") {
+    check_arguments_0f(inst);
+    return;
+  }
+  if (op.data == "f3") {
+    check_arguments_f3(inst);
+    return;
+  }
+  check_arguments(inst, op);
+}
+
+word preprocess_op(word/*copy*/ op) {
+  op.data = tolower(op.data.c_str());
+  // opcodes can't be negative
+  if (starts_with(op.data, "0x"))
+    op.data = op.data.substr(2);
+  if (SIZE(op.data) == 1)
+    op.data = string("0")+op.data;
+  return op;
+}
+
+void test_preprocess_op() {
+  word w1;  w1.data = "0xf";
+  word w2;  w2.data = "0f";
+  CHECK_EQ(preprocess_op(w1).data, preprocess_op(w2).data);
+}
+
+//: To check the arguments for an opcode, we'll track the permitted arguments
+//: for each supported opcode in a bitvector. That way we can often compute the
+//: 'received' argument bitvector for each instruction's arguments and compare
+//: it with the 'expected' bitvector.
+//:
+//: The 'expected' and 'received' bitvectors can be different; the MODRM bit
+//: in the 'expected' bitvector maps to multiple 'received' argument types in
+//: an instruction. We deal in expected bitvectors throughout.
+
+:(before "End Types")
+enum expected_argument_type {
+  // start from the least significant bit
+  MODRM,  // more complex, may also involve disp8 or disp32
+  SUBOP,
+  DISP8,
+  DISP16,
+  DISP32,
+  IMM8,
+  IMM32,
+  NUM_OPERAND_TYPES
+};
+:(before "End Globals")
+vector<string> Operand_type_name;
+map<string, expected_argument_type> Operand_type;
+:(before "End One-time Setup")
+init_op_types();
+:(code)
+void init_op_types() {
+  assert(NUM_OPERAND_TYPES <= /*bits in a uint8_t*/8);
+  Operand_type_name.resize(NUM_OPERAND_TYPES);
+  #define DEF(type) Operand_type_name.at(type) = tolower(#type), put(Operand_type, tolower(#type), type);
+  DEF(MODRM);
+  DEF(SUBOP);
+  DEF(DISP8);
+  DEF(DISP16);
+  DEF(DISP32);
+  DEF(IMM8);
+  DEF(IMM32);
+  #undef DEF
+}
+
+:(before "End Globals")
+map</*op*/string, /*bitvector*/uint8_t> Permitted_arguments;
+const uint8_t INVALID_OPERANDS = 0xff;  // no instruction uses all the argument types
+:(before "End One-time Setup")
+init_permitted_arguments();
+:(code)
+void init_permitted_arguments() {
+  //// Class A: just op, no arguments
+  // halt
+  put(Permitted_arguments, "f4", 0x00);
+  // inc
+  put(Permitted_arguments, "40", 0x00);
+  put(Permitted_arguments, "41", 0x00);
+  put(Permitted_arguments, "42", 0x00);
+  put(Permitted_arguments, "43", 0x00);
+  put(Permitted_arguments, "44", 0x00);
+  put(Permitted_arguments, "45", 0x00);
+  put(Permitted_arguments, "46", 0x00);
+  put(Permitted_arguments, "47", 0x00);
+  // dec
+  put(Permitted_arguments, "48", 0x00);
+  put(Permitted_arguments, "49", 0x00);
+  put(Permitted_arguments, "4a", 0x00);
+  put(Permitted_arguments, "4b", 0x00);
+  put(Permitted_arguments, "4c", 0x00);
+  put(Permitted_arguments, "4d", 0x00);
+  put(Permitted_arguments, "4e", 0x00);
+  put(Permitted_arguments, "4f", 0x00);
+  // push
+  put(Permitted_arguments, "50", 0x00);
+  put(Permitted_arguments, "51", 0x00);
+  put(Permitted_arguments, "52", 0x00);
+  put(Permitted_arguments, "53", 0x00);
+  put(Permitted_arguments, "54", 0x00);
+  put(Permitted_arguments, "55", 0x00);
+  put(Permitted_arguments, "56", 0x00);
+  put(Permitted_arguments, "57", 0x00);
+  // pop
+  put(Permitted_arguments, "58", 0x00);
+  put(Permitted_arguments, "59", 0x00);
+  put(Permitted_arguments, "5a", 0x00);
+  put(Permitted_arguments, "5b", 0x00);
+  put(Permitted_arguments, "5c", 0x00);
+  put(Permitted_arguments, "5d", 0x00);
+  put(Permitted_arguments, "5e", 0x00);
+  put(Permitted_arguments, "5f", 0x00);
+  // sign-extend EAX into EDX
+  put(Permitted_arguments, "99", 0x00);
+  // return
+  put(Permitted_arguments, "c3", 0x00);
+
+  //// Class B: just op and disp8
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  0     0     0      |0       1     0     0
+
+  // jump
+  put(Permitted_arguments, "eb", 0x04);
+  put(Permitted_arguments, "72", 0x04);
+  put(Permitted_arguments, "73", 0x04);
+  put(Permitted_arguments, "74", 0x04);
+  put(Permitted_arguments, "75", 0x04);
+  put(Permitted_arguments, "76", 0x04);
+  put(Permitted_arguments, "77", 0x04);
+  put(Permitted_arguments, "7c", 0x04);
+  put(Permitted_arguments, "7d", 0x04);
+  put(Permitted_arguments, "7e", 0x04);
+  put(Permitted_arguments, "7f", 0x04);
+
+  //// Class D: just op and disp32
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  0     0     1      |0       0     0     0
+  put(Permitted_arguments, "e8", 0x10);  // call
+  put(Permitted_arguments, "e9", 0x10);  // jump
+
+  //// Class E: just op and imm8
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  0     1     0      |0       0     0     0
+  put(Permitted_arguments, "cd", 0x20);  // software interrupt
+
+  //// Class F: just op and imm32
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  1     0     0      |0       0     0     0
+  put(Permitted_arguments, "05", 0x40);  // add
+  put(Permitted_arguments, "2d", 0x40);  // subtract
+  put(Permitted_arguments, "25", 0x40);  // and
+  put(Permitted_arguments, "0d", 0x40);  // or
+  put(Permitted_arguments, "35", 0x40);  // xor
+  put(Permitted_arguments, "3d", 0x40);  // compare
+  put(Permitted_arguments, "68", 0x40);  // push
+  // copy
+  put(Permitted_arguments, "b8", 0x40);
+  put(Permitted_arguments, "b9", 0x40);
+  put(Permitted_arguments, "ba", 0x40);
+  put(Permitted_arguments, "bb", 0x40);
+  put(Permitted_arguments, "bc", 0x40);
+  put(Permitted_arguments, "bd", 0x40);
+  put(Permitted_arguments, "be", 0x40);
+  put(Permitted_arguments, "bf", 0x40);
+
+  //// Class M: using ModR/M byte
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  0     0     0      |0       0     0     1
+
+  // add
+  put(Permitted_arguments, "01", 0x01);
+  put(Permitted_arguments, "03", 0x01);
+  // subtract
+  put(Permitted_arguments, "29", 0x01);
+  put(Permitted_arguments, "2b", 0x01);
+  // and
+  put(Permitted_arguments, "21", 0x01);
+  put(Permitted_arguments, "23", 0x01);
+  // or
+  put(Permitted_arguments, "09", 0x01);
+  put(Permitted_arguments, "0b", 0x01);
+  // xor
+  put(Permitted_arguments, "31", 0x01);
+  put(Permitted_arguments, "33", 0x01);
+  // compare
+  put(Permitted_arguments, "39", 0x01);
+  put(Permitted_arguments, "3b", 0x01);
+  // copy
+  put(Permitted_arguments, "88", 0x01);
+  put(Permitted_arguments, "89", 0x01);
+  put(Permitted_arguments, "8a", 0x01);
+  put(Permitted_arguments, "8b", 0x01);
+  // swap
+  put(Permitted_arguments, "87", 0x01);
+  // copy address (lea)
+  put(Permitted_arguments, "8d", 0x01);
+
+  //// Class N: op, ModR/M and subop (not r32)
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  0     0     0      |0       0     1     1
+  put(Permitted_arguments, "8f", 0x03);  // pop
+  put(Permitted_arguments, "d3", 0x03);  // shift
+  put(Permitted_arguments, "f7", 0x03);  // test/not/mul/div
+  put(Permitted_arguments, "ff", 0x03);  // jump/push/call
+
+  //// Class O: op, ModR/M, subop (not r32) and imm8
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  0     1     0      |0       0     1     1
+  put(Permitted_arguments, "c1", 0x23);  // combine
+  put(Permitted_arguments, "c6", 0x23);  // copy
+
+  //// Class P: op, ModR/M, subop (not r32) and imm32
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  1     0     0      |0       0     1     1
+  put(Permitted_arguments, "81", 0x43);  // combine
+  put(Permitted_arguments, "c7", 0x43);  // copy
+
+  //// Class Q: op, ModR/M and imm32
+  //  imm32 imm8  disp32 |disp16  disp8 subop modrm
+  //  1     0     0      |0       0     0     1
+  put(Permitted_arguments, "69", 0x41);  // multiply
+
+  // End Init Permitted Operands
+}
+
+#define HAS(bitvector, bit)  ((bitvector) & (1 << (bit)))
+#define SET(bitvector, bit)  ((bitvector) | (1 << (bit)))
+#define CLEAR(bitvector, bit)  ((bitvector) & (~(1 << (bit))))
+
+void check_arguments(const line& inst, const word& op) {
+  if (!is_hex_byte(op)) return;
+  uint8_t expected_bitvector = get(Permitted_arguments, op.data);
+  if (HAS(expected_bitvector, MODRM)) {
+    check_arguments_modrm(inst, op);
+    compare_bitvector_modrm(inst, expected_bitvector, maybe_name(op));
+  }
+  else {
+    compare_bitvector(inst, expected_bitvector, maybe_name(op));
+  }
+}
+
+//: Many instructions can be checked just by comparing bitvectors.
+
+void compare_bitvector(const line& inst, uint8_t expected, const string& maybe_op_name) {
+  if (all_hex_bytes(inst) && has_arguments(inst)) return;  // deliberately programming in raw hex; we'll raise a warning elsewhere
+  uint8_t bitvector = compute_expected_argument_bitvector(inst);
+  if (trace_contains_errors()) return;  // duplicate argument type
+  if (bitvector == expected) return;  // all good with this instruction
+  for (int i = 0;  i < NUM_OPERAND_TYPES;  ++i, bitvector >>= 1, expected >>= 1) {
+//?     cerr << "comparing " << HEXBYTE << NUM(bitvector) << " with " << NUM(expected) << '\n';
+    if ((bitvector & 0x1) == (expected & 0x1)) continue;  // all good with this argument
+    const string& optype = Operand_type_name.at(i);
+    if ((bitvector & 0x1) > (expected & 0x1))
+      raise << "'" << to_string(inst) << "'" << maybe_op_name << ": unexpected " << optype << " argument\n" << end();
+    else
+      raise << "'" << to_string(inst) << "'" << maybe_op_name << ": missing " << optype << " argument\n" << end();
+    // continue giving all errors for a single instruction
+  }
+  // ignore settings in any unused bits
+}
+
+string maybe_name(const word& op) {
+  if (!is_hex_byte(op)) return "";
+  if (!contains_key(Name, op.data)) return "";
+  // strip stuff in parens from the name
+  const string& s = get(Name, op.data);
+  return " ("+s.substr(0, s.find(" ("))+')';
+}
+
+uint32_t compute_expected_argument_bitvector(const line& inst) {
+  set<string> arguments_found;
+  uint32_t bitvector = 0;
+  for (int i = /*skip op*/1;  i < SIZE(inst.words);  ++i) {
+    bitvector = bitvector | expected_bit_for_received_argument(inst.words.at(i), arguments_found, inst);
+    if (trace_contains_errors()) return INVALID_OPERANDS;  // duplicate argument type
+  }
+  return bitvector;
+}
+
+bool has_arguments(const line& inst) {
+  return SIZE(inst.words) > first_argument(inst);
+}
+
+int first_argument(const line& inst) {
+  if (inst.words.at(0).data == "0f") return 2;
+  if (inst.words.at(0).data == "f2" || inst.words.at(0).data == "f3") {
+    if (inst.words.at(1).data == "0f")
+      return 3;
+    else
+      return 2;
+  }
+  return 1;
+}
+
+// Scan the metadata of 'w' and return the expected bit corresponding to any argument type.
+// Also raise an error if metadata contains multiple argument types.
+uint32_t expected_bit_for_received_argument(const word& w, set<string>& instruction_arguments, const line& inst) {
+  uint32_t bv = 0;
+  bool found = false;
+  for (int i = 0;  i < SIZE(w.metadata);  ++i) {
+    string/*copy*/ curr = w.metadata.at(i);
+    string expected_metadata = curr;
+    if (curr == "mod" || curr == "rm32" || curr == "r32" || curr == "xm32" || curr == "x32" || curr == "scale" || curr == "index" || curr == "base")
+      expected_metadata = "modrm";
+    else if (!contains_key(Operand_type, curr)) continue;  // ignore unrecognized metadata
+    if (found) {
+      raise << "'" << w.original << "' has conflicting argument types; it should have only one\n" << end();
+      return INVALID_OPERANDS;
+    }
+    if (instruction_arguments.find(curr) != instruction_arguments.end()) {
+      raise << "'" << to_string(inst) << "': duplicate " << curr << " argument\n" << end();
+      return INVALID_OPERANDS;
+    }
+    instruction_arguments.insert(curr);
+    bv = (1 << get(Operand_type, expected_metadata));
+    found = true;
+  }
+  return bv;
+}
+
+void test_conflicting_argument_type() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "cd/software-interrupt 80/imm8/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '80/imm8/imm32' has conflicting argument types; it should have only one\n"
+  );
+}
+
+//: Instructions computing effective addresses have more complex rules, so
+//: we'll hard-code a common set of instruction-decoding rules.
+
+void test_check_missing_mod_argument() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "81 0/add/subop       3/rm32/ebx 1/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '81 0/add/subop 3/rm32/ebx 1/imm32' (combine rm32 with imm32 based on subop): missing mod argument\n"
+  );
+}
+
+void check_arguments_modrm(const line& inst, const word& op) {
+  if (all_hex_bytes(inst)) return;  // deliberately programming in raw hex; we'll raise a warning elsewhere
+  check_argument_metadata_present(inst, "mod", op);
+  if (!has_argument_metadata(inst, "rm32") && !has_argument_metadata(inst, "xm32"))
+    raise << "'" << to_string(inst) << "'" << maybe_name(op) << ": missing rm32 (or xm32) argument\n" << end();
+  // no check for r32; some instructions don't use it; just assume it's 0 if missing
+  if (op.data == "81" || op.data == "8f" || op.data == "f7" || op.data == "ff") {  // keep sync'd with 'help subop'
+    check_argument_metadata_present(inst, "subop", op);
+    check_argument_metadata_absent(inst, "r32", op, "should be replaced by subop");
+    check_argument_metadata_absent(inst, "x32", op, "should be replaced by subop");
+  }
+  if (trace_contains_errors()) return;
+  if (metadata_m32(inst).data != "4") return;
+  // SIB byte checks
+  uint8_t mod = hex_byte(metadata(inst, "mod").data);
+  if (mod != /*direct*/3) {
+    check_argument_metadata_present(inst, "base", op);
+    check_argument_metadata_present(inst, "index", op);  // otherwise why go to SIB?
+  }
+  else {
+    check_argument_metadata_absent(inst, "base", op, "direct mode");
+    check_argument_metadata_absent(inst, "index", op, "direct mode");
+  }
+  // no check for scale; 0 (2**0 = 1) by default
+}
+
+word metadata_m32(const line& inst) {
+  for (int i = 0;  i < SIZE(inst.words);  ++i)
+    if (has_argument_metadata(inst.words.at(i), "rm32") || has_argument_metadata(inst.words.at(i), "xm32"))
+      return inst.words.at(i);
+  assert(false);
+}
+
+// same as compare_bitvector, with one additional exception for modrm-based
+// instructions: they may use an extra displacement on occasion
+void compare_bitvector_modrm(const line& inst, uint8_t expected, const string& maybe_op_name) {
+  if (all_hex_bytes(inst) && has_arguments(inst)) return;  // deliberately programming in raw hex; we'll raise a warning elsewhere
+  uint8_t bitvector = compute_expected_argument_bitvector(inst);
+  if (trace_contains_errors()) return;  // duplicate argument type
+  // update 'expected' bitvector for the additional exception
+  if (has_argument_metadata(inst, "mod")) {
+    int32_t mod = parse_int(metadata(inst, "mod").data);
+    switch (mod) {
+    case 0:
+      if (has_argument_metadata(inst, "rm32") && parse_int(metadata(inst, "rm32").data) == 5)
+        expected |= (1<<DISP32);
+      break;
+    case 1:
+      expected |= (1<<DISP8);
+      break;
+    case 2:
+      expected |= (1<<DISP32);
+      break;
+    }
+  }
+  if (bitvector == expected) return;  // all good with this instruction
+  for (int i = 0;  i < NUM_OPERAND_TYPES;  ++i, bitvector >>= 1, expected >>= 1) {
+//?     cerr << "comparing for modrm " << HEXBYTE << NUM(bitvector) << " with " << NUM(expected) << '\n';
+    if ((bitvector & 0x1) == (expected & 0x1)) continue;  // all good with this argument
+    const string& optype = Operand_type_name.at(i);
+    if ((bitvector & 0x1) > (expected & 0x1))
+      raise << "'" << to_string(inst) << "'" << maybe_op_name << ": unexpected " << optype << " argument\n" << end();
+    else
+      raise << "'" << to_string(inst) << "'" << maybe_op_name << ": missing " << optype << " argument\n" << end();
+    // continue giving all errors for a single instruction
+  }
+  // ignore settings in any unused bits
+}
+
+void check_argument_metadata_present(const line& inst, const string& type, const word& op) {
+  if (!has_argument_metadata(inst, type))
+    raise << "'" << to_string(inst) << "'" << maybe_name(op) << ": missing " << type << " argument\n" << end();
+}
+
+void check_argument_metadata_absent(const line& inst, const string& type, const word& op, const string& msg) {
+  if (has_argument_metadata(inst, type))
+    raise << "'" << to_string(inst) << "'" << maybe_name(op) << ": unexpected " << type << " argument (" << msg << ")\n" << end();
+}
+
+void test_modrm_with_displacement() {
+  Reg[EAX].u = 0x1;
+  transform(
+      "== code 0x1\n"
+      // just avoid null pointer
+      "8b/copy 1/mod/lookup+disp8 0/rm32/EAX 2/r32/EDX 4/disp8\n"  // copy *(EAX+4) to EDX
+  );
+  CHECK_TRACE_COUNT("error", 0);
+}
+
+void test_check_missing_disp8() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "89/copy 1/mod/lookup+disp8 0/rm32/EAX 1/r32/ECX\n"  // missing disp8
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '89/copy 1/mod/lookup+disp8 0/rm32/EAX 1/r32/ECX' (copy r32 to rm32): missing disp8 argument\n"
+  );
+}
+
+void test_check_missing_disp32() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "8b/copy 0/mod/indirect 5/rm32/.disp32 2/r32/EDX\n"  // missing disp32
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '8b/copy 0/mod/indirect 5/rm32/.disp32 2/r32/EDX' (copy rm32 to r32): missing disp32 argument\n"
+  );
+}
+
+void test_conflicting_arguments_in_modrm_instruction() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "01/add 0/mod 3/mod\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '01/add 0/mod 3/mod' has conflicting mod arguments\n"
+  );
+}
+
+void test_conflicting_argument_type_modrm() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "01/add 0/mod 3/rm32/r32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '3/rm32/r32' has conflicting argument types; it should have only one\n"
+  );
+}
+
+void test_check_missing_rm32_argument() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "81 0/add/subop 0/mod            1/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '81 0/add/subop 0/mod 1/imm32' (combine rm32 with imm32 based on subop): missing rm32 (or xm32) argument\n"
+  );
+}
+
+void test_check_missing_subop_argument() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "81             0/mod 3/rm32/ebx 1/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '81 0/mod 3/rm32/ebx 1/imm32' (combine rm32 with imm32 based on subop): missing subop argument\n"
+  );
+}
+
+void test_check_missing_base_argument() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "81 0/add/subop 0/mod/indirect 4/rm32/use-sib 1/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '81 0/add/subop 0/mod/indirect 4/rm32/use-sib 1/imm32' (combine rm32 with imm32 based on subop): missing base argument\n"
+  );
+}
+
+void test_check_missing_index_argument() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "81 0/add/subop 0/mod/indirect 4/rm32/use-sib 0/base 1/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '81 0/add/subop 0/mod/indirect 4/rm32/use-sib 0/base 1/imm32' (combine rm32 with imm32 based on subop): missing index argument\n"
+  );
+}
+
+void test_check_missing_base_argument_2() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "81 0/add/subop 0/mod/indirect 4/rm32/use-sib 2/index 3/scale 1/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '81 0/add/subop 0/mod/indirect 4/rm32/use-sib 2/index 3/scale 1/imm32' (combine rm32 with imm32 based on subop): missing base argument\n"
+  );
+}
+
+void test_check_extra_displacement() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "89/copy 0/mod/indirect 0/rm32/EAX 1/r32/ECX 4/disp8\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '89/copy 0/mod/indirect 0/rm32/EAX 1/r32/ECX 4/disp8' (copy r32 to rm32): unexpected disp8 argument\n"
+  );
+}
+
+void test_check_duplicate_argument() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "89/copy 0/mod/indirect 0/rm32/EAX 1/r32/ECX 1/r32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '89/copy 0/mod/indirect 0/rm32/EAX 1/r32/ECX 1/r32': duplicate r32 argument\n"
+  );
+}
+
+void test_check_base_argument_not_needed_in_direct_mode() {
+  run(
+      "== code 0x1\n"
+      "81 0/add/subop 3/mod/indirect 4/rm32/use-sib 1/imm32\n"
+  );
+  CHECK_TRACE_COUNT("error", 0);
+}
+
+void test_extra_modrm() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "59/pop-to-ECX  3/mod/direct 1/rm32/ECX 4/r32/ESP\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '59/pop-to-ECX 3/mod/direct 1/rm32/ECX 4/r32/ESP' (pop top of stack to ECX): unexpected modrm argument\n"
+  );
+}
+
+//:: similarly handle multi-byte opcodes
+
+void check_arguments_0f(const line& inst) {
+  assert(inst.words.at(0).data == "0f");
+  if (SIZE(inst.words) == 1) {
+    raise << "opcode '0f' requires a second opcode\n" << end();
+    return;
+  }
+  word op = preprocess_op(inst.words.at(1));
+  if (!contains_key(Name_0f, op.data)) {
+    raise << "unknown 2-byte opcode '0f " << op.data << "'\n" << end();
+    return;
+  }
+  check_arguments_0f(inst, op);
+}
+
+void check_arguments_f3(const line& inst) {
+  assert(inst.words.at(0).data == "f3");
+  if (SIZE(inst.words) == 1) {
+    raise << "opcode 'f3' requires a second opcode\n" << end();
+    return;
+  }
+  word op = preprocess_op(inst.words.at(1));
+  if (op.data == "0f") {
+    word op2 = preprocess_op(inst.words.at(2));
+    check_arguments_f3_0f(inst, op2);
+    return;
+  }
+  if (!contains_key(Name_f3, op.data)) {
+    raise << "unknown 2-byte opcode 'f3 " << op.data << "'\n" << end();
+    return;
+  }
+  check_arguments_f3(inst, op);
+}
+
+void test_check_missing_disp32_argument() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "  0f 84  # jmp if ZF to ??\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '0f 84' (jump disp32 bytes away if equal, if ZF is set): missing disp32 argument\n"
+  );
+}
+
+void test_0f_opcode_with_modrm() {
+  transform(
+      "== code 0x1\n"
+      "0f af/multiply 2/mod/*+disp32 5/rm32/ebp 8/disp32 0/r32\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN_ERRORS();
+}
+
+:(before "End Globals")
+map</*op*/string, /*bitvector*/uint8_t> Permitted_arguments_0f;
+:(before "End Init Permitted Operands")
+//// Class D: just op and disp32
+//  imm32 imm8  disp32 |disp16  disp8 subop modrm
+//  0     0     1      |0       0     0     0
+put_new(Permitted_arguments_0f, "82", 0x10);
+put_new(Permitted_arguments_0f, "83", 0x10);
+put_new(Permitted_arguments_0f, "84", 0x10);
+put_new(Permitted_arguments_0f, "85", 0x10);
+put_new(Permitted_arguments_0f, "86", 0x10);
+put_new(Permitted_arguments_0f, "87", 0x10);
+put_new(Permitted_arguments_0f, "8c", 0x10);
+put_new(Permitted_arguments_0f, "8d", 0x10);
+put_new(Permitted_arguments_0f, "8e", 0x10);
+put_new(Permitted_arguments_0f, "8f", 0x10);
+
+//// Class M: using ModR/M byte
+//  imm32 imm8  disp32 |disp16  disp8 subop modrm
+//  0     0     0      |0       0     0     1
+put_new(Permitted_arguments_0f, "2f", 0x01);  // compare floats
+put_new(Permitted_arguments_0f, "af", 0x01);  // multiply ints
+// setcc
+put_new(Permitted_arguments_0f, "92", 0x01);
+put_new(Permitted_arguments_0f, "93", 0x01);
+put_new(Permitted_arguments_0f, "94", 0x01);
+put_new(Permitted_arguments_0f, "95", 0x01);
+put_new(Permitted_arguments_0f, "96", 0x01);
+put_new(Permitted_arguments_0f, "97", 0x01);
+put_new(Permitted_arguments_0f, "9c", 0x01);
+put_new(Permitted_arguments_0f, "9d", 0x01);
+put_new(Permitted_arguments_0f, "9e", 0x01);
+put_new(Permitted_arguments_0f, "9f", 0x01);
+
+:(before "End Globals")
+map</*op*/string, /*bitvector*/uint8_t> Permitted_arguments_f3;
+map</*op*/string, /*bitvector*/uint8_t> Permitted_arguments_f3_0f;
+:(before "End Init Permitted Operands")
+//// Class M: using ModR/M byte
+//  imm32 imm8  disp32 |disp16  disp8 subop modrm
+//  0     0     0      |0       0     0     1
+put_new(Permitted_arguments_f3_0f, "10", 0x01);  // copy xm32 to x32
+put_new(Permitted_arguments_f3_0f, "11", 0x01);  // copy x32 to xm32
+put_new(Permitted_arguments_f3_0f, "2a", 0x01);  // convert-to-float
+put_new(Permitted_arguments_f3_0f, "2c", 0x01);  // truncate-to-int
+put_new(Permitted_arguments_f3_0f, "2d", 0x01);  // convert-to-int
+put_new(Permitted_arguments_f3_0f, "51", 0x01);  // square root
+put_new(Permitted_arguments_f3_0f, "52", 0x01);  // inverse square root
+put_new(Permitted_arguments_f3_0f, "53", 0x01);  // reciprocal
+put_new(Permitted_arguments_f3_0f, "58", 0x01);  // add floats
+put_new(Permitted_arguments_f3_0f, "59", 0x01);  // multiply floats
+put_new(Permitted_arguments_f3_0f, "5c", 0x01);  // subtract floats
+put_new(Permitted_arguments_f3_0f, "5d", 0x01);  // minimum of floats
+put_new(Permitted_arguments_f3_0f, "5e", 0x01);  // divide floats
+put_new(Permitted_arguments_f3_0f, "5f", 0x01);  // maximum of floats
+
+:(code)
+void check_arguments_0f(const line& inst, const word& op) {
+  uint8_t expected_bitvector = get(Permitted_arguments_0f, op.data);
+  if (HAS(expected_bitvector, MODRM)) {
+    check_arguments_modrm(inst, op);
+    compare_bitvector_modrm(inst, expected_bitvector, maybe_name_0f(op));
+  }
+  else {
+    compare_bitvector(inst, CLEAR(expected_bitvector, MODRM), maybe_name_0f(op));
+  }
+}
+
+void check_arguments_f3(const line& inst, const word& op) {
+  uint8_t expected_bitvector = get(Permitted_arguments_f3, op.data);
+  if (HAS(expected_bitvector, MODRM)) {
+    check_arguments_modrm(inst, op);
+    compare_bitvector_modrm(inst, expected_bitvector, maybe_name_f3(op));
+  }
+  else {
+    compare_bitvector(inst, CLEAR(expected_bitvector, MODRM), maybe_name_f3(op));
+  }
+}
+
+void check_arguments_f3_0f(const line& inst, const word& op) {
+  uint8_t expected_bitvector = get(Permitted_arguments_f3_0f, op.data);
+  if (HAS(expected_bitvector, MODRM)) {
+    check_arguments_modrm(inst, op);
+    compare_bitvector_modrm(inst, expected_bitvector, maybe_name_f3_0f(op));
+  }
+  else {
+    compare_bitvector(inst, CLEAR(expected_bitvector, MODRM), maybe_name_f3_0f(op));
+  }
+}
+
+string maybe_name_0f(const word& op) {
+  if (!is_hex_byte(op)) return "";
+  if (!contains_key(Name_0f, op.data)) return "";
+  // strip stuff in parens from the name
+  const string& s = get(Name_0f, op.data);
+  return " ("+s.substr(0, s.find(" ("))+')';
+}
+
+string maybe_name_f3(const word& op) {
+  if (!is_hex_byte(op)) return "";
+  if (!contains_key(Name_f3, op.data)) return "";
+  // strip stuff in parens from the name
+  const string& s = get(Name_f3, op.data);
+  return " ("+s.substr(0, s.find(" ("))+')';
+}
+
+string maybe_name_f3_0f(const word& op) {
+  if (!is_hex_byte(op)) return "";
+  if (!contains_key(Name_f3_0f, op.data)) return "";
+  // strip stuff in parens from the name
+  const string& s = get(Name_f3_0f, op.data);
+  return " ("+s.substr(0, s.find(" ("))+')';
+}
+
+string tolower(const char* s) {
+  ostringstream out;
+  for (/*nada*/;  *s;  ++s)
+    out << static_cast<char>(tolower(*s));
+  return out.str();
+}
+
+#undef HAS
+#undef SET
+#undef CLEAR
+
+:(before "End Includes")
+#include<cctype>
diff --git a/linux/bootstrap/034check_operand_bounds.cc b/linux/bootstrap/034check_operand_bounds.cc
new file mode 100644
index 00000000..efc3385e
--- /dev/null
+++ b/linux/bootstrap/034check_operand_bounds.cc
@@ -0,0 +1,143 @@
+//:: Check that the different arguments of an instruction aren't too large for their bitfields.
+
+void test_check_bitfield_sizes() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "01/add 4/mod 3/rm32 1/r32\n"  // add ECX to EBX
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '4/mod' too large to fit in bitfield mod\n"
+  );
+}
+
+:(before "End Globals")
+map<string, uint32_t> Operand_bound;
+:(before "End One-time Setup")
+put_new(Operand_bound, "subop", 1<<3);
+put_new(Operand_bound, "mod", 1<<2);
+put_new(Operand_bound, "rm32", 1<<3);
+put_new(Operand_bound, "base", 1<<3);
+put_new(Operand_bound, "index", 1<<3);
+put_new(Operand_bound, "scale", 1<<2);
+put_new(Operand_bound, "r32", 1<<3);
+put_new(Operand_bound, "disp8", 1<<8);
+put_new(Operand_bound, "disp16", 1<<16);
+// no bound needed for disp32
+put_new(Operand_bound, "imm8", 1<<8);
+// no bound needed for imm32
+
+:(before "Pack Operands(segment code)")
+check_argument_bounds(code);
+if (trace_contains_errors()) return;
+:(code)
+void check_argument_bounds(const segment& code) {
+  trace(3, "transform") << "-- check argument bounds" << end();
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    const line& inst = code.lines.at(i);
+    for (int j = first_argument(inst);  j < SIZE(inst.words);  ++j)
+      check_argument_bounds(inst.words.at(j));
+    if (trace_contains_errors()) return;  // stop at the first mal-formed instruction
+  }
+}
+
+void check_argument_bounds(const word& w) {
+  for (map<string, uint32_t>::iterator p = Operand_bound.begin();  p != Operand_bound.end();  ++p) {
+    if (!has_argument_metadata(w, p->first)) continue;
+    if (!looks_like_hex_int(w.data)) continue;  // later transforms are on their own to do their own bounds checking
+    int32_t x = parse_int(w.data);
+    if (x >= 0) {
+      if (p->first == "disp8" || p->first == "disp16") {
+        if (static_cast<uint32_t>(x) >= p->second/2)
+          raise << "'" << w.original << "' too large to fit in signed bitfield " << p->first << '\n' << end();
+      }
+      else {
+        if (static_cast<uint32_t>(x) >= p->second)
+          raise << "'" << w.original << "' too large to fit in bitfield " << p->first << '\n' << end();
+      }
+    }
+    else {
+      // hacky? assuming bound is a power of 2
+      if (x < -1*static_cast<int32_t>(p->second/2))
+        raise << "'" << w.original << "' too large to fit in bitfield " << p->first << '\n' << end();
+    }
+  }
+}
+
+void test_check_bitfield_sizes_for_imm8() {
+  run(
+      "== code 0x1\n"
+      "c1/shift 4/subop/left 3/mod/direct 1/rm32/ECX 0xff/imm8"  // shift EBX left
+  );
+  CHECK(!trace_contains_errors());
+}
+
+void test_check_bitfield_sizes_for_imm8_error() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "c1/shift 4/subop/left 3/mod/direct 1/rm32/ECX 0x100/imm8"  // shift EBX left
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '0x100/imm8' too large to fit in bitfield imm8\n"
+  );
+}
+
+void test_check_bitfield_sizes_for_negative_imm8() {
+  run(
+      "== code 0x1\n"
+      "c1/shift 4/subop/left 3/mod/direct 1/rm32/ECX -0x80/imm8"  // shift EBX left
+  );
+  CHECK(!trace_contains_errors());
+}
+
+void test_check_bitfield_sizes_for_negative_imm8_error() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "c1/shift 4/subop/left 3/mod/direct 1/rm32/ECX -0x81/imm8"  // shift EBX left
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '-0x81/imm8' too large to fit in bitfield imm8\n"
+  );
+}
+
+void test_check_bitfield_sizes_for_disp8() {
+  // not bothering to run
+  transform(
+      "== code 0x1\n"
+      "01/add 1/mod/*+disp8 3/rm32 1/r32 0x7f/disp8\n"  // add ECX to *(EBX+0x7f)
+  );
+  CHECK(!trace_contains_errors());
+}
+
+void test_check_bitfield_sizes_for_disp8_error() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "01/add 1/mod/*+disp8 3/rm32 1/r32 0x80/disp8\n"  // add ECX to *(EBX+0x80)
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '0x80/disp8' too large to fit in signed bitfield disp8\n"
+  );
+}
+
+void test_check_bitfield_sizes_for_negative_disp8() {
+  // not bothering to run
+  transform(
+      "== code 0x1\n"
+      "01/add 1/mod/*+disp8 3/rm32 1/r32 -0x80/disp8\n"  // add ECX to *(EBX-0x80)
+  );
+  CHECK(!trace_contains_errors());
+}
+
+void test_check_bitfield_sizes_for_negative_disp8_error() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "01/add 1/mod/*+disp8 3/rm32 1/r32 -0x81/disp8\n"  // add ECX to *(EBX-0x81)
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '-0x81/disp8' too large to fit in bitfield disp8\n"
+  );
+}
diff --git a/linux/bootstrap/035compute_segment_address.cc b/linux/bootstrap/035compute_segment_address.cc
new file mode 100644
index 00000000..5c627a7b
--- /dev/null
+++ b/linux/bootstrap/035compute_segment_address.cc
@@ -0,0 +1,86 @@
+//: ELF binaries have finicky rules about the precise alignment each segment
+//: should start at. They depend on the amount of code in a program.
+//: We shouldn't expect people to adjust segment addresses everytime they make
+//: a change to their programs.
+//: Let's start taking the given segment addresses as guidelines, and adjust
+//: them as necessary.
+//: This gives up a measure of control in placing code and data.
+
+void test_segment_name() {
+  run(
+      "== code 0x09000000\n"
+      "05/add-to-EAX  0x0d0c0b0a/imm32\n"
+      // code starts at 0x09000000 + p_offset, which is 0x54 for a single-segment binary
+  );
+  CHECK_TRACE_CONTENTS(
+      "load: 0x09000054 -> 05\n"
+      "load: 0x09000055 -> 0a\n"
+      "load: 0x09000056 -> 0b\n"
+      "load: 0x09000057 -> 0c\n"
+      "load: 0x09000058 -> 0d\n"
+      "run: add imm32 0x0d0c0b0a to EAX\n"
+      "run: storing 0x0d0c0b0a\n"
+  );
+}
+
+//: compute segment address
+
+:(before "End Transforms")
+Transform.push_back(compute_segment_starts);
+
+:(code)
+void compute_segment_starts(program& p) {
+  trace(3, "transform") << "-- compute segment addresses" << end();
+  uint32_t p_offset = /*size of ehdr*/0x34 + SIZE(p.segments)*0x20/*size of each phdr*/;
+  for (size_t i = 0;  i < p.segments.size();  ++i) {
+    segment& curr = p.segments.at(i);
+    if (curr.start >= 0x08000000) {
+      // valid address for user space, so assume we're creating a real ELF binary, not just running a test
+      curr.start &= 0xfffff000;  // same number of zeros as the p_align used when emitting the ELF binary
+      curr.start |= (p_offset & 0xfff);
+      trace(99, "transform") << "segment " << i << " begins at address 0x" << HEXWORD << curr.start << end();
+    }
+    p_offset += size_of(curr);
+    assert(p_offset < SEGMENT_ALIGNMENT);  // for now we get less and less available space in each successive segment
+  }
+}
+
+uint32_t size_of(const segment& s) {
+  uint32_t sum = 0;
+  for (int i = 0;  i < SIZE(s.lines);  ++i)
+    sum += num_bytes(s.lines.at(i));
+  return sum;
+}
+
+// Assumes all bitfields are packed.
+uint32_t num_bytes(const line& inst) {
+  uint32_t sum = 0;
+  for (int i = 0;  i < SIZE(inst.words);  ++i)
+    sum += size_of(inst.words.at(i));
+  return sum;
+}
+
+int size_of(const word& w) {
+  if (has_argument_metadata(w, "disp32") || has_argument_metadata(w, "imm32"))
+    return 4;
+  else if (has_argument_metadata(w, "disp16"))
+    return 2;
+  // End size_of(word w) Special-cases
+  else
+    return 1;
+}
+
+//: Dependencies:
+//: - We'd like to compute segment addresses before setting up global variables,
+//:   because computing addresses for global variables requires knowing where
+//:   the data segment starts.
+//: - We'd like to finish expanding labels before computing segment addresses,
+//:   because it would make computing the sizes of segments more self-contained
+//:   (num_bytes).
+//:
+//: Decision: compute segment addresses before expanding labels, by being
+//: aware in this layer of certain argument types that will eventually occupy
+//: multiple bytes.
+//:
+//: The layer to expand labels later hooks into num_bytes() to teach this
+//: layer that labels occupy zero space in the binary.
diff --git a/linux/bootstrap/036labels.cc b/linux/bootstrap/036labels.cc
new file mode 100644
index 00000000..72d11da5
--- /dev/null
+++ b/linux/bootstrap/036labels.cc
@@ -0,0 +1,429 @@
+//: Labels are defined by ending names with a ':'. This layer will compute
+//: displacements for labels, and compute the offset for instructions using them.
+//:
+//: We won't check this, but our convention will be that jump targets will
+//: start with a '$', while functions will not. Function names will never be
+//: jumped to, and jump targets will never be called.
+
+//: We're introducing non-number names for the first time, so it's worth
+//: laying down some ground rules all transforms will follow, so things don't
+//: get too confusing:
+//:   - if it starts with a digit, it's treated as a number. If it can't be
+//:     parsed as hex it will raise an error.
+//:   - if it starts with '-' it's treated as a number.
+//:   - if it starts with '0x' it's treated as a number.
+//:   - if it's two characters long, it can't be a name. Either it's a hex
+//:     byte, or it raises an error.
+//: That's it. Names can start with any non-digit that isn't a dash. They can
+//: be a single character long. 'a' is not a hex number, it's a variable.
+//: Later layers may add more conventions partitioning the space of names. But
+//: the above rules will remain inviolate.
+
+//: One special label is 'Entry', the address to start running the program at.
+//: It can be non-unique; the last declaration overrides earlier ones.
+//: It must exist in a program. Otherwise we don't know where to start running
+//: programs.
+
+void test_Entry_label() {
+  run(
+      "== code 0x1\n"
+      "05 0x0d0c0b0a/imm32\n"
+      "Entry:\n"
+      "05 0x0d0c0b0a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000006 opcode: 05\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("run: 0x00000001 opcode: 05");
+}
+
+:(before "End looks_like_hex_int(s) Detectors")
+if (SIZE(s) == 2) return true;
+
+:(code)
+void test_pack_immediate_ignores_single_byte_nondigit_argument() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "b9/copy  a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'b9/copy a/imm32'\n"
+      // no change (we're just not printing metadata to the trace)
+      "transform: instruction after packing: 'b9 a'\n"
+  );
+}
+
+void test_pack_immediate_ignores_3_hex_digit_argument() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "b9/copy  aaa/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'b9/copy aaa/imm32'\n"
+      // no change (we're just not printing metadata to the trace)
+      "transform: instruction after packing: 'b9 aaa'\n"
+  );
+}
+
+void test_pack_immediate_ignores_non_hex_argument() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "b9/copy xxx/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: packing instruction 'b9/copy xxx/imm32'\n"
+      // no change (we're just not printing metadata to the trace)
+      "transform: instruction after packing: 'b9 xxx'\n"
+  );
+}
+
+//: a helper we'll find handy later
+void check_valid_name(const string& s) {
+  if (s.empty()) {
+    raise << "empty name!\n" << end();
+    return;
+  }
+  if (s.at(0) == '-')
+    raise << "'" << s << "' starts with '-', which can be confused with a negative number; use a different name\n" << end();
+  if (s.substr(0, 2) == "0x") {
+    raise << "'" << s << "' looks like a hex number; use a different name\n" << end();
+    return;
+  }
+  if (isdigit(s.at(0)))
+    raise << "'" << s << "' starts with a digit, and so can be confused with a number; use a different name.\n" << end();
+  if (SIZE(s) == 2)
+    raise << "'" << s << "' is two characters long, which can look like raw hex bytes at a glance; use a different name\n" << end();
+}
+
+//: Now that that's done, let's start using names as labels.
+
+void test_map_label() {
+  transform(
+      "== code 0x1\n"
+      "loop:\n"
+      "  05  0x0d0c0b0a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: label 'loop' is at address 1\n"
+  );
+}
+
+:(before "End Transforms")
+Transform.push_back(rewrite_labels);
+:(code)
+void rewrite_labels(program& p) {
+  trace(3, "transform") << "-- rewrite labels" << end();
+  if (p.segments.empty()) return;
+  segment& code = *find(p, "code");
+  map<string, int32_t> byte_index;  // values are unsigned, but we're going to do subtractions on them so they need to fit in 31 bits
+  compute_byte_indices_for_labels(code, byte_index);
+  if (trace_contains_errors()) return;
+  drop_labels(code);
+  if (trace_contains_errors()) return;
+  replace_labels_with_displacements(code, byte_index);
+  if (contains_key(byte_index, "Entry"))
+    p.entry = code.start + get(byte_index, "Entry");
+}
+
+void compute_byte_indices_for_labels(const segment& code, map<string, int32_t>& byte_index) {
+  int current_byte = 0;
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    const line& inst = code.lines.at(i);
+    if (Source_lines_file.is_open() && !inst.original.empty() && /*not a label*/ *inst.words.at(0).data.rbegin() != ':')
+      Source_lines_file << "0x" << HEXWORD << (code.start + current_byte) << ' ' << inst.original << '\n';
+    for (int j = 0;  j < SIZE(inst.words);  ++j) {
+      const word& curr = inst.words.at(j);
+      // hack: if we have any argument metadata left after previous transforms,
+      // deduce its size
+      // Maybe we should just move this transform to before instruction
+      // packing, and deduce the size of *all* arguments. But then we'll also
+      // have to deal with bitfields.
+      if (has_argument_metadata(curr, "disp32") || has_argument_metadata(curr, "imm32")) {
+        if (*curr.data.rbegin() == ':')
+          raise << "'" << to_string(inst) << "': don't use ':' when jumping to labels\n" << end();
+        current_byte += 4;
+      }
+      else if (has_argument_metadata(curr, "disp16")) {
+        if (*curr.data.rbegin() == ':')
+          raise << "'" << to_string(inst) << "': don't use ':' when jumping to labels\n" << end();
+        current_byte += 2;
+      }
+      // automatically handle /disp8 and /imm8 here
+      else if (*curr.data.rbegin() != ':') {
+        ++current_byte;
+      }
+      else {
+        string label = drop_last(curr.data);
+        // ensure labels look sufficiently different from raw hex
+        check_valid_name(label);
+        if (trace_contains_errors()) return;
+        if (contains_any_argument_metadata(curr))
+          raise << "'" << to_string(inst) << "': label definition (':') not allowed in argument\n" << end();
+        if (j > 0)
+          raise << "'" << to_string(inst) << "': labels can only be the first word in a line.\n" << end();
+        if (Labels_file.is_open())
+          Labels_file << "0x" << HEXWORD << (code.start + current_byte) << ' ' << label << '\n';
+        if (contains_key(byte_index, label) && label != "Entry") {
+          raise << "duplicate label '" << label << "'\n" << end();
+          return;
+        }
+        put(byte_index, label, current_byte);
+        trace(99, "transform") << "label '" << label << "' is at address " << (current_byte+code.start) << end();
+        // no modifying current_byte; label definitions won't be in the final binary
+      }
+    }
+  }
+}
+
+:(before "End Globals")
+bool Dump_debug_info = false;  // currently used only by 'bootstrap translate'
+ofstream Labels_file;
+ofstream Source_lines_file;
+:(before "End Commandline Options")
+else if (is_equal(*arg, "--debug")) {
+  Dump_debug_info = true;
+  // End --debug Settings
+}
+//: wait to open "labels" for writing until we're sure we aren't trying to read it
+:(after "Begin bootstrap translate")
+if (Dump_debug_info) {
+  cerr << "saving address->label information to 'labels'\n";
+  Labels_file.open("labels");
+  cerr << "saving address->source information to 'source_lines'\n";
+  Source_lines_file.open("source_lines");
+}
+:(before "End bootstrap translate")
+if (Dump_debug_info) {
+  Labels_file.close();
+  Source_lines_file.close();
+}
+
+:(code)
+void drop_labels(segment& code) {
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    line& inst = code.lines.at(i);
+    vector<word>::iterator new_end = remove_if(inst.words.begin(), inst.words.end(), is_label);
+    inst.words.erase(new_end, inst.words.end());
+  }
+}
+
+bool is_label(const word& w) {
+  return *w.data.rbegin() == ':';
+}
+
+void replace_labels_with_displacements(segment& code, const map<string, int32_t>& byte_index) {
+  int32_t byte_index_next_instruction_starts_at = 0;
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    line& inst = code.lines.at(i);
+    byte_index_next_instruction_starts_at += num_bytes(inst);
+    line new_inst;
+    for (int j = 0;  j < SIZE(inst.words);  ++j) {
+      const word& curr = inst.words.at(j);
+      if (contains_key(byte_index, curr.data)) {
+        int32_t displacement = static_cast<int32_t>(get(byte_index, curr.data)) - byte_index_next_instruction_starts_at;
+        int32_t absolute_address = code.start + get(byte_index, curr.data);
+        if (has_argument_metadata(curr, "disp8")) {
+          if (displacement > 0x7f || displacement < -0x7f)
+            raise << "'" << to_string(inst) << "': label too far away for displacement " << std::hex << displacement << " to fit in 8 signed bits\n" << end();
+          else
+            emit_hex_bytes(new_inst, displacement, 1);
+        }
+        else if (has_argument_metadata(curr, "disp16")) {
+          if (displacement > 0x7fff || displacement < -0x7fff)
+            raise << "'" << to_string(inst) << "': label too far away for displacement " << std::hex << displacement << " to fit in 16 signed bits\n" << end();
+          else
+            emit_hex_bytes(new_inst, displacement, 2);
+        }
+        else if (has_argument_metadata(curr, "disp32")) {
+          if (is_far_jump_or_call(new_inst))
+            emit_hex_bytes(new_inst, displacement, 4);
+          else
+            emit_hex_bytes(new_inst, absolute_address, 4);
+        } else if (has_argument_metadata(curr, "imm32")) {
+          emit_hex_bytes(new_inst, absolute_address, 4);
+        }
+      }
+      else {
+        new_inst.words.push_back(curr);
+      }
+    }
+    inst.words.swap(new_inst.words);
+    trace(99, "transform") << "instruction after transform: '" << data_to_string(inst) << "'" << end();
+  }
+}
+
+bool is_far_jump_or_call(const line& inst) {
+  string first_opcode = inst.words.at(0).data;
+  if (first_opcode == "e8" || first_opcode == "e9") return true;
+  if (SIZE(inst.words) < 2) return false;
+  if (first_opcode != "0f") return false;
+  string second_opcode = inst.words.at(1).data;
+  return starts_with(second_opcode, "8");
+}
+
+string data_to_string(const line& inst) {
+  ostringstream out;
+  for (int i = 0;  i < SIZE(inst.words);  ++i) {
+    if (i > 0) out << ' ';
+    out << inst.words.at(i).data;
+  }
+  return out.str();
+}
+
+string drop_last(const string& s) {
+  return string(s.begin(), --s.end());
+}
+
+//: Label definitions must be the first word on a line. No jumping inside
+//: instructions.
+//: They should also be the only word on a line.
+//: However, you can absolutely have multiple labels map to the same address,
+//: as long as they're on separate lines.
+
+void test_multiple_labels_at() {
+  transform(
+      "== code 0x1\n"
+      // address 1
+      "loop:\n"
+      " $loop2:\n"
+      // address 1 (labels take up no space)
+      "    05  0x0d0c0b0a/imm32\n"
+      // address 6
+      "    eb  $loop2/disp8\n"
+      // address 8
+      "    eb  $loop3/disp8\n"
+      // address 0xa
+      " $loop3:\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: label 'loop' is at address 1\n"
+      "transform: label '$loop2' is at address 1\n"
+      "transform: label '$loop3' is at address a\n"
+      // first jump is to -7
+      "transform: instruction after transform: 'eb f9'\n"
+      // second jump is to 0 (fall through)
+      "transform: instruction after transform: 'eb 00'\n"
+  );
+}
+
+void test_loading_label_as_imm32() {
+  transform(
+      "== code 0x1\n"
+      "label:\n"
+      "  be/copy-to-ESI  label/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: label 'label' is at address 1\n"
+      "transform: instruction after transform: 'be 01 00 00 00'\n"
+  );
+}
+
+void test_duplicate_label() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "loop:\n"
+      "loop:\n"
+      "    05  0x0d0c0b0a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: duplicate label 'loop'\n"
+  );
+}
+
+void test_label_too_short() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "xz:\n"
+      "  05  0x0d0c0b0a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: 'xz' is two characters long, which can look like raw hex bytes at a glance; use a different name\n"
+  );
+}
+
+void test_label_hex() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "0xab:\n"
+      "  05  0x0d0c0b0a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '0xab' looks like a hex number; use a different name\n"
+  );
+}
+
+void test_label_negative_hex() {
+  Hide_errors = true;
+  transform(
+      "== code 0x1\n"
+      "-a:\n"
+      "    05  0x0d0c0b0a/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: '-a' starts with '-', which can be confused with a negative number; use a different name\n"
+  );
+}
+
+//: As said up top, the 'Entry' label is special.
+//: It can be non-unique; the last declaration overrides earlier ones.
+//: It must exist in a program. Otherwise we don't know where to start running
+//: programs.
+
+void test_duplicate_Entry_label() {
+  transform(
+      "== code 0x1\n"
+      "Entry:\n"
+      "Entry:\n"
+      "    05  0x0d0c0b0a/imm32\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN_ERRORS();
+}
+
+// This test could do with some refactoring.
+// We're duplicating the flow inside `bootstrap translate`, but without
+// reading/writing files.
+// We can't just use run(string) because most of our tests allow programs
+// without 'Entry' labels, as a convenience.
+void test_programs_without_Entry_label() {
+  Hide_errors = true;
+  program p;
+  istringstream in(
+      "== code 0x1\n"
+      "05 0x0d0c0b0a/imm32\n"
+      "05 0x0d0c0b0a/imm32\n"
+  );
+  parse(in, p);
+  transform(p);
+  ostringstream dummy;
+  save_elf(p, dummy);
+  CHECK_TRACE_CONTENTS(
+      "error: no 'Entry' label found\n"
+  );
+}
+
+//: now that we have labels, we need to adjust segment size computation to
+//: ignore them.
+
+void test_segment_size_ignores_labels() {
+  transform(
+      "== code 0x09000074\n"
+      "  05/add  0x0d0c0b0a/imm32\n"  // 5 bytes
+      "foo:\n"                        // 0 bytes
+      "== data 0x0a000000\n"
+      "bar:\n"
+      "  00\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: segment 1 begins at address 0x0a000079\n"
+  );
+}
+
+:(before "End size_of(word w) Special-cases")
+else if (is_label(w))
+  return 0;
diff --git a/linux/bootstrap/037global_variables.cc b/linux/bootstrap/037global_variables.cc
new file mode 100644
index 00000000..b8306d16
--- /dev/null
+++ b/linux/bootstrap/037global_variables.cc
@@ -0,0 +1,305 @@
+//: Global variables.
+//:
+//: Global variables are just labels in the data segment.
+//: However, they can only be used in imm32 and not disp32 arguments. And they
+//: can't be used with jump and call instructions.
+//:
+//: This layer has much the same structure as rewriting labels.
+
+:(code)
+void test_global_variable() {
+  run(
+      "== code 0x1\n"
+      "b9  x/imm32\n"
+      "== data 0x2000\n"
+      "x:\n"
+      "  00 00 00 00\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: global variable 'x' is at address 0x00002000\n"
+  );
+}
+
+:(before "End Transforms")
+Transform.push_back(rewrite_global_variables);
+:(code)
+void rewrite_global_variables(program& p) {
+  trace(3, "transform") << "-- rewrite global variables" << end();
+  // Begin rewrite_global_variables
+  map<string, uint32_t> address;
+  compute_addresses_for_global_variables(p, address);
+  if (trace_contains_errors()) return;
+  drop_global_variables(p);
+  replace_global_variables_with_addresses(p, address);
+}
+
+void compute_addresses_for_global_variables(const program& p, map<string, uint32_t>& address) {
+  for (int i = 0;  i < SIZE(p.segments);  ++i) {
+    if (p.segments.at(i).name != "code")
+      compute_addresses_for_global_variables(p.segments.at(i), address);
+  }
+}
+
+void compute_addresses_for_global_variables(const segment& s, map<string, uint32_t>& address) {
+  int current_address = s.start;
+  for (int i = 0;  i < SIZE(s.lines);  ++i) {
+    const line& inst = s.lines.at(i);
+    for (int j = 0;  j < SIZE(inst.words);  ++j) {
+      const word& curr = inst.words.at(j);
+      if (*curr.data.rbegin() != ':') {
+        current_address += size_of(curr);
+      }
+      else {
+        string variable = drop_last(curr.data);
+        // ensure variables look sufficiently different from raw hex
+        check_valid_name(variable);
+        if (trace_contains_errors()) return;
+        if (j > 0)
+          raise << "'" << to_string(inst) << "': global variable names can only be the first word in a line.\n" << end();
+        if (Labels_file.is_open())
+          Labels_file << "0x" << HEXWORD << current_address << ' ' << variable << '\n';
+        if (contains_key(address, variable)) {
+          raise << "duplicate global '" << variable << "'\n" << end();
+          return;
+        }
+        put(address, variable, current_address);
+        trace(99, "transform") << "global variable '" << variable << "' is at address 0x" << HEXWORD << current_address << end();
+        // no modifying current_address; global variable definitions won't be in the final binary
+      }
+    }
+  }
+}
+
+void drop_global_variables(program& p) {
+  for (int i = 0;  i < SIZE(p.segments);  ++i) {
+    if (p.segments.at(i).name != "code")
+      drop_labels(p.segments.at(i));
+  }
+}
+
+void replace_global_variables_with_addresses(program& p, const map<string, uint32_t>& address) {
+  if (p.segments.empty()) return;
+  for (int i = 0;  i < SIZE(p.segments);  ++i) {
+    segment& curr = p.segments.at(i);
+    if (curr.name == "code")
+      replace_global_variables_in_code_segment(curr, address);
+    else
+      replace_global_variables_in_data_segment(curr, address);
+  }
+}
+
+void replace_global_variables_in_code_segment(segment& code, const map<string, uint32_t>& address) {
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    line& inst = code.lines.at(i);
+    line new_inst;
+    for (int j = 0;  j < SIZE(inst.words);  ++j) {
+      const word& curr = inst.words.at(j);
+      if (!contains_key(address, curr.data)) {
+        if (!looks_like_hex_int(curr.data))
+          raise << "missing reference to global '" << curr.data << "'\n" << end();
+        new_inst.words.push_back(curr);
+        continue;
+      }
+      if (!valid_use_of_global_variable(curr)) {
+        raise << "'" << to_string(inst) << "': can't refer to global variable '" << curr.data << "'\n" << end();
+        return;
+      }
+      emit_hex_bytes(new_inst, get(address, curr.data), 4);
+    }
+    inst.words.swap(new_inst.words);
+    trace(99, "transform") << "instruction after transform: '" << data_to_string(inst) << "'" << end();
+  }
+}
+
+void replace_global_variables_in_data_segment(segment& data, const map<string, uint32_t>& address) {
+  for (int i = 0;  i < SIZE(data.lines);  ++i) {
+    line& l = data.lines.at(i);
+    line new_l;
+    for (int j = 0;  j < SIZE(l.words);  ++j) {
+      const word& curr = l.words.at(j);
+      if (!contains_key(address, curr.data)) {
+        if (looks_like_hex_int(curr.data)) {
+          if (has_argument_metadata(curr, "imm32"))
+            emit_hex_bytes(new_l, curr, 4);
+          else if (has_argument_metadata(curr, "imm16"))
+            emit_hex_bytes(new_l, curr, 2);
+          else if (has_argument_metadata(curr, "imm8"))
+            emit_hex_bytes(new_l, curr, 1);
+          else if (has_argument_metadata(curr, "disp8"))
+            raise << "can't use /disp8 in a non-code segment\n" << end();
+          else if (has_argument_metadata(curr, "disp16"))
+            raise << "can't use /disp16 in a non-code segment\n" << end();
+          else if (has_argument_metadata(curr, "disp32"))
+            raise << "can't use /disp32 in a non-code segment\n" << end();
+          else
+            new_l.words.push_back(curr);
+        }
+        else {
+          raise << "missing reference to global '" << curr.data << "'\n" << end();
+          new_l.words.push_back(curr);
+        }
+        continue;
+      }
+      trace(99, "transform") << curr.data << " maps to " << HEXWORD << get(address, curr.data) << end();
+      emit_hex_bytes(new_l, get(address, curr.data), 4);
+    }
+    l.words.swap(new_l.words);
+    trace(99, "transform") << "after transform: '" << data_to_string(l) << "'" << end();
+  }
+}
+
+bool valid_use_of_global_variable(const word& curr) {
+  if (has_argument_metadata(curr, "imm32")) return true;
+  // End Valid Uses Of Global Variable(curr)
+  return false;
+}
+
+//:: a more complex sanity check for how we use global variables
+//: requires first saving some data early before we pack arguments
+
+:(after "Begin Transforms")
+Transform.push_back(correlate_disp32_with_mod);
+:(code)
+void correlate_disp32_with_mod(program& p) {
+  if (p.segments.empty()) return;
+  segment& code = *find(p, "code");
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    line& inst = code.lines.at(i);
+    for (int j = 0;  j < SIZE(inst.words);  ++j) {
+      word& curr = inst.words.at(j);
+      if (has_argument_metadata(curr, "disp32")
+          && has_argument_metadata(inst, "mod"))
+        curr.metadata.push_back("has_mod");
+    }
+  }
+}
+
+:(before "End Valid Uses Of Global Variable(curr)")
+if (has_argument_metadata(curr, "disp32"))
+  return has_metadata(curr, "has_mod");
+// todo: more sophisticated check, to ensure we don't use global variable
+// addresses as a real displacement added to other arguments.
+
+:(code)
+bool has_metadata(const word& w, const string& m) {
+  for (int i = 0;  i < SIZE(w.metadata);  ++i)
+    if (w.metadata.at(i) == m) return true;
+  return false;
+}
+
+void test_global_variable_disallowed_in_jump() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "eb/jump  x/disp8\n"
+      "== data 0x2000\n"
+      "x:\n"
+      "  00 00 00 00\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: 'eb/jump x/disp8': can't refer to global variable 'x'\n"
+      // sub-optimal error message; should be
+//?       "error: can't jump to data (variable 'x')\n"
+  );
+}
+
+void test_global_variable_disallowed_in_call() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "e8/call  x/disp32\n"
+      "== data 0x2000\n"
+      "x:\n"
+      "  00 00 00 00\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: 'e8/call x/disp32': can't refer to global variable 'x'\n"
+      // sub-optimal error message; should be
+//?       "error: can't call to the data segment ('x')\n"
+  );
+}
+
+void test_global_variable_in_data_segment() {
+  run(
+      "== code 0x1\n"
+      "b9  x/imm32\n"
+      "== data 0x2000\n"
+      "x:\n"
+      "  y/imm32\n"
+      "y:\n"
+      "  00 00 00 00\n"
+  );
+  // check that we loaded 'x' with the address of 'y'
+  CHECK_TRACE_CONTENTS(
+      "load: 0x00002000 -> 04\n"
+      "load: 0x00002001 -> 20\n"
+      "load: 0x00002002 -> 00\n"
+      "load: 0x00002003 -> 00\n"
+  );
+  CHECK_TRACE_COUNT("error", 0);
+}
+
+void test_raw_number_with_imm32_in_data_segment() {
+  run(
+      "== code 0x1\n"
+      "b9  x/imm32\n"
+      "== data 0x2000\n"
+      "x:\n"
+      "  1/imm32\n"
+  );
+  // check that we loaded 'x' with the address of 1
+  CHECK_TRACE_CONTENTS(
+      "load: 0x00002000 -> 01\n"
+      "load: 0x00002001 -> 00\n"
+      "load: 0x00002002 -> 00\n"
+      "load: 0x00002003 -> 00\n"
+  );
+  CHECK_TRACE_COUNT("error", 0);
+}
+
+void test_duplicate_global_variable() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "40/increment-EAX\n"
+      "== data 0x2000\n"
+      "x:\n"
+      "x:\n"
+      "  00\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: duplicate global 'x'\n"
+  );
+}
+
+void test_global_variable_disp32_with_modrm() {
+  run(
+      "== code 0x1\n"
+      "8b/copy 0/mod/indirect 5/rm32/.disp32 2/r32/EDX x/disp32\n"
+      "== data 0x2000\n"
+      "x:\n"
+      "  00 00 00 00\n"
+  );
+  CHECK_TRACE_COUNT("error", 0);
+}
+
+void test_global_variable_disp32_with_call() {
+  transform(
+      "== code 0x1\n"
+      "foo:\n"
+      "  e8/call bar/disp32\n"
+      "bar:\n"
+  );
+  CHECK_TRACE_COUNT("error", 0);
+}
+
+string to_full_string(const line& in) {
+  ostringstream out;
+  for (int i = 0;  i < SIZE(in.words);  ++i) {
+    if (i > 0) out << ' ';
+    out << in.words.at(i).data;
+    for (int j = 0;  j < SIZE(in.words.at(i).metadata);  ++j)
+      out << '/' << in.words.at(i).metadata.at(j);
+  }
+  return out.str();
+}
diff --git a/linux/bootstrap/038literal_strings.cc b/linux/bootstrap/038literal_strings.cc
new file mode 100644
index 00000000..b0b3c13f
--- /dev/null
+++ b/linux/bootstrap/038literal_strings.cc
@@ -0,0 +1,362 @@
+//: Allow instructions to mention literals directly.
+//:
+//: This layer will transparently move them to the global segment (assumed to
+//: always be the second segment).
+
+void test_transform_literal_string() {
+  run(
+      "== code 0x1\n"
+      "b8/copy  \"test\"/imm32\n"
+      "== data 0x2000\n"  // need an empty segment
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: -- move literal strings to data segment\n"
+      "transform: adding global variable '__subx_global_1' containing \"test\"\n"
+      "transform: line after transform: 'b8 __subx_global_1'\n"
+  );
+}
+
+//: We don't rely on any transforms running in previous layers, but this layer
+//: knows about labels and global variables and will emit them for previous
+//: layers to transform.
+:(after "Begin Transforms")
+Transform.push_back(transform_literal_strings);
+
+:(before "End Globals")
+int Next_auto_global = 1;
+:(before "End Reset")
+Next_auto_global = 1;
+:(code)
+void transform_literal_strings(program& p) {
+  trace(3, "transform") << "-- move literal strings to data segment" << end();
+  if (p.segments.empty()) return;
+  vector<line> new_lines;
+  for (int s = 0;  s < SIZE(p.segments);  ++s) {
+    segment& seg = p.segments.at(s);
+    trace(99, "transform") << "segment '" << seg.name << "'" << end();
+    for (int i = 0;  i < SIZE(seg.lines);  ++i) {
+//?       cerr << seg.name << '/' << i << '\n';
+      line& line = seg.lines.at(i);
+      for (int j = 0;  j < SIZE(line.words);  ++j) {
+        word& curr = line.words.at(j);
+        if (curr.data.at(0) != '"') continue;
+        ostringstream global_name;
+        global_name << "__subx_global_" << Next_auto_global;
+        ++Next_auto_global;
+        add_global_to_data_segment(global_name.str(), curr, new_lines);
+        curr.data = global_name.str();
+      }
+      trace(99, "transform") << "line after transform: '" << data_to_string(line) << "'" << end();
+    }
+  }
+  segment* data = find(p, "data");
+  if (data)
+    data->lines.insert(data->lines.end(), new_lines.begin(), new_lines.end());
+}
+
+void add_global_to_data_segment(const string& name, const word& value, vector<line>& out) {
+  trace(99, "transform") << "adding global variable '" << name << "' containing " << value.data << end();
+  // emit label
+  out.push_back(label(name));
+  // emit size for size-prefixed array
+  out.push_back(line());
+  emit_hex_bytes(out.back(), SIZE(value.data)-/*skip quotes*/2, 4/*bytes*/);
+  // emit data byte by byte
+  out.push_back(line());
+  line& curr = out.back();
+  for (int i = /*skip start quote*/1;  i < SIZE(value.data)-/*skip end quote*/1;  ++i) {
+    char c = value.data.at(i);
+    curr.words.push_back(word());
+    curr.words.back().data = hex_byte_to_string(c);
+    curr.words.back().metadata.push_back(string(1, c));
+  }
+}
+
+//: Within strings, whitespace is significant. So we need to redo our instruction
+//: parsing.
+
+void test_instruction_with_string_literal() {
+  parse_instruction_character_by_character(
+      "a \"abc  def\" z\n"  // two spaces inside string
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: a\n"
+      "parse2: word: \"abc  def\"\n"
+      "parse2: word: z\n"
+  );
+  // no other words
+  CHECK_TRACE_COUNT("parse2", 3);
+}
+
+void test_string_literal_in_data_segment() {
+  run(
+      "== code 0x1\n"
+      "b8/copy  X/imm32\n"
+      "== data 0x2000\n"
+      "X:\n"
+      "\"test\"/imm32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "transform: -- move literal strings to data segment\n"
+      "transform: adding global variable '__subx_global_1' containing \"test\"\n"
+      "transform: line after transform: '__subx_global_1'\n"
+  );
+}
+
+void test_string_literal_with_missing_quote() {
+  Hide_errors = true;
+  run(
+      "== code 0x1\n"
+      "b8/copy  \"test/imm32\n"
+      "== data 0x2000\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "error: unclosed string in: b8/copy  \"test/imm32"
+  );
+}
+
+:(before "End Line Parsing Special-cases(line_data -> l)")
+if (line_data.find('"') != string::npos) {  // can cause false-positives, but we can handle them
+  parse_instruction_character_by_character(line_data, l);
+  continue;
+}
+
+:(code)
+void parse_instruction_character_by_character(const string& line_data, vector<line>& out) {
+  if (line_data.find('\n') != string::npos  && line_data.find('\n') != line_data.size()-1) {
+    raise << "parse_instruction_character_by_character: should receive only a single line\n" << end();
+    return;
+  }
+  // parse literals
+  istringstream in(line_data);
+  in >> std::noskipws;
+  line result;
+  result.original = line_data;
+  // add tokens (words or strings) one by one
+  while (has_data(in)) {
+    skip_whitespace(in);
+    if (!has_data(in)) break;
+    char c = in.get();
+    if (c == '#') break;  // comment; drop rest of line
+    if (c == ':') break;  // line metadata; skip for now
+    if (c == '.') {
+      if (!has_data(in)) break;  // comment token at end of line
+      if (isspace(in.peek()))
+        continue;  // '.' followed by space is comment token; skip
+    }
+    result.words.push_back(word());
+    if (c == '"') {
+      // string literal; slurp everything between quotes into data
+      ostringstream d;
+      d << c;
+      while (true) {
+        if (!has_data(in)) {
+          raise << "unclosed string in: " << line_data << end();
+          return;
+        }
+        in >> c;
+        if (c == '\\') {
+          in >> c;
+          if (c == 'n') d << '\n';
+          else if (c == '"') d << '"';
+          else if (c == '\\') d << '\\';
+          else {
+            raise << "parse_instruction_character_by_character: unknown escape sequence '\\" << c << "'\n" << end();
+            return;
+          }
+          continue;
+        } else {
+          d << c;
+        }
+        if (c == '"') break;
+      }
+      result.words.back().data = d.str();
+      result.words.back().original = d.str();
+      // slurp metadata
+      ostringstream m;
+      while (!isspace(in.peek()) && has_data(in)) {  // peek can sometimes trigger eof(), so do it first
+        in >> c;
+        if (c == '/') {
+          if (!m.str().empty()) result.words.back().metadata.push_back(m.str());
+          m.str("");
+        }
+        else {
+          m << c;
+        }
+      }
+      if (!m.str().empty()) result.words.back().metadata.push_back(m.str());
+    }
+    else {
+      // not a string literal; slurp all characters until whitespace
+      ostringstream w;
+      w << c;
+      while (!isspace(in.peek()) && has_data(in)) {  // peek can sometimes trigger eof(), so do it first
+        in >> c;
+        w << c;
+      }
+      parse_word(w.str(), result.words.back());
+    }
+    trace(99, "parse2") << "word: " << to_string(result.words.back()) << end();
+  }
+  if (!result.words.empty())
+    out.push_back(result);
+}
+
+void skip_whitespace(istream& in) {
+  while (has_data(in) && isspace(in.peek())) {
+    in.get();
+  }
+}
+
+void skip_comment(istream& in) {
+  if (has_data(in) && in.peek() == '#') {
+    in.get();
+    while (has_data(in) && in.peek() != '\n') in.get();
+  }
+}
+
+line label(string s) {
+  line result;
+  result.words.push_back(word());
+  result.words.back().data = (s+":");
+  return result;
+}
+
+// helper for tests
+void parse_instruction_character_by_character(const string& line_data) {
+  vector<line> out;
+  parse_instruction_character_by_character(line_data, out);
+}
+
+void test_parse2_comment_token_in_middle() {
+  parse_instruction_character_by_character(
+      "a . z\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: a\n"
+      "parse2: word: z\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("parse2: word: .");
+  // no other words
+  CHECK_TRACE_COUNT("parse2", 2);
+}
+
+void test_parse2_word_starting_with_dot() {
+  parse_instruction_character_by_character(
+      "a .b c\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: a\n"
+      "parse2: word: .b\n"
+      "parse2: word: c\n"
+  );
+}
+
+void test_parse2_comment_token_at_start() {
+  parse_instruction_character_by_character(
+      ". a b\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: a\n"
+      "parse2: word: b\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("parse2: word: .");
+}
+
+void test_parse2_comment_token_at_end() {
+  parse_instruction_character_by_character(
+      "a b .\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: a\n"
+      "parse2: word: b\n"
+  );
+  CHECK_TRACE_DOESNT_CONTAIN("parse2: word: .");
+}
+
+void test_parse2_word_starting_with_dot_at_start() {
+  parse_instruction_character_by_character(
+      ".a b c\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: .a\n"
+      "parse2: word: b\n"
+      "parse2: word: c\n"
+  );
+}
+
+void test_parse2_metadata() {
+  parse_instruction_character_by_character(
+      ".a b/c d\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: .a\n"
+      "parse2: word: b /c\n"
+      "parse2: word: d\n"
+  );
+}
+
+void test_parse2_string_with_metadata() {
+  parse_instruction_character_by_character(
+      "a \"bc  def\"/disp32 g\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: a\n"
+      "parse2: word: \"bc  def\" /disp32\n"
+      "parse2: word: g\n"
+  );
+}
+
+void test_parse2_string_with_metadata_at_end() {
+  parse_instruction_character_by_character(
+      "a \"bc  def\"/disp32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: a\n"
+      "parse2: word: \"bc  def\" /disp32\n"
+  );
+}
+
+void test_parse2_string_with_metadata_at_end_of_line_without_newline() {
+  parse_instruction_character_by_character(
+      "68/push \"test\"/f"  // no newline, which is how calls from parse() will look
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: 68 /push\n"
+      "parse2: word: \"test\" /f\n"
+  );
+}
+
+//: Make sure slashes inside strings don't trigger adding stuff from inside the
+//: string to metadata.
+
+void test_parse2_string_containing_slashes() {
+  parse_instruction_character_by_character(
+      "a \"bc/def\"/disp32\n"
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: \"bc/def\" /disp32\n"
+  );
+}
+
+void test_instruction_with_string_literal_with_escaped_quote() {
+  parse_instruction_character_by_character(
+      "\"a\\\"b\"\n"  // escaped quote inside string
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: \"a\"b\"\n"
+  );
+  // no other words
+  CHECK_TRACE_COUNT("parse2", 1);
+}
+
+void test_instruction_with_string_literal_with_escaped_backslash() {
+  parse_instruction_character_by_character(
+      "\"a\\\\b\"\n"  // escaped backslash inside string
+  );
+  CHECK_TRACE_CONTENTS(
+      "parse2: word: \"a\\b\"\n"
+  );
+  // no other words
+  CHECK_TRACE_COUNT("parse2", 1);
+}
diff --git a/linux/bootstrap/039debug.cc b/linux/bootstrap/039debug.cc
new file mode 100644
index 00000000..411818ff
--- /dev/null
+++ b/linux/bootstrap/039debug.cc
@@ -0,0 +1,175 @@
+//:: Some helpers for debugging.
+
+//: Load the 'map' file generated during 'bootstrap --debug translate' when running
+//: 'bootstrap --trace run'.
+//: (It'll only affect the trace.)
+
+:(before "End Globals")
+map</*address*/uint32_t, string> Symbol_name;  // used only by 'bootstrap run'
+map</*address*/uint32_t, string> Source_line;  // used only by 'bootstrap run'
+:(before "End --trace Settings")
+load_labels();
+load_source_lines();
+:(code)
+void load_labels() {
+  ifstream fin("labels");
+  if (fin.fail()) return;
+  fin >> std::hex;
+  while (has_data(fin)) {
+    uint32_t addr = 0;
+    fin >> addr;
+    string name;
+    fin >> name;
+    put(Symbol_name, addr, name);
+  }
+}
+
+void load_source_lines() {
+  ifstream fin("source_lines");
+  if (fin.fail()) return;
+  fin >> std::hex;
+  while (has_data(fin)) {
+    uint32_t addr = 0;
+    fin >> addr;
+    string line;
+    getline(fin, line);
+    put(Source_line, addr, hacky_squeeze_out_whitespace(line));
+  }
+}
+
+:(after "Run One Instruction")
+if (contains_key(Symbol_name, EIP))
+  trace(Callstack_depth, "run") << "== label " << get(Symbol_name, EIP) << end();
+if (contains_key(Source_line, EIP))
+  trace(Callstack_depth, "run") << "inst: " << get(Source_line, EIP) << end();
+else
+  // no source line info; do what you can
+  trace(Callstack_depth, "run") << "inst: " << debug_info(EIP) << end();
+
+:(code)
+string debug_info(uint32_t inst_address) {
+  uint8_t op = read_mem_u8(inst_address);
+  if (op != 0xe8) {
+    ostringstream out;
+    out << HEXBYTE << NUM(op);
+    return out.str();
+  }
+  int32_t offset = read_mem_i32(inst_address+/*skip op*/1);
+  uint32_t next_eip = inst_address+/*inst length*/5+offset;
+  if (contains_key(Symbol_name, next_eip))
+    return "e8/call "+get(Symbol_name, next_eip);
+  ostringstream out;
+  out << "e8/call 0x" << HEXWORD << next_eip;
+  return out.str();
+}
+
+//: If a label starts with '$watch-', make a note of the effective address
+//: computed by the next instruction. Start dumping out its contents to the
+//: trace after every subsequent instruction.
+
+:(after "Run One Instruction")
+dump_watch_points();
+:(before "End Globals")
+map<string, uint32_t> Watch_points;
+:(before "End Reset")
+Watch_points.clear();
+:(code)
+void dump_watch_points() {
+  if (Watch_points.empty()) return;
+  trace(Callstack_depth, "dbg") << "watch points:" << end();
+  for (map<string, uint32_t>::iterator p = Watch_points.begin();  p != Watch_points.end();  ++p)
+    trace(Callstack_depth, "dbg") << "  " << p->first << ": " << HEXWORD << p->second << " -> " << HEXWORD << read_mem_u32(p->second) << end();
+}
+
+:(before "End Globals")
+string Watch_this_effective_address;
+:(after "Run One Instruction")
+Watch_this_effective_address = "";
+if (contains_key(Symbol_name, EIP) && starts_with(get(Symbol_name, EIP), "$watch-"))
+  Watch_this_effective_address = get(Symbol_name, EIP);
+:(after "Found effective_address(addr)")
+if (!Watch_this_effective_address.empty()) {
+  dbg << "now watching " << HEXWORD << addr << " for " << Watch_this_effective_address << end();
+  put(Watch_points, Watch_this_effective_address, addr);
+}
+
+//: If a label starts with '$dump-stack', dump out to the trace n bytes on
+//: either side of ESP.
+
+:(after "Run One Instruction")
+if (contains_key(Symbol_name, EIP) && starts_with(get(Symbol_name, EIP), "$dump-stack")) {
+  dump_stack(64);
+}
+:(code)
+void dump_stack(int n) {
+  uint32_t stack_pointer = Reg[ESP].u;
+  uint32_t start = ((stack_pointer-n)&0xfffffff0);
+  dbg << "stack:" << end();
+  for (uint32_t addr = start;  addr < start+n*2;  addr+=16) {
+    if (addr >= AFTER_STACK) break;
+    ostringstream out;
+    out << HEXWORD << addr << ":";
+    for (int i = 0;  i < 16;  i+=4) {
+      out << ' ';
+      out << ((addr+i == stack_pointer) ? '[' : ' ');
+      out << HEXWORD << read_mem_u32(addr+i);
+      out << ((addr+i == stack_pointer) ? ']' : ' ');
+    }
+    dbg << out.str() << end();
+  }
+}
+
+//: Special label that dumps regions of memory.
+//: Not a general mechanism; by the time you get here you're willing to hack
+//: on the emulator.
+:(after "Run One Instruction")
+if (contains_key(Symbol_name, EIP) && get(Symbol_name, EIP) == "$dump-stream-at-EAX")
+  dump_stream_at(Reg[EAX].u);
+:(code)
+void dump_stream_at(uint32_t stream_start) {
+  int32_t stream_length = read_mem_i32(stream_start + 8);
+  dbg << "stream length: " << std::dec << stream_length << end();
+  for (int i = 0;  i < stream_length + 12;  ++i)
+    dbg << "0x" << HEXWORD << (stream_start+i) << ": " << HEXBYTE << NUM(read_mem_u8(stream_start+i)) << end();
+}
+
+//: helpers
+
+:(code)
+string hacky_squeeze_out_whitespace(const string& s) {
+  // strip whitespace at start
+  string::const_iterator first = s.begin();
+  while (first != s.end() && isspace(*first))
+    ++first;
+  if (first == s.end()) return "";
+
+  // strip whitespace at end
+  string::const_iterator last = --s.end();
+  while (last != s.begin() && isspace(*last))
+    --last;
+  ++last;
+
+  // replace runs of spaces/dots with single space until comment or string
+  // TODO:
+  //   leave alone dots not surrounded by whitespace
+  //   leave alone '#' within word
+  //   leave alone '"' within word
+  //   squeeze spaces after end of string
+  ostringstream out;
+  bool previous_was_space = false;
+  bool in_comment_or_string = false;
+  for (string::const_iterator curr = first;  curr != last;  ++curr) {
+    if (in_comment_or_string)
+      out << *curr;
+    else if (isspace(*curr) || *curr == '.')
+      previous_was_space = true;
+    else {
+      if (previous_was_space)
+        out << ' ';
+      out << *curr;
+      previous_was_space = false;
+      if (*curr == '#' || *curr == '"') in_comment_or_string = true;
+    }
+  }
+  return out.str();
+}
diff --git a/linux/bootstrap/040tests.cc b/linux/bootstrap/040tests.cc
new file mode 100644
index 00000000..0586249b
--- /dev/null
+++ b/linux/bootstrap/040tests.cc
@@ -0,0 +1,95 @@
+//: Automatically aggregate functions starting with 'test-' into a test suite
+//: called 'run-tests'. Running this function will run all tests.
+//:
+//: This is actually SubX's first (trivial) compiler. We generate all the code
+//: needed for the 'run-tests' function.
+//:
+//: By convention, temporary functions needed by tests will start with
+//: '_test-'.
+
+//: We don't rely on any transforms running in previous layers, but this layer
+//: knows about labels and will emit labels for previous layers to transform.
+:(after "Begin Transforms")
+Transform.push_back(create_test_function);
+
+:(code)
+void test_run_test() {
+  Mem.push_back(vma(0xbd000000));  // manually allocate memory
+  Reg[ESP].u = 0xbd000100;
+  run(
+      "== code 0x1\n"  // code segment
+      "main:\n"
+      "  e8/call run-tests/disp32\n"  // 5 bytes
+      "  f4/halt\n"                   // 1 byte
+      "test-foo:\n"  // offset 7
+      "  01 d8\n"  // just some unique instruction: add EBX to EAX
+      "  c3/return\n"
+  );
+  // check that code in test-foo ran (implicitly called by run-tests)
+  CHECK_TRACE_CONTENTS(
+      "run: 0x00000007 opcode: 01\n"
+  );
+}
+
+void create_test_function(program& p) {
+  if (p.segments.empty()) return;
+  segment& code = *find(p, "code");
+  trace(3, "transform") << "-- create 'run-tests'" << end();
+  vector<line> new_insts;
+  for (int i = 0;  i < SIZE(code.lines);  ++i) {
+    line& inst = code.lines.at(i);
+    for (int j = 0;  j < SIZE(inst.words);  ++j) {
+      const word& curr = inst.words.at(j);
+      if (*curr.data.rbegin() != ':') continue;  // not a label
+      if (!starts_with(curr.data, "test-")) continue;
+      string fn = drop_last(curr.data);
+      new_insts.push_back(call(fn));
+    }
+  }
+  if (new_insts.empty()) return;  // no tests found
+  code.lines.push_back(label("run-tests"));
+  code.lines.insert(code.lines.end(), new_insts.begin(), new_insts.end());
+  code.lines.push_back(ret());
+}
+
+string to_string(const segment& s) {
+  ostringstream out;
+  for (int i = 0;  i < SIZE(s.lines);  ++i) {
+    const line& l = s.lines.at(i);
+    for (int j = 0;  j < SIZE(l.words);  ++j) {
+      if (j > 0) out << ' ';
+      out << to_string(l.words.at(j));
+    }
+    out << '\n';
+  }
+  return out.str();
+}
+
+line call(string s) {
+  line result;
+  result.words.push_back(call());
+  result.words.push_back(disp32(s));
+  return result;
+}
+
+word call() {
+  word result;
+  result.data = "e8";
+  result.metadata.push_back("call");
+  return result;
+}
+
+word disp32(string s) {
+  word result;
+  result.data = s;
+  result.metadata.push_back("disp32");
+  return result;
+}
+
+line ret() {
+  line result;
+  result.words.push_back(word());
+  result.words.back().data = "c3";
+  result.words.back().metadata.push_back("return");
+  return result;
+}
diff --git a/linux/bootstrap/README.md b/linux/bootstrap/README.md
new file mode 100644
index 00000000..fdc3213a
--- /dev/null
+++ b/linux/bootstrap/README.md
@@ -0,0 +1,7 @@
+This tool is 2 things:
+
+a) An emulator for SubX, the subset of the 32-bit x86 instruction set used by
+Mu.
+
+b) A second translator for SubX programs that emits identical binaries to the
+self-hosting versions in the parent directory.
diff --git a/linux/bootstrap/bootstrap b/linux/bootstrap/bootstrap
new file mode 100755
index 00000000..b3e6cc60
--- /dev/null
+++ b/linux/bootstrap/bootstrap
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Run SubX VM, first compiling if necessary.
+set -e
+
+$(dirname $0)/build  &&  $(dirname $0)/bootstrap_bin "$@"
diff --git a/linux/bootstrap/build b/linux/bootstrap/build
new file mode 100755
index 00000000..de5b432d
--- /dev/null
+++ b/linux/bootstrap/build
@@ -0,0 +1,105 @@
+#!/bin/sh
+# returns 0 on successful build or nothing to build
+# non-zero exit status only on error during building
+set -e  # stop immediately on error
+
+cd $(dirname $0)
+
+# [0-9]*.cc -> bootstrap.cc -> bootstrap_bin
+# (layers)   |               |
+#          tangle           $CXX
+
+# can also be called with a layer to only build until
+#   $ ./build --until 050
+UNTIL_LAYER=${2:-zzz}
+
+# we use two mechanisms to speed up rebuilds:
+# - older_than: run a command if the output is older than any of the inputs
+# - update: if a command is quick to run, always run it but update the result only on any change
+#
+# avoid combining both mechanisms to generate a single file
+# otherwise you'll see spurious messages about files being updated
+# risk: a file may unnecessarily update without changes, causing unnecessary work downstream
+
+test "$CXX" || export CXX=c++
+test "$CXXFLAGS" || export CXXFLAGS="-g -O3 -std=c++98"  # CI has an ancient version; don't expect recent dialects
+export CXXFLAGS="$CXXFLAGS -Wall -Wextra -fno-strict-aliasing"
+
+# return 1 if $1 is older than _any_ of the remaining args
+older_than() {
+  local target=$1
+  shift
+  if [ ! -e $target ]
+  then
+#?     echo "$target doesn't exist"
+    echo "updating $target" >&2
+    return 0  # success
+  fi
+  local f
+  for f in $*
+  do
+    if [ $f -nt $target ]
+    then
+      echo "updating $target" >&2
+      return 0  # success
+    fi
+  done
+  return 1  # failure
+}
+
+# redirect to $1, unless it's already identical
+update() {
+  if [ ! -e $1 ]
+  then
+    cat > $1
+  else
+    cat > $1.tmp
+    diff -q $1 $1.tmp >/dev/null  &&  rm $1.tmp  ||  mv $1.tmp $1
+  fi
+}
+
+update_cp() {
+  if [ ! -e $2/$1 ]
+  then
+    cp $1 $2
+  elif [ $1 -nt $2/$1 ]
+  then
+    cp $1 $2
+  fi
+}
+
+noisy_cd() {
+  cd $1
+  echo "-- `pwd`" >&2
+}
+
+older_than tools/enumerate tools/enumerate.cc && {
+  $CXX $CXXFLAGS tools/enumerate.cc -o tools/enumerate
+}
+
+older_than tools/tangle tools/tangle.cc && {
+  noisy_cd tools
+    grep -h "^[^ #].*) {" tangle.cc  |sed 's/ {.*/;/'  |update tangle.function_list
+    grep -h "^[[:space:]]*void test_" tangle.cc  |sed 's/^\s*void \(.*\)() {$/\1,/'  |update tangle.test_list
+    grep -h "^\s*void test_" tangle.cc  |sed 's/^\s*void \(.*\)() {.*/"\1",/'  |update tangle.test_name_list
+    $CXX $CXXFLAGS tangle.cc -o tangle
+    ./tangle test
+  noisy_cd ..  # no effect; just to show us returning to the parent directory
+}
+
+LAYERS=$(tools/enumerate --until $UNTIL_LAYER  |grep '.cc$')
+older_than bootstrap.cc $LAYERS tools/enumerate tools/tangle && {
+  # no update here; rely on 'update' calls downstream
+  tools/tangle $LAYERS  > bootstrap.cc
+}
+
+grep -h "^[^[:space:]#].*) {$" bootstrap.cc  |grep -v ":.*("  |sed 's/ {.*/;/'  |update function_list
+grep -h "^\s*void test_" bootstrap.cc  |sed 's/^\s*void \(.*\)() {.*/\1,/'  |update test_list
+grep -h "^\s*void test_" bootstrap.cc  |sed 's/^\s*void \(.*\)() {.*/"\1",/'  |update test_name_list
+
+older_than bootstrap_bin bootstrap.cc *_list && {
+  $CXX $CXXFLAGS bootstrap.cc -o bootstrap_bin
+  echo
+}
+
+exit 0
diff --git a/linux/bootstrap/build_and_test_until b/linux/bootstrap/build_and_test_until
new file mode 100755
index 00000000..6f0782e1
--- /dev/null
+++ b/linux/bootstrap/build_and_test_until
@@ -0,0 +1,18 @@
+#!/bin/sh
+# Run tests for just a subset of layers.
+#
+# Usage:
+#   build_and_test_until [file prefix] [test name]
+# Provide the second arg to run just a single test.
+set -e
+
+# clean previous builds if they were building until a different layer
+touch .until
+PREV_UNTIL=`cat .until`
+if [ "$PREV_UNTIL" != $1 ]
+then
+  ./clean top-level
+  echo $1 > .until
+fi
+
+./build --until $1  &&  ./bootstrap_bin test $2
diff --git a/linux/bootstrap/clean b/linux/bootstrap/clean
new file mode 100755
index 00000000..ebd37d70
--- /dev/null
+++ b/linux/bootstrap/clean
@@ -0,0 +1,7 @@
+#!/bin/sh
+set -e
+
+set -v
+rm -rf bootstrap.cc bootstrap_bin* *_list
+rm -rf .until
+rm -rf tools/enumerate tools/tangle tools/*_list tools/*.dSYM
diff --git a/linux/bootstrap/test_layers b/linux/bootstrap/test_layers
new file mode 100755
index 00000000..eda1150c
--- /dev/null
+++ b/linux/bootstrap/test_layers
@@ -0,0 +1,18 @@
+#!/bin/bash
+# Repeatedly stop building until successive layers, and run all tests built.
+#
+# Assumes .subx files all come after .cc files.
+
+set -e
+
+cd `dirname $0`
+# add C++ files one at a time
+for f in [0-9]*cc
+do
+  echo "=== bootstrap $f"
+  ./build_and_test_until $f
+done
+
+# build everything one last time
+./clean
+./build  # build optimized since we'll be running it repeatedly below
diff --git a/linux/bootstrap/tools/enumerate.cc b/linux/bootstrap/tools/enumerate.cc
new file mode 100644
index 00000000..2777c407
--- /dev/null
+++ b/linux/bootstrap/tools/enumerate.cc
@@ -0,0 +1,26 @@
+#include<assert.h>
+#include<cstdlib>
+#include<dirent.h>
+#include<vector>
+using std::vector;
+#include<string>
+using std::string;
+#include<iostream>
+using std::cout;
+
+int main(int argc, const char* argv[]) {
+  assert(argc == 3);
+  assert(string(argv[1]) == "--until");
+  string last_file(argv[2]);
+
+  dirent** files;
+  int num_files = scandir(".", &files, NULL, alphasort);
+  for (int i = 0; i < num_files; ++i) {
+    string curr_file = files[i]->d_name;
+    if (!isdigit(curr_file.at(0))) continue;
+    if (!last_file.empty() && curr_file > last_file) break;
+    cout << curr_file << '\n';
+  }
+  // don't bother freeing files
+  return 0;
+}
diff --git a/linux/bootstrap/tools/tangle.cc b/linux/bootstrap/tools/tangle.cc
new file mode 100644
index 00000000..c63db5df
--- /dev/null
+++ b/linux/bootstrap/tools/tangle.cc
@@ -0,0 +1,1077 @@
+// Reorder a file based on directives starting with ':(' (tangle directives).
+// Insert #line directives to preserve line numbers in the original.
+// Clear lines starting with '//:' (tangle comments).
+
+#include<assert.h>
+#include<cstdlib>
+#include<cstring>
+
+#include<vector>
+using std::vector;
+#include<list>
+using std::list;
+#include<utility>
+using std::pair;
+
+#include<string>
+using std::string;
+
+#include<iostream>
+using std::istream;
+using std::ostream;
+using std::cin;
+using std::cout;
+using std::cerr;
+
+#include<sstream>
+using std::istringstream;
+using std::ostringstream;
+
+#include<fstream>
+using std::ifstream;
+
+#include <locale>
+using std::isspace;  // unicode-aware
+
+//// Core data structures
+
+struct Line {
+  string filename;
+  size_t line_number;
+  string contents;
+  Line() :line_number(0) {}
+  Line(const string& text) :line_number(0) {
+    contents = text;
+  }
+  Line(const string& text, const string& f, const size_t& l) {
+    contents = text;
+    filename = f;
+    line_number = l;
+  }
+  Line(const string& text, const Line& origin) {
+    contents = text;
+    filename = origin.filename;
+    line_number = origin.line_number;
+  }
+};
+
+// Emit a list of line contents, inserting directives just at discontinuities.
+// Needs to be a macro because 'out' can have the side effect of creating a
+// new trace in Trace_stream.
+#define EMIT(lines, out) if (!lines.empty()) { \
+  string last_file = lines.begin()->filename; \
+  size_t last_line = lines.begin()->line_number-1; \
+  out << line_directive(lines.begin()->line_number, lines.begin()->filename) << '\n'; \
+  for (list<Line>::const_iterator p = lines.begin(); p != lines.end(); ++p) { \
+    if (last_file != p->filename || last_line != p->line_number-1) \
+      out << line_directive(p->line_number, p->filename) << '\n'; \
+    out << p->contents << '\n'; \
+    last_file = p->filename; \
+    last_line = p->line_number; \
+  } \
+}
+
+//// Traces and white-box tests
+
+bool Passed = true;
+
+long Num_failures = 0;
+
+#define CHECK(X) \
+  if (!(X)) { \
+    ++Num_failures; \
+    cerr << "\nF " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): " << #X << '\n'; \
+    Passed = false; \
+    return; \
+  }
+
+#define CHECK_EQ(X, Y) \
+  if ((X) != (Y)) { \
+    ++Num_failures; \
+    cerr << "\nF " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): " << #X << " == " << #Y << '\n'; \
+    cerr << "  got " << (X) << '\n';  /* BEWARE: multiple eval */ \
+    Passed = false; \
+    return; \
+  }
+
+bool Hide_warnings = false;
+
+struct trace_stream {
+  vector<pair<string, string> > past_lines;  // [(layer label, line)]
+  // accumulator for current line
+  ostringstream* curr_stream;
+  string curr_layer;
+  trace_stream() :curr_stream(NULL) {}
+  ~trace_stream() { if (curr_stream) delete curr_stream; }
+
+  ostringstream& stream(string layer) {
+    newline();
+    curr_stream = new ostringstream;
+    curr_layer = layer;
+    return *curr_stream;
+  }
+
+  // be sure to call this before messing with curr_stream or curr_layer
+  void newline() {
+    if (!curr_stream) return;
+    string curr_contents = curr_stream->str();
+    curr_contents.erase(curr_contents.find_last_not_of("\r\n")+1);
+    past_lines.push_back(pair<string, string>(curr_layer, curr_contents));
+    delete curr_stream;
+    curr_stream = NULL;
+  }
+
+  string readable_contents(string layer) {  // missing layer = everything
+    newline();
+    ostringstream output;
+    for (vector<pair<string, string> >::iterator p = past_lines.begin(); p != past_lines.end(); ++p)
+      if (layer.empty() || layer == p->first)
+        output << p->first << ": " << with_newline(p->second);
+    return output.str();
+  }
+
+  string with_newline(string s) {
+    if (s[s.size()-1] != '\n') return s+'\n';
+    return s;
+  }
+};
+
+trace_stream* Trace_stream = NULL;
+
+// Top-level helper. IMPORTANT: can't nest.
+#define trace(layer)  !Trace_stream ? cerr /*print nothing*/ : Trace_stream->stream(layer)
+// Warnings should go straight to cerr by default since calls to trace() have
+// some unfriendly constraints (they delay printing, they can't nest)
+#define raise  ((!Trace_stream || !Hide_warnings) ? cerr /*do print*/ : Trace_stream->stream("warn")) << __FILE__ << ":" << __LINE__ << " "
+
+// raise << die exits after printing -- unless Hide_warnings is set.
+struct die {};
+ostream& operator<<(ostream& os, __attribute__((unused)) die) {
+  if (Hide_warnings) return os;
+  os << "dying\n";
+  exit(1);
+}
+
+#define CLEAR_TRACE  delete Trace_stream, Trace_stream = new trace_stream;
+
+#define DUMP(layer)  cerr << Trace_stream->readable_contents(layer)
+
+// Trace_stream is a resource, lease_tracer uses RAII to manage it.
+struct lease_tracer {
+  lease_tracer() { Trace_stream = new trace_stream; }
+  ~lease_tracer() { delete Trace_stream, Trace_stream = NULL; }
+};
+
+#define START_TRACING_UNTIL_END_OF_SCOPE  lease_tracer leased_tracer;
+
+vector<string> split(string s, string delim) {
+  vector<string> result;
+  string::size_type begin=0, end=s.find(delim);
+  while (true) {
+    if (end == string::npos) {
+      result.push_back(string(s, begin, string::npos));
+      break;
+    }
+    result.push_back(string(s, begin, end-begin));
+    begin = end+delim.size();
+    end = s.find(delim, begin);
+  }
+  return result;
+}
+
+bool check_trace_contents(string FUNCTION, string FILE, int LINE, string layer, string expected) {  // empty layer == everything
+  vector<string> expected_lines = split(expected, "\n");
+  size_t curr_expected_line = 0;
+  while (curr_expected_line < expected_lines.size() && expected_lines[curr_expected_line].empty())
+    ++curr_expected_line;
+  if (curr_expected_line == expected_lines.size()) return true;
+  Trace_stream->newline();
+  ostringstream output;
+  for (vector<pair<string, string> >::iterator p = Trace_stream->past_lines.begin(); p != Trace_stream->past_lines.end(); ++p) {
+    if (!layer.empty() && layer != p->first)
+      continue;
+    if (p->second != expected_lines[curr_expected_line])
+      continue;
+    ++curr_expected_line;
+    while (curr_expected_line < expected_lines.size() && expected_lines[curr_expected_line].empty())
+      ++curr_expected_line;
+    if (curr_expected_line == expected_lines.size()) return true;
+  }
+
+  ++Num_failures;
+  cerr << "\nF " << FUNCTION << "(" << FILE << ":" << LINE << "): missing [" << expected_lines[curr_expected_line] << "] in trace:\n";
+  DUMP(layer);
+  Passed = false;
+  return false;
+}
+
+#define CHECK_TRACE_CONTENTS(...)  check_trace_contents(__FUNCTION__, __FILE__, __LINE__, __VA_ARGS__)
+
+int trace_count(string layer, string line) {
+  Trace_stream->newline();
+  long result = 0;
+  for (vector<pair<string, string> >::iterator p = Trace_stream->past_lines.begin(); p != Trace_stream->past_lines.end(); ++p) {
+    if (layer == p->first)
+      if (line == "" || p->second == line)
+        ++result;
+  }
+  return result;
+}
+
+#define CHECK_TRACE_WARNS()  CHECK(trace_count("warn", "") > 0)
+#define CHECK_TRACE_DOESNT_WARN() \
+  if (trace_count("warn") > 0) { \
+    ++Num_failures; \
+    cerr << "\nF " << __FUNCTION__ << "(" << __FILE__ << ":" << __LINE__ << "): unexpected warnings\n"; \
+    DUMP("warn"); \
+    Passed = false; \
+    return; \
+  }
+
+bool trace_doesnt_contain(string layer, string line) {
+  return trace_count(layer, line) == 0;
+}
+
+#define CHECK_TRACE_DOESNT_CONTAIN(...)  CHECK(trace_doesnt_contain(__VA_ARGS__))
+
+// Tests for trace infrastructure
+
+void test_trace_check_compares() {
+  CHECK_TRACE_CONTENTS("test layer", "");
+  trace("test layer") << "foo";
+  CHECK_TRACE_CONTENTS("test layer", "foo");
+}
+
+void test_trace_check_filters_layers() {
+  trace("test layer 1") << "foo";
+  trace("test layer 2") << "bar";
+  CHECK_TRACE_CONTENTS("test layer 1", "foo");
+}
+
+void test_trace_check_ignores_other_lines() {
+  trace("test layer 1") << "foo";
+  trace("test layer 1") << "bar";
+  CHECK_TRACE_CONTENTS("test layer 1", "foo");
+}
+
+void test_trace_check_always_finds_empty_lines() {
+  CHECK_TRACE_CONTENTS("test layer 1", "");
+}
+
+void test_trace_check_treats_empty_layers_as_wildcards() {
+  trace("test layer 1") << "foo";
+  CHECK_TRACE_CONTENTS("", "foo");
+}
+
+void test_trace_check_multiple_lines_at_once() {
+  trace("test layer 1") << "foo";
+  trace("test layer 2") << "bar";
+  CHECK_TRACE_CONTENTS("", "foo\n"
+                           "bar\n");
+}
+
+void test_trace_check_always_finds_empty_lines2() {
+  CHECK_TRACE_CONTENTS("test layer 1", "\n\n\n");
+}
+
+void test_trace_orders_across_layers() {
+  trace("test layer 1") << "foo";
+  trace("test layer 2") << "bar";
+  trace("test layer 1") << "qux";
+  CHECK_TRACE_CONTENTS("", "foo\n"
+                           "bar\n"
+                           "qux\n");
+}
+
+void test_trace_supports_count() {
+  trace("test layer 1") << "foo";
+  trace("test layer 1") << "foo";
+  CHECK_EQ(trace_count("test layer 1", "foo"), 2);
+}
+
+//// helpers
+
+// can't check trace because trace methods call 'split'
+
+void test_split_returns_at_least_one_elem() {
+  vector<string> result = split("", ",");
+  CHECK_EQ(result.size(), 1);
+  CHECK_EQ(result[0], "");
+}
+
+void test_split_returns_entire_input_when_no_delim() {
+  vector<string> result = split("abc", ",");
+  CHECK_EQ(result.size(), 1);
+  CHECK_EQ(result[0], "abc");
+}
+
+void test_split_works() {
+  vector<string> result = split("abc,def", ",");
+  CHECK_EQ(result.size(), 2);
+  CHECK_EQ(result[0], "abc");
+  CHECK_EQ(result[1], "def");
+}
+
+void test_split_works2() {
+  vector<string> result = split("abc,def,ghi", ",");
+  CHECK_EQ(result.size(), 3);
+  CHECK_EQ(result[0], "abc");
+  CHECK_EQ(result[1], "def");
+  CHECK_EQ(result[2], "ghi");
+}
+
+void test_split_handles_multichar_delim() {
+  vector<string> result = split("abc,,def,,ghi", ",,");
+  CHECK_EQ(result.size(), 3);
+  CHECK_EQ(result[0], "abc");
+  CHECK_EQ(result[1], "def");
+  CHECK_EQ(result[2], "ghi");
+}
+
+//// Core program
+
+#include "tangle.function_list"
+
+string line_directive(size_t line_number, string filename) {
+  ostringstream result;
+  if (filename.empty())
+    result << "#line " << line_number;
+  else
+    result << "#line " << line_number << " \"" << filename << '"';
+  return result.str();
+}
+
+string Toplevel = "run";
+
+int main(int argc, const char* argv[]) {
+  if (flag("test", argc, argv))
+    return run_tests();
+  return tangle(argc, argv);
+}
+
+bool flag(const string& flag, int argc, const char* argv[]) {
+  for (int i = 1; i < argc; ++i)
+    if (string(argv[i]) == flag)
+      return true;
+  return false;
+}
+
+void setup() {
+  Hide_warnings = false;
+  Passed = true;
+}
+
+void verify() {
+  Hide_warnings = false;
+  if (!Passed)
+    ;
+  else
+    cerr << ".";
+}
+
+int tangle(int argc, const char* argv[]) {
+  list<Line> result;
+  for (int i = 1; i < argc; ++i) {
+//?     cerr << "new file " << argv[i] << '\n';
+    Toplevel = "run";
+    ifstream in(argv[i]);
+    tangle(in, argv[i], result);
+  }
+
+  EMIT(result, cout);
+  return 0;
+}
+
+void tangle(istream& in, const string& filename, list<Line>& out) {
+  string curr_line;
+  size_t line_number = 1;
+  while (!in.eof()) {
+    getline(in, curr_line);
+    if (starts_with(curr_line, ":(")) {
+      ++line_number;
+      process_next_hunk(in, trim(curr_line), filename, line_number, out);
+      continue;
+    }
+    if (starts_with(curr_line, "//:")) {
+      ++line_number;
+      continue;
+    }
+    out.push_back(Line(curr_line, filename, line_number));
+    ++line_number;
+  }
+
+  // Trace all line contents, inserting directives just at discontinuities.
+  if (!Trace_stream) return;
+  EMIT(out, Trace_stream->stream("tangle"));
+}
+
+// just for tests
+void tangle(istream& in, list<Line>& out) {
+  tangle(in, "", out);
+}
+
+void process_next_hunk(istream& in, const string& directive, const string& filename, size_t& line_number, list<Line>& out) {
+  istringstream directive_stream(directive.substr(2));  // length of ":("
+  string cmd = next_tangle_token(directive_stream);
+
+  // first slurp all lines until next directive
+  list<Line> hunk;
+  {
+    string curr_line;
+    while (!in.eof()) {
+      std::streampos old = in.tellg();
+      getline(in, curr_line);
+      if (starts_with(curr_line, ":(")) {
+        in.seekg(old);
+        break;
+      }
+      if (starts_with(curr_line, "//:")) {
+        // tangle comments
+        ++line_number;
+        continue;
+      }
+      hunk.push_back(Line(curr_line, filename, line_number));
+      ++line_number;
+    }
+  }
+
+  if (cmd == "code") {
+    out.insert(out.end(), hunk.begin(), hunk.end());
+    return;
+  }
+
+  if (cmd == "before" || cmd == "after" || cmd == "replace" || cmd == "replace{}" || cmd == "delete" || cmd == "delete{}") {
+    list<Line>::iterator target = locate_target(out, directive_stream);
+    if (target == out.end()) {
+      raise << "couldn't find target " << directive << '\n' << die();
+      return;
+    }
+
+    indent_all(hunk, target);
+
+    if (cmd == "before") {
+      out.splice(target, hunk);
+    }
+    else if (cmd == "after") {
+      ++target;
+      out.splice(target, hunk);
+    }
+    else if (cmd == "replace" || cmd == "delete") {
+      out.splice(target, hunk);
+      out.erase(target);
+    }
+    else if (cmd == "replace{}" || cmd == "delete{}") {
+      if (find_trim(hunk, ":OLD_CONTENTS") == hunk.end()) {
+        out.splice(target, hunk);
+        out.erase(target, balancing_curly(target));
+      }
+      else {
+        list<Line>::iterator next = balancing_curly(target);
+        list<Line> old_version;
+        old_version.splice(old_version.begin(), out, target, next);
+        old_version.pop_back();  old_version.pop_front();  // contents only please, not surrounding curlies
+
+        list<Line>::iterator new_pos = find_trim(hunk, ":OLD_CONTENTS");
+        indent_all(old_version, new_pos);
+        hunk.splice(new_pos, old_version);
+        hunk.erase(new_pos);
+        out.splice(next, hunk);
+      }
+    }
+    return;
+  }
+
+  raise << "unknown directive " << cmd << '\n' << die();
+}
+
+list<Line>::iterator locate_target(list<Line>& out, istream& directive_stream) {
+  string pat = next_tangle_token(directive_stream);
+  if (pat == "") return out.end();
+
+  string next_token = next_tangle_token(directive_stream);
+  if (next_token == "") {
+    return find_substr(out, pat);
+  }
+  // first way to do nested pattern: pattern 'following' intermediate
+  else if (next_token == "following") {
+    string pat2 = next_tangle_token(directive_stream);
+    if (pat2 == "") return out.end();
+    list<Line>::iterator intermediate = find_substr(out, pat2);
+    if (intermediate == out.end()) return out.end();
+    return find_substr(out, intermediate, pat);
+  }
+  // second way to do nested pattern: intermediate 'then' pattern
+  else if (next_token == "then") {
+    list<Line>::iterator intermediate = find_substr(out, pat);
+    if (intermediate == out.end()) return out.end();
+    string pat2 = next_tangle_token(directive_stream);
+    if (pat2 == "") return out.end();
+    return find_substr(out, intermediate, pat2);
+  }
+  raise << "unknown keyword in directive: " << next_token << '\n';
+  return out.end();
+}
+
+// indent all lines in l like indentation at exemplar
+void indent_all(list<Line>& l, list<Line>::iterator exemplar) {
+  string curr_indent = indent(exemplar->contents);
+  for (list<Line>::iterator p = l.begin(); p != l.end(); ++p)
+    if (!p->contents.empty())
+      p->contents.insert(p->contents.begin(), curr_indent.begin(), curr_indent.end());
+}
+
+string next_tangle_token(istream& in) {
+  in >> std::noskipws;
+  ostringstream out;
+  skip_whitespace(in);
+  if (in.peek() == '"')
+    slurp_tangle_string(in, out);
+  else
+    slurp_word(in, out);
+  return out.str();
+}
+
+void slurp_tangle_string(istream& in, ostream& out) {
+  in.get();
+  char c;
+  while (in >> c) {
+    if (c == '\\') {
+      // skip backslash and save next character unconditionally
+      in >> c;
+      out << c;
+      continue;
+    }
+    if (c == '"') break;
+    out << c;
+  }
+}
+
+void slurp_word(istream& in, ostream& out) {
+  char c;
+  while (in >> c) {
+    if (isspace(c) || c == ')') {
+      in.putback(c);
+      break;
+    }
+    out << c;
+  }
+}
+
+void skip_whitespace(istream& in) {
+  while (isspace(in.peek()))
+    in.get();
+}
+
+list<Line>::iterator balancing_curly(list<Line>::iterator curr) {
+  long open_curlies = 0;
+  do {
+    for (string::iterator p = curr->contents.begin(); p != curr->contents.end(); ++p) {
+      if (*p == '{') ++open_curlies;
+      if (*p == '}') --open_curlies;
+    }
+    ++curr;
+    // no guard so far against unbalanced curly, including inside comments or strings
+  } while (open_curlies != 0);
+  return curr;
+}
+
+list<Line>::iterator find_substr(list<Line>& in, const string& pat) {
+  for (list<Line>::iterator p = in.begin(); p != in.end(); ++p)
+    if (p->contents.find(pat) != string::npos)
+      return p;
+  return in.end();
+}
+
+list<Line>::iterator find_substr(list<Line>& in, list<Line>::iterator p, const string& pat) {
+  for (; p != in.end(); ++p)
+    if (p->contents.find(pat) != string::npos)
+      return p;
+  return in.end();
+}
+
+list<Line>::iterator find_trim(list<Line>& in, const string& pat) {
+  for (list<Line>::iterator p = in.begin(); p != in.end(); ++p)
+    if (trim(p->contents) == pat)
+      return p;
+  return in.end();
+}
+
+string escape(string s) {
+  s = replace_all(s, "\\", "\\\\");
+  s = replace_all(s, "\"", "\\\"");
+  s = replace_all(s, "", "\\n");
+  return s;
+}
+
+string replace_all(string s, const string& a, const string& b) {
+  for (size_t pos = s.find(a); pos != string::npos; pos = s.find(a, pos+b.size()))
+    s = s.replace(pos, a.size(), b);
+  return s;
+}
+
+// does s start with pat, after skipping whitespace?
+// pat can't start with whitespace
+bool starts_with(const string& s, const string& pat) {
+  for (size_t pos = 0; pos < s.size(); ++pos)
+    if (!isspace(s.at(pos)))
+      return s.compare(pos, pat.size(), pat) == 0;
+  return false;
+}
+
+string indent(const string& s) {
+  for (size_t pos = 0; pos < s.size(); ++pos)
+    if (!isspace(s.at(pos)))
+      return s.substr(0, pos);
+  return "";
+}
+
+string strip_indent(const string& s, size_t n) {
+  if (s.empty()) return "";
+  string::const_iterator curr = s.begin();
+  while (curr != s.end() && n > 0 && isspace(*curr)) {
+    ++curr;
+    --n;
+  }
+  return string(curr, s.end());
+}
+
+string trim(const string& s) {
+  string::const_iterator first = s.begin();
+  while (first != s.end() && isspace(*first))
+    ++first;
+  if (first == s.end()) return "";
+
+  string::const_iterator last = --s.end();
+  while (last != s.begin() && isspace(*last))
+    --last;
+  ++last;
+  return string(first, last);
+}
+
+const Line& front(const list<Line>& l) {
+  assert(!l.empty());
+  return l.front();
+}
+
+//// Tests for tangle
+
+void test_tangle() {
+  istringstream in("a\n"
+                   "b\n"
+                   "c\n"
+                   ":(before b)\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "d\n"
+                                 "b\n"
+                                 "c\n");
+}
+
+void test_tangle_with_linenumber() {
+  istringstream in("a\n"
+                   "b\n"
+                   "c\n"
+                   ":(before b)\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "#line 1\n"
+                                 "a\n"
+                                 "#line 5\n"
+                                 "d\n"
+                                 "#line 2\n"
+                                 "b\n"
+                                 "c\n");
+  // no other #line directives
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "#line 3");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "#line 4");
+}
+
+void test_tangle_linenumbers_with_filename() {
+  istringstream in("a\n"
+                   "b\n"
+                   "c\n"
+                   ":(before b)\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, "foo", dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "#line 5 \"foo\"\n"
+                                 "d\n"
+                                 "b\n"
+                                 "c\n");
+}
+
+void test_tangle_line_numbers_with_multiple_filenames() {
+  istringstream in1("a\n"
+                    "b\n"
+                    "c");
+  list<Line> dummy;
+  tangle(in1, "foo", dummy);
+  CLEAR_TRACE;
+  istringstream in2(":(before b)\n"
+                    "d\n");
+  tangle(in2, "bar", dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "#line 2 \"bar\"\n"
+                                 "d\n"
+                                 "#line 2 \"foo\"\n"
+                                 "b\n"
+                                 "c\n");
+}
+
+void test_tangle_linenumbers_with_multiple_directives() {
+  istringstream in1("a\n"
+                    "b\n"
+                    "c");
+  list<Line> dummy;
+  tangle(in1, "foo", dummy);
+  CLEAR_TRACE;
+  istringstream in2(":(before b)\n"
+                    "d\n"
+                    ":(before c)\n"
+                    "e");
+  tangle(in2, "bar", dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "#line 2 \"bar\"\n"
+                                 "d\n"
+                                 "#line 2 \"foo\"\n"
+                                 "b\n"
+                                 "#line 4 \"bar\"\n"
+                                 "e\n"
+                                 "#line 3 \"foo\"\n"
+                                 "c\n");
+}
+
+void test_tangle_with_multiple_filenames_after() {
+  istringstream in1("a\n"
+                    "b\n"
+                    "c");
+  list<Line> dummy;
+  tangle(in1, "foo", dummy);
+  CLEAR_TRACE;
+  istringstream in2(":(after b)\n"
+                    "d\n");
+  tangle(in2, "bar", dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "b\n"
+                                 "#line 2 \"bar\"\n"
+                                 "d\n"
+                                 "#line 3 \"foo\"\n"
+                                 "c\n");
+}
+
+void test_tangle_skip_tanglecomments() {
+  istringstream in("a\n"
+                   "b\n"
+                   "c\n"
+                   "//: 1\n"
+                   "//: 2\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "b\n"
+                                 "c\n"
+                                 "\n"
+                                 "\n"
+                                 "d\n");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "//: 1");
+}
+
+void test_tangle_with_tanglecomments_and_directive() {
+  istringstream in("a\n"
+                   "//: 1\n"
+                   "b\n"
+                   "c\n"
+                   ":(before b)\n"
+                   "d\n"
+                   ":(code)\n"
+                   "e\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "#line 6\n"
+                                 "d\n"
+                                 "#line 3\n"
+                                 "b\n"
+                                 "c\n"
+                                 "#line 8\n"
+                                 "e\n");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "//: 1");
+}
+
+void test_tangle_with_tanglecomments_inside_directive() {
+  istringstream in("a\n"
+                   "//: 1\n"
+                   "b\n"
+                   "c\n"
+                   ":(before b)\n"
+                   "//: abc\n"
+                   "d\n"
+                   ":(code)\n"
+                   "e\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "#line 7\n"
+                                 "d\n"
+                                 "#line 3\n"
+                                 "b\n"
+                                 "c\n"
+                                 "#line 9\n"
+                                 "e\n");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "//: 1");
+}
+
+void test_tangle_with_multiword_directives() {
+  istringstream in("a b\n"
+                   "c\n"
+                   ":(after \"a b\")\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a b\n"
+                                 "d\n"
+                                 "c\n");
+}
+
+void test_tangle_with_quoted_multiword_directives() {
+  istringstream in("a \"b\"\n"
+                   "c\n"
+                   ":(after \"a \\\"b\\\"\")\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a \"b\"\n"
+                                 "d\n"
+                                 "c\n");
+}
+
+void test_tangle2() {
+  istringstream in("a\n"
+                   "b\n"
+                   "c\n"
+                   ":(after b)\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "b\n"
+                                 "d\n"
+                                 "c\n");
+}
+
+void test_tangle_at_end() {
+  istringstream in("a\n"
+                   "b\n"
+                   "c\n"
+                   ":(after c)\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "b\n"
+                                 "c\n"
+                                 "d\n");
+}
+
+void test_tangle_indents_hunks_correctly() {
+  istringstream in("a\n"
+                   "  b\n"
+                   "c\n"
+                   ":(after b)\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "  b\n"
+                                 "  d\n"
+                                 "c\n");
+}
+
+void test_tangle_warns_on_missing_target() {
+  Hide_warnings = true;
+  istringstream in(":(before)\n"
+                   "abc def\n");
+  list<Line> lines;
+  tangle(in, lines);
+  CHECK_TRACE_WARNS();
+}
+
+void test_tangle_warns_on_unknown_target() {
+  Hide_warnings = true;
+  istringstream in(":(before \"foo\")\n"
+                   "abc def\n");
+  list<Line> lines;
+  tangle(in, lines);
+  CHECK_TRACE_WARNS();
+}
+
+void test_tangle_delete_range_of_lines() {
+  istringstream in("a\n"
+                   "b {\n"
+                   "c\n"
+                   "}\n"
+                   ":(delete{} \"b\")\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "b");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "c");
+}
+
+void test_tangle_replace() {
+  istringstream in("a\n"
+                   "b\n"
+                   "c\n"
+                   ":(replace b)\n"
+                   "d\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "d\n"
+                                 "c\n");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "b");
+}
+
+void test_tangle_replace_range_of_lines() {
+  istringstream in("a\n"
+                   "b {\n"
+                   "c\n"
+                   "}\n"
+                   ":(replace{} \"b\")\n"
+                   "d\n"
+                   "e\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "d\n"
+                                 "e\n");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "b {");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "c");
+}
+
+void test_tangle_replace_tracks_old_lines() {
+  istringstream in("a\n"
+                   "b {\n"
+                   "c\n"
+                   "}\n"
+                   ":(replace{} \"b\")\n"
+                   "d\n"
+                   ":OLD_CONTENTS\n"
+                   "e\n");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "d\n"
+                                 "c\n"
+                                 "e\n");
+  CHECK_TRACE_DOESNT_CONTAIN("tangle", "b {");
+}
+
+void test_tangle_nested_patterns() {
+  istringstream in("a\n"
+                   "c\n"
+                   "b\n"
+                   "c\n"
+                   "d\n"
+                   ":(after \"b\" then \"c\")\n"
+                   "e");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "c\n"
+                                 "b\n"
+                                 "c\n"
+                                 "e\n"
+                                 "d\n");
+}
+
+void test_tangle_nested_patterns2() {
+  istringstream in("a\n"
+                   "c\n"
+                   "b\n"
+                   "c\n"
+                   "d\n"
+                   ":(after \"c\" following \"b\")\n"
+                   "e");
+  list<Line> dummy;
+  tangle(in, dummy);
+  CHECK_TRACE_CONTENTS("tangle", "a\n"
+                                 "c\n"
+                                 "b\n"
+                                 "c\n"
+                                 "e\n"
+                                 "d\n");
+}
+
+// todo: include line numbers in tangle errors
+
+void test_trim() {
+  CHECK_EQ(trim(""), "");
+  CHECK_EQ(trim(" "), "");
+  CHECK_EQ(trim("  "), "");
+  CHECK_EQ(trim("a"), "a");
+  CHECK_EQ(trim(" a"), "a");
+  CHECK_EQ(trim("  a"), "a");
+  CHECK_EQ(trim("  ab"), "ab");
+  CHECK_EQ(trim("a "), "a");
+  CHECK_EQ(trim("a  "), "a");
+  CHECK_EQ(trim("ab  "), "ab");
+  CHECK_EQ(trim(" a "), "a");
+  CHECK_EQ(trim("  a  "), "a");
+  CHECK_EQ(trim("  ab  "), "ab");
+}
+
+void test_strip_indent() {
+  CHECK_EQ(strip_indent("", 0), "");
+  CHECK_EQ(strip_indent("", 1), "");
+  CHECK_EQ(strip_indent("", 3), "");
+  CHECK_EQ(strip_indent(" ", 0), " ");
+  CHECK_EQ(strip_indent(" a", 0), " a");
+  CHECK_EQ(strip_indent(" ", 1), "");
+  CHECK_EQ(strip_indent(" a", 1), "a");
+  CHECK_EQ(strip_indent(" ", 2), "");
+  CHECK_EQ(strip_indent(" a", 2), "a");
+  CHECK_EQ(strip_indent("  ", 0), "  ");
+  CHECK_EQ(strip_indent("  a", 0), "  a");
+  CHECK_EQ(strip_indent("  ", 1), " ");
+  CHECK_EQ(strip_indent("  a", 1), " a");
+  CHECK_EQ(strip_indent("  ", 2), "");
+  CHECK_EQ(strip_indent("  a", 2), "a");
+  CHECK_EQ(strip_indent("  ", 3), "");
+  CHECK_EQ(strip_indent("  a", 3), "a");
+}
+
+//// Test harness
+
+typedef void (*test_fn)(void);
+
+const test_fn Tests[] = {
+  #include "tangle.test_list"  // auto-generated; see 'build*' scripts
+};
+
+// Names for each element of the 'Tests' global, respectively.
+const string Test_names[] = {
+  #include "tangle.test_name_list"  // auto-generated; see 'build*' scripts
+};
+
+int run_tests() {
+  for (unsigned long i=0; i < sizeof(Tests)/sizeof(Tests[0]); ++i) {
+//?     cerr << "running " << Test_names[i] << '\n';
+    START_TRACING_UNTIL_END_OF_SCOPE;
+    setup();
+    (*Tests[i])();
+    verify();
+  }
+
+  cerr << '\n';
+  if (Num_failures > 0)
+    cerr << Num_failures << " failure"
+         << (Num_failures > 1 ? "s" : "")
+         << '\n';
+  return Num_failures;
+}
diff --git a/linux/bootstrap/tools/tangle.readme.md b/linux/bootstrap/tools/tangle.readme.md
new file mode 100644
index 00000000..be61d40e
--- /dev/null
+++ b/linux/bootstrap/tools/tangle.readme.md
@@ -0,0 +1,112 @@
+[Literate Programming](https://en.wikipedia.org/wiki/Literate_programming)
+tool to convert Mu's layers into compilable form.
+
+Mu's tangling directives differ from Knuth's classic implementation. The
+classical approach starts out with labeled subsystems that are initially
+empty, and adds code to them using two major directives:
+
+```
+<name> ≡
+<code>
+```
+
+```
+<name> +≡
+<code>
+```
+
+_(`<code>` can span multiple lines.)_
+
+This approach is best suited for top-down exposition.
+
+On the other hand, Mu's tangling directives are better suited for a cleaned-up
+history of a codebase. Subsystems start out with a simple skeleton of the core
+of the program. Later versions then tell a story of the evolution of the
+program, with each version colocating all the code related to new features.
+
+Read more:
+* http://akkartik.name/post/wart-layers
+* http://akkartik.name/post/literate-programming
+* https://github.com/akkartik/mu/blob/master/000organization.cc
+
+## directives
+
+Add code to a project:
+
+```
+:(code)
+<code>
+```
+
+Insert code before a specific line:
+
+```
+:(before <waypoint>)
+<code>
+```
+
+Here `<waypoint>` is a substring matching a single line in the codebase. (We
+never use regular expressions.) Surround the substring in `"` quotes if it
+spans multiple words.
+
+Insert code _after_ a specific line:
+
+```
+:(after <waypoint>)
+<code>
+```
+
+Delete a specific previously-added line (because it's not needed in a newer
+version).
+
+```
+:(delete <line>)
+```
+
+Delete a block of code starting with a given header and surrounded by `{` and
+`}`:
+
+```
+:(delete{} <header>)
+```
+
+_(Caveat: doesn't directly support C's `do`..`while` loops.)_
+
+Replace a specific line with new code:
+
+```
+:(replace <line>)
+<code>
+```
+
+This is identical to:
+```
+:(before <line>)
+<code>
+:(delete <line>)
+```
+_(Assuming `<code>` did not insert a new line matching the substring `<line>`.)_
+
+Replace a block of code with another:
+
+```
+:(replace{} <header>)
+<code>
+```
+
+Insert code before or after a substring pattern that isn't quite a unique
+waypoint in the whole codebase:
+
+```
+:(before <line> following <waypoint>)
+<code>
+:(after <line> following <waypoint>)
+<code>
+```
+
+```
+:(before <waypoint> then <line>)
+<code>
+:(after <waypoint> then <line>)
+<code>
+```
diff --git a/linux/braces b/linux/braces
new file mode 100755
index 00000000..934cf0e9
--- /dev/null
+++ b/linux/braces
Binary files differdiff --git a/linux/braces.subx b/linux/braces.subx
new file mode 100644
index 00000000..d6b8f0f4
--- /dev/null
+++ b/linux/braces.subx
@@ -0,0 +1,359 @@
+# Structured control flow using break/loop rather than jump.
+#
+# To run (on Linux):
+#   $ ./translate_subx init.linux [012]*.subx apps/subx-params.subx apps/braces.subx
+#   $ mv a.elf apps/braces
+#
+# Example 1:
+#   $ cat x.subx
+#   {
+#     7c/jump-if-< break/disp8
+#     74/jump-if-= loop/disp8
+#   }
+#   $ cat x.subx |apps/braces
+#   _loop1:
+#     7c/jump-if-< _break1/disp8
+#     74/jump-if-= _loop1/disp8
+#   _break1:
+#
+# Example 2:
+#   $ cat x.subx
+#   {
+#     7c/jump-if-< break/disp8
+#   }
+#   {
+#     74/jump-if-= loop/disp8
+#   }
+#   $ cat x.subx |apps/braces
+#   _loop1:
+#     7c/jump-if-< _break1/disp8
+#   _break1:
+#   _loop2:
+#     74/jump-if-= _loop2/disp8
+#   _break2:
+#
+# Example 3:
+#   $ cat x.subx
+#   {
+#     {
+#       74/jump-if-= loop/disp8
+#     }
+#     7c/jump-if-< loop/disp8
+#   }
+#   $ cat x.subx |apps/braces
+#   _loop1:
+#     _loop2:
+#       74/jump-if-= _loop2/disp8
+#     _break2:
+#     7c/jump-if-< _loop1/disp8
+#   _break1:
+
+== code
+
+Entry:  # run tests if necessary, a REPL if not
+    # . prologue
+    89/<- %ebp 4/r32/esp
+    # initialize heap
+    (new-segment *Heap-size Heap)
+    # if (argc <= 1) goto interactive
+    81 7/subop/compare *ebp 1/imm32
+    7e/jump-if-<= $subx-braces-main:interactive/disp8
+    # if (argv[1] != "test")) goto interactive
+    (kernel-string-equal? *(ebp+8) "test")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $subx-braces-main:interactive/disp8
+    #
+    (run-tests)
+    # syscall(exit, *Num-test-failures)
+    8b/-> *Num-test-failures 3/r32/ebx
+    eb/jump $subx-braces-main:end/disp8
+$subx-braces-main:interactive:
+    (subx-braces Stdin Stdout)
+    # syscall(exit, 0)
+    bb/copy-to-ebx 0/imm32
+$subx-braces-main:end:
+    e8/call syscall_exit/disp32
+
+subx-braces:  # in: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode:
+    #   var line: (stream byte 512)
+    #   var label-stack: (stack int 32)  # at most 32 levels of nesting
+    #   var next-label-id: int = 1
+    #   while true
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break                           # end of file
+    #     skip-chars-matching-whitespace(line)
+    #     if line->data[line->read] == '{'
+    #       print(out, "_loop" next-label-id ":\n")
+    #       push(label-stack, next-label-id)
+    #       ++next-label-id
+    #       continue
+    #     if line->data[line->read] == '}'
+    #       var top = pop(label-stack)
+    #       print(out, "_break" top ":\n")
+    #       continue
+    #     while true
+    #       var word-slice: (addr slice) = next-word-or-string(line)
+    #       if slice-empty?(word-slice)                         # end of line
+    #         break
+    #       if slice-starts-with?(word-slice, "#")              # comment
+    #         continue
+    #       if slice-starts-with?(word-slice, "break/")
+    #         var top = top(label-stack)
+    #         print(out, "_break" top)
+    #         word-slice->start += len("break")
+    #       else if slice-starts-with?(word-slice, "loop/")
+    #         var top = top(label-stack)
+    #         print(out, "_loop" top)
+    #         word-slice->start += len("loop")
+    #       print(out, word-slice " ")
+    #     print(out, "\n")
+    #   flush(out)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = in
+    8b/-> *(ebp+8) 6/r32/esi
+    # var line/ecx: (stream byte 512)
+    81 5/subop/subtract %esp 0x200/imm32
+    68/push 0x200/imm32/length
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %ecx 4/r32/esp
+    # var label-stack/edx: (stack int 32)
+    81 5/subop/subtract %esp 0x80/imm32
+    68/push 0x80/imm32/length
+    68/push 0/imm32/top
+    89/<- %edx 4/r32/esp
+    # var next-label-id/ebx: int = 1
+    c7 0/subop/copy %ebx 1/imm32
+    # var word-slice/edi: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %edi 4/r32/esp
+$subx-braces:line-loop:
+    (clear-stream %ecx)
+    (read-line-buffered %esi %ecx)
+$subx-braces:check0:
+    # if (line->write == 0) break
+    81 7/subop/compare *ecx 0/imm32
+    0f 84/jump-if-=  $subx-braces:break/disp32
+    (skip-chars-matching-whitespace %ecx)
+$subx-braces:check-for-curly-open:
+    # if (line->data[line->read] != '{') goto next check
+    # . eax = line->data[line->read]
+    8b/-> *(ecx+4) 0/r32/eax
+    8a/copy-byte *(ecx+eax+0xc) 0/r32/AL
+    81 4/subop/and %eax 0xff/imm32
+    # . if (eax != '{') continue
+    3d/compare-eax-and 0x7b/imm32/open-curly
+    0f 85/jump-if-!= $subx-braces:check-for-curly-closed/disp32
+$subx-braces:emit-curly-open:
+    # print(out, "_loop" next-label-id ":")
+    (write-buffered *(ebp+0xc) "_loop")
+    (write-int32-hex-buffered *(ebp+0xc) %ebx)
+    (write-buffered *(ebp+0xc) ":")
+    # push(label-stack, next-label-id)
+    (push %edx %ebx)
+    # ++next-label-id
+    ff 0/subop/increment %ebx
+    # continue
+    e9/jump  $subx-braces:next-line/disp32
+$subx-braces:check-for-curly-closed:
+    # if (line->data[line->read] != '}') goto next check
+    3d/compare-eax-and 0x7d/imm32/close-curly
+    0f 85/jump-if-= $subx-braces:word-loop/disp32
+$subx-braces:emit-curly-closed:
+    # eax = pop(label-stack)
+    (pop %edx)
+    # print(out, "_break" eax ":")
+    (write-buffered *(ebp+0xc) "_break")
+    (write-int32-hex-buffered *(ebp+0xc) %eax)
+    (write-buffered *(ebp+0xc) ":")
+    # continue
+    e9/jump  $subx-braces:next-line/disp32
+$subx-braces:word-loop:
+    (next-word-or-string %ecx %edi)
+$subx-braces:check1:
+    # if (slice-empty?(word-slice)) break
+    (slice-empty? %edi)
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $subx-braces:next-line/disp32
+$subx-braces:check-for-comment:
+    # if (slice-starts-with?(word-slice, "#")) continue
+    # . eax = *word-slice->start
+    8b/-> *edi 0/r32/eax
+    8a/copy-byte *eax 0/r32/AL
+    81 4/subop/and %eax 0xff/imm32
+    # . if (eax == '#') continue
+    3d/compare-eax-and 0x23/imm32/hash
+    74/jump-if-= $subx-braces:word-loop/disp8
+$subx-braces:check-for-break:
+    # if (!slice-starts-with?(word-slice, "break/")) goto next check
+    # . eax = slice-starts-with?(word-slice, "break/")
+    (slice-starts-with? %edi "break/")
+    # . if (eax == false) goto next check
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $subx-braces:check-for-loop/disp8
+$subx-braces:emit-break:
+    (top %edx)
+    # print(out, "_break" eax)
+    (write-buffered *(ebp+0xc) "_break")
+    (write-int32-hex-buffered *(ebp+0xc) %eax)
+    # word-slice->start += len("break")
+    81 0/subop/add *edi 5/imm32/strlen
+    # emit rest of word as usual
+    eb/jump $subx-braces:emit-word-slice/disp8
+$subx-braces:check-for-loop:
+    # if (!slice-starts-with?(word-slice, "loop/")) emit word
+    # . eax = slice-starts-with?(word-slice, "loop/")
+    (slice-starts-with? %edi "loop/")
+    # . if (eax == false) goto next check
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $subx-braces:emit-word-slice/disp8
+$subx-braces:emit-loop:
+    (top %edx)
+    # print(out, "_loop" eax)
+    (write-buffered *(ebp+0xc) "_loop")
+    (write-int32-hex-buffered *(ebp+0xc) %eax)
+    # word-slice->start += len("loop")
+    81 0/subop/add *edi 4/imm32/strlen
+    # fall through
+$subx-braces:emit-word-slice:
+    # print(out, word-slice " ")
+    (write-slice-buffered *(ebp+0xc) %edi)
+    (write-buffered *(ebp+0xc) Space)
+    # loop to next word
+    e9/jump $subx-braces:word-loop/disp32
+$subx-braces:next-line:
+    # print(out, "\n")
+    (write-buffered *(ebp+0xc) Newline)
+    # loop to next line
+    e9/jump $subx-braces:line-loop/disp32
+$subx-braces:break:
+    (flush *(ebp+0xc))
+$subx-braces:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x29c/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-braces-passes-most-words-through:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream $_test-output-buffered-file->buffer)
+    # test
+    (write _test-input-stream "== abcd 0x1")
+    (subx-braces _test-input-buffered-file _test-output-buffered-file)
+    # check that the line just passed through
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     # }}}
+    (check-stream-equal _test-output-stream "== abcd 0x1 \n" "F - test-subx-braces-passes-most-words-through")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-braces-1:
+    # input:
+    #   {
+    #   ab break/imm32
+    #   cd loop/imm32
+    #   }
+    #
+    # output:
+    #   _loop1:
+    #   ab _break1/imm32
+    #   cd _loop1/imm32
+    #   _break1:
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream $_test-output-buffered-file->buffer)
+    # test
+    (write _test-input-stream "{\nab break/imm32\ncd loop/imm32\n}")
+    (subx-braces _test-input-buffered-file _test-output-buffered-file)
+    # check that the line just passed through
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     # }}}
+    (check-stream-equal _test-output-stream "_loop0x00000001:\nab _break0x00000001/imm32 \ncd _loop0x00000001/imm32 \n_break0x00000001:\n" "F - test-subx-braces-1")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-braces-2:
+    # input:
+    #   {
+    #   {
+    #   ab break/imm32
+    #   }
+    #   cd loop/imm32
+    #   }
+    #
+    # output:
+    #   _loop1:
+    #   _loop2:
+    #   ab _break2/imm32
+    #   _break2:
+    #   cd _loop1/imm32
+    #   _break1:
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream $_test-output-buffered-file->buffer)
+    # test
+    (write _test-input-stream "{\n{\nab break/imm32\n}\ncd loop/imm32\n}")
+    (subx-braces _test-input-buffered-file _test-output-buffered-file)
+    # check that the line just passed through
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     # }}}
+    (check-stream-equal _test-output-stream "_loop0x00000001:\n_loop0x00000002:\nab _break0x00000002/imm32 \n_break0x00000002:\ncd _loop0x00000001/imm32 \n_break0x00000001:\n" "F - test-subx-braces-2")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/browse/README.md b/linux/browse/README.md
new file mode 100644
index 00000000..8f92b584
--- /dev/null
+++ b/linux/browse/README.md
@@ -0,0 +1,21 @@
+Render a subset of Markdown.
+
+To run:
+
+  ```
+  $ ./translate_mu apps/browse.mu
+  $ ./a.elf __text_file__
+  ```
+
+Press 'q' to quit. All other keys scroll down.
+
+## Format restrictions
+
+This is a fairly tiny subset of GitHub-Flavored Markdown. Things supported so
+far:
+
+* Newlines are mostly ignored. Double newlines are rendered (paragraphs).
+  Newlines followed by indentation are rendered.
+* Paragraphs starting with runs of `#` represent headings.
+* Within a line, characters between `*`s or `_`s represent bolded text. No
+  italics.
diff --git a/linux/browse/main.mu b/linux/browse/main.mu
new file mode 100644
index 00000000..5b4f2e06
--- /dev/null
+++ b/linux/browse/main.mu
@@ -0,0 +1,394 @@
+fn main args-on-stack: (addr array addr array byte) -> _/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
+  var len/ecx: int <- length args
+  # if (len(args) <= 1) print usage and exit
+  compare len, 1
+  {
+    break-if->
+    print-string-to-real-screen "usage: browse [filename]\n"
+    print-string-to-real-screen "    or browse test\n"
+    return 1
+  }
+  # if (args[1] == "test") run-tests()
+  var tmp/ecx: (addr addr array byte) <- index args, 1
+  var tmp2/eax: boolean <- string-equal? *tmp, "test"
+  compare tmp2, 0
+  {
+    break-if-=
+    run-tests
+    return 0  # TODO: get at Num-test-failures somehow
+  }
+  # otherwise interactive mode
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
+  var arg/eax: (addr addr array byte) <- index args, 1
+  var filename/eax: (addr array byte) <- copy *arg
+  var file-storage: (handle buffered-file)
+  var file-storage-addr/esi: (addr handle buffered-file) <- address file-storage
+  open filename, 0, file-storage-addr
+  var fs/eax: (addr buffered-file) <- lookup file-storage
+  # if no file, exit
+  {
+    compare fs, 0
+    break-if-!=
+    print-string-to-real-screen "file not found\n"
+    return 1
+  }
+  #
+  interactive fs
+  return 0
+}
+
+fn interactive fs: (addr buffered-file) {
+  enable-screen-grid-mode
+  enable-keyboard-immediate-mode
+  # initialize screen state
+  var paginated-screen-storage: paginated-screen
+  var paginated-screen/eax: (addr paginated-screen) <- address paginated-screen-storage
+  initialize-paginated-screen paginated-screen, 0x40, 2, 5
+  normal-text paginated-screen
+  #
+  {
+    render paginated-screen, fs
+    var key/eax: grapheme <- read-key-from-real-keyboard
+    compare key, 0x71/'q'
+    loop-if-!=
+  }
+  enable-keyboard-type-mode
+  enable-screen-type-mode
+}
+
+fn render screen: (addr paginated-screen), fs: (addr buffered-file) {
+  start-drawing screen
+  render-normal screen, fs
+}
+
+fn test-render-multicolumn-text {
+  # input text
+  var input-storage: (handle buffered-file)
+  var input-ah/eax: (addr handle buffered-file) <- address input-storage
+  populate-buffered-file-containing "abcdefgh", input-ah
+  var in/eax: (addr buffered-file) <- lookup input-storage
+  # output screen
+  var pg: paginated-screen
+  var pg-addr/ecx: (addr paginated-screen) <- address pg
+  initialize-fake-paginated-screen pg-addr, 3/rows, 6/cols, 2/page-width, 1/top-margin, 1/left-margin
+  #
+  render pg-addr, in
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen, 1, "      ", "F - test-render-multicolumn-text/row1"
+  check-screen-row screen, 2, " ab ef", "F - test-render-multicolumn-text/row2"
+  check-screen-row screen, 3, " cd gh", "F - test-render-multicolumn-text/row3"
+}
+
+fn test-render-heading-text {
+  # input text
+  var input-storage: (handle buffered-file)
+  var input-ah/eax: (addr handle buffered-file) <- address input-storage
+  populate-buffered-file-containing "# abc\n\ndef", input-ah
+  var in/eax: (addr buffered-file) <- lookup input-storage
+  # output screen
+  var pg: paginated-screen
+  var pg-addr/ecx: (addr paginated-screen) <- address pg
+  initialize-fake-paginated-screen pg-addr, 8/rows, 6/cols, 5/page-width, 1/top-margin, 1/left-margin
+  #
+  render pg-addr, in
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row          screen,       1, "      ", "F - test-render-heading-text/row1"
+  check-screen-row-in-color screen, 0xa0, 2, " abc  ", "F - test-render-heading-text/heading"
+  check-screen-row          screen,       3, "      ", "F - test-render-heading-text/row3"
+  check-screen-row          screen,       4, " def  ", "F - test-render-heading-text/row4"
+}
+
+fn test-render-bold-text {
+  # input text
+  var input-storage: (handle buffered-file)
+  var input-ah/eax: (addr handle buffered-file) <- address input-storage
+  populate-buffered-file-containing "a *b* c", input-ah
+  var in/eax: (addr buffered-file) <- lookup input-storage
+  # output screen
+  var pg: paginated-screen
+  var pg-addr/ecx: (addr paginated-screen) <- address pg
+  initialize-fake-paginated-screen pg-addr, 8/rows, 6/cols, 5/page-width, 1/top-margin, 1/left-margin
+  #
+  render pg-addr, in
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row         screen, 2, " a b c", "F - test-render-bold-text/text"
+  check-screen-row-in-bold screen, 2, "   b  ", "F - test-render-bold-text/bold"
+}
+
+# terminals don't always support italics, so we'll just always render italics
+# as bold.
+fn test-render-pseudoitalic-text {
+  # input text
+  var input-storage: (handle buffered-file)
+  var input-ah/eax: (addr handle buffered-file) <- address input-storage
+  populate-buffered-file-containing "a _b_ c", input-ah
+  var in/eax: (addr buffered-file) <- lookup input-storage
+  # output screen
+  var pg: paginated-screen
+  var pg-addr/ecx: (addr paginated-screen) <- address pg
+  initialize-fake-paginated-screen pg-addr, 8/rows, 6/cols, 5/page-width, 1/top-margin, 1/left-margin
+  #
+  render pg-addr, in
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row         screen, 2, " a b c", "F - test-render-pseudoitalic-text/text"
+  check-screen-row-in-bold screen, 2, "   b  ", "F - test-render-pseudoitalic-text/bold"
+}
+
+fn test-render-asterisk-in-text {
+  # input text
+  var input-storage: (handle buffered-file)
+  var input-ah/eax: (addr handle buffered-file) <- address input-storage
+  populate-buffered-file-containing "a*b*c", input-ah
+  var in/eax: (addr buffered-file) <- lookup input-storage
+  # output screen
+  var pg: paginated-screen
+  var pg-addr/ecx: (addr paginated-screen) <- address pg
+  initialize-fake-paginated-screen pg-addr, 8/nrows, 6/cols, 5/page-width, 1/top-margin, 1/left-margin
+  #
+  render pg-addr, in
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row         screen, 2, " a*b*c", "F - test-render-bold-text/text"
+  check-screen-row-in-bold screen, 2, "      ", "F - test-render-bold-text/bold"
+}
+
+fn render-normal screen: (addr paginated-screen), fs: (addr buffered-file) {
+  var newline-seen?/esi: boolean <- copy 0/false
+  var start-of-paragraph?/edi: boolean <- copy 1/true
+  var previous-grapheme/ebx: grapheme <- copy 0
+$render-normal:loop: {
+    # if done-drawing?(screen) break
+    var done?/eax: boolean <- done-drawing? screen
+    compare done?, 0/false
+    break-if-!=
+    var c/eax: grapheme <- read-grapheme-buffered fs
+$render-normal:loop-body: {
+      # if (c == EOF) break
+      compare c, 0xffffffff/end-of-file
+      break-if-= $render-normal:loop
+
+      ## if (c == newline) perform some fairly sophisticated parsing for soft newlines
+      compare c, 0xa/newline
+      {
+        break-if-!=
+        # if it's the first newline, buffer it
+        compare newline-seen?, 0
+        {
+          break-if-!=
+          newline-seen? <- copy 1/true
+          break $render-normal:loop-body
+        }
+        # otherwise render two newlines
+        {
+          break-if-=
+          add-grapheme screen, 0xa/newline
+          add-grapheme screen, 0xa/newline
+          newline-seen? <- copy 0/false
+          start-of-paragraph? <- copy 1/true
+          break $render-normal:loop-body
+        }
+      }
+      # if start of paragraph and c == '#', switch to header
+      compare start-of-paragraph?, 0
+      {
+        break-if-=
+        compare c, 0x23/'#'
+        {
+          break-if-!=
+          render-header-line screen, fs
+          newline-seen? <- copy 1/true
+          break $render-normal:loop-body
+        }
+      }
+      # c is not a newline
+      start-of-paragraph? <- copy 0/false
+      # if c is unprintable (particularly a '\r' CR), skip it
+      compare c, 0x20
+      loop-if-< $render-normal:loop
+      # If there's a newline buffered and c is a space, print the buffered
+      # newline (hard newline).
+      # If there's a newline buffered and c is not a newline or space, print a
+      # space (soft newline).
+      compare newline-seen?, 0/false
+$render-normal:flush-buffered-newline: {
+        break-if-=
+        newline-seen? <- copy 0/false
+        {
+          compare c, 0x20
+          break-if-!=
+          add-grapheme screen, 0xa/newline
+          break $render-normal:flush-buffered-newline
+        }
+        add-grapheme screen, 0x20/space
+        # fall through to print c
+      }
+      ## end soft newline support
+
+$render-normal:whitespace-separated-regions: {
+        # if previous-grapheme wasn't whitespace, skip this block
+        {
+          compare previous-grapheme, 0x20/space
+          break-if-=
+          compare previous-grapheme, 0xa/newline
+          break-if-=
+          break $render-normal:whitespace-separated-regions
+        }
+        # if (c == '*') switch to bold
+        compare c, 0x2a/*
+        {
+          break-if-!=
+          start-color-on-paginated-screen screen, 0xec/fg=darkish-grey, 7/bg=white
+          start-bold-on-paginated-screen screen
+            render-until-asterisk screen, fs
+          normal-text screen
+          break $render-normal:loop-body
+        }
+        # if (c == '_') switch to bold
+        compare c, 0x5f/_
+        {
+          break-if-!=
+          start-color-on-paginated-screen screen, 0xec/fg=darkish-grey, 7/bg=white
+          start-bold-on-paginated-screen screen
+            render-until-underscore screen, fs
+          normal-text screen
+          break $render-normal:loop-body
+        }
+      }
+      #
+      add-grapheme screen, c
+    }  # $render-normal:loop-body
+    previous-grapheme <- copy c
+    loop
+  }  # $render-normal:loop
+}
+
+fn render-header-line screen: (addr paginated-screen), fs: (addr buffered-file) {
+$render-header-line:body: {
+  # compute color based on number of '#'s
+  var header-level/esi: int <- copy 1  # caller already grabbed one
+  var c/eax: grapheme <- copy 0
+  {
+    # if done-drawing?(screen) return
+    {
+      var done?/eax: boolean <- done-drawing? screen
+      compare done?, 0/false
+      break-if-!= $render-header-line:body
+    }
+    #
+    c <- read-grapheme-buffered fs
+    # if (c != '#') break
+    compare c, 0x23/'#'
+    break-if-!=
+    #
+    header-level <- increment
+    #
+    loop
+  }
+  start-heading screen, header-level
+  {
+    # if done-drawing?(screen) break
+    {
+      var done?/eax: boolean <- done-drawing? screen
+      compare done?, 0/false
+      break-if-!=
+    }
+    #
+    c <- read-grapheme-buffered fs
+    # if (c == EOF) break
+    compare c, 0xffffffff/end-of-file
+    break-if-=
+    # if (c == newline) break
+    compare c, 0xa/newline
+    break-if-=
+    #
+    add-grapheme screen, c
+    #
+    loop
+  }
+  normal-text screen
+}
+}
+
+# colors for a light background, going from bright to dark (meeting up with bold-text)
+fn start-heading screen: (addr paginated-screen), header-level: int {
+$start-heading:body: {
+  start-bold-on-paginated-screen screen
+  compare header-level, 1
+  {
+    break-if-!=
+    start-color-on-paginated-screen screen, 0xa0, 7
+    break $start-heading:body
+  }
+  compare header-level, 2
+  {
+    break-if-!=
+    start-color-on-paginated-screen screen, 0x7c, 7
+    break $start-heading:body
+  }
+  compare header-level, 3
+  {
+    break-if-!=
+    start-color-on-paginated-screen screen, 0x58, 7
+    break $start-heading:body
+  }
+  compare header-level, 4
+  {
+    break-if-!=
+    start-color-on-paginated-screen screen, 0x34, 7
+    break $start-heading:body
+  }
+  start-color-on-paginated-screen screen, 0xe8, 7
+}
+}
+
+fn render-until-asterisk screen: (addr paginated-screen), fs: (addr buffered-file) {
+  {
+    # if done-drawing?(screen) break
+    var done?/eax: boolean <- done-drawing? screen
+    compare done?, 0/false
+    break-if-!=
+    #
+    var c/eax: grapheme <- read-grapheme-buffered fs
+    # if (c == EOF) break
+    compare c, 0xffffffff/end-of-file
+    break-if-=
+    # if (c == '*') break
+    compare c, 0x2a/'*'
+    break-if-=
+    #
+    add-grapheme screen, c
+    #
+    loop
+  }
+}
+
+fn render-until-underscore screen: (addr paginated-screen), fs: (addr buffered-file) {
+  {
+    # if done-drawing?(screen) break
+    var done?/eax: boolean <- done-drawing? screen
+    compare done?, 0/false
+    break-if-!=
+    #
+    var c/eax: grapheme <- read-grapheme-buffered fs
+    # if (c == EOF) break
+    compare c, 0xffffffff/end-of-file
+    break-if-=
+    # if (c == '_') break
+    compare c, 0x5f/'_'
+    break-if-=
+    #
+    add-grapheme screen, c
+    #
+    loop
+  }
+}
+
+fn normal-text screen: (addr paginated-screen) {
+  reset-formatting-on-paginated-screen screen
+  start-color-on-paginated-screen screen, 0xec/fg=darkish-grey, 7/bg=white
+}
diff --git a/linux/browse/paginated-screen.mu b/linux/browse/paginated-screen.mu
new file mode 100644
index 00000000..f4579d95
--- /dev/null
+++ b/linux/browse/paginated-screen.mu
@@ -0,0 +1,661 @@
+# If a screen is too wide, split it up into a fixed size of pages.
+# We take control of drawing and moving the cursor, and delegate everything else.
+# Never scroll; use the 'done-drawing?' method instead.
+#
+# Example usage:
+#   initialize-paginated-screen
+#   on each frame
+#     start-drawing
+#     while !done-drawing
+#       add-grapheme ...
+
+type paginated-screen {
+  screen: (handle screen)
+  nrows: int  # const
+  ncols: int  # const
+  page-width: int
+  top-margin: int
+  left-margin: int
+  # page bounds
+  toprow: int
+  botrow: int  # (inclusive)
+  leftcol: int
+  rightcol: int  # (exclusive)
+  # current cursor position
+  row: int
+  col: int
+}
+
+fn initialize-paginated-screen _self: (addr paginated-screen), page-width: int, top-margin: int, left-margin: int {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var _screen-addr/eax: (addr screen) <- lookup *screen-ah
+  var screen-addr/edi: (addr screen) <- copy _screen-addr
+  var nrows/eax: int <- copy 0
+  var ncols/ecx: int <- copy 0
+  nrows, ncols <- screen-size screen-addr
+  var dest/edx: (addr int) <- copy 0
+  # self->nrows = nrows
+  dest <- get self, nrows
+  copy-to *dest, nrows
+  # self->ncols = ncols
+  dest <- get self, ncols
+  copy-to *dest, ncols
+  # self->page-width = page-width
+  {
+    var tmp/eax: int <- copy page-width
+    dest <- get self, page-width
+    copy-to *dest, tmp
+  }
+  # self->top-margin = top-margin
+  {
+    var tmp/eax: int <- copy top-margin
+    dest <- get self, top-margin
+    copy-to *dest, tmp
+  }
+  # self->left-margin = left-margin
+  {
+    var tmp/eax: int <- copy left-margin
+    dest <- get self, left-margin
+    copy-to *dest, tmp
+  }
+  # self->toprow = 1 + top-margin
+  {
+    var tmp/eax: int <- copy top-margin
+    dest <- get self, toprow
+    copy-to *dest, 1
+    add-to *dest, tmp
+  }
+  # self->botrow = nrows
+  {
+    dest <- get self, botrow
+    copy-to *dest, nrows
+  }
+  #
+  start-drawing self
+}
+
+fn start-drawing _self: (addr paginated-screen) {
+  var self/esi: (addr paginated-screen) <- copy _self
+  clear-paginated-screen self
+  var tmp/eax: (addr int) <- copy 0
+  var tmp2/ecx: int <- copy 0
+  # self->leftcol = 1 + left-margin
+  tmp <- get self, left-margin
+  tmp2 <- copy *tmp
+  tmp <- get self, leftcol
+  copy-to *tmp, 1
+  add-to *tmp, tmp2
+#?   print-string-to-real-screen "start: left column: "
+#?   print-int32-hex-to-real-screen *tmp
+  # self->rightcol = min(ncols+1, self->leftcol + page-width)
+  # . tmp2 = self->leftcol + page-width
+  tmp <- get self, page-width
+  tmp2 <- copy *tmp
+  tmp <- get self, leftcol
+  tmp2 <- add *tmp
+  # . if (tmp2 > ncols+1) tmp2 = ncols+1
+  {
+    tmp <- get self, ncols
+    compare tmp2, *tmp
+    break-if-<=
+    tmp2 <- copy *tmp
+    tmp2 <- increment
+  }
+  # . self->rightcol = tmp2
+  tmp <- get self, rightcol
+  copy-to *tmp, tmp2
+#?   print-string-to-real-screen "; right column: "
+#?   print-int32-hex-to-real-screen *tmp
+#?   print-string-to-real-screen "\n"
+  # self->row = self->toprow
+  tmp <- get self, toprow
+  tmp2 <- copy *tmp
+  tmp <- get self, row
+  copy-to *tmp, tmp2
+  # self->col = self->leftcol
+  tmp <- get self, leftcol
+  tmp2 <- copy *tmp
+  tmp <- get self, col
+  copy-to *tmp, tmp2
+  #
+  reposition-cursor self
+}
+
+fn done-drawing? _self: (addr paginated-screen) -> _/eax: boolean {
+  # if (self->leftcol == left-margin + 1) return false
+  var self/esi: (addr paginated-screen) <- copy _self
+  var tmp/eax: (addr int) <- get self, left-margin
+  var first-col/ecx: int <- copy *tmp
+  first-col <- increment
+  tmp <- get self, leftcol
+  $done-drawing:first-page?: {
+    compare first-col, *tmp
+    break-if-!=
+    return 0/false
+  }
+  # return self->rightcol > self->ncols + 1
+  tmp <- get self, ncols
+  var max/ecx: int <- copy *tmp
+  max <- increment
+  tmp <- get self, rightcol
+#?   print-string-to-real-screen "done-drawing? "
+#?   print-int32-hex-to-real-screen *tmp
+#?   print-string-to-real-screen " vs "
+#?   print-int32-hex-to-real-screen max
+#?   print-string-to-real-screen "\n"
+  compare *tmp, max
+  {
+    break-if->
+    return 0/false
+  }
+  return 1/true
+}
+
+fn add-grapheme _self: (addr paginated-screen), c: grapheme {
+#?   print-string-to-real-screen "add-grapheme: "
+#?   print-grapheme-to-real-screen c
+#?   print-string-to-real-screen "\n"
+$add-grapheme:body: {
+  var self/esi: (addr paginated-screen) <- copy _self
+  {
+    compare c, 0xa/newline
+    break-if-!=
+    next-line self
+    reposition-cursor self
+    break $add-grapheme:body
+  }
+  # print c
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  print-grapheme screen-addr, c
+  # self->col++
+  var tmp/eax: (addr int) <- get self, col
+  increment *tmp
+  # if (self->col > self->rightcol) next-line(self)
+  var tmp2/ecx: int <- copy *tmp
+  tmp <- get self, rightcol
+  compare tmp2, *tmp
+  {
+    break-if-<
+    next-line self
+    reposition-cursor self
+  }
+}
+}
+
+## tests
+
+fn test-print-grapheme-on-paginated-screen {
+  var pg-on-stack: paginated-screen
+  var pg/eax: (addr paginated-screen) <- address pg-on-stack
+  initialize-fake-paginated-screen pg, 3/rows, 0xa/cols, 0xa/page-width, 0, 0
+  start-drawing pg
+  {
+    var c/ecx: grapheme <- copy 0x61/a
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-grapheme-on-paginated-screen/done"
+  }
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "a", "F - test-print-grapheme-on-paginated-screen"
+}
+
+fn test-print-single-page {
+  var pg-on-stack: paginated-screen
+  var pg/eax: (addr paginated-screen) <- address pg-on-stack
+  initialize-fake-paginated-screen pg, 2/rows, 4/cols, 2/page-width, 0, 0
+  start-drawing pg
+  # pages at columns [1, 3), [3, 5)
+  {
+    var c/ecx: grapheme <- copy 0x61/a
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page/done-1"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x62/b
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page/done-2"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x63/c
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page/done-3"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x64/d
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page/done-4"
+  }
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "ab  ", "F - test-print-single-page/row1"
+  check-screen-row screen-addr, 2, "cd  ", "F - test-print-single-page/row2"
+  # currently it's hard-coded that we avoid printing to the bottom-most row of the screen
+}
+
+fn test-print-single-page-narrower-than-page-width {
+  var pg-on-stack: paginated-screen
+  var pg/eax: (addr paginated-screen) <- address pg-on-stack
+  initialize-fake-paginated-screen pg, 2/rows, 4/cols, 5/page-width, 0, 0
+  start-drawing pg
+  {
+    var c/ecx: grapheme <- copy 0x61/a
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width/done-1"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x62/b
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width/done-2"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x63/c
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width/done-3"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x64/d
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width/done-4"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x65/e
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width/done-5"
+  }
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "abcd", "F - test-print-single-page-narrower-than-page-width/row1"
+  check-screen-row screen-addr, 2, "e   ", "F - test-print-single-page-narrower-than-page-width/row2"
+  # currently it's hard-coded that we avoid printing to the bottom-most row of the screen
+}
+
+fn test-print-single-page-narrower-than-page-width-with-margin {
+  var pg-on-stack: paginated-screen
+  var pg/eax: (addr paginated-screen) <- address pg-on-stack
+  initialize-fake-paginated-screen pg, 2/rows, 4/cols, 5/page-width, 0/top-margin, 1/left-margin
+  start-drawing pg
+  {
+    var c/ecx: grapheme <- copy 0x61/a
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width-with-margin/done-1"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x62/b
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width-with-margin/done-2"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x63/c
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width-with-margin/done-3"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x64/d
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width-with-margin/done-4"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x65/e
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-single-page-narrower-than-page-width-with-margin/done-5"
+  }
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, " abc", "F - test-print-single-page-narrower-than-page-width-with-margin/row1"
+  check-screen-row screen-addr, 2, " de ", "F - test-print-single-page-narrower-than-page-width-with-margin/row2"
+  # currently it's hard-coded that we avoid printing to the bottom-most row of the screen
+}
+
+fn test-print-multiple-pages {
+  var pg-on-stack: paginated-screen
+  var pg/eax: (addr paginated-screen) <- address pg-on-stack
+  initialize-fake-paginated-screen pg, 2/rows, 2/cols, 1/page-width, 0, 0
+  start-drawing pg
+  {
+    var c/ecx: grapheme <- copy 0x61/a
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages/done-1"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x62/b
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages/done-2"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x63/c
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages/done-3"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x64/d
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 1, "F - test-print-multiple-pages/done-4"
+  }
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "ac", "F - test-print-multiple-pages/row1"
+  check-screen-row screen-addr, 2, "bd", "F - test-print-multiple-pages/row2"
+  # currently it's hard-coded that we avoid printing to the bottom-most row of the screen
+}
+
+fn test-print-multiple-pages-2 {
+  var pg-on-stack: paginated-screen
+  var pg/eax: (addr paginated-screen) <- address pg-on-stack
+  initialize-fake-paginated-screen pg, 2/rows, 4/cols, 2/page-width, 0, 0
+  start-drawing pg
+  {
+    var c/ecx: grapheme <- copy 0x61/a
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-2/done-1"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x62/b
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-2/done-2"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x63/c
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-2/done-3"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x64/d
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-2/done-4"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x65/e
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-2/done-5"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x66/f
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-2/done-6"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x67/g
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-2/done-7"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x68/h
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 1, "F - test-print-multiple-pages-2/done-8"
+  }
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "abef", "F - test-print-multiple-pages-2/row1"
+  check-screen-row screen-addr, 2, "cdgh", "F - test-print-multiple-pages-2/row2"
+  # currently it's hard-coded that we avoid printing to the bottom-most row of the screen
+}
+
+fn test-print-multiple-pages-with-margins {
+  var pg-on-stack: paginated-screen
+  var pg/eax: (addr paginated-screen) <- address pg-on-stack
+  initialize-fake-paginated-screen pg, 3/rows, 6/cols, 2/page-width, 1/top-margin, 1/left-margin
+  start-drawing pg
+  {
+    var c/ecx: grapheme <- copy 0x61/a
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-with-margins/grapheme-1"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x62/b
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-with-margins/grapheme-2"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x63/c
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-with-margins/grapheme-3"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x64/d
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-with-margins/grapheme-4"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x65/e
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-with-margins/grapheme-5"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x66/f
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-with-margins/grapheme-6"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x67/g
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 0, "F - test-print-multiple-pages-with-margins/grapheme-7"
+  }
+  {
+    var c/ecx: grapheme <- copy 0x68/h
+    add-grapheme pg, c
+    var done?/eax: boolean <- done-drawing? pg
+    var done/eax: int <- copy done?
+    check-ints-equal done, 1, "F - test-print-multiple-pages-with-margins/grapheme-8"
+  }
+  var screen-ah/eax: (addr handle screen) <- get pg, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "      ", "F - test-print-multiple-pages-with-margins/row1"
+  check-screen-row screen-addr, 2, " ab ef", "F - test-print-multiple-pages-with-margins/row2"
+  check-screen-row screen-addr, 3, " cd gh", "F - test-print-multiple-pages-with-margins/row3"
+  # currently it's hard-coded that we avoid printing to the bottom-most row of the screen
+}
+
+fn initialize-fake-paginated-screen _self: (addr paginated-screen), nrows: int, ncols: int, page-width: int, top-margin: int, left-margin: int {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  allocate screen-ah
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  initialize-screen screen-addr, nrows, ncols
+  initialize-paginated-screen self, page-width, top-margin, left-margin
+}
+
+## simple delegates
+
+fn reposition-cursor _self: (addr paginated-screen) {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var r/ecx: (addr int) <- get self, row
+  var c/edx: (addr int) <- get self, col
+#?   print-string-to-real-screen "reposition cursor: "
+#?   print-int32-hex-to-real-screen *r
+#?   print-string-to-real-screen ", "
+#?   print-int32-hex-to-real-screen *c
+#?   print-string-to-real-screen "\n"
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  move-cursor screen-addr, *r *c
+}
+
+fn clear-paginated-screen _self: (addr paginated-screen) {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  clear-screen screen-addr
+}
+
+fn start-color-on-paginated-screen _self: (addr paginated-screen), fg: int, bg: int {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  start-color screen-addr, fg, bg
+}
+
+fn start-bold-on-paginated-screen _self: (addr paginated-screen) {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  start-bold screen-addr
+}
+
+fn start-underline-on-paginated-screen _self: (addr paginated-screen) {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  start-underline screen-addr
+}
+
+fn start-reverse-video-on-paginated-screen _self: (addr paginated-screen) {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  start-reverse-video screen-addr
+}
+
+fn start-blinking-on-paginated-screen _self: (addr paginated-screen) {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  start-blinking screen-addr
+}
+
+fn reset-formatting-on-paginated-screen _self: (addr paginated-screen) {
+  var self/esi: (addr paginated-screen) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  reset-formatting screen-addr
+}
+
+## helpers
+
+fn next-line _self: (addr paginated-screen) {
+#?   print-string-to-real-screen "next-line\n"
+  var self/esi: (addr paginated-screen) <- copy _self
+  var tmp/eax: (addr int) <- copy 0
+  var tmp2/ecx: int <- copy 0
+  # self->col = self->leftcol
+  tmp <- get self, leftcol
+  tmp2 <- copy *tmp
+  tmp <- get self, col
+  copy-to *tmp, tmp2
+  # self->row++
+  tmp <- get self, row
+  increment *tmp
+#?   print-string-to-real-screen "next-line: row: "
+#?   print-int32-hex-to-real-screen *tmp
+#?   print-string-to-real-screen "\n"
+  # if (self->row > self->botrow) next-page(self)
+  tmp2 <- copy *tmp
+  tmp <- get self, botrow
+  compare tmp2, *tmp
+  {
+    break-if-<=
+    next-page self
+  }
+}
+
+fn next-page _self: (addr paginated-screen) {
+#?   print-string-to-real-screen "next-page\n"
+  var self/esi: (addr paginated-screen) <- copy _self
+  var tmp/eax: (addr int) <- copy 0
+  var tmp2/ecx: int <- copy 0
+#?   # temporary: stop
+#?   tmp <- get self, ncols
+#?   tmp2 <- copy *tmp
+#?   tmp <- get self, rightcol
+#?   copy-to *tmp, tmp2
+  # real: multiple pages
+  # self->leftcol = self->rightcol + left-margin
+  tmp <- get self, rightcol
+  tmp2 <- copy *tmp
+  tmp <- get self, left-margin
+  tmp2 <- add *tmp
+  tmp <- get self, leftcol
+  copy-to *tmp, tmp2
+#?   print-string-to-real-screen "left: "
+#?   print-int32-hex-to-real-screen tmp2
+#?   print-string-to-real-screen "\n"
+  # self->rightcol = self->leftcol + page-width
+  tmp <- get self, page-width
+  tmp2 <- copy *tmp
+  tmp <- get self, leftcol
+  tmp2 <- add *tmp
+  tmp <- get self, rightcol
+  copy-to *tmp, tmp2
+#?   print-string-to-real-screen "right: "
+#?   print-int32-hex-to-real-screen tmp2
+#?   print-string-to-real-screen "\n"
+  # self->row = self->toprow
+  tmp <- get self, toprow
+  tmp2 <- copy *tmp
+  tmp <- get self, row
+  copy-to *tmp, tmp2
+  # self->col = self->leftcol
+  tmp <- get self, leftcol
+  tmp2 <- copy *tmp
+  tmp <- get self, col
+  copy-to *tmp, tmp2
+}
diff --git a/linux/browse/vimrc.vim b/linux/browse/vimrc.vim
new file mode 100644
index 00000000..348fe364
--- /dev/null
+++ b/linux/browse/vimrc.vim
@@ -0,0 +1,2 @@
+" when opening files in this directory, load vimrc from cwd (top-level)
+source vimrc.vim
diff --git a/linux/calls b/linux/calls
new file mode 100755
index 00000000..3279d1a8
--- /dev/null
+++ b/linux/calls
Binary files differdiff --git a/linux/calls.subx b/linux/calls.subx
new file mode 100644
index 00000000..903ae0f2
--- /dev/null
+++ b/linux/calls.subx
@@ -0,0 +1,1876 @@
+# Function calls in a single line.
+#
+# To run (on Linux):
+#   $ ./translate_subx init.linux [012]*.subx apps/subx-params.subx apps/calls.subx
+#   $ mv a.elf apps/calls
+#
+# Example 1:
+#   $ echo '(foo %eax)'                         |  apps/calls
+#   # . (foo %eax)                                      # output has comments
+#   ff 6/subop/push %eax                                # push
+#   e8/call foo/disp32                                  # call
+#   81 0/subop/add %esp 4/imm32                         # undo push
+#
+# Example 2:
+#   $ echo '(foo Var1 *(eax + 4) "blah")'       |  apps/calls
+#   # . (foo Var1 *(eax + 4) "blah")
+#   68/push "blah"/imm32
+#   ff 6/subop/push *(eax + 4)                          # push args in..
+#   68/push Var1/imm32                                  # ..reverse order
+#   e8/call foo/disp32
+#   81 0/subop/add %esp 0xc/imm32                       # undo pushes
+#
+# Calls always begin with '(' as the first non-whitespace on a line.
+
+== code
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/<- %ebp 4/r32/esp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push Heap/imm32
+    ff 6/subop/push *Heap-size
+    # . . call
+    e8/call new-segment/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto run-main
+    81 7/subop/compare *ebp 1/imm32
+    7e/jump-if-<= $subx-calls-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto run-main
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push "test"/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call kernel-string-equal?/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . if (eax == false) goto run-main
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $subx-calls-main:interactive/disp8
+    # run-tests()
+    e8/call run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/-> *Num-test-failures 3/r32/ebx
+    eb/jump $subx-calls-main:end/disp8
+$subx-calls-main:interactive:
+    # - otherwise convert stdin
+    # subx-calls(Stdin, Stdout)
+    # . . push args
+    68/push Stdout/imm32
+    68/push Stdin/imm32
+    # . . call
+    e8/call subx-calls/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # syscall(exit, 0)
+    bb/copy-to-ebx 0/imm32
+$subx-calls-main:end:
+    e8/call syscall_exit/disp32
+
+subx-calls:  # in: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode:
+    #   var line: (stream byte 512)
+    #   var words: (stream slice 16)  # at most function name and 15 args
+    #   while true
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break                           # end of file
+    #     skip-chars-matching(line, ' ')
+    #     if line->data[line->read] != '('
+    #       write-stream-data(out, line)
+    #       continue
+    #     # emit comment
+    #     write-buffered(out, "# . ")
+    #     write-stream-data(out, line)
+    #     # emit code
+    #     ++line->read to skip '('
+    #     clear-stream(words)
+    #     words = parse-line(line)
+    #     emit-call(out, words)
+    #   flush(out)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # var line/esi: (stream byte 512)
+    81 5/subop/subtract %esp 0x200/imm32
+    68/push 0x200/imm32/length
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %esi 4/r32/esp
+    # var words/edx: (stream slice 128)  # 16 rows * 8 bytes/row
+    81 5/subop/subtract %esp 0x80/imm32
+    68/push 0x80/imm32/length
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %edx 4/r32/esp
+$subx-calls:loop:
+    # clear-stream(line)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # read-line-buffered(in, line)
+    # . . push args
+    56/push-esi
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call read-line-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+$subx-calls:check0:
+    # if (line->write == 0) break
+    81 7/subop/compare *esi 0/imm32
+    0f 84/jump-if-= $subx-calls:break/disp32
+    # skip-chars-matching(line, ' ')
+    # . . push args
+    68/push 0x20/imm32/space
+    56/push-esi
+    # . . call
+    e8/call skip-chars-matching/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # if (line->data[line->read] == '(') goto convert-call
+    # . ecx = line->read
+    8b/-> *(esi+4) 1/r32/ecx
+    # . eax = line->data[line->read]
+    31/xor-with %eax 0/r32/eax
+    8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
+    # . if (eax == '(') goto convert-call
+    3d/compare-eax-and 0x28/imm32/open-paren
+    74/jump-if-= $subx-calls:convert-call/disp8
+$subx-calls:pass-through:
+    # write-stream-data(out, line)
+    # . . push args
+    56/push-esi
+    ff 6/subop/push *(ebp+0xc)
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # continue
+    eb/jump $subx-calls:loop/disp8
+$subx-calls:convert-call:
+    # - emit comment
+    # write-buffered(out, "# . ")
+    # . . push args
+    68/push "# . "/imm32
+    ff 6/subop/push *(ebp+0xc)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-stream-data(out, line)
+    # . . push args
+    56/push-esi
+    ff 6/subop/push *(ebp+0xc)
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # - emit code
+    # ++line->read to skip '('
+    ff 0/subop/increment *(esi+4)
+    # clear-stream(words)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # words = parse-line(line)
+    # . . push args
+    52/push-edx
+    56/push-esi
+    # . . call
+    e8/call parse-line/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # emit-call(out, words)
+    # . . push args
+    52/push-edx
+    ff 6/subop/push *(ebp+0xc)
+    # . . call
+    e8/call emit-call/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # loop
+    e9/jump $subx-calls:loop/disp32
+$subx-calls:break:
+    # flush(out)
+    # . . push args
+    ff 6/subop/push *(ebp+0xc)
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+$subx-calls:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x298/imm32  # 0x20c + 0x8c
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-line:  # line: (addr stream byte), words: (addr stream slice)
+    # pseudocode:
+    #   var word-slice: slice
+    #   while true
+    #     word-slice = next-word-string-or-expression-without-metadata(line)
+    #     if slice-empty?(word-slice)
+    #       break                                 # end of line
+    #     write-int(words, word-slice->start)
+    #     write-int(words, word-slice->end)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var word-slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+$parse-line:loop:
+    # word-slice = next-word-string-or-expression-without-metadata(line)
+    # . . push args
+    51/push-ecx
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+$parse-line:check1:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call slice-empty?/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . if (eax != false) break
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $parse-line:end/disp32
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "w: ")
+#?     # . . push args
+#?     68/push "w: "/imm32
+#?     68/push 2/imm32/stderr
+#?     # . . call
+#?     e8/call write/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 8/imm32
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call clear-stream/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 4/imm32
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push Stderr/imm32
+#?     # . . call
+#?     e8/call write-slice-buffered/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 8/imm32
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push Stderr/imm32
+#?     # . . call
+#?     e8/call flush/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 4/imm32
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push "$\n"/imm32
+#?     68/push 2/imm32/stderr
+#?     # . . call
+#?     e8/call write/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 8/imm32
+#?     # }}}
+$parse-line:write-word:
+    # write-int(words, word-slice->start)
+    # . . push args
+    ff 6/subop/push *ecx
+    ff 6/subop/push *(ebp+0xc)
+    # . . call
+    e8/call write-int/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-int(words, word-slice->end)
+    # . . push args
+    ff 6/subop/push *(ecx+4)
+    ff 6/subop/push *(ebp+0xc)
+    # . . call
+    e8/call write-int/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # loop
+    e9/jump $parse-line:loop/disp32
+$parse-line:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-call:  # out: (addr buffered-file), words: (addr stream slice)
+    # pseudocode:
+    #   if (words->write < 8) abort
+    #   curr = &words->data[words->write-8]
+    #   min = words->data
+    #   # emit pushes
+    #   while true
+    #     if (curr <= min) break
+    #     if slice-starts-with?(curr, "%x")    # floating-point register
+    #       write-buffered(out, "81 5/subop/subtract %esp 4/imm32\n")
+    #       write-buffered(out, "f3 0f 11/<- *esp ")
+    #       write-byte-buffered(out, *(curr->start+4))
+    #       write-buffered(out, "/x32\n")
+    #     else if *curr->start in '%' '*'
+    #       write-buffered(out, "ff 6/subop/push ")
+    #       write-slice-buffered(out, curr)
+    #       write-buffered(out, "\n")
+    #     else
+    #       write-buffered(out, "68/push ")
+    #       write-slice-buffered(out, curr)
+    #       write-buffered(out, "/imm32\n")
+    #     curr -= 8
+    #   # emit call
+    #   write-buffered(out, "e8/call ")
+    #   write-slice-buffered(out, curr)
+    #   write-buffered(out, "/disp32\n")
+    #   # emit pops
+    #   write-buffered(out, "81 0/subop/add %esp ")
+    #   write-int32-hex-buffered(out, words->write >> 1 - 4)
+    #   write-buffered(out, "/imm32\n")
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = words
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # if (words->write < 8) abort
+    # . ecx = words->write - 8
+    8b/-> *esi 1/r32/ecx
+    81 5/subop/subtract %ecx 8/imm32
+    0f 8c/jump-if-< $emit-call:error1/disp32
+    # var curr/ecx: (addr slice) = &words->data[words->write-8]
+    8d/copy-address *(esi+ecx+0xc) 1/r32/ecx
+    # var min/edx: (addr byte) = words->data
+    8d/copy-address *(esi+0xc) 2/r32/edx
+    # - emit pushes
+$emit-call:push-loop:
+    # if (curr <= min) break
+    39/compare %ecx 2/r32/edx
+    0f 8e/jump-if-<= $emit-call:call-instruction/disp32
+    # if !slice-starts-with?(curr, "%x") goto next check
+    # . eax = slice-starts-with?(curr, "%x")
+    # . . push args
+    68/push "%x"/imm32
+    51/push-ecx
+    # . . call
+    e8/call slice-starts-with?/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . if (eax != 0) goto next check
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $emit-call:push-int/disp8
+    # emit floating-point push
+    # . write-buffered(out, "81 5/subop/subtract %esp 4/imm32\n")
+    # . . push args
+    68/push "81 5/subop/subtract %esp 4/imm32\n"/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(out, "f3 0f 11/<- *esp ")
+    # . . push args
+    68/push "f3 0f 11/<- *esp "/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-byte-buffered(out, *(curr->start+4))
+    # . . eax = *(curr->start+4)
+    8b/-> *ecx 0/r32/eax
+    8a/copy-byte *(eax+4) 0/r32/eax
+    81 4/subop/and %eax 0xff/imm32
+    # . . push args
+    50/push-eax
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-byte-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(out, "/x32\n")
+    68/push "/x32\n"/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . continue
+    e9/jump $emit-call:next-push/disp32
+$emit-call:push-int:
+    # if (*curr->start in '%' '*') goto push-rm32
+    # . var start/eax: (addr byte) = curr->start
+    8b/-> *ecx 0/r32/eax
+    # . var c/eax: byte = *eax
+    8b/-> *eax 0/r32/eax
+    81 4/subop/and %eax 0xff/imm32
+    # . if (c == '%') goto push-rm32
+    3d/compare-eax-and 0x25/imm32/percent
+    74/jump-if-= $emit-call:push-rm32/disp8
+    # . if (c == '*') goto push-rm32
+    3d/compare-eax-and 0x2a/imm32/asterisk
+    74/jump-if-= $emit-call:push-rm32/disp8
+$emit-call:push-imm32:
+    # write-buffered(out, "68/push ")
+    # . . push args
+    68/push "68/push "/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-slice-buffered(out, curr)
+    # . . push args
+    51/push-ecx
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-slice-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-buffered(out, "/imm32\n")
+    68/push "/imm32\n"/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # continue
+    eb/jump $emit-call:next-push/disp8
+$emit-call:push-rm32:
+    # write-buffered(out, "ff 6/subop/push ")
+    # . . push args
+    68/push "ff 6/subop/push "/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-slice-buffered(out, curr)
+    # . . push args
+    51/push-ecx
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-slice-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-buffered(out, "\n")
+    68/push Newline/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+$emit-call:next-push:
+    # curr -= 8
+    81 5/subop/subtract %ecx 8/imm32
+    # loop
+    e9/jump $emit-call:push-loop/disp32
+$emit-call:call-instruction:
+    # write-buffered(out, "e8/call ")
+    68/push "e8/call "/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-slice-buffered(out, curr)
+    # . . push args
+    51/push-ecx
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-slice-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-buffered(out, "/disp32\n")
+    68/push "/disp32\n"/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+$emit-call:pop-instruction:
+    # write-buffered(out, "81 0/subop/add %esp ")
+    68/push "81 0/subop/add %esp "/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-int32-hex-buffered(out, words->write >> 1 - 4)
+    # . . push args
+    8b/-> *esi 0/r32/eax
+    c1/shift 7/subop/arith-right %eax 1/imm8
+    2d/subtract-from-eax 4/imm32
+    50/push-eax
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-int32-hex-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # write-buffered(out, "/imm32\n")
+    68/push "/imm32\n"/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+$emit-call:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$emit-call:error1:
+    # print(stderr, "error: calls.subx: '()' is not a valid call")
+    # . write-buffered(Stderr, "error: calls.subx: '()' is not a valid call")
+    # . . push args
+    68/push "error: calls.subx: '()' is not a valid call"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . flush(Stderr)
+    # . . push args
+    68/push Stderr/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . syscall(exit, 1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+
+test-subx-calls-passes-most-lines-through:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push _test-output-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . write(_test-input-stream, "== abcd 0x1\n")
+    # . . push args
+    68/push "== abcd 0x1\n"/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # subx-calls(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push _test-output-buffered-file/imm32
+    68/push _test-input-buffered-file/imm32
+    # . . call
+    e8/call subx-calls/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push _test-output-buffered-file/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . check-stream-equal(_test-output-stream, "== abcd 0x1\n", msg)
+    # . . push args
+    68/push "F - test-subx-calls-passes-most-lines-through"/imm32
+    68/push "== abcd 0x1\n"/imm32
+    68/push _test-output-stream/imm32
+    # . . call
+    e8/call check-stream-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-calls-processes-calls:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push _test-output-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . write(_test-input-stream, "(foo %eax)\n")
+    # . . push args
+    68/push "(foo %eax)\n"/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # subx-calls(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push _test-output-buffered-file/imm32
+    68/push _test-input-buffered-file/imm32
+    # . . call
+    e8/call subx-calls/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push _test-output-buffered-file/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push "^"/imm32
+#?     68/push 2/imm32/stderr
+#?     # . . call
+#?     e8/call write/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 8/imm32
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push _test-output-stream/imm32
+#?     68/push 2/imm32/stderr
+#?     # . . call
+#?     e8/call write-stream/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 8/imm32
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push "$\n"/imm32
+#?     68/push 2/imm32/stderr
+#?     # . . call
+#?     e8/call write/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 8/imm32
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push _test-output-stream/imm32
+#?     # . . call
+#?     e8/call rewind-stream/disp32
+#?     # . . discard args
+#?     81 0/subop/add %esp 4/imm32
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "# . (foo %eax)", msg)
+    # . . push args
+    68/push "F - test-subx-calls-processes-calls: comment"/imm32
+    68/push "# . (foo %eax)"/imm32
+    68/push _test-output-stream/imm32
+    # . . call
+    e8/call check-next-stream-line-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . check-next-stream-line-equal(_test-output-stream, "ff 6/subop/push %eax", msg)
+    # . . push args
+    68/push "F - test-subx-calls-processes-calls: arg 0"/imm32
+    68/push "ff 6/subop/push %eax"/imm32
+    68/push _test-output-stream/imm32
+    # . . call
+    e8/call check-next-stream-line-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . check-next-stream-line-equal(_test-output-stream, "e8/call foo/disp32", msg)
+    # . . push args
+    68/push "F - test-subx-calls-processes-calls: call"/imm32
+    68/push "e8/call foo/disp32"/imm32
+    68/push _test-output-stream/imm32
+    # . . call
+    e8/call check-next-stream-line-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . check-next-stream-line-equal(_test-output-stream, "81 0/subop/add %esp 4/imm32", msg)
+    # . . push args
+    68/push "F - test-subx-calls-processes-calls: pops"/imm32
+    68/push "81 0/subop/add %esp 0x00000004/imm32"/imm32
+    68/push _test-output-stream/imm32
+    # . . call
+    e8/call check-next-stream-line-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+next-word-string-or-expression-without-metadata:  # line: (addr stream byte), out: (addr slice)
+    # pseudocode:
+    #   skip-chars-matching(line, ' ')
+    #   if line->read >= line->write              # end of line
+    #     out = {0, 0}
+    #     return
+    #   out->start = &line->data[line->read]
+    #   if line->data[line->read] == '#'          # comment
+    #     out->end = &line->data[line->write]     # skip to end of line
+    #     return
+    #   if line->data[line->read] == '"'          # string literal
+    #     skip-string(line)
+    #     out->end = &line->data[line->read]      # no metadata
+    #     return
+    #   if line->data[line->read] == '*'          # expression
+    #     if line->data[line->read + 1] == ' '
+    #       abort
+    #     if line->data[line->read + 1] == '('
+    #       skip-until-close-paren(line)
+    #       if (line->data[line->read] != ')'
+    #         abort
+    #       ++line->read to skip ')'
+    #     out->end = &line->data[line->read]
+    #     return
+    #   if line->data[line->read] == '('
+    #     abort
+    #   if line->data[line->read] == ')'
+    #     ++line->read to skip ')'
+    #     # make sure there's nothing else of importance
+    #     if line->read >= line->write
+    #       out = {0, 0}
+    #       return
+    #     if line->data[line->read] != ' '
+    #       abort
+    #     skip-chars-matching-whitespace(line)
+    #     if line->read >= line->write
+    #       out = {0, 0}
+    #       return
+    #     if line->data[line->read] == '#'        # only thing permitted after ')' is a comment
+    #       out = {0, 0}
+    #       return
+    #     abort
+    #   # default case: read a word -- but no metadata
+    #   while true
+    #     if line->read >= line->write
+    #       break
+    #     if line->data[line->read] == ' '
+    #       break
+    #     if line->data[line->read] == ')'
+    #       break
+    #     if line->data[line->read] == '/'
+    #       abort
+    #     ++line->read
+    #   out->end = &line->data[line->read]
+    #
+    # registers:
+    #   ecx: often line->read
+    #   eax: often line->data[line->read]
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = line
+    8b/-> *(ebp+8) 6/r32/esi
+    # edi = out
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # skip-chars-matching(line, ' ')
+    # . . push args
+    68/push 0x20/imm32/space
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call skip-chars-matching/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+$next-word-string-or-expression-without-metadata:check0:
+    # if (line->read >= line->write) abort because we didn't encounter a final ')'
+    # . ecx = line->read
+    8b/-> *(esi+4) 1/r32/ecx
+    # . if (ecx >= line->write) abort
+    3b/compare<- *esi 1/r32/ecx
+    0f 8d/jump-if->= $next-word-string-or-expression-without-metadata:error0/disp32
+$next-word-string-or-expression-without-metadata:check-for-comment:
+    # out->start = &line->data[line->read]
+    8d/copy-address *(esi+ecx+0xc) 0/r32/eax
+    89/<- *edi 0/r32/eax
+    # if (line->data[line->read] != '#') goto next check
+    # . var eax: byte = line->data[line->read]
+    31/xor-with %eax 0/r32/eax
+    8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
+    # . if (eax != '#') goto next check
+    3d/compare-eax-and 0x23/imm32/pound
+    75/jump-if-!= $next-word-string-or-expression-without-metadata:check-for-string-literal/disp8
+$next-word-string-or-expression-without-metadata:comment:
+    # out->end = &line->data[line->write]
+    8b/-> *esi 0/r32/eax
+    8d/copy-address *(esi+eax+0xc) 0/r32/eax
+    89/<- *(edi+4) 0/r32/eax
+    # line->read = line->write  # skip rest of line
+    8b/-> *esi 0/r32/eax
+    89/<- *(esi+4) 0/r32/eax
+    # return
+    e9/jump $next-word-string-or-expression-without-metadata:end/disp32
+$next-word-string-or-expression-without-metadata:check-for-string-literal:
+    # if (line->data[line->read] != '"') goto next check
+    3d/compare-eax-and 0x22/imm32/dquote
+    75/jump-if-!= $next-word-string-or-expression-without-metadata:check-for-expression/disp8
+$next-word-string-or-expression-without-metadata:string-literal:
+    # skip-string(line)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call skip-string/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # out->end = &line->data[line->read]
+    8b/-> *(esi+4) 1/r32/ecx
+    8d/copy-address *(esi+ecx+0xc) 0/r32/eax
+    89/<- *(edi+4) 0/r32/eax
+    # return
+    e9/jump $next-word-string-or-expression-without-metadata:end/disp32
+$next-word-string-or-expression-without-metadata:check-for-expression:
+    # if (line->data[line->read] != '*') goto next check
+    3d/compare-eax-and 0x2a/imm32/asterisk
+    75/jump-if-!= $next-word-string-or-expression-without-metadata:check-for-open-paren/disp8
+    # if (line->data[line->read + 1] == ' ') goto error1
+    8a/copy-byte *(esi+ecx+0xd) 0/r32/AL
+    3d/compare-eax-and 0x20/imm32/space
+    0f 84/jump-if-= $next-word-string-or-expression-without-metadata:error1/disp32
+    # if (line->data[line->read + 1] != '(') goto regular-word
+    3d/compare-eax-and 0x28/imm32/open-paren
+    0f 85/jump-if-!= $next-word-string-or-expression-without-metadata:regular-word-without-metadata/disp32
+$next-word-string-or-expression-without-metadata:paren:
+    # skip-until-close-paren(line)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call skip-until-close-paren/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # if (line->data[line->read] != ')') goto error2
+    # . eax = line->data[line->read]
+    8b/-> *(esi+4) 1/r32/ecx
+    8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
+    # . if (eax != ')') goto error2
+    3d/compare-eax-and 0x29/imm32/close-paren
+    0f 85/jump-if-!= $next-word-string-or-expression-without-metadata:error2/disp32
+    # ++line->read to skip ')'
+    ff 0/subop/increment *(esi+4)
+    # out->end = &line->data[line->read]
+    8b/-> *(esi+4) 1/r32/ecx
+    8d/copy-address *(esi+ecx+0xc) 0/r32/eax
+    89/<- *(edi+4) 0/r32/eax
+    # return
+    e9/jump $next-word-string-or-expression-without-metadata:end/disp32
+$next-word-string-or-expression-without-metadata:check-for-open-paren:
+    # if (line->data[line->read] == '(') abort
+    3d/compare-eax-and 0x28/imm32/open-paren
+    0f 84/jump-if-= $next-word-string-or-expression-without-metadata:error4a/disp32
+$next-word-string-or-expression-without-metadata:check-for-end-of-call:
+    # if (line->data[line->read] != ')') goto next check
+    3d/compare-eax-and 0x29/imm32/close-paren
+    75/jump-if-!= $next-word-string-or-expression-without-metadata:regular-word-without-metadata/disp8
+    # ++line->read to skip ')'
+    ff 0/subop/increment *(esi+4)
+    # - error checking: make sure there's nothing else of importance on the line
+    # if (line->read >= line->write) return out = {0, 0}
+    # . ecx = line->read
+    8b/-> *(esi+4) 1/r32/ecx
+    # . if (ecx >= line->write) return {0, 0}
+    3b/compare<- *esi 1/r32/ecx
+    0f 8d/jump-if->= $next-word-string-or-expression-without-metadata:return-eol/disp32
+    # if (line->data[line->read] == '/') goto error3
+    # . eax = line->data[line->read]
+    8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
+    # . if (eax == '/') goto error3
+    3d/compare-eax-and 0x2f/imm32/slash
+    0f 84/jump-if-= $next-word-string-or-expression-without-metadata:error3/disp32
+    # skip-chars-matching-whitespace(line)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call skip-chars-matching-whitespace/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # if (line->read >= line->write) return out = {0, 0}
+    # . ecx = line->read
+    8b/-> *(esi+4) 1/r32/ecx
+    # . if (ecx >= line->write) return {0, 0}
+    3b/compare<- *esi 1/r32/ecx
+    0f 8d/jump-if->= $next-word-string-or-expression-without-metadata:return-eol/disp32
+    # if (line->data[line->read] == '#') return out = {0, 0}
+    # . eax = line->data[line->read]
+    8b/-> *(esi+4) 1/r32/ecx
+    8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
+    # . if (eax == '#') return out = {0, 0}
+    3d/compare-eax-and 0x23/imm32/pound
+    74/jump-if-= $next-word-string-or-expression-without-metadata:return-eol/disp8
+    # otherwise goto error4
+    e9/jump $next-word-string-or-expression-without-metadata:error4/disp32
+$next-word-string-or-expression-without-metadata:regular-word-without-metadata:
+    # if (line->read >= line->write) break
+    # . ecx = line->read
+    8b/-> *(esi+4) 1/r32/ecx
+    # . if (ecx >= line->write) break
+    3b/compare<- *esi 1/r32/ecx
+    7d/jump-if->= $next-word-string-or-expression-without-metadata:regular-word-break/disp8
+    # if (line->data[line->read] == ' ') break
+    # . eax = line->data[line->read]
+    8b/-> *(esi+4) 1/r32/ecx
+    8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
+    # . if (eax == ' ') break
+    3d/compare-eax-and 0x20/imm32/space
+    74/jump-if-= $next-word-string-or-expression-without-metadata:regular-word-break/disp8
+    # if (line->data[line->read] == ')') break
+    3d/compare-eax-and 0x29/imm32/close-paren
+    0f 84/jump-if-= $next-word-string-or-expression-without-metadata:regular-word-break/disp32
+    # if (line->data[line->read] == '/') goto error5
+    3d/compare-eax-and 0x2f/imm32/slash
+    0f 84/jump-if-= $next-word-string-or-expression-without-metadata:error5/disp32
+    # ++line->read
+    ff 0/subop/increment *(esi+4)
+    # loop
+    e9/jump $next-word-string-or-expression-without-metadata:regular-word-without-metadata/disp32
+$next-word-string-or-expression-without-metadata:regular-word-break:
+    # out->end = &line->data[line->read]
+    8b/-> *(esi+4) 1/r32/ecx
+    8d/copy-address *(esi+ecx+0xc) 0/r32/eax
+    89/<- *(edi+4) 0/r32/eax
+    eb/jump $next-word-string-or-expression-without-metadata:end/disp8
+$next-word-string-or-expression-without-metadata:return-eol:
+    # return out = {0, 0}
+    c7 0/subop/copy *edi 0/imm32
+    c7 0/subop/copy *(edi+4) 0/imm32
+$next-word-string-or-expression-without-metadata:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$next-word-string-or-expression-without-metadata:error0:
+    # print(stderr, "error: missing final ')' in '" line "'")
+    # . write-buffered(Stderr, "error: missing final ')' in '")
+    # . . push args
+    68/push "error: missing final ')' in '"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(Stderr, "'")
+    # . . push args
+    68/push "'"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . flush(Stderr)
+    # . . push args
+    68/push Stderr/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . syscall(exit, 1)
+    bb/copy-to-ebx 1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$next-word-string-or-expression-without-metadata:error1:
+    # print(stderr, "error: no space allowed after '*' in '" line "'")
+    # . write-buffered(Stderr, "error: no space allowed after '*' in '")
+    # . . push args
+    68/push "error: no space allowed after '*' in '"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(Stderr, "'")
+    # . . push args
+    68/push "'"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . flush(Stderr)
+    # . . push args
+    68/push Stderr/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . syscall(exit, 1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+
+$next-word-string-or-expression-without-metadata:error2:
+    # print(stderr, "error: *(...) expression must be all on a single line in '" line "'")
+    # . write-buffered(Stderr, "error: *(...) expression must be all on a single line in '")
+    # . . push args
+    68/push "error: *(...) expression must be all on a single line in '"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(Stderr, "'")
+    # . . push args
+    68/push "'"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . flush(Stderr)
+    # . . push args
+    68/push Stderr/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . syscall(exit, 1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+
+$next-word-string-or-expression-without-metadata:error3:
+    # print(stderr, "error: no metadata after calls; just use a comment (in '" line "')")
+    # . write-buffered(Stderr, "error: no metadata after calls; just use a comment (in '")
+    # . . push args
+    68/push "error: no metadata after calls; just use a comment (in '"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(Stderr, "')")
+    # . . push args
+    68/push "')"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . flush(Stderr)
+    # . . push args
+    68/push Stderr/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . syscall(exit, 1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+
+$next-word-string-or-expression-without-metadata:error4a:
+    # print(stderr, "error: unexpected '(' within call in '" line "'")
+    # . write-buffered(Stderr, "error: unexpected '(' within call in '")
+    # . . push args
+    68/push "error: unexpected '(' within call in '"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(Stderr, "'\n")
+    # . . push args
+    68/push "'\n"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . flush(Stderr)
+    # . . push args
+    68/push Stderr/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . syscall(exit, 1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+
+$next-word-string-or-expression-without-metadata:error4:
+    # print(stderr, "error: unexpected text after end of call in '" line "'")
+    # . write-buffered(Stderr, "error: unexpected text after end of call in '")
+    # . . push args
+    68/push "error: unexpected text after end of call in '"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(Stderr, "'")
+    # . . push args
+    68/push "'"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . flush(Stderr)
+    # . . push args
+    68/push Stderr/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . syscall(exit, 1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+
+$next-word-string-or-expression-without-metadata:error5:
+    # print(stderr, "error: no metadata anywhere in calls (in '" line "')")
+    # . write-buffered(Stderr, "error: no metadata anywhere in calls (in '")
+    # . . push args
+    68/push "error: no metadata anywhere in calls (in '"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-stream-data/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . write-buffered(Stderr, "')")
+    # . . push args
+    68/push "')"/imm32
+    68/push Stderr/imm32
+    # . . call
+    e8/call write-buffered/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . flush(Stderr)
+    # . . push args
+    68/push Stderr/imm32
+    # . . call
+    e8/call flush/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # . syscall(exit, 1)
+    bb/copy-to-ebx 1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+
+test-next-word-string-or-expression-without-metadata:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, "  ab")
+    # . . push args
+    68/push "  ab"/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(_test-input-stream->read, 4, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata/updates-stream-read-correctly"/imm32
+    68/push 4/imm32
+    b8/copy-to-eax _test-input-stream/imm32
+    ff 6/subop/push *(eax+4)
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->start - _test-input-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 14, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata: start"/imm32
+    68/push 0xe/imm32
+    # . . push slice->start - _test-input-stream
+    8b/-> *ecx 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end - _test-input-stream->data, 4, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 16, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata: end"/imm32
+    68/push 0x10/imm32
+    # . . push slice->end - _test-input-stream
+    8b/-> *(ecx+4) 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-string-or-expression-without-metadata-returns-whole-comment:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, "  # a")
+    # . . push args
+    68/push "  # a"/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(_test-input-stream->read, 5, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-whole-comment/updates-stream-read-correctly"/imm32
+    68/push 5/imm32
+    b8/copy-to-eax _test-input-stream/imm32
+    ff 6/subop/push *(eax+4)
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->start - _test-input-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 14, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-whole-comment: start"/imm32
+    68/push 0xe/imm32
+    # . . push slice->start - _test-input-stream
+    8b/-> *ecx 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end - _test-input-stream->data, 5, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 17, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-whole-comment: end"/imm32
+    68/push 0x11/imm32
+    # . . push slice->end - _test-input-stream
+    8b/-> *(ecx+4) 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-string-or-expression-without-metadata-returns-string-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, " \"a b\" ")
+    # . . push args
+    68/push " \"a b\" "/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-string-literal: start"/imm32
+    68/push 0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/-> *ecx 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end - _test-input-stream->data, 6, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 18, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-string-literal: end"/imm32
+    68/push 0x12/imm32
+    # . . push slice->end - _test-input-stream
+    8b/-> *(ecx+4) 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-string-or-expression-without-metadata-returns-string-with-escapes:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, " \"a\\\"b\"")
+    # . . push args
+    68/push " \"a\\\"b\""/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-string-with-escapes: start"/imm32
+    68/push 0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/-> *ecx 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end - _test-input-stream->data, 7, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 19, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-string-with-escapes: end"/imm32
+    68/push 0x13/imm32
+    # . . push slice->end - _test-input-stream
+    8b/-> *(ecx+4) 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-string-or-expression-without-metadata-returns-whole-expression:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, " *(a b) ")
+    # . . push args
+    68/push " *(a b) "/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-whole-expression: start"/imm32
+    68/push 0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/-> *ecx 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end - _test-input-stream->data, 7, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 19, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-whole-expression: end"/imm32
+    68/push 0x13/imm32
+    # . . push slice->end - _test-input-stream
+    8b/-> *(ecx+4) 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-string-or-expression-without-metadata-returns-eol-on-trailing-close-paren:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, " ) ")
+    # . . push args
+    68/push " ) "/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(slice->start, 0, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-eol-on-trailing-close-paren: start"/imm32
+    68/push 0/imm32
+    ff 6/subop/push *ecx
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end, 0, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-returns-eol-on-trailing-close-paren: end"/imm32
+    68/push 0/imm32
+    ff 6/subop/push *(ecx+4)
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-string-or-expression-without-metadata-handles-comment-after-trailing-close-paren:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, " ) # abc ")
+    # . . push args
+    68/push " ) # abc "/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(slice->start, 0, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-handles-comment-after-trailing-close-paren: start"/imm32
+    68/push 0/imm32
+    ff 6/subop/push *ecx
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end, 0, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-handles-comment-after-trailing-close-paren: end"/imm32
+    68/push 0/imm32
+    ff 6/subop/push *(ecx+4)
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-string-or-expression-without-metadata-handles-newline-after-trailing-close-paren:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, " )\n")
+    # . . push args
+    68/push " )\n"/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(slice->start, 0, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-handles-newline-after-trailing-close-paren: start"/imm32
+    68/push 0/imm32
+    ff 6/subop/push *ecx
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end, 0, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-handles-newline-after-trailing-close-paren: end"/imm32
+    68/push 0/imm32
+    ff 6/subop/push *(ecx+4)
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-string-or-expression-without-metadata-stops-at-close-paren:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call clear-stream/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # var slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # write(_test-input-stream, " abc) # def")
+    # . . push args
+    68/push " abc) # def"/imm32
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call write/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # next-word-string-or-expression-without-metadata(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push _test-input-stream/imm32
+    # . . call
+    e8/call next-word-string-or-expression-without-metadata/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-stops-at-close-paren: start"/imm32
+    68/push 0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/-> *ecx 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # check-ints-equal(slice->end - _test-input-stream->data, 4, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 16, msg)
+    # . . push args
+    68/push "F - test-next-word-string-or-expression-without-metadata-stops-at-close-paren: end"/imm32
+    68/push 0x10/imm32
+    # . . push slice->end - _test-input-stream
+    8b/-> *(ecx+4) 0/r32/eax
+    81 5/subop/subtract %eax _test-input-stream/imm32
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/crenshaw2-1.subx b/linux/crenshaw2-1.subx
new file mode 100644
index 00000000..f52c9b64
--- /dev/null
+++ b/linux/crenshaw2-1.subx
@@ -0,0 +1,556 @@
+# Port of https://github.com/akkartik/crenshaw/blob/master/tutor2.1.pas
+# which corresponds to the section "single digits" in https://compilers.iecc.com/crenshaw/tutor2.txt
+# except that we support hex digits.
+#
+# To run:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/crenshaw2-1.subx -o apps/crenshaw2-1
+#   $ echo '3'  |./bootstrap run apps/crenshaw2-1
+# Expected output:
+#   # syscall(exit, 3)
+#   bb/copy-to-ebx  3/imm32
+#   b8/copy-to-eax  1/imm32/exit
+#   cd/syscall  0x80/imm8
+#
+# To run the generated output:
+#   $ echo '3'  |./bootstrap run apps/crenshaw2-1 > z1.subx
+#   $ ./bootstrap translate init.linux z1.subx -o z1
+#   $ ./bootstrap run z1
+#   $ echo $?
+#   3
+#
+# Stdin must contain just a single hex digit. Other input will print an error:
+#   $ echo 'xyz'  |./bootstrap run apps/crenshaw2-1
+#   Error: integer expected
+#
+# Names in this file sometimes follow Crenshaw's original rather than my usual
+# naming conventions.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, call 'compile' if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto run-main
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $run-main/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto run-main
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto run-main
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $run-main/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $main:end/disp8
+$run-main:
+    # - otherwise read a program from stdin and emit its translation to stdout
+    # . compile(Stdin, 1/stdout, 2/stderr, ed)
+    # . . push args
+    68/push  0/imm32/exit-descriptor
+    68/push  2/imm32/stderr
+    68/push  1/imm32/stdout
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  compile/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$main:end:
+    e8/call  syscall_exit/disp32
+
+# the main entry point
+compile:  # in: (addr buffered-file), out: fd or (addr stream byte), err: fd or (addr stream byte), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # prime the pump
+    # . Look = get-char(in)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8      .                    # push *(ebp+8)
+    # . . call
+    e8/call  get-char/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var num/ecx: (stream byte 7)
+    # Numbers can be 32 bits or 8 hex bytes long. One of them will be in 'Look', so we need space for 7 bytes.
+    # Sizing the stream just right buys us overflow-handling for free inside 'get-num'.
+    # Add 12 bytes for 'read', 'write' and 'size' fields, for a total of 19 bytes, or 0x13 in hex.
+    # The stack pointer is no longer aligned, so dump_stack() can be misleading past this point.
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x13/imm32        # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # initialize the stream
+    # . num->size = 7
+    c7          0/subop/copy        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           8/disp8         7/imm32           # copy to *(ecx+8)
+    # . clear-stream(num)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read a digit from 'in' into 'num'
+    # . get-num(in, num, err, ed)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    51/push-ecx/num
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8      .                    # push *(ebp+8)
+    # . . call
+    e8/call  get-num/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # render 'num' into the following template on 'out':
+    #   bb/copy-to-ebx  _num_
+    #   b8/copy-to-eax  1/imm32/exit
+    #   cd/syscall  0x80/imm8
+    #
+    # . write(out, "bb/copy-to-ebx  ")
+    # . . push args
+    68/push  "bb/copy-to-ebx  "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-stream(out, num)
+    # . . push args
+    51/push-ecx/num
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(out, Newline)
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(out, "b8/copy-to-eax  1/imm32/exit\n")
+    # . . push args
+    68/push  "b8/copy-to-eax  1/imm32/exit\n"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(out, "cd/syscall  0x80/imm8\n")
+    # . . push args
+    68/push  "cd/syscall  0x80/imm8\n"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$compile:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Read a single digit into 'out'. Abort if there are none, or if there is no
+# space in 'out'.
+# Input comes from the global variable 'Look' (first byte) and the argument
+# 'in' (rest). We leave the next byte from 'in' into 'Look' on exit.
+get-num:  # in: (addr buffered-file), out: (addr stream byte), err: fd or (addr stream byte), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   if (!is-digit?(Look)) expected(ed, err, "integer")
+    #   if out->write >= out->size
+    #     write(err, "Error: too many digits in number\n")
+    #     stop(ed, 1)
+    #   out->data[out->write] = LSB(Look)
+    #   ++out->write
+    #   Look = get-char(in)
+    #
+    # registers:
+    #   in: esi
+    #   out: edi
+    #   out->write: ecx (cached copy; need to keep in sync)
+    #   out->size: edx
+    #   temporaries: eax, ebx
+    # We can't allocate Look to a register because it gets written implicitly in
+    # get-char in each iteration of the loop. (Thereby demonstrating that it's
+    # not the right interface for us. But we'll keep it just to follow Crenshaw.)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # - if (is-digit?(Look)) expected(ed, err, "integer")
+    # . eax = is-digit?(Look)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Look/disp32     .                 # push *Look
+    # . . call
+    e8/call  is-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false)
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $get-num:main/disp8
+    # . expected(ed, err, "integer")
+    # . . push args
+    68/push  "integer"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    # . . call
+    e8/call  expected/disp32  # never returns
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$get-num:main:
+    # - otherwise read a digit
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # read necessary variables to registers
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # ecx = out->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy *edi to ecx
+    # edx = out->size
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(edi+8) to edx
+$get-num:loop:
+    # if (out->write >= out->size) error
+    39/compare                      3/mod/direct    2/rm32/edx    .           .             .           1/r32/ecx   .               .                 # compare edx with ecx
+    7d/jump-if-<  $get-num:stage2/disp8
+    # . error(ed, err, msg)  # TODO: show full number
+    # . . push args
+    68/push  "get-num: too many digits in number"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    # . . call
+    e8/call  error/disp32  # never returns
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$get-num:stage2:
+    # out->data[out->write] = LSB(Look)
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  1/index/ecx   .           3/r32/ebx   0xc/disp8       .                 # copy edi+ecx+12 to ebx
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Look/disp32     .                 # copy *Look to eax
+    88/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at AL to *ebx
+    # ++out->write
+    41/increment-ecx
+    # Look = get-char(in)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  get-char/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$get-num:loop-end:
+    # persist necessary variables from registers
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy ecx to *edi
+$get-num:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-get-num-reads-single-digit:
+    # - check that get-num returns first character if it's a digit
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize 'in'
+    # . write(_test-stream, "3")
+    # . . push args
+    68/push  "3"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'get-num' below
+    # . var ed/eax: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # . tailor-exit-descriptor(ed, 16)
+    # . . push args
+    68/push  0x10/imm32/nbytes-of-args-for-get-num
+    50/push-eax/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # prime the pump
+    # . get-char(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-char/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # get-num(in, out, err, ed)
+    # . . push args
+    50/push-eax/ed
+    68/push  _test-error-stream/imm32
+    68/push  _test-output-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-num/disp32
+    # registers except esp may be clobbered at this point
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(*_test-output-stream->data, '3', msg)
+    # . . push args
+    68/push  "F - test-get-num-reads-single-digit"/imm32
+    68/push  0x33/imm32
+    b8/copy-to-eax  _test-output-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-get-num-aborts-on-non-digit-in-Look:
+    # - check that get-num returns first character if it's a digit
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize 'in'
+    # . write(_test-stream, "3")
+    # . . push args
+    68/push  "3"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'get-num' below
+    # . var ed/eax: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # . tailor-exit-descriptor(ed, 16)
+    # . . push args
+    68/push  0x10/imm32/nbytes-of-args-for-get-num
+    50/push-eax/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # *don't* prime the pump
+    # get-num(in, out, err, ed)
+    # . . push args
+    50/push-eax/ed
+    68/push  _test-error-stream/imm32
+    68/push  _test-output-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-num/disp32
+    # registers except esp may be clobbered at this point
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check that get-num tried to call exit(1)
+    # . check-ints-equal(ed->value, 2, msg)  # i.e. stop was called with value 1
+    # . . push args
+    68/push  "F - test-get-num-aborts-on-non-digit-in-Look"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+## helpers
+
+# write(f, "Error: "+s+" expected\n") then stop(ed, 1)
+expected:  # ed: (addr exit-descriptor), f: fd or (addr stream byte), s: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write(f, "Error: ")
+    # . . push args
+    68/push  "Error: "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(f, s)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(f, " expected\n")
+    # . . push args
+    68/push  " expected\n"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  stop/disp32
+    # should never get past this point
+$expected:dead-end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# read a byte from 'f', and save it in 'Look'
+get-char:  # f: (addr buffered-file)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # eax = read-byte-buffered(f)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # save eax to Look
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Look/disp32     .                 # copy eax to *Look
+$get-char:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+is-digit?:  # c: int -> eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # eax = false
+    b8/copy-to-eax  0/imm32
+    # if (c < '0') return false
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         0x30/imm32        # compare *(ebp+8)
+    7c/jump-if-<  $is-digit?:end/disp8
+    # if (c > '9') return false
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         0x39/imm32        # compare *(ebp+8)
+    7f/jump-if->  $is-digit?:end/disp8
+    # otherwise return true
+    b8/copy-to-eax  1/imm32
+$is-digit?:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+Look:  # (char with some extra padding)
+    0/imm32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/crenshaw2-1b.subx b/linux/crenshaw2-1b.subx
new file mode 100644
index 00000000..03233e29
--- /dev/null
+++ b/linux/crenshaw2-1b.subx
@@ -0,0 +1,750 @@
+# Port of https://github.com/akkartik/crenshaw/blob/master/tutor2.1.pas
+# which corresponds to the section "single digits" in https://compilers.iecc.com/crenshaw/tutor2.txt
+# except that we support hex numbers of multiple digits.
+#
+# To run:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/crenshaw2-1b.subx -o apps/crenshaw2-1b
+#   $ echo '1a'  |./bootstrap run apps/crenshaw2-1b
+# Expected output:
+#   # syscall(exit, 1a)
+#   bb/copy-to-ebx  3/imm32
+#   b8/copy-to-eax  1/imm32/exit
+#   cd/syscall  0x80/imm8
+#
+# To run the generated output:
+#   $ echo '1a'  |./bootstrap run apps/crenshaw2-1b > z1.subx
+#   $ ./bootstrap translate init.linux z1.subx -o z1
+#   $ ./bootstrap run z1
+#   $ echo $?
+#   26  # 0x1a in decimal
+#
+# Stdin must contain just a single hex digit. Other input will print an error:
+#   $ echo 'xyz'  |./bootstrap run apps/crenshaw2-1b
+#   Error: integer expected
+#
+# Names in this file sometimes follow Crenshaw's original rather than my usual
+# naming conventions.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, call 'compile' if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto run-main
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $run-main/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto run-main
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto run-main
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $run-main/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $main:end/disp8
+$run-main:
+    # - otherwise read a program from stdin and emit its translation to stdout
+    # . compile(Stdin, 1/stdout, 2/stderr, 0)
+    # . . push args
+    68/push  0/imm32/exit-descriptor
+    68/push  2/imm32/stderr
+    68/push  1/imm32/stdout
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  compile/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$main:end:
+    e8/call  syscall_exit/disp32
+
+# the main entry point
+compile:  # in: (addr buffered-file), out: fd or (addr stream byte), err: fd or (addr stream byte), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # prime the pump
+    # . Look = get-char(in)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8      .                    # push *(ebp+8)
+    # . . call
+    e8/call  get-char/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var num/ecx: (stream byte 7)
+    # Numbers can be 32 bits or 8 hex bytes long. One of them will be in 'Look', so we need space for 7 bytes.
+    # Sizing the stream just right buys us overflow-handling for free inside 'get-num'.
+    # Add 12 bytes for 'read', 'write' and 'size' fields, for a total of 19 bytes, or 0x13 in hex.
+    # The stack pointer is no longer aligned, so dump_stack() can be misleading past this point.
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x13/imm32        # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # initialize the stream
+    # . num->size = 7
+    c7          0/subop/copy        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           8/disp8         7/imm32           # copy to *(ecx+8)
+    # . clear-stream(num)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read a digit from 'in' into 'num'
+    # . get-num(in, num, err, ed)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    51/push-ecx/num
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8      .                    # push *(ebp+8)
+    # . . call
+    e8/call  get-num/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # render 'num' into the following template on 'out':
+    #   bb/copy-to-ebx  _num_
+    #   b8/copy-to-eax  1/imm32/exit
+    #   cd/syscall  0x80/imm8
+    #
+    # . write(out, "bb/copy-to-ebx  ")
+    # . . push args
+    68/push  "bb/copy-to-ebx  "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-stream(out, num)
+    # . . push args
+    51/push-ecx/num
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(out, Newline)
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(out, "b8/copy-to-eax  1/imm32/exit\n")
+    # . . push args
+    68/push  "b8/copy-to-eax  1/imm32/exit\n"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(out, "cd/syscall  0x80/imm8\n")
+    # . . push args
+    68/push  "cd/syscall  0x80/imm8\n"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$compile:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Read a sequence of digits into 'out'. Abort if there are none, or if there is
+# no space in 'out'.
+# Input comes from the global variable 'Look' (first byte) and the argument
+# 'in' (rest). We leave the next byte from 'in' into 'Look' on exit.
+get-num:  # in: (addr buffered-file), out: (addr stream byte), err: fd or (addr stream byte), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   if (!is-digit?(Look)) expected(ed, err, "integer")
+    #   do
+    #     if out->write >= out->size
+    #       write(err, "Error: too many digits in number\n")
+    #       stop(ed, 1)
+    #     out->data[out->write] = LSB(Look)
+    #     ++out->write
+    #     Look = get-char(in)
+    #   while is-digit?(Look)
+    # This is complicated because I don't want to hard-code the error strategy in
+    # a general helper like write-byte-buffered. Maybe I should just create a
+    # local helper.
+    #
+    # within the loop we'll try to keep things in registers:
+    #   in: esi
+    #   out: edi
+    #   out->write: ecx (cached copy; need to keep in sync)
+    #   out->size: edx
+    #   temporaries: eax, ebx
+    # We can't allocate Look to a register because it gets written implicitly in
+    # get-char in each iteration of the loop. (Thereby demonstrating that it's
+    # not the right interface for us. But we'll keep it just to follow Crenshaw.)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # - if (is-digit?(Look)) expected(ed, err, "integer")
+    # . eax = is-digit?(Look)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Look/disp32     .                 # push *Look
+    # . . call
+    e8/call  is-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false)
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $get-num:main/disp8
+    # . expected(ed, err, "integer")
+    # . . push args
+    68/push  "integer"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    # . . call
+    e8/call  expected/disp32  # never returns
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$get-num:main:
+    # - otherwise read a digit
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # read necessary variables to registers
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # ecx = out->write
+    8b/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy *edi to ecx
+    # edx = out->size
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(edi+8) to edx
+$get-num:loop:
+    # if (out->write >= out->size) error
+    39/compare                      3/mod/direct    2/rm32/edx    .           .             .           1/r32/ecx   .               .                 # compare edx with ecx
+    7d/jump-if-<  $get-num:loop-stage2/disp8
+    # . error(ed, err, msg)  # TODO: show full number
+    # . . push args
+    68/push  "get-num: too many digits in number"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    # . . call
+    e8/call  error/disp32  # never returns
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$get-num:loop-stage2:
+    # out->data[out->write] = LSB(Look)
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    7/base/edi  1/index/ecx   .           3/r32/ebx   0xc/disp8       .                 # copy edi+ecx+12 to ebx
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Look/disp32     .                 # copy *Look to eax
+    88/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at AL to *ebx
+    # ++out->write
+    41/increment-ecx
+    # Look = get-char(in)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  get-char/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # if (is-digit?(Look)) loop
+    # . eax = is-digit?(Look)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Look/disp32     .                 # push *Look
+    # . . call
+    e8/call  is-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) loop
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $get-num:loop/disp32
+$get-num:loop-end:
+    # persist necessary variables from registers
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           1/r32/ecx   .               .                 # copy ecx to *edi
+$get-num:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-get-num-reads-single-digit:
+    # - check that get-num returns first character if it's a digit
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize 'in'
+    # . write(_test-stream, "3")
+    # . . push args
+    68/push  "3"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'get-num' below
+    # . var ed/eax: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # . tailor-exit-descriptor(ed, 16)
+    # . . push args
+    68/push  0x10/imm32/nbytes-of-args-for-get-num
+    50/push-eax/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # prime the pump
+    # . get-char(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-char/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # get-num(in, out, err, ed)
+    # . . push args
+    50/push-eax/ed
+    68/push  _test-error-stream/imm32
+    68/push  _test-output-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-num/disp32
+    # registers except esp may be clobbered at this point
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(*_test-output-stream->data, '3', msg)
+    # . . push args
+    68/push  "F - test-get-num-reads-single-digit"/imm32
+    68/push  0x33/imm32
+    b8/copy-to-eax  _test-output-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-get-num-aborts-on-non-digit-in-Look:
+    # - check that get-num returns first character if it's a digit
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize 'in'
+    # . write(_test-stream, "3")
+    # . . push args
+    68/push  "3"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'get-num' below
+    # . var ed/eax: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # . tailor-exit-descriptor(ed, 16)
+    # . . push args
+    68/push  0x10/imm32/nbytes-of-args-for-get-num
+    50/push-eax/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # *don't* prime the pump
+    # get-num(in, out, err, ed)
+    # . . push args
+    50/push-eax/ed
+    68/push  _test-error-stream/imm32
+    68/push  _test-output-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-num/disp32
+    # registers except esp may be clobbered at this point
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check that get-num tried to call exit(1)
+    # . check-ints-equal(ed->value, 2, msg)  # i.e. stop was called with value 1
+    # . . push args
+    68/push  "F - test-get-num-aborts-on-non-digit-in-Look"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-get-num-reads-multiple-digits:
+    # - check that get-num returns all initial digits until it encounters a non-digit
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize 'in'
+    # . write(_test-stream, "3456 x")
+    # . . push args
+    68/push  "3456"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'get-num' below
+    # . var ed/eax: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # . tailor-exit-descriptor(ed, 16)
+    # . . push args
+    68/push  0x10/imm32/nbytes-of-args-for-get-num
+    50/push-eax/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # prime the pump
+    # . get-char(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-char/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # get-num(in, out, err, ed)
+    # . . push args
+    50/push-eax/ed
+    68/push  _test-error-stream/imm32
+    68/push  _test-output-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-num/disp32
+    # registers except esp may be clobbered at this point
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(*_test-output-stream->data, '3456', msg)
+    # . . push args
+    68/push  "F - test-get-num-reads-multiple-digits"/imm32
+    68/push  0x36353433/imm32
+    b8/copy-to-eax  _test-output-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-get-num-reads-multiple-digits-followed-by-nondigit:
+    # - check that get-num returns all initial digits until it encounters a non-digit
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize 'in'
+    # . write(_test-stream, "3456 x")
+    # . . push args
+    68/push  "3456 x"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'get-num' below
+    # . var ed/eax: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # . tailor-exit-descriptor(ed, 16)
+    # . . push args
+    68/push  0x10/imm32/nbytes-of-args-for-get-num
+    50/push-eax/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # prime the pump
+    # . get-char(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-char/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # get-num(in, out, err, ed)
+    # . . push args
+    50/push-eax/ed
+    68/push  _test-error-stream/imm32
+    68/push  _test-output-stream/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  get-num/disp32
+    # registers except esp may be clobbered at this point
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # check-ints-equal(*_test-output-stream->data, '3456', msg)
+    # . . push args
+    68/push  "F - test-get-num-reads-multiple-digits-followed-by-nondigit"/imm32
+    68/push  0x36353433/imm32
+    b8/copy-to-eax  _test-output-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           0xc/disp8       .                 # push *(eax+12)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+## helpers
+
+# write(f, "Error: "+s+" expected\n") then stop(ed, 1)
+expected:  # ed: (addr exit-descriptor), f: fd or (addr stream byte), s: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write(f, "Error: ")
+    # . . push args
+    68/push  "Error: "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(f, s)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(f, " expected\n")
+    # . . push args
+    68/push  " expected\n"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # stop(ed, 1)
+    # . . push args
+    68/push  1/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  stop/disp32
+    # should never get past this point
+$expected:dead-end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# read a byte from 'f', and save it in 'Look'
+get-char:  # f: (addr buffered-file)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # eax = read-byte-buffered(f)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # save eax to Look
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Look/disp32     .                 # copy eax to *Look
+$get-char:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+is-digit?:  # c: int -> eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # eax = false
+    b8/copy-to-eax  0/imm32
+    # if (c < '0') return false
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         0x30/imm32        # compare *(ebp+8)
+    7c/jump-if-<  $is-digit?:end/disp8
+    # if (c > '9') return false
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         0x39/imm32        # compare *(ebp+8)
+    7f/jump-if->  $is-digit?:end/disp8
+    # otherwise return true
+    b8/copy-to-eax  1/imm32
+$is-digit?:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+Look:  # (char with some extra padding)
+    0/imm32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/dquotes b/linux/dquotes
new file mode 100755
index 00000000..f6e9134a
--- /dev/null
+++ b/linux/dquotes
Binary files differdiff --git a/linux/dquotes.subx b/linux/dquotes.subx
new file mode 100644
index 00000000..54349e18
--- /dev/null
+++ b/linux/dquotes.subx
@@ -0,0 +1,1939 @@
+# Translate literal strings within double quotes.
+# Replace them with references to new variables in the data segment.
+#
+# To run:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/subx-params.subx apps/dquotes.subx  -o apps/dquotes
+#   $ cat x
+#   == code
+#   ab "cd ef"/imm32
+#   $ cat x  |./bootstrap run apps/dquotes
+#   == code
+#   ab __string1/imm32
+#   == data
+#   __string1:
+#     5/imm32
+#     0x63/c 0x64/d 0x20/  0x65/e 0x66/f
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run-tests()
+    # if (argc <= 1) goto interactive
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $subx-dquotes-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto interactive
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto interactive
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-dquotes-main:interactive/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $subx-dquotes-main:end/disp8
+$subx-dquotes-main:interactive:
+    # - otherwise convert stdin
+    # var ed/eax: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # configure ed to really exit()
+    # . ed->target = 0
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # copy to *eax
+    # subx-dquotes(Stdin, Stdout, Stderr, ed)
+    # . . push args
+    50/push-eax/ed
+    68/push  Stderr/imm32
+    68/push  Stdout/imm32
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  subx-dquotes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$subx-dquotes-main:end:
+    e8/call  syscall_exit/disp32
+
+# conceptual hierarchy within a line:
+#   line = words separated by ' ', maybe followed by comment starting with '#'
+#   word = datum until '/', then 0 or more metadata separated by '/'
+
+subx-dquotes:  # in: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode:
+    #   var line: (stream byte 512)
+    #   var new-data-segment-handle: (handle stream byte)
+    #   new-stream(Heap, Segment-size, 1, new-data-segment-handle)
+    #   var new-data-segment: (addr stream byte) = lookup(new-data-segment-handle)
+    #
+    #   write(new-data-segment, "== data\n")
+    #      # TODO: When it was originally written dquotes ran before assort, so
+    #      # it assumes lots of segment headers, and emits a new segment of its
+    #      # own. We've since had to reorder the phases (see the explanation
+    #      # for a.assort2 in translate_subx). We could clean up a.assort2 if we
+    #      # conditionally emit the previous line. But this would require
+    #      # teaching dquotes to parse segment headers, so maybe that's not
+    #      # best..
+    #
+    #   while true
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break               # end of file
+    #     while true
+    #       var word-slice = next-word-or-string(line)
+    #       if slice-empty?(word-slice)             # end of line
+    #         break
+    #       if slice-starts-with?(word-slice, "#")  # comment
+    #         continue
+    #       if slice-starts-with?(word-slice, '"')  # string literal <== what we're here for
+    #         process-string-literal(word-slice, out, new-data-segment)
+    #       else
+    #         write-slice-buffered(out, word-slice)
+    #       write(out, " ")
+    #     write(out, "\n\n")
+    #   write-stream-data(out, new-data-segment)
+    #   flush(out)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/length
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # var new-data-segment-handle/edi: (handle stream byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           4/r32/esp   .               .                 # copy esp to edi
+    # new-stream(Heap, Segment-size, 1, new-data-segment-handle)
+    # . . push args
+    57/push-edi
+    68/push  1/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Segment-size/disp32               # push *Segment-size
+    68/push  Heap/imm32
+    # . . call
+    e8/call  new-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # var new-data-segment/edi: (addr stream byte) = lookup(*new-data-segment-handle)
+    # . eax = lookup(*new-data-segment-handle)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         .                 # push *(edi+4)
+    ff          6/subop/push        0/mod/indirect  7/rm32/edi    .           .             .           .           .               .                 # push *edi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . new-data-segment = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # write(new-data-segment, "== data\n")
+    # . . push args
+    68/push  "== data\n"/imm32
+    57/push-edi
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-dquotes:line-loop:
+    # clear-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line-buffered(in, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-line-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-dquotes:check0:
+    # if (line->write == 0) break
+    81          7/subop/compare     0/mod/indirect  1/rm32/ecx    .           .             .           .           .               0/imm32           # compare *ecx
+    0f 84/jump-if-=  $subx-dquotes:break/disp32
+$subx-dquotes:word-loop:
+    # next-word-or-string(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word-or-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-dquotes:check1:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $subx-dquotes:next-line/disp32
+$subx-dquotes:check-for-comment:
+    # if (slice-starts-with?(word-slice, "#")) continue
+    # . var start/esi: (addr byte) = word-slice->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           6/r32/esi   .               .                 # copy *edx to esi
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           0/r32/AL    .               .                 # copy byte at *esi to AL
+    # . if (c == '#') continue
+    3d/compare-eax-and  0x23/imm32/hash
+    74/jump-if-=  $subx-dquotes:word-loop/disp8
+$subx-dquotes:check-for-string-literal:
+    # if (slice-starts-with?(word-slice, '"')) continue
+    3d/compare-eax-and  0x22/imm32/dquote
+    75/jump-if-!=  $subx-dquotes:regular-word/disp8
+$subx-dquotes:string-literal:
+    # process-string-literal(word-slice, out, new-data-segment)
+    # . . push args
+    57/push-edi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    52/push-edx
+    # . . call
+    e8/call  process-string-literal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # continue
+    eb/jump  $subx-dquotes:next-word/disp8
+$subx-dquotes:regular-word:
+    # write-slice-buffered(out, word-slice)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # fall through
+$subx-dquotes:next-word:
+    # write-buffered(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+    eb/jump  $subx-dquotes:word-loop/disp8
+$subx-dquotes:next-line:
+    # write-buffered(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+    e9/jump  $subx-dquotes:line-loop/disp32
+$subx-dquotes:break:
+    # write-stream-data(out, new-data-segment)
+    # . . push args
+    57/push-edi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$subx-dquotes:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x21c/imm32       # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Write out 'string-literal' in a new format to 'out-segment', assign it a new
+# label, and write the new label out to 'out'.
+process-string-literal:  # string-literal: (addr slice), out: (addr buffered-file), out-segment: (addr stream byte)
+    # pseudocode:
+    #   print(out-segment, "_string#{Next-string-literal}:\n")
+    #   emit-string-literal-data(out-segment, string-literal)
+    #   print(out, "_string#{Next-string-literal}")
+    #   emit-metadata(out, string-literal)
+    #   ++ *Next-string-literal
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # var int32-stream/ecx: (stream byte 10)  # number of decimal digits a 32-bit number can have
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xa/imm32         # subtract from esp
+    68/push  0xa/imm32/decimal-digits-in-32bit-number
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # print(out-segment, "_string#{Next-string-literal}:\n")
+    # . write(out-segment, "_string")
+    # . . push args
+    68/push  "_string"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-decimal(out-segment, *Next-string-literal)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-string-literal/disp32        # push *Next-string-literal
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  write-int32-decimal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(out-segment, ":\n")
+    # . . push args
+    68/push  ":\n"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # emit-string-literal-data(out-segment, string-literal)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  emit-string-literal-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(out-segment, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # print(out, "_string#{Next-string-literal}")
+    # . write-buffered(out, "_string")
+    # . . push args
+    68/push  "_string"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-decimal(int32-stream, *Next-string-literal)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Next-string-literal/disp32        # push *Next-string-literal
+    51/push-ecx
+    # . . call
+    e8/call  write-int32-decimal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-stream-data(out, int32-stream)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # emit-metadata(out, string-literal)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-metadata/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # ++ *Next-string-literal
+    ff          0/subop/increment   0/mod/indirect  5/rm32/.disp32            .             .           .           Next-string-literal/disp32        # increment *Num-test-failures
+$process-string-literal:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x16/imm32        # add to esp
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-dquotes-is-idempotent-by-default:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input (meta comments in parens)
+    #   # comment 1
+    #     # comment 2 indented
+    #   == code 0x1  (new segment)
+    #   # comment 3 inside a segment
+    #   1
+    #                         (empty line)
+    #   2 3 # comment 4 inline with other contents
+    #   == data 0x2  (new segment)
+    #   4 5/imm32
+    # . write(_test-input-stream, "# comment 1\n")
+    # . . push args
+    68/push  "# comment 1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "  # comment 2 indented\n")
+    # . . push args
+    68/push  "  # comment 2 indented\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== code 0x1\n")
+    # . . push args
+    68/push  "== code 0x1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "# comment 3 inside a segment\n")
+    # . . push args
+    68/push  "# comment 3 inside a segment\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "1\n")
+    # . . push args
+    68/push  "1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "\n")  # empty line
+    # . . push args
+    68/push  Newline/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "2 3 # comment 4 inline with other contents\n")
+    # . . push args
+    68/push  "2 3 # comment 4 inline with other contents\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data 0x2\n")
+    # . . push args
+    68/push  "== data 0x2\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "4 5/imm32\n")
+    # . . push args
+    68/push  "4 5/imm32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-dquotes(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-dquotes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check output
+    #     (comment dropped for now)
+    #     (comment dropped for now)
+    #   == code 0x1
+    #     (comment dropped for now)
+    #   1
+    #     (comment dropped for now)
+    #   2 3
+    #   == data 0x2
+    #   4 5/imm32
+    # We don't care right now what exactly happens to comments. Trailing spaces are also minor details.
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/0"/imm32
+    68/push  ""/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/1"/imm32
+    68/push  ""/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "== code 0x1 ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/2"/imm32
+    68/push  "== code 0x1 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/3"/imm32
+    68/push  ""/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "1 ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/4"/imm32
+    68/push  "1 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/5"/imm32
+    68/push  ""/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "2 3 ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/6"/imm32
+    68/push  "2 3 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "== data 0x2 ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/7"/imm32
+    68/push  "== data 0x2 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "4 5/imm32 ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-is-idempotent-by-default/8"/imm32
+    68/push  "4 5/imm32 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-dquotes-processes-string-literals:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input (meta comments in parens)
+    #   == code  (new segment)
+    #   1 "a"/x
+    #   2 "bc"/y
+    68/push  "== code 0x1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "1 \"a\"/x\n")
+    # . . push args
+    68/push  "1 \"a\"/x\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "2 \"bc\"/y\n")
+    # . . push args
+    68/push  "2 \"bc\"/y\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-dquotes(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-dquotes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check output
+    #   == code 0x1
+    #   1 _string1/x
+    #   2 _string2/y
+    #   == data
+    #   _string1:
+    #   1/imm32 61/a
+    #   _string2:
+    #   2/imm32 62/b 63/c
+    # We don't care right now what exactly happens to comments. Trailing spaces are also minor details.
+    #
+    # Open question: how to make this check more robust.
+    # We don't actually care what the auto-generated string variables are
+    # called. We just want to make sure instructions using string literals
+    # switch to a string variable with the right value.
+    # (Modifying string literals completely off the radar for now.)
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "== code 0x1 ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-processes-string-literals/0"/imm32
+    68/push  "== code 0x1 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "1 _string1/x ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-processes-string-literals/1"/imm32
+    68/push  "1 _string1/x "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "2 _string2/y ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-processes-string-literals/2"/imm32
+    68/push  "2 _string2/y "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "== data", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-processes-string-literals/3"/imm32
+    68/push  "== data"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "_string1: ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-processes-string-literals/4"/imm32
+    68/push  "_string1:"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "1/imm32 61/a ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-processes-string-literals/5"/imm32
+    68/push  "0x00000001/imm32 61/a "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "_string2: ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-processes-string-literals/6"/imm32
+    68/push  "_string2:"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "2/imm32 62/b 63/c ", msg)
+    # . . push args
+    68/push  "F - test-subx-dquotes-processes-string-literals/7"/imm32
+    68/push  "0x00000002/imm32 62/b 63/c "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# generate the data segment contents byte by byte for a given slice
+emit-string-literal-data:  # out: (addr stream byte), word: (addr slice)
+    # pseudocode
+    #   len = string-length-at-start-of-slice(word->start, word->end)
+    #   print(out, "#{len}/imm32 ")
+    #   curr = word->start
+    #   ++curr  # skip '"'
+    #   idx = 0
+    #   while true
+    #     if (curr >= word->end) break
+    #     c = *curr
+    #     if (c == '"') break
+    #     if (c == '\') {
+    #       ++curr
+    #       c = *curr
+    #       if (c == 'n')
+    #         c = newline
+    #     }
+    #     append-byte-hex(out, c)
+    #     if c is alphanumeric:
+    #       write(out, "/")
+    #       append-byte(out, c)
+    #     write(out, " ")
+    #     ++curr
+    #     ++idx
+    #     if idx >= 0x40
+    #       idx = 0
+    #       write(out, "\n")
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = word
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var idx/ebx: int = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # var curr/edx: (addr byte) = word->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           2/r32/edx   .               .                 # copy *esi to edx
+    # var max/esi: (addr byte) = word->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           6/r32/esi   4/disp8         .                 # copy *(esi+4) to esi
+$emit-string-literal-data:emit-length:
+    # var len/eax: int = string-length-at-start-of-slice(word->start, word->end)
+    # . . push args
+    56/push-esi
+    52/push-edx
+    # . . call
+    e8/call  string-length-at-start-of-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # print(out, "#{len}/imm32 ")
+    # . write-int32-hex(out, len)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(out, "/imm32 ")
+    # . . push args
+    68/push  "/imm32 "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-string-literal-data:loop-init:
+    # ++curr  # skip initial '"'
+    42/increment-edx
+    # var c/ecx: byte = 0
+    31/xor                          3/mod/direct    1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # clear ecx
+$emit-string-literal-data:loop:
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    2/rm32/edx    .           .             .           6/r32/esi   .               .                 # compare edx with esi
+    0f 83/jump-if-addr>=  $emit-string-literal-data:end/disp32
+    # CL = *curr
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           1/r32/CL    .               .                 # copy byte at *edx to CL
+    # if (c == '"') break
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x22/imm32/dquote # compare ecx
+    0f 84/jump-if-=  $emit-string-literal-data:end/disp32
+    # if (c != '\') goto emit
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x5c/imm32/backslash  # compare ecx
+    75/jump-if-!=  $emit-string-literal-data:emit/disp8
+    # ++curr
+    42/increment-edx
+    # if (curr >= max) break
+    39/compare                      3/mod/direct    2/rm32/edx    .           .             .           6/r32/esi   .               .                 # compare edx with esi
+    0f 83/jump-if-addr>=  $emit-string-literal-data:end/disp32
+    # c = *curr
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           1/r32/CL    .               .                 # copy byte at *edx to CL
+    # if (c == 'n') c = newline
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0x6e/imm32/n      # compare ecx
+    75/jump-if-!=  $emit-string-literal-data:emit/disp8
+    b9/copy-to-ecx  0x0a/imm32/newline
+$emit-string-literal-data:emit:
+    # append-byte-hex(out, CL)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  append-byte-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (is-alphanumeric?(*curr)) print(out, "/#{*curr}")
+    # . var eax: boolean = is-alphanumeric?(CL)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-alphanumeric?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false) goto char-done
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-string-literal-data:char-done/disp8
+    # . write(out, "/")
+    # . . push args
+    68/push  Slash/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . append-byte(out, *curr)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  append-byte/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-string-literal-data:char-done:
+    # write(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # ++curr
+    42/increment-edx
+    # ++ idx
+    43/increment-ebx
+    # if (idx < 0x40) continue
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x40/imm32        # compare ebx
+    7c/jump-if-<  $emit-string-literal-data:next-char/disp8
+    # idx = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # write(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-string-literal-data:next-char:
+    e9/jump $emit-string-literal-data:loop/disp32
+$emit-string-literal-data:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+is-alphanumeric?:  # c: int -> eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # eax = c
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    # if (c < '0') return false
+    3d/compare-eax-with  0x30/imm32/0
+    7c/jump-if-<  $is-alphanumeric?:false/disp8
+    # if (c <= '9') return true
+    3d/compare-eax-with  0x39/imm32/9
+    7e/jump-if-<=  $is-alphanumeric?:true/disp8
+    # if (c < 'A') return false
+    3d/compare-eax-with  0x41/imm32/A
+    7c/jump-if-<  $is-alphanumeric?:false/disp8
+    # if (c <= 'Z') return true
+    3d/compare-eax-with  0x5a/imm32/Z
+    7e/jump-if-<=  $is-alphanumeric?:true/disp8
+    # if (c < 'a') return false
+    3d/compare-eax-with  0x61/imm32/a
+    7c/jump-if-<  $is-alphanumeric?:false/disp8
+    # if (c <= 'z') return true
+    3d/compare-eax-with  0x7a/imm32/z
+    7e/jump-if-<=  $is-alphanumeric?:true/disp8
+    # return false
+$is-alphanumeric?:false:
+    b8/copy-to-eax  0/imm32/false
+    eb/jump  $is-alphanumeric?:end/disp8
+$is-alphanumeric?:true:
+    b8/copy-to-eax  1/imm32/true
+$is-alphanumeric?:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-string-literal-data:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = '"abc"/d'
+    68/push  _test-slice-abc-limit/imm32
+    68/push  _test-slice-abc/imm32
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-string-literal-data(_test-output-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  emit-string-literal-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "3/imm32 61/a 62/b 63/c ", msg)
+    # . . push args
+    68/push  "F - test-emit-string-literal-data"/imm32
+    68/push  "0x00000003/imm32 61/a 62/b 63/c "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-string-literal-data-empty:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = '""'
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-string-literal-data(_test-output-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  emit-string-literal-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "0/imm32 ", msg)
+    # . . push args
+    68/push  "F - test-emit-string-literal-data-empty"/imm32
+    68/push  "0x00000000/imm32 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# just to keep things simple
+test-emit-string-literal-data-no-metadata-for-non-alphanumerics:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = '"a b"'
+    68/push  _test-slice-a-space-b-limit/imm32
+    68/push  _test-slice-a-space-b/imm32
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-string-literal-data(_test-output-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  emit-string-literal-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "3/imm32 61/a 20 62/b ", msg)  # ideally we'd like to say '20/space' but that requires managing names for codepoints
+    # . . push args
+    68/push  "F - test-emit-string-literal-data-no-metadata-for-non-alphanumerics"/imm32
+    68/push  "0x00000003/imm32 61/a 20 62/b "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-string-literal-data-handles-escape-sequences:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = '"a\"b"'
+    68/push  _test-slice-a-dquote-b-limit/imm32
+    68/push  _test-slice-a-dquote-b/imm32
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-string-literal-data(_test-output-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  emit-string-literal-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "3/imm32 61/a 22 62/b ", msg)
+    # . . push args
+    68/push  "F - test-emit-string-literal-data-handles-escape-sequences"/imm32
+    68/push  "0x00000003/imm32 61/a 22 62/b "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-string-literal-data-handles-newline-escape:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = '"a\nb"'
+    68/push  _test-slice-a-newline-b-limit/imm32
+    68/push  _test-slice-a-newline-b/imm32
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-string-literal-data(_test-output-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  emit-string-literal-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "3/imm32 61/a 0a 62/b ", msg)
+    # . . push args
+    68/push  "F - test-emit-string-literal-data-handles-newline-escape"/imm32
+    68/push  "0x00000003/imm32 61/a 0a 62/b "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# emit everything from a word except the initial datum
+emit-metadata:  # out: (addr buffered-file), word: (addr slice)
+    # pseudocode
+    #   var slice: slice = {0, word->end}
+    #   curr = word->start
+    #   if *curr == '"'
+    #     curr = skip-string-in-slice(curr, word->end)
+    #   else
+    #     while true
+    #       if curr == word->end
+    #         return
+    #       if *curr == '/'
+    #         break
+    #       ++curr
+    #   slice->start = curr
+    #   write-slice-buffered(out, slice)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = word
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var curr/ecx: (addr byte) = word->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    # var end/edx: (addr byte) = word->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   4/disp8         .                 # copy *(esi+4) to edx
+    # var slice/ebx: slice = {0, end}
+    52/push-edx
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # eax = 0
+    b8/copy-to-eax  0/imm32
+$emit-metadata:check-for-string-literal:
+    # -  if (*curr == '"') curr = skip-string-in-slice(curr, end)
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x22/imm32/dquote
+    75/jump-if-!=  $emit-metadata:skip-datum-loop/disp8
+$emit-metadata:skip-string-literal:
+    # . eax = skip-string-in-slice(curr, end)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  skip-string-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . curr = eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to ecx
+    eb/jump  $emit-metadata:emit/disp8
+$emit-metadata:skip-datum-loop:
+    # - otherwise scan for '/'
+    # if (curr == end) return
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx and edx
+    74/jump-if-=  $emit-metadata:end/disp8
+    # if (*curr == '/') break
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x2f/imm32/slash
+    74/jump-if-=  $emit-metadata:emit/disp8
+    # ++curr
+    41/increment-ecx
+    eb/jump  $emit-metadata:skip-datum-loop/disp8
+$emit-metadata:emit:
+    # slice->start = ecx
+    89/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           1/r32/ecx   .               .                 # copy ecx to *ebx
+    # write-slice-buffered(out, slice)
+    # . . push args
+    53/push-ebx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           8/imm32      .                    # add to esp
+$emit-metadata:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           8/imm32      .                    # add to esp
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-metadata:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "abc/def"
+    b8/copy-to-eax  "abc/def"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-metadata(_test-output-buffered-file, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-metadata/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "/def", msg)  # important that there's no leading space
+    # . . push args
+    68/push  "F - test-emit-metadata"/imm32
+    68/push  "/def"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-metadata-none:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "abc"
+    b8/copy-to-eax  "abc"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-metadata(_test-output-buffered-file, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-metadata/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "", msg)
+    # . . push args
+    68/push  "F - test-emit-metadata-none"/imm32
+    68/push  ""/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-metadata-multiple:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # (eax..ecx) = "abc/def/ghi"
+    b8/copy-to-eax  "abc/def/ghi"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-metadata(_test-output-buffered-file, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-metadata/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "/def/ghi", msg)  # important that there's no leading space
+    # . . push args
+    68/push  "F - test-emit-metadata-multiple"/imm32
+    68/push  "/def/ghi"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-metadata-when-no-datum:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = "/abc"
+    b8/copy-to-eax  "/abc"/imm32
+    # . push end/ecx
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    51/push-ecx
+    # . push curr/eax
+    05/add-to-eax  4/imm32
+    50/push-eax
+    # . save stack pointer
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-metadata(_test-output-buffered-file, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-metadata/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-stream-equal(_test-output-stream, "/abc", msg)  # nothing skipped
+    # . . push args
+    68/push  "F - test-emit-metadata-when-no-datum"/imm32
+    68/push  "/abc"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-metadata-in-string-literal:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = "\"abc/def\"/ghi"
+    68/push  _test-slice-literal-string-with-limit/imm32
+    68/push  _test-slice-literal-string/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-metadata(_test-output-buffered-file, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-metadata/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "/ghi", msg)  # important that there's no leading space
+    # . . push args
+    68/push  "F - test-emit-metadata-in-string-literal"/imm32
+    68/push  "/ghi"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+string-length-at-start-of-slice:  # curr: (addr byte), end: (addr byte) -> length/eax
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = curr
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # edx = end
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         2/r32/edx   0xc/disp8         .               # copy *(ebp+12) to edx
+    # var length/eax: int = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # var c/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # skip initial dquote
+    41/increment-ecx
+$string-length-at-start-of-slice:loop:
+    # if (curr >= end) return length
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $string-length-at-start-of-slice:end/disp8
+    # c = *curr
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/BL    .               .                 # copy byte at *ecx to BL
+$string-length-at-start-of-slice:dquote:
+    # if (c == '"') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x22/imm32/dquote # compare ebx
+    74/jump-if-=  $string-length-at-start-of-slice:end/disp8
+$string-length-at-start-of-slice:check-for-escape:
+    # if (c == '\') escape next char
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x5c/imm32/backslash # compare ebx
+    75/jump-if-!=  $string-length-at-start-of-slice:continue/disp8
+$string-length-at-start-of-slice:escape:
+    # increment curr but not result
+    41/increment-ecx
+$string-length-at-start-of-slice:continue:
+    # ++result
+    40/increment-eax
+    # ++curr
+    41/increment-ecx
+    eb/jump  $string-length-at-start-of-slice:loop/disp8
+$string-length-at-start-of-slice:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-string-length-at-start-of-slice:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "\"abc\" def"
+    b8/copy-to-eax  "\"abc\" def"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = string-length-at-start-of-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  string-length-at-start-of-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 3, msg)
+    # . . push args
+    68/push  "F - test-string-length-at-start-of-slice"/imm32
+    68/push  3/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-string-length-at-start-of-slice-escaped:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup: (eax..ecx) = "\"ab\\c\" def"
+    b8/copy-to-eax  "\"ab\\c\" def"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # eax = string-length-at-start-of-slice(eax, ecx)
+    # . . push args
+    51/push-ecx
+    50/push-eax
+    # . . call
+    e8/call  string-length-at-start-of-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 3, msg)
+    # . . push args
+    68/push  "F - test-string-length-at-start-of-slice-escaped"/imm32
+    68/push  3/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+Next-string-literal:  # tracks the next auto-generated variable name
+  1/imm32
+
+_test-slice-abc:
+  22/dquote 61/a 62/b 63/c 22/dquote  # "abc"
+  2f/slash 64/d
+_test-slice-abc-limit:
+
+_test-slice-a-space-b:
+  22/dquote 61/a 20/space 62/b 22/dquote  # "a b"
+_test-slice-a-space-b-limit:
+
+_test-slice-a-dquote-b:
+  22/dquote 61/a 5c/backslash 22/dquote 62/b 22/dquote  # "a\"b"
+_test-slice-a-dquote-b-limit:
+
+_test-slice-a-newline-b:
+  22/dquote 61/a 5c/backslash 6e/n 62/b 22/dquote  # "a\nb"
+_test-slice-a-newline-b-limit:
+
+# "abc/def"/ghi
+_test-slice-literal-string:
+  22/dquote
+  61/a 62/b 63/c  # abc
+  2f/slash 64/d 65/e 66/f  # /def
+  22/dquote
+  2f/slash 67/g 68/h 69/i  # /ghi
+_test-slice-literal-string-with-limit:
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex1.mu b/linux/ex1.mu
new file mode 100644
index 00000000..41609fac
--- /dev/null
+++ b/linux/ex1.mu
@@ -0,0 +1,13 @@
+# First example: return the answer to the Ultimate Question of Life, the
+# Universe, and Everything.
+#
+# To run:
+#   $ ./translate_mu apps/ex1.mu
+#   $ ./a.elf
+# Expected result:
+#   $ echo $?
+#   42
+
+fn main -> _/ebx: int {
+  return 0x2a  # Mu requires hexadecimal
+}
diff --git a/linux/ex1.subx b/linux/ex1.subx
new file mode 100644
index 00000000..d1968415
--- /dev/null
+++ b/linux/ex1.subx
@@ -0,0 +1,18 @@
+# First program: same as https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
+# Just return 42.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex1.subx -o apps/ex1
+#   $ ./bootstrap run apps/ex1
+# Expected result:
+#   $ echo $?
+#   42
+
+== code
+
+Entry:
+# exit(42)
+bb/copy-to-ebx  0x2a/imm32  # 42 in hex
+e8/call  syscall_exit/disp32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex10.subx b/linux/ex10.subx
new file mode 100644
index 00000000..7ec86202
--- /dev/null
+++ b/linux/ex10.subx
@@ -0,0 +1,69 @@
+# String comparison: return 1 iff the two args passed in at the commandline are equal.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex10.subx -o apps/ex10
+#   $ ./bootstrap run apps/ex10 abc abd
+# Expected result:
+#   $ echo $?
+#   0  # false
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # return argv-equal(argv[1], argv[2])
+#       At the start of a SubX program:
+#         argc: *esp
+#         argv[0]: *(esp+4)
+#         argv[1]: *(esp+8)
+#         ...
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # argv-equal(argv[1], argv[2])
+    # . . push argv[2]
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . push argv[1]
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call argv-equal/disp32
+    # exit(eax)
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    e8/call  syscall_exit/disp32
+
+# compare two null-terminated ascii strings
+# reason for the name: the only place we should have null-terminated ascii strings is from commandline args
+argv-equal:  # (s1, s2): null-terminated ascii strings -> eax: boolean
+    # initialize s1 (ecx) and s2 (edx)
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none  .           1/r32/ecx   4/disp8         .                 # copy *(esp+4) to ecx
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none  .           2/r32/edx   8/disp8         .                 # copy *(esp+8) to edx
+$argv-equal:loop:
+    # c1/eax, c2/ebx = *s1, *s2
+    b8/copy-to-eax  0/imm32
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    bb/copy-to-ebx  0/imm32
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           3/r32/BL    .               .                 # copy byte at *edx to BL
+    # if (c1 == 0) break
+    3d/compare-eax-and  0/imm32/null
+    74/jump-if-=  $argv-equal:break/disp8
+    # if (c1 != c2) return false
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # compare eax and ebx
+    75/jump-if-!=  $argv-equal:false/disp8
+    # ++s1, ++s2
+    41/increment-ecx
+    42/increment-edx
+    # end while
+    eb/jump  $argv-equal:loop/disp8
+$argv-equal:break:
+    # if (c2 == 0) return true
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0/imm32/null      # compare ebx
+    75/jump-if-!=  $argv-equal:false/disp8
+$argv-equal:success:
+    b8/copy-to-eax  1/imm32
+    c3/return
+    # return false
+$argv-equal:false:
+    b8/copy-to-eax  0/imm32
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex11.subx b/linux/ex11.subx
new file mode 100644
index 00000000..9ff43a73
--- /dev/null
+++ b/linux/ex11.subx
@@ -0,0 +1,355 @@
+# Null-terminated vs size-prefixed ascii strings.
+#
+# By default we create strings with a 4-byte size prefix rather than a null suffix.
+# However we still need null-prefixed strings when interacting with the Linux
+# kernel in a few places. This layer implements a function for comparing
+# a null-terminated 'kernel string' with a size-prefixed 'SubX string'.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex11.subx -o apps/ex11
+#   $ ./bootstrap run apps/ex11  # runs a series of tests
+#   ......  # all tests pass
+#
+# (We can't yet run the tests when given a "test" commandline argument,
+# because checking for it would require the function being tested! Breakage
+# would cause tests to not run, rather than to fail as we'd like.)
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run all tests
+    e8/call  run-tests/disp32  # 'run-tests' is a function created automatically by SubX. It calls all functions that start with 'test-'.
+    # exit(eax)
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    e8/call  syscall_exit/disp32
+
+# compare a null-terminated ascii string with a more idiomatic size-prefixed byte array
+# reason for the name: the only place we should have null-terminated ascii strings is from commandline args
+kernel-string-equal?:  # s: null-terminated ascii string, benchmark: size-prefixed ascii string -> eax: boolean
+    # pseudocode:
+    #   n = benchmark->size
+    #   s1 = s
+    #   s2 = benchmark->data
+    #   i = 0
+    #   while i < n
+    #     c1 = *s1
+    #     c2 = *s2
+    #     if (c1 == 0) return false
+    #     if (c1 != c2) return false
+    #     ++s1, ++s2, ++i
+    #   return *s1 == 0
+    #
+    # registers:
+    #   i: ecx
+    #   n: edx
+    #   s1: edi
+    #   s2: esi
+    #   c1: eax
+    #   c2: ebx
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # s1/edi = s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
+    # n/edx = benchmark->size
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           2/r32/edx   .               .                 # copy *edx to edx
+    # s2/esi = benchmark->data
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    81          0/subop/add         3/mod/direct    6/rm32/esi    .           .             .           .           .               4/imm32           # add to esi
+    # i/ecx = c1/eax = c2/ebx = 0
+    b9/copy-to-ecx  0/imm32/exit
+    b8/copy-to-eax  0/imm32
+    bb/copy-to-ebx  0/imm32
+$kernel-string-equal?:loop:
+    # if (i >= n) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    7d/jump-if->=  $kernel-string-equal?:break/disp8
+    # c1 = *s1
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           0/r32/AL    .               .                 # copy byte at *edi to AL
+    # c2 = *s2
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           3/r32/BL    .               .                 # copy byte at *esi to BL
+    # if (c1 == 0) return false
+    3d/compare-eax-and  0/imm32/null
+    74/jump-if-=  $kernel-string-equal?:false/disp8
+    # if (c1 != c2) return false
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # compare eax and ebx
+    75/jump-if-!=  $kernel-string-equal?:false/disp8
+    # ++i
+    41/increment-ecx
+    # ++s1
+    47/increment-edi
+    # ++s2
+    46/increment-esi
+    eb/jump  $kernel-string-equal?:loop/disp8
+$kernel-string-equal?:break:
+    # return *s1 == 0
+    8a/copy-byte                    0/mod/indirect  7/rm32/edi    .           .             .           0/r32/AL    .               .                 # copy byte at *edi to AL
+    3d/compare-eax-and  0/imm32/null
+    75/jump-if-!=  $kernel-string-equal?:false/disp8
+$kernel-string-equal?:true:
+    b8/copy-to-eax  1/imm32
+    eb/jump  $kernel-string-equal?:end/disp8
+$kernel-string-equal?:false:
+    b8/copy-to-eax  0/imm32
+$kernel-string-equal?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# - tests
+
+test-compare-null-kernel-string-with-empty-array:
+    # eax = kernel-string-equal?(Null-kernel-string, "")
+    # . . push args
+    68/push  ""/imm32
+    68/push  Null-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compare-null-kernel-string-with-empty-array"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-null-kernel-string-with-non-empty-array:
+    # eax = kernel-string-equal?(Null-kernel-string, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  Null-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-null-kernel-string-with-non-empty-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-equal-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "Abc")
+    # . . push args
+    68/push  "Abc"/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 1, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-equal-array"/imm32
+    68/push  1/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-inequal-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "Adc")
+    # . . push args
+    68/push  "Adc"/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-equal-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-empty-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "")
+    # . . push args
+    68/push  ""/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-equal-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-shorter-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "Ab")
+    # . . push args
+    68/push  "Ab"/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-shorter-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+test-compare-kernel-string-with-longer-array:
+    # eax = kernel-string-equal?(_test-Abc-kernel-string, "Abcd")
+    # . . push args
+    68/push  "Abcd"/imm32
+    68/push  _test-Abc-kernel-string/imm32
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-compare-kernel-string-with-longer-array"/imm32
+    68/push  0/imm32/false
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    c3/return
+
+# - helpers
+
+# print msg to stderr if a != b, otherwise print "."
+check-ints-equal:  # (a: int, b: int, msg: (addr array byte)) -> boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    53/push-ebx
+    # load args into eax, ebx and ecx
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   8/disp8         .                 # copy *(ebp+8) to eax
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           3/r32/ebx   0xc/disp8       .                 # copy *(ebp+12) to ebx
+    # if (eax == b/ebx) print('.') and return
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # compare eax and ebx
+    75/jump-if-unequal  $check-ints-equal:else/disp8
+    # . write-stderr('.')
+    # . . push args
+    68/push  "."/imm32
+    # . . call
+    e8/call  write-stderr/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . return
+    eb/jump  $check-ints-equal:end/disp8
+    # otherwise print(msg)
+$check-ints-equal:else:
+    # copy msg into ecx
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   0x10/disp8       .                # copy *(ebp+16) to ecx
+    # print(ecx)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  write-stderr/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # print newline
+    # . . push args
+    68/push  Newline/imm32
+    # . . call
+    e8/call  write-stderr/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$check-ints-equal:end:
+    # . restore registers
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    # end
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+write-stderr:  # s: (addr array byte) -> <void>
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # syscall(write, 2/stderr, (data) s+4, (size) *s)
+    # . . fd = 2 (stderr)
+    bb/copy-to-ebx  2/imm32
+    # . . x = s+4
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    81          0/subop/add         3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm32           # add to ecx
+    # . . size = *s
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   8/disp8         .                 # copy *(ebp+8) to edx
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           2/r32/edx   .               .                 # copy *edx to edx
+    # . . syscall
+    e8/call  syscall_write/disp32
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . end
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+Newline:
+    # size
+    1/imm32
+    # data
+    0a/newline
+
+# for kernel-string-equal tests
+Null-kernel-string:
+    00/null
+
+_test-Abc-kernel-string:
+    41/A 62/b 63/c 00/null
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex12.subx b/linux/ex12.subx
new file mode 100644
index 00000000..0c0d4315
--- /dev/null
+++ b/linux/ex12.subx
@@ -0,0 +1,43 @@
+# Example showing mmap syscall.
+# Create a new segment using mmap, save the address, write to it.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex12.subx -o apps/ex12
+#   $ ./bootstrap run apps/ex12
+# You shouldn't get a segmentation fault.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    # mmap(Mmap-new-segment->len)
+    bb/copy-to-ebx  Mmap-new-segment/imm32
+    e8/call  syscall_mmap/disp32
+
+    # write to *eax to check that we have access to the newly-allocated segment
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0x34/imm32        # copy to *eax
+
+    # exit(eax)
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    e8/call  syscall_exit/disp32
+
+== data
+
+# various constants used here were found in the Linux sources (search for file mman-common.h)
+Mmap-new-segment:  # type mmap_arg_struct
+    # addr
+    0/imm32
+    # len
+    0x100/imm32
+    # protection flags
+    3/imm32  # PROT_READ | PROT_WRITE
+    # sharing flags
+    0x22/imm32  # MAP_PRIVATE | MAP_ANONYMOUS
+    # fd
+    -1/imm32  # since MAP_ANONYMOUS is specified
+    # offset
+    0/imm32  # since MAP_ANONYMOUS is specified
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex13.subx b/linux/ex13.subx
new file mode 100644
index 00000000..b7e802fd
--- /dev/null
+++ b/linux/ex13.subx
@@ -0,0 +1,25 @@
+# Compare 3 and 3.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex13.subx -o apps/ex13
+#   $ ./bootstrap run apps/ex13
+# Expected result:
+#   $ echo $?
+#   1
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    b8/copy-to-eax  3/imm32
+    3d/compare-eax-and  3/imm32
+    0f 94/set-if-=                  3/mod/direct    3/rm32/ebx    .           .             .           .           .               .                 # set ebx to ZF
+    81 4/subop/and                  3/mod/direct    3/rm32/ebx    .           .             .           .           .               0xff/imm32        # AND with eax
+
+$exit:
+    # exit(ebx)
+    e8/call  syscall_exit/disp32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex14.subx b/linux/ex14.subx
new file mode 100644
index 00000000..74dd3809
--- /dev/null
+++ b/linux/ex14.subx
@@ -0,0 +1,26 @@
+# Multiply 2 numbers.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex14.subx -o apps/ex14
+#   $ ./bootstrap run apps/ex14
+# Expected result:
+#   $ echo $?
+#   6
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    b8/copy-to-eax  1/imm32
+    b9/copy-to-ecx  2/imm32
+    bb/copy-to-ebx  3/imm32
+
+    69/multiply                     3/mod/direct    1/rm32/ecx    .           .             .           3/r32/ebx                   3/imm32           # ebx = ecx * 3
+
+$exit:
+    # exit(ebx)
+    e8/call  syscall_exit/disp32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex2.mu b/linux/ex2.mu
new file mode 100644
index 00000000..16f04d29
--- /dev/null
+++ b/linux/ex2.mu
@@ -0,0 +1,19 @@
+# Add 3 and 4, and return the result in the exit code.
+#
+# To run:
+#   $ ./translate_mu apps/ex2.mu
+#   $ ./a.elf
+# Expected result:
+#   $ echo $?
+#   7
+
+fn main -> _/ebx: int {
+  var result/eax: int <- do-add 3 4
+  return result
+}
+
+fn do-add a: int, b: int -> _/eax: int {
+  var result/ecx: int <- copy a
+  result <- add b
+  return result
+}
diff --git a/linux/ex2.subx b/linux/ex2.subx
new file mode 100644
index 00000000..14007329
--- /dev/null
+++ b/linux/ex2.subx
@@ -0,0 +1,20 @@
+# Add 3 and 4, and return the result in the exit code.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex2.subx -o apps/ex2
+#   $ ./bootstrap run apps/ex2
+# Expected result:
+#   $ echo $?
+#   2
+
+== code
+
+Entry:
+# ebx = 3
+bb/copy-to-ebx  3/imm32
+# add 4 to ebx
+81 0/subop/add 3/mod/direct 3/rm32/ebx 4/imm32
+# exit(ebx)
+e8/call  syscall_exit/disp32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex3.2.mu b/linux/ex3.2.mu
new file mode 100644
index 00000000..d06928fe
--- /dev/null
+++ b/linux/ex3.2.mu
@@ -0,0 +1,33 @@
+# Unnecessarily use an array to sum 1..10
+#
+# To run:
+#   $ ./translate_mu apps/ex3.2.mu
+#   $ ./a.elf
+#   $ echo $?
+#   55
+
+fn main -> _/ebx: int {
+  # populate a
+  var a: (array int 0xb)  # 11; we waste index 0
+  var i/ecx: int <- copy 1
+  {
+    compare i, 0xb
+    break-if->=
+    var x/eax: (addr int) <- index a, i
+    copy-to *x, i
+    i <- increment
+    loop
+  }
+  # sum
+  var result/edx: int <- copy 0
+  i <- copy 1
+  {
+    compare i, 0xb
+    break-if->=
+    var x/eax: (addr int) <- index a, i
+    result <- add *x
+    i <- increment
+    loop
+  }
+  return result
+}
diff --git a/linux/ex3.mu b/linux/ex3.mu
new file mode 100644
index 00000000..d7e73140
--- /dev/null
+++ b/linux/ex3.mu
@@ -0,0 +1,21 @@
+# Add the first 10 numbers, and return the result in the exit code.
+#
+# To run:
+#   $ ./translate_mu apps/browse.mu
+#   $ ./a.elf
+# Expected result:
+#   $ echo $?
+#   55
+
+fn main -> _/ebx: int {
+  var result/ebx: int <- copy 0
+  var i/eax: int <- copy 1
+  {
+    compare i, 0xa
+    break-if->
+    result <- add i
+    i <- increment
+    loop
+  }
+  return result
+}
diff --git a/linux/ex3.subx b/linux/ex3.subx
new file mode 100644
index 00000000..d75db65a
--- /dev/null
+++ b/linux/ex3.subx
@@ -0,0 +1,36 @@
+# Add the first 10 numbers, and return the result in the exit code.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex3.subx -o apps/ex3
+#   $ ./bootstrap run apps/ex3
+# Expected result:
+#   $ echo $?
+#   55
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    # result: ebx = 0
+    bb/copy-to-ebx  0/imm32
+    # counter: ecx = 1
+    b9/copy-to-ecx  1/imm32
+
+$loop:
+    # if (counter > 10) break
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0xa/imm32         # compare ecx
+    7f/jump-if->  $exit/disp8
+    # result += counter
+    01/add                          3/mod/direct    3/rm32/ebx    .           .             .           1/r32/ecx   .               .                 # add ecx to ebx
+    # ++counter
+    41/increment-ecx
+    # loop
+    eb/jump  $loop/disp8
+
+$exit:
+    # exit(ebx)
+    e8/call  syscall_exit/disp32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex4.subx b/linux/ex4.subx
new file mode 100644
index 00000000..72f03254
--- /dev/null
+++ b/linux/ex4.subx
@@ -0,0 +1,39 @@
+# Read a character from stdin, save it to a global, write it to stdout.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex4.subx -o apps/ex4
+#   $ ./bootstrap run apps/ex4
+
+== data
+
+# the global variable we save to
+X:
+    0/imm32  # space for read() to write to
+
+== code
+
+Entry:
+# read(stdin, X, 1)
+# . fd = 0 (stdin)
+bb/copy-to-ebx  0/imm32
+# . data = X (location to write result to)
+b9/copy-to-ecx  X/imm32
+# . size = 1 character
+ba/copy-to-edx  1/imm32
+# . syscall
+e8/call  syscall_read/disp32
+
+# write(stdout, X, 1)
+# . fd = 1 (stdout)
+bb/copy-to-ebx  1/imm32
+# . initialize X (location to read from)
+b9/copy-to-ecx  X/imm32
+# . size = 1 character
+ba/copy-to-edx  1/imm32
+# . syscall
+e8/call  syscall_write/disp32
+
+# exit(ebx)
+e8/call  syscall_exit/disp32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex5.subx b/linux/ex5.subx
new file mode 100644
index 00000000..a2b0eeba
--- /dev/null
+++ b/linux/ex5.subx
@@ -0,0 +1,40 @@
+# Read a character from stdin, save it to a local on the stack, write it to stdout.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex5.subx -o apps/ex5
+#   $ ./bootstrap run apps/ex5
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+
+    # allocate x on the stack
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # subtract from esp
+
+    # read(stdin, x, 1)
+    # . fd = 0 (stdin)
+    bb/copy-to-ebx  0/imm32
+    # . data = x (location to write result to)
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none              1/r32/ecx   4/disp8         .                 # copy esp+4 to ecx
+    # . size = 1 character
+    ba/copy-to-edx  1/imm32
+    # . syscall
+    e8/call  syscall_read/disp32
+
+    # syscall(write, stdout, x, 1)
+    # . fd = 1 (stdout)
+    bb/copy-to-ebx  1/imm32
+    # . data = x (location to read from)
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none              1/r32/ecx   4/disp8         .                 # copy esp+4 to ecx
+    # . size = 1 character
+    ba/copy-to-edx  1/imm32
+    # . syscall
+    e8/call  syscall_write/disp32
+
+    # exit(ebx)
+    e8/call  syscall_exit/disp32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex6.subx b/linux/ex6.subx
new file mode 100644
index 00000000..585362f1
--- /dev/null
+++ b/linux/ex6.subx
@@ -0,0 +1,35 @@
+# Print out a (global variable) string to stdout.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex6.subx -o apps/ex6
+#   $ ./bootstrap run apps/ex6
+#   Hello, world!
+
+== code
+
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    # write(stdout, X, Size)
+    # . fd = 1 (stdout)
+    bb/copy-to-ebx  1/imm32
+    # . initialize X (location to write result to)
+    b9/copy-to-ecx  X/imm32
+    # . initialize Size
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           2/r32/edx   Size/disp32     .                 # copy *Size to edx
+    # . syscall
+    e8/call  syscall_write/disp32
+
+    # exit(ebx)
+    e8/call  syscall_exit/disp32
+
+== data
+
+Size:  # size of string
+    0x0e/imm32  # 14
+X:  # string to print
+    48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a       00
+#   H  e  l  l  o  ,  ␣  w  o  r  l  d  !  newline  null
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex7.subx b/linux/ex7.subx
new file mode 100644
index 00000000..73cb2720
--- /dev/null
+++ b/linux/ex7.subx
@@ -0,0 +1,98 @@
+# Example showing file syscalls.
+#
+# Create a file, open it for writing, write a character to it, close it, open
+# it for reading, read a character from it, close it, delete it, and return
+# the character read.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex7.subx -o apps/ex7
+#   $ ./bootstrap run apps/ex7
+# Expected result:
+#   $ echo $?
+#   97
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    # creat(Filename)
+    bb/copy-to-ebx  Filename/imm32
+    b9/copy-to-ecx  0x180/imm32/fixed-perms
+    e8/call  syscall_creat/disp32
+
+    # stream = open(Filename, O_WRONLY, 0)  # we can't use 'fd' because it looks like a hex byte
+    bb/copy-to-ebx  Filename/imm32
+    b9/copy-to-ecx  1/imm32/wronly
+    ba/copy-to-edx  0x180/imm32/fixed-perms
+    e8/call  syscall_open/disp32
+    # save stream
+    bb/copy-to-ebx  Stream/imm32
+    89/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to *ebx
+
+    # write(Stream, "a", 1)
+    # . load stream
+    bb/copy-to-ebx  Stream/imm32
+    8b/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # copy *ebx to ebx
+    # .
+    b9/copy-to-ecx  A/imm32
+    ba/copy-to-edx  1/imm32/size
+    e8/call  syscall_write/disp32
+
+    # close(Stream)
+    # . load stream
+    bb/copy-to-ebx  Stream/imm32
+    8b/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # copy *ebx to ebx
+    # .
+    e8/call  syscall_close/disp32
+
+    # stream = open(Filename, O_RDONLY, 0)
+    bb/copy-to-ebx  Filename/imm32
+    b9/copy-to-ecx  0/imm32/rdonly
+    ba/copy-to-edx  0x180/imm32/fixed-perms
+    e8/call  syscall_open/disp32
+    # . save Stream
+    bb/copy-to-ebx  Stream/imm32
+    89/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to *ebx
+
+    # read(Stream, B, 1)
+    # . load stream
+    bb/copy-to-ebx  Stream/imm32
+    8b/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # copy *ebx to ebx
+    # .
+    b9/copy-to-ecx  B/imm32
+    ba/copy-to-edx  1/imm32/size
+    e8/call  syscall_read/disp32
+
+    # close(Stream)
+    # . load stream
+    bb/copy-to-ebx  Stream/imm32
+    8b/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # copy *ebx to ebx
+    #
+    e8/call  syscall_close/disp32
+
+    # unlink(filename)
+    bb/copy-to-ebx  Filename/imm32
+    e8/call  syscall_unlink/disp32
+
+    # exit(b)
+    # . load b
+    bb/copy-to-ebx  B/imm32
+    8b/copy                         0/mod/indirect  3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # copy *ebx to ebx
+    #
+    e8/call  syscall_exit/disp32
+
+== data
+
+Stream:
+    0/imm32
+A:
+    61/imm32/A
+B:
+    0/imm32
+Filename:
+    2e 66 6f 6f 00 00 00 00
+#   .  f  o  o  null
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex8.subx b/linux/ex8.subx
new file mode 100644
index 00000000..84d27195
--- /dev/null
+++ b/linux/ex8.subx
@@ -0,0 +1,60 @@
+# Example reading commandline arguments: compute length of first arg.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex8.subx -o apps/ex8
+#   $ ./bootstrap run apps/ex8 abc de fghi
+# Expected result:
+#   $ echo $?
+#   3  # length of 'abc'
+#
+# At the start of a SubX program:
+#   argc: *esp
+#   argv[0]: *(esp+4)
+#   argv[1]: *(esp+8)
+#   ...
+# Locals start from esp-4 downwards.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # eax = ascii-length(argv[1])
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  ascii-length/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+
+    # exit(eax)
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    e8/call  syscall_exit/disp32
+
+ascii-length:  # s: (addr array byte) -> n/eax
+    # edx = s
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none  .           2/r32/edx   4/disp8         .                 # copy *(esp+4) to edx
+    # var result/eax = 0
+    b8/copy-to-eax  0/imm32
+$ascii-length:loop:
+    # var c/ecx = *s
+    8a/copy-byte                    0/mod/*         2/rm32/edx    .           .             .           1/r32/CL    .               .                 # copy byte at *edx to CL
+    # if (c == '\0') break
+    81          7/subop/compare     3/mod/direct    1/rm32/ecx    .           .             .           .           .               0/imm32/null      # compare ecx
+    74/jump-if-=  $ascii-length:end/disp8
+    # ++s
+    42/increment-edx
+    # ++result
+    40/increment-eax
+    # loop
+    eb/jump  $ascii-length:loop/disp8
+$ascii-length:end:
+    # return eax
+    c3/return
+
+== data
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/ex9.subx b/linux/ex9.subx
new file mode 100644
index 00000000..232178a0
--- /dev/null
+++ b/linux/ex9.subx
@@ -0,0 +1,52 @@
+# Example showing arg order on the stack.
+#
+# Show difference between ascii codes of first letter of first arg and first
+# letter of second arg.
+#
+# To run:
+#   $ ./bootstrap translate init.linux apps/ex9.subx -o apps/ex9
+#   $ ./bootstrap run apps/ex9 z x
+# Expected result:
+#   $ echo $?
+#   2
+#
+# At the start of a SubX program:
+#   argc: *esp
+#   argv[0]: *(esp+4)
+#   argv[1]: *(esp+8)
+#   ...
+# Locals start from esp-4 downwards.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # ascii-difference(argv[1], argv[2])
+    # . . push argv[2]
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . push argv[1]
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  ascii-difference/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # exit(eax)
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    e8/call  syscall_exit/disp32
+
+ascii-difference:  # (s1, s2): null-terminated ascii strings
+    # a = first letter of s1 (ecx)
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none  .           0/r32/eax   4/disp8         .                 # copy *(esp+4) to eax
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           0/r32/eax   .               .                 # copy *eax to eax
+    # b = first letter of s2 (edx)
+    8b/copy                         1/mod/*+disp8   4/rm32/sib    4/base/esp  4/index/none  .           1/r32/ecx   8/disp8                           # copy *(esp+8) to ecx
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           1/r32/ecx   .               .                 # copy *ecx to ecx
+    # a-b
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # subtract ecx from eax
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/factorial.mu b/linux/factorial.mu
new file mode 100644
index 00000000..15ac8cf4
--- /dev/null
+++ b/linux/factorial.mu
@@ -0,0 +1,60 @@
+# compute the factorial of 5, and return the result in the exit code
+#
+# To run:
+#   $ ./translate_mu apps/factorial.mu
+#   $ ./a.elf
+#   $ echo $?
+#   120
+#
+# You can also run the automated test suite:
+#   $ ./a.elf test
+# Expected output:
+#   ........
+# Every '.' indicates a passing test. Failing tests get a 'F'.
+# There's only one test in this file, but you'll also see tests running from
+# Mu's standard library.
+#
+# Compare apps/factorial4.subx
+
+fn factorial n: int -> _/eax: int {
+  compare n, 1
+  # if (n <= 1) return 1
+  {
+    break-if->
+    return 1
+  }
+  # n > 1; return n * factorial(n-1)
+  var tmp/ecx: int <- copy n
+  tmp <- decrement
+  var result/eax: int <- factorial tmp
+  result <- multiply n
+  return result
+}
+
+fn test-factorial {
+  var result/eax: int <- factorial 5
+  check-ints-equal result, 0x78, "F - test-factorial"
+}
+
+fn main args-on-stack: (addr array addr array byte) -> _/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
+  # len = length(args)
+  var len/ecx: int <- length args
+  # if (len <= 1) return factorial(5)
+  compare len, 1
+  {
+    break-if->
+    var exit-status/eax: int <- factorial 5
+    return exit-status
+  }
+  # if (args[1] == "test") run-tests()
+  var tmp2/ecx: (addr addr array byte) <- index args, 1
+  var tmp3/eax: boolean <- string-equal? *tmp2, "test"
+  compare tmp3, 0
+  {
+    break-if-=
+    run-tests
+    # TODO: get at Num-test-failures somehow
+  }
+  return 0
+}
diff --git a/linux/factorial.subx b/linux/factorial.subx
new file mode 100644
index 00000000..b4f8888b
--- /dev/null
+++ b/linux/factorial.subx
@@ -0,0 +1,153 @@
+## compute the factorial of 5, and print the result
+#
+# To run:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/factorial.subx -o apps/factorial
+#   $ ./bootstrap run apps/factorial
+# Expected result:
+#   $ echo $?
+#   120
+#
+# You can also run the automated test suite:
+#   $ ./bootstrap run apps/factorial test
+# Expected output:
+#   ........
+# Every '.' indicates a passing test. Failing tests get a 'F'.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+factorial:  # n: int -> _/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    51/push-ecx
+    # if (n <= 1) return 1
+    b8/copy-to-eax  1/imm32
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         1/imm32           # compare *(ebp+8)
+    7e/jump-if-<=  $factorial:end/disp8
+    # var ecx: int = n-1
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    49/decrement-ecx
+    # var eax: int = factorial(n-1)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  factorial/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # return n * factorial(n-1)
+    f7          4/subop/multiply    1/mod/*+disp8   5/rm32/ebp    .           .                                     8/disp8         .                 # multiply *(ebp+8) into eax
+    # TODO: check for overflow
+$factorial:end:
+    # restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-factorial:
+    # factorial(5)
+    # . . push args
+    68/push  5/imm32
+    # . . call
+    e8/call  factorial/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 120, msg)
+    # . . push args
+    68/push  "F - test-factorial"/imm32
+    68/push  0x78/imm32/expected-120
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # end
+    c3/return
+
+Entry:  # run tests if necessary, compute `factorial(5)` if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap (needed by tests elsewhere)
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    # if (argc <= 1) return factorial(5)
+$run-main:
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7f/jump-if->  $main:run-tests/disp8
+    # eax = factorial(5)
+    # . . push args
+    68/push  5/imm32
+    # . . call
+    e8/call  factorial/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var buffer/ecx: (stream byte 10)  # number of decimal digits a 32-bit number can have
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xa/imm32         # subtract from esp
+    68/push  0xa/imm32/decimal-digits-in-32bit-number
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write-int32-decimal(buffer, eax)
+    # . . push args
+    50/push-eax
+    51/push-ecx
+    # . . call
+    e8/call  write-int32-decimal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-stream(stderr, buffer)
+    # . . push args
+    51/push-ecx
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  write-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(stderr, Newline)
+    # . . push args
+    68/push  Newline/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    #
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    eb/jump  $main:end/disp8
+$main:run-tests:
+    # otherwise if first arg is "test", then return run_tests()
+    # if (!kernel-string-equal?(argv[1], "test")) goto do-nothing
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto do-nothing
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $main:do-nothing/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # exit(*Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $main:end/disp8
+$main:do-nothing:
+    bb/copy-to-ebx  0/imm32
+$main:end:
+    e8/call  syscall_exit/disp32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/factorial2.subx b/linux/factorial2.subx
new file mode 100644
index 00000000..22c3d5be
--- /dev/null
+++ b/linux/factorial2.subx
@@ -0,0 +1,122 @@
+## compute the factorial of 5, and return the result in the exit code
+#
+# Uses syntax sugar for:
+#   rm32 operands
+#
+# To run:
+#   $ ./translate_subx init.linux [01]*.subx apps/factorial.subx -o apps/factorial
+#   $ ./bootstrap run apps/factorial
+# Expected result:
+#   $ echo $?
+#   120
+#
+# You can also run the automated test suite:
+#   $ ./bootstrap run apps/factorial test
+# Expected output:
+#   ........
+# Every '.' indicates a passing test. Failing tests get a 'F'.
+#
+# Compare apps/factorial.subx
+
+== code
+
+factorial:  # n: int -> _/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # save registers
+    51/push-ecx
+    # if (n <= 1) return 1
+    b8/copy-to-eax 1/imm32
+    81 7/subop/compare *(ebp+8) 1/imm32
+    7e/jump-if-<= $factorial:end/disp8
+    # n > 1; return n * factorial(n-1)
+    8b/-> *(ebp+8) 1/r32/ecx
+    49/decrement-ecx
+    # var tmp/eax: int = factorial(n-1)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call factorial/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # return n * tmp
+    f7 4/subop/multiply-into-eax *(ebp+8)
+    # TODO: check for overflow
+$factorial:end:
+    # restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-factorial:
+    # factorial(5)
+    # . . push args
+    68/push 5/imm32
+    # . . call
+    e8/call factorial/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # check-ints-equal(eax, 120, msg)
+    # . . push args
+    68/push "F - test-factorial"/imm32
+    68/push 0x78/imm32/expected-120
+    50/push-eax
+    # . . call
+    e8/call check-ints-equal/disp32
+    # . . discard args
+    81 0/subop/add %esp 0xc/imm32
+    # end
+    c3/return
+
+Entry:  # run tests if necessary, compute `factorial(5)` if not
+    # . prologue
+    89/<- %ebp 4/r32/esp
+
+    # initialize heap (needed by tests elsewhere)
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push Heap/imm32
+    ff 6/subop/push *Heap-size
+    # . . call
+    e8/call new-segment/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+
+    # if (argc <= 1) return factorial(5)
+    81 7/subop/compare *ebp 1/imm32
+    7f/jump-if-> $main:run-tests/disp8
+    # . . push args
+    68/push 5/imm32
+    # . . call
+    e8/call factorial/disp32
+    # . . discard args
+    81 0/subop/add %esp 4/imm32
+    # .
+    89/<- %ebx 0/r32/eax
+    eb/jump $main:end/disp8
+$main:run-tests:
+    # otherwise if first arg is "test", then return run_tests()
+    # if (!kernel-string-equal?(argv[1], "test")) goto do-nothing
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push "test"/imm32
+    ff 6/subop/push *(ebp+8)
+    # . . call
+    e8/call kernel-string-equal?/disp32
+    # . . discard args
+    81 0/subop/add %esp 8/imm32
+    # . if (eax == false) goto do-nothing
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $main:do-nothing/disp8
+    # run-tests()
+    e8/call run-tests/disp32
+    # exit(*Num-test-failures)
+    8b/-> *Num-test-failures 3/r32/ebx
+    eb/jump $main:end/disp8
+$main:do-nothing:
+    bb/copy-to-ebx 0/imm32
+$main:end:
+    e8/call  syscall_exit/disp32
diff --git a/linux/factorial3.subx b/linux/factorial3.subx
new file mode 100644
index 00000000..82d59b5e
--- /dev/null
+++ b/linux/factorial3.subx
@@ -0,0 +1,80 @@
+## compute the factorial of 5, and return the result in the exit code
+#
+# Uses syntax sugar for:
+#   rm32 operands
+#   function calls
+#
+# To run:
+#   $ ./translate_subx init.linux [01]*.subx apps/factorial.subx -o apps/factorial
+#   $ ./bootstrap run apps/factorial
+# Expected result:
+#   $ echo $?
+#   120
+#
+# You can also run the automated test suite:
+#   $ ./bootstrap run apps/factorial test
+# Expected output:
+#   ........
+# Every '.' indicates a passing test. Failing tests get a 'F'.
+#
+# Compare apps/factorial2.subx
+
+== code
+
+factorial:  # n: int -> _/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # save registers
+    51/push-ecx
+    # if (n <= 1) return 1
+    b8/copy-to-eax 1/imm32
+    81 7/subop/compare *(ebp+8) 1/imm32
+    7e/jump-if-<= $factorial:end/disp8
+    # n > 1; return n * factorial(n-1)
+    8b/-> *(ebp+8) 1/r32/ecx
+    49/decrement-ecx
+    (factorial %ecx)  # => eax
+    f7 4/subop/multiply-into-eax *(ebp+8)
+    # TODO: check for overflow
+$factorial:end:
+    # restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-factorial:
+    (factorial 5)
+    (check-ints-equal %eax 0x78 "F - test-factorial")
+    c3/return
+
+Entry:  # run tests if necessary, compute `factorial(5)` if not
+    # . prologue
+    89/<- %ebp 4/r32/esp
+
+    # initialize heap (needed by tests elsewhere)
+    (new-segment *Heap-size Heap)
+
+    # if (argc <= 1) return factorial(5)
+    81 7/subop/compare *ebp 1/imm32
+    7f/jump-if-> $main:run-tests/disp8
+    (factorial 5)  # => eax
+    89/<- %ebx 0/r32/eax
+    eb/jump $main:end/disp8
+$main:run-tests:
+    # otherwise if first arg is "test", then return run_tests()
+    # if (!kernel-string-equal?(argv[1], "test")) goto do-nothing
+    (kernel-string-equal? *(ebp+8) "test")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $main:do-nothing/disp8
+    #
+    (run-tests)
+    # exit(*Num-test-failures)
+    8b/-> *Num-test-failures 3/r32/ebx
+    eb/jump $main:end/disp8
+$main:do-nothing:
+    bb/copy-to-ebx 0/imm32
+$main:end:
+    e8/call  syscall_exit/disp32
diff --git a/linux/factorial4.subx b/linux/factorial4.subx
new file mode 100644
index 00000000..a22c7246
--- /dev/null
+++ b/linux/factorial4.subx
@@ -0,0 +1,88 @@
+## compute the factorial of 5, and return the result in the exit code
+#
+# Uses syntax sugar for:
+#   rm32 operands
+#   function calls
+#   control flow
+#
+# To run:
+#   $ ./translate_subx init.linux [01]*.subx apps/factorial.subx -o apps/factorial
+#   $ ./bootstrap run apps/factorial
+# Expected result:
+#   $ echo $?
+#   120
+#
+# You can also run the automated test suite:
+#   $ ./bootstrap run apps/factorial test
+# Expected output:
+#   ........
+# Every '.' indicates a passing test. Failing tests get a 'F'.
+#
+# Compare apps/factorial3.subx
+
+== code
+
+factorial:  # n: int -> _/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # save registers
+    51/push-ecx
+    # if (n <= 1) return 1
+    81 7/subop/compare *(ebp+8) 1/imm32
+    {
+      7f/jump-if-> break/disp8
+      b8/copy-to-eax 1/imm32
+      eb/jump $factorial:end/disp8
+    }
+    # n > 1; return n * factorial(n-1)
+    8b/-> *(ebp+8) 1/r32/ecx
+    49/decrement-ecx
+    (factorial %ecx)  # => eax
+    f7 4/subop/multiply-into-eax *(ebp+8)
+    # TODO: check for overflow
+$factorial:end:
+    # restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-factorial:
+    (factorial 5)
+    (check-ints-equal %eax 0x78 "F - test-factorial")
+    c3/return
+
+Entry:  # run tests if necessary, compute `factorial(5)` if not
+    # . prologue
+    89/<- %ebp 4/r32/esp
+
+    # initialize heap (needed by tests elsewhere)
+    (new-segment *Heap-size Heap)
+
+    # if (argc <= 1) return factorial(5)
+    {
+      # if (argc > 1) break
+      81 7/subop/compare *ebp 1/imm32
+      7f/jump-if-> break/disp8
+      # ebx = factorial(5)
+      (factorial 5)  # => eax
+      89/<- %ebx 0/r32/eax
+      eb/jump $main:end/disp8
+    }
+    # otherwise if first arg is "test", then return run_tests()
+    {
+      # if (!kernel-string-equal?(argv[1], "test")) break
+      (kernel-string-equal? *(ebp+8) "test")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      #
+      (run-tests)
+      # exit(*Num-test-failures)
+      8b/-> *Num-test-failures 3/r32/ebx
+      eb/jump $main:end/disp8
+    }
+    bb/copy-to-ebx 0/imm32
+$main:end:
+    e8/call  syscall_exit/disp32
diff --git a/linux/hello.mu b/linux/hello.mu
new file mode 100644
index 00000000..9e8fdb6f
--- /dev/null
+++ b/linux/hello.mu
@@ -0,0 +1,10 @@
+# Meaningless conventional example.
+#
+# To run:
+#   $ ./translate_mu apps/hello.mu
+#   $ ./a.elf
+
+fn main -> _/ebx: int {
+  print-string 0/screen, "Hello world!\n"
+  return 0
+}
diff --git a/linux/hex b/linux/hex
new file mode 100755
index 00000000..480e48a8
--- /dev/null
+++ b/linux/hex
Binary files differdiff --git a/linux/hex.subx b/linux/hex.subx
new file mode 100644
index 00000000..5a86f8ec
--- /dev/null
+++ b/linux/hex.subx
@@ -0,0 +1,1435 @@
+# Read a text file containing whitespace-separated pairs of ascii hex bytes
+# from stdin, and convert them into binary bytes (octets) on stdout. Ignore
+# comments between '#' and newline.
+#
+# To run:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/subx-params.subx apps/hex.subx  -o apps/hex
+#   $ echo '80 81 82  # comment'  |./bootstrap run apps/hex  |xxd -
+# Expected output:
+#   00000000: 8081 82
+#
+# Only hex bytes and comments are permitted. Outside of comments all words
+# must be exactly 2 characters long and contain only characters [0-9a-f]. No
+# uppercase hex.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto interactive
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $subx-hex-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto interactive
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto interactive
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-hex-main:interactive/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $subx-hex-main:end/disp8
+$subx-hex-main:interactive:
+    # - otherwise convert stdin
+    # . subx-hex(Stdin, Stdout, Stderr, 0)
+    # . . push args
+    68/push  0/imm32/exit-descriptor
+    68/push  Stderr/imm32
+    68/push  Stdout/imm32
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  subx-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$subx-hex-main:end:
+    e8/call  syscall_exit/disp32
+
+# the main entry point
+subx-hex:  # in: (addr buffered-file), out: (addr buffered-file), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   while true
+    #     eax = convert-next-octet(in, err, ed)
+    #     if (eax == Eof) break
+    #     write-byte-buffered(out, AL)
+    #   flush(out)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+$subx-hex:loop:
+    # eax = convert-next-octet(in, err, ed)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  convert-next-octet/disp32
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # if (eax == Eof) break
+    3d/compare-eax-and  0xffffffff/imm32/Eof
+    74/jump-if-=  $subx-hex:loop-end/disp8
+    # write-byte-buffered(out, AL)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+    eb/jump  $subx-hex:loop/disp8
+$subx-hex:loop-end:
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$subx-hex:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# read bytes from 'in' until a sequence of two lowercase hex (0-9, a-f) bytes
+# skip spaces and newlines
+# on '#' skip bytes until newline
+# raise an error and abort on all other unexpected bytes
+# return in eax an _octet_ containing the binary value of the two hex characters
+# return Eof on reaching end of file
+convert-next-octet:  # in: (addr buffered-file), err: (addr buffered-file), ed: (addr exit-descriptor) -> byte-or-Eof/eax
+    # pseudocode:
+    #   eax = scan-next-byte(in, err, ed)
+    #   if (eax == Eof) return
+    #   ecx = from-hex-char(eax)
+    #   eax = scan-next-byte(in, err, ed)
+    #   if (eax == Eof) error("partial byte found.")
+    #   eax = from-hex-char(eax)
+    #   eax = (ecx << 4) | eax
+    #   return
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    # eax = scan-next-byte(in, err, ed)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # if (eax == Eof) return
+    3d/compare-eax-and  0xffffffff/imm32/Eof
+    74/jump-if-=  $convert-next-octet:end/disp8
+    # eax = from-hex-char(eax)
+    e8/call from-hex-char/disp32
+    # ecx = eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to ecx
+    # eax = scan-next-byte(in, err, ed)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # if (eax == Eof) error(ed, err, "partial byte found.")
+    3d/compare-eax-and  0xffffffff/imm32/Eof
+    75/jump-if-!=  $convert-next-octet:convert/disp8
+    # . error-byte(ed, err, msg, '.')  # reusing error-byte to avoid creating _yet_ another helper
+    # . . push args
+    68/push  0x2e/imm32/period/dummy
+    68/push  "convert-next-octet: partial byte found"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  error-byte/disp32  # never returns
+$convert-next-octet:convert:
+    # eax = from-hex-char(eax)
+    e8/call from-hex-char/disp32
+    # eax = (ecx << 4) | eax
+    # . ecx <<= 4
+    c1/shift    4/subop/left        3/mod/direct    1/rm32/ecx    .           .             .           .           .               4/imm8            # shift ecx left by 4 bits
+    # . eax |= ecx
+    09/or                           3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # eax = bitwise OR with ecx
+$convert-next-octet:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-next-octet:
+    # - check that the first two bytes of the input are assembled into the resulting octet
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to "abc"
+    # . write(_test-stream, "abc")
+    # . . push args
+    68/push  "abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'convert-next-octet' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-convert-next-octet
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = convert-next-octet(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  convert-next-octet/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to convert-next-octet
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that convert-next-octet didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-convert-next-octet: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-convert-next-octet:end/disp8
+    # check-ints-equal(eax, 0xab, msg)
+    # . . push args
+    68/push  "F - test-convert-next-octet"/imm32
+    68/push  0xab/imm32/ab
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-convert-next-octet:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-next-octet-handles-Eof:
+    # - check that reaching end of file returns Eof
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # don't initialize '_test-stream'
+    # initialize exit-descriptor 'ed' for the call to 'convert-next-octet' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-convert-next-octet
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = convert-next-octet(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  convert-next-octet/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to convert-next-octet
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that convert-next-octet didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-convert-next-octet: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-convert-next-octet-handles-Eof:end/disp8
+    # check-ints-equal(eax, Eof, msg)
+    # . . push args
+    68/push  "F - test-convert-next-octet-handles-Eof"/imm32
+    68/push  0xffffffff/imm32/Eof
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-convert-next-octet-handles-Eof:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-next-octet-aborts-on-single-hex-byte:
+    # - check that a single unaccompanied hex byte aborts
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to "a"
+    # . write(_test-stream, "a")
+    # . . push args
+    68/push  "a"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'convert-next-octet' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-convert-next-octet
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = convert-next-octet(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  convert-next-octet/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to convert-next-octet
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that convert-next-octet aborted
+    # . check-ints-equal(ed->value, 2, msg)
+    # . . push args
+    68/push  "F - test-convert-next-octet-aborts-on-single-hex-byte: unexpected abort"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-convert-next-octet-aborts-on-single-hex-byte:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+# read whitespace until a hex byte, and return it
+# return Eof if file ends without finding a hex byte
+# on '#' skip all bytes until newline
+# abort on any other byte
+scan-next-byte:  # in: (addr buffered-file), err: (addr buffered-file), ed: (addr exit-descriptor) -> byte-or-Eof/eax
+    # pseudocode:
+    #   while true
+    #     eax = read-byte-buffered(in)
+    #     if (eax == Eof) return eax
+    #     if (is-hex-digit?(eax)) return eax
+    #     if (eax == ' ' or '\t' or '\n') continue
+    #     if (eax == '#') skip-until-newline(in)
+    #     else error-byte(ed, err, "invalid byte: " eax)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+$scan-next-byte:loop:
+    # eax = read-byte-buffered(in)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # if (eax == Eof) return eax
+    3d/compare-with-eax  0xffffffff/imm32/Eof
+    74/jump-if-=  $scan-next-byte:end/disp8
+    # if (is-hex-digit?(eax)) return eax
+    # . save eax for now
+    50/push-eax
+    # . is-hex-digit?(eax)
+    # . . push args
+    50/push-eax
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . compare with 'false'
+    3d/compare-with-eax  0/imm32/false
+    # . restore eax (does not affect flags)
+    58/pop-to-eax
+    # . check whether to return
+    75/jump-if-!=  $scan-next-byte:end/disp8
+$scan-next-byte:check1:
+    # if (eax == ' ') continue
+    3d/compare-eax-and  0x20/imm32/space
+    74/jump-if-=  $scan-next-byte:loop/disp8
+    # if (eax == '\t') continue
+    3d/compare-eax-and  9/imm32/tab
+    74/jump-if-=  $scan-next-byte:loop/disp8
+    # if (eax == '\n') continue
+    3d/compare-eax-and  0xa/imm32/newline
+    74/jump-if-=  $scan-next-byte:loop/disp8
+$scan-next-byte:check2:
+    # if (eax == '#') skip-until-newline(in)
+    3d/compare-with-eax  0x23/imm32/hash
+    75/jump-if-!=  $scan-next-byte:check3/disp8
+    # . skip-until-newline(in)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-until-newline/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    eb/jump  $scan-next-byte:loop/disp8
+$scan-next-byte:check3:
+    # otherwise error-byte(ed, err, msg, eax)
+    # . . push args
+    50/push-eax
+    68/push  "scan-next-byte: invalid byte"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  error-byte/disp32  # never returns
+$scan-next-byte:end:
+    # . restore registers
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-scan-next-byte:
+    # - check that the first byte of the input is returned
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to "abc"
+    # . write(_test-stream, "abc")
+    # . . push args
+    68/push  "abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to scan-next-byte
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that scan-next-byte didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-scan-next-byte:end/disp8
+    # check-ints-equal(eax, 0x61/a, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte"/imm32
+    68/push  0x61/imm32/a
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-scan-next-byte:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-scan-next-byte-skips-whitespace:
+    # - check that the first byte after whitespace is returned
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to input with leading whitespace
+    # . write(_test-stream, text)
+    # . . push args
+    68/push  "  abc"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to scan-next-byte
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that scan-next-byte didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-skips-whitespace: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-scan-next-byte-skips-whitespace:end/disp8
+    # check-ints-equal(eax, 0x61/a, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-skips-whitespace"/imm32
+    68/push  0x61/imm32/a
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-scan-next-byte-skips-whitespace:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-scan-next-byte-skips-comment:
+    # - check that the first byte after a comment (and newline) is returned
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to input with leading comment
+    # . write(_test-stream, comment)
+    # . . push args
+    68/push  "#x\n"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-stream, real text)
+    # . . push args
+    68/push  "ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to scan-next-byte
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that scan-next-byte didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-skips-comment: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-scan-next-byte-skips-comment:end/disp8
+    # check-ints-equal(eax, 0x61/a, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-skips-comment"/imm32
+    68/push  0x61/imm32/a
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-scan-next-byte-skips-comment:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-scan-next-byte-skips-comment-and-whitespace:
+    # - check that the first byte after a comment and any further whitespace is returned
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to input with leading comment and more whitespace after newline
+    # . write(_test-stream, comment)
+    # . . push args
+    68/push  "#x\n"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-stream, real text)
+    # . . push args
+    68/push  " ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to scan-next-byte
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that scan-next-byte didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-skips-comment-and-whitespace: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-scan-next-byte-skips-comment-and-whitespace:end/disp8
+    # check-ints-equal(eax, 0x61/a, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-skips-comment-and-whitespace"/imm32
+    68/push  0x61/imm32/a
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-scan-next-byte-skips-comment-and-whitespace:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-scan-next-byte-skips-whitespace-and-comment:
+    # - check that the first byte after any whitespace and comments is returned
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    b8/copy-to-eax  _test-buffered-file/imm32
+    05/add-to-eax  4/imm32
+    50/push-eax
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to input with leading whitespace and comment
+    # . write(_test-stream, comment)
+    # . . push args
+    68/push  " #x\n"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-stream, real text)
+    # . . push args
+    68/push  "ab"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to scan-next-byte
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that scan-next-byte didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-skips-whitespace-and-comment: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-scan-next-byte-skips-whitespace-and-comment:end/disp8
+    # check-ints-equal(eax, 0x61/a, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-skips-whitespace-and-comment"/imm32
+    68/push  0x61/imm32/a
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-scan-next-byte-skips-whitespace-and-comment:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-scan-next-byte-reads-final-byte:
+    # - check that the final byte in input is returned
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to input with single character
+    # . write(_test-stream, character)
+    # . . push args
+    68/push  "a"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to scan-next-byte
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that scan-next-byte didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-reads-final-byte: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-scan-next-byte-reads-final-byte:end/disp8
+    # check-ints-equal(eax, 0x61/a, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-reads-final-byte"/imm32
+    68/push  0x61/imm32/a
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-scan-next-byte-reads-final-byte:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-scan-next-byte-handles-Eof:
+    # - check that the right sentinel value is returned when there's no data remaining to be read
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # leave '_test-stream' empty
+    # initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to scan-next-byte
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that scan-next-byte didn't abort
+    # . check-ints-equal(ed->value, 0, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-handles-Eof: unexpected abort"/imm32
+    68/push  0/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # return if abort
+    81          7/subop/compare     1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         0/imm32           # compare *(ecx+4)
+    75/jump-if-!=  $test-scan-next-byte-handles-Eof:end/disp8
+    # check-ints-equal(eax, Eof, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-handles-Eof"/imm32
+    68/push  0xffffffff/imm32/Eof
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-scan-next-byte-handles-Eof:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-scan-next-byte-aborts-on-invalid-byte:
+    # - check that the a bad byte immediately aborts
+    # This test uses exit-descriptors. Use ebp for setting up local variables.
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # clear all streams
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-error-stream)
+    # . . push args
+    68/push  _test-error-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-error-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-error-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to "x"
+    # . write(_test-stream, "x")
+    # . . push args
+    68/push  "x"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize exit-descriptor 'ed' for the call to 'scan-next-byte' below
+    # . var ed/ecx: exit-descriptor
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # subtract from esp
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . tailor-exit-descriptor(ed, 12)
+    # . . push args
+    68/push  0xc/imm32/nbytes-of-args-for-scan-next-byte
+    51/push-ecx/ed
+    # . . call
+    e8/call  tailor-exit-descriptor/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = scan-next-byte(_test-buffered-file, _test-error-buffered-file, ed)
+    # . . push args
+    51/push-ecx/ed
+    68/push  _test-error-buffered-file/imm32
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  scan-next-byte/disp32
+    # registers except esp may be clobbered at this point
+    # pop args to scan-next-byte
+    # . . discard first 2 args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . restore ed
+    59/pop-to-ecx
+    # check that scan-next-byte aborted
+    # . check-ints-equal(ed->value, 2, msg)
+    # . . push args
+    68/push  "F - test-scan-next-byte-aborts-on-invalid-byte"/imm32
+    68/push  2/imm32
+    # . . push ed->value
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$test-scan-next-byte-aborts-on-invalid-byte:end:
+    # . epilogue
+    # don't restore esp from ebp; manually reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    5d/pop-to-ebp
+    c3/return
+
+skip-until-newline:  # in: (addr buffered-file)
+    # pseudocode:
+    #   push eax
+    #   while true
+    #     eax = read-byte-buffered(in)
+    #     if (eax == Eof) break
+    #     if (eax == 0x0a) break
+    #   pop eax
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+$skip-until-newline:loop:
+    # . eax = read-byte-buffered(in)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == Eof) break
+    3d/compare-eax-and  0xffffffff/imm32/Eof
+    74/jump-if-=  $skip-until-newline:end/disp8
+    # . if (eax != 0xa/newline) loop
+    3d/compare-eax-and  0xa/imm32/newline
+    75/jump-if-!=  $skip-until-newline:loop/disp8
+$skip-until-newline:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-skip-until-newline:
+    # - check that the read pointer points after the newline
+    # setup
+    # . clear-stream(_test-stream)
+    # . . push args
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize '_test-stream' to "abc\nde"
+    # . write(_test-stream, "abc")
+    # . . push args
+    68/push  "abc\n"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-stream, "de")
+    # . . push args
+    68/push  "de"/imm32
+    68/push  _test-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # skip-until-newline(_test-buffered-file)
+    # . . push args
+    68/push  _test-buffered-file/imm32
+    # . . call
+    e8/call  skip-until-newline/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(_test-buffered-file->read, 4, msg)
+    # . . push args
+    68/push  "F - test-skip-until-newline"/imm32
+    68/push  4/imm32
+    b8/copy-to-eax  _test-buffered-file/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           8/disp8         .                 # push *(eax+8)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . end
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/mu b/linux/mu
new file mode 100755
index 00000000..edf61e10
--- /dev/null
+++ b/linux/mu
Binary files differdiff --git a/linux/mu-init-test.subx b/linux/mu-init-test.subx
new file mode 100644
index 00000000..1b2d1683
--- /dev/null
+++ b/linux/mu-init-test.subx
@@ -0,0 +1,37 @@
+# Just a test stub for mu-init.subx
+#
+# Try it out like this:
+#   $ ./translate_subx init.linux [0-9]*.subx mu-init.subx mu-init-test.subx
+#   $ ./a.elf  # should run all tests
+
+main:  # args: (addr array (addr array byte)) -> result/ebx: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # esi = args
+    8b/-> *(ebp+8) 6/r32/esi
+    {
+      # if (argc <= 1) break
+      81 7/subop/compare *esi 4/imm32
+      7e/jump-if-<= break/disp8
+      # if (argv[1] != "test") break
+      (string-equal? *(esi+8) "test")  # => eax
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+      #
+      (run-tests)
+      # return *Num-test-failures
+      8b/-> *Num-test-failures 3/r32/ebx
+      eb/jump $main:end/disp8
+    }
+$main:end:
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/mu-init.subx b/linux/mu-init.subx
new file mode 100644
index 00000000..feab920f
--- /dev/null
+++ b/linux/mu-init.subx
@@ -0,0 +1,62 @@
+# Initialize the minimal runtime for Mu programs.
+#
+# See translate_mu for how this file is used.
+#
+# Mu programs start at a function called 'main' with this signature:
+#   fn main args: (addr array addr array byte) -> _/ebx: int
+# If your program doesn't need commandline arguments you can drop it:
+#   fn main -> _/ebx: int
+#
+# Notice that the output must be in ebx, so that the exit() syscall can pick
+# it up.
+
+== code
+
+Entry:
+    # we don't use ebp in Entry; just initialize it
+    bd/copy-to-ebp 0/imm32
+    # - save argc and argv
+    # var argc-and-argv/esi
+    89/<- %esi 4/r32/esp
+$Entry:initialize-heap:
+    # - initialize the heap
+    (new-segment *Heap-size Heap)
+$Entry:initialize-args:
+    # - convert argv from null-terminated 'kernel' strings to length-prefixed Mu strings
+    # var argc/edx: int
+    8b/-> *esi 2/r32/edx
+    # argc is in words; convert it to bytes
+    c1/shift 4/subop/left %edx 2/imm8
+    # var tmp/ebx: handle
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ebx 4/r32/esp
+    # var args/edi: (addr array (addr array byte))
+    (allocate-array Heap %edx %ebx)
+    (lookup *ebx *(ebx+4))  # => eax
+    89/<- %edi 0/r32/eax
+    # var curr/ecx: (addr kernel-string) = argv
+    8d/copy-address *(esi+4) 1/r32/ecx
+    # var max/edx: (addr kernel-string) = argv+4+argc
+    8d/copy-address *(ecx+edx) 2/r32/edx
+    # var dest/esi: (addr (addr array byte)) = args+4
+    8d/copy-address *(edi+4) 6/r32/esi
+    {
+      # if (curr >= max) break
+      39/compare %ecx 2/r32/edx
+      73/jump-if-addr>= break/disp8
+      # *dest = kernel-string-to-string(*curr)
+      (kernel-string-to-string Heap *ecx %ebx)
+      (lookup *ebx *(ebx+4))  # => eax
+      89/<- *esi 0/r32/eax
+      # curr += 4
+      81 0/subop/add %ecx 4/imm32
+      # dest += 4
+      81 0/subop/add %esi 4/imm32
+      #
+      eb/jump loop/disp8
+    }
+    # - run Mu program
+    (main %edi)  # => ebx
+    # - exit
+    (syscall_exit)
diff --git a/linux/mu.subx b/linux/mu.subx
new file mode 100644
index 00000000..fa3bda75
--- /dev/null
+++ b/linux/mu.subx
@@ -0,0 +1,38350 @@
+# The Mu computer's level-2 language, also called Mu.
+# http://akkartik.name/post/mu-2019-2
+#
+# To run:
+#   $ ./translate_subx init.linux [0-9]*.subx apps/mu.subx
+#   $ ./a.elf < prog.mu > prog.elf
+
+# == Goals
+# 1. Be memory safe. It should be impossible to corrupt the heap, or to create
+# a bad pointer. (Requires strong type safety.)
+# 2. Do as little as possible to achieve goal 1. The translator should be
+# implementable in machine code.
+#   - minimize impedance mismatch between source language and SubX target
+#     (e.g. programmer manages registers manually)
+#   - checks over syntax
+#     (e.g. programmer's register allocation is checked)
+#   - runtime checks to avoid complex static analysis
+#     (e.g. array indexing always checks bounds)
+
+# == Language description
+# A program is a sequence of function and type definitions.
+#
+# Function example:
+#   fn foo n: int -> _/eax: int {
+#     ...
+#   }
+#
+# Functions consist of a name, optional inputs, optional outputs and a block.
+#
+# Function inputs and outputs are variables. All variables have a type and
+# storage specifier. They can be placed either in memory (on the stack) or in
+# one of 6 named registers.
+#   eax ecx edx ebx esi edi
+# Variables in registers must be primitive 32-bit types.
+# Variables not explicitly placed in a register are on the stack.
+#
+# Function inputs are always passed in memory (on the stack), while outputs
+# are always returned in registers. Outputs can't be named; they use the
+# dummy value '_'.
+#
+# Blocks mostly consist of statements.
+#
+# Statements mostly consist of a name, optional inputs and optional outputs.
+#
+# Statement inputs are variables or literals. Variables need to specify type
+# (and storage) the first time they're mentioned but not later.
+#
+# Statement outputs, like function outputs, must be variables in registers.
+#
+# Statement names must be either primitives or user-defined functions.
+#
+# Primitives can write to any register.
+# User-defined functions only write to hard-coded registers. Outputs of each
+# call must have the same registers as in the function definition.
+#
+# There are some other statement types:
+#   - blocks. Multiple statements surrounded by '{...}' and optionally
+#     prefixed with a label name and ':'
+#       - {
+#           ...
+#         }
+#       - foo: {
+#           ...
+#         }
+#
+#   - variable definitions on the stack. E.g.:
+#       - var foo: int
+#       - var bar: (array int 3)
+#     There's no initializer; variables are automatically initialized.
+#     The type of a local variable is either word-length (4 bytes) or starts with 'ref'.
+#
+#   - variables definitions in a register. E.g.:
+#       - var foo/eax: int <- add bar 1
+#     The initializer is mandatory and must be a valid instruction that writes
+#     a single output to the right register. In practice registers will
+#     usually be either initialized by primitives or copied from eax.
+#       - var eax: int <- foo bar quux
+#         var floo/ecx: int <- copy eax
+#
+# Still todo:
+#   global variables
+#   union types
+#
+# Formal types:
+#   A program is a linked list of functions
+#   A function contains:
+#     name: (handle array byte)
+#     inouts: linked list of vars  <-- 'inouts' is more precise than 'inputs'
+#       data: (handle var)
+#       next: (handle list)
+#     outputs: linked list of vars
+#       data: (handle var)
+#       next: (handle list)
+#     body: (handle block)
+#   A var-type contains:
+#     name: (handle array byte)
+#     type: (handle type-tree)
+#
+#   A statement can be:
+#     tag 0: a block
+#     tag 1: a simple statement (stmt1)
+#     tag 2: a variable defined on the stack
+#     tag 3: a variable defined in a register
+#
+#   A block contains:
+#     tag: 0
+#     statements: (handle list stmt)
+#     name: (handle array byte) -- starting with '$'
+#
+#   A regular statement contains:
+#     tag: 1
+#     operation: (handle array byte)
+#     inouts: (handle list operand)
+#     outputs: (handle list var)
+#
+#   A variable defined on the stack contains:
+#     tag: 2
+#     name: (handle array byte)
+#     type: (handle type-tree)
+#
+#   A variable defined in a register contains:
+#     tag: 3
+#     name: (handle array byte)
+#     type: (handle type-tree)
+#     reg: (handle array byte)
+
+# == Translation: managing the stack
+# Now that we know what the language looks like in the large, let's think
+# about how translation happens from the bottom up. One crucial piece of the
+# puzzle is how Mu will clean up variables defined on the stack for you.
+#
+# Assume that we maintain a 'functions' list while parsing source code. And a
+# 'primitives' list is a global constant. Both these contain enough information
+# to perform type-checking on function calls or primitive statements, respectively.
+#
+# Defining variables pushes them on a stack with the current block depth and
+# enough information about their location (stack offset or register).
+# Starting a block increments the current block id.
+# Each statement now has enough information to emit code for it.
+# Ending a block is where the magic happens:
+#   pop all variables at the current block depth
+#   emit code to restore all register variables introduced at the current depth
+#   emit code to clean up all stack variables at the current depth (just increment esp)
+#   decrement the current block depth
+#
+# Formal types:
+#   live-vars: stack of vars
+#   var:
+#     name: (handle array byte)
+#     type: (handle type-tree)
+#     block: int
+#     stack-offset: int  (added to ebp)
+#     register: (handle array byte)
+#       either usual register names
+#       or '*' to indicate any register
+#   At most one of stack-offset or register-index must be non-zero.
+#   A register of '*' designates a variable _template_. Only legal in formal
+#   parameters for primitives.
+
+# == Translating a single function call
+# This one's easy. Assuming we've already checked things, we just drop the
+# outputs (which use hard-coded registers) and emit inputs in a standard format.
+#
+# out1, out2, out3, ... <- name inout1, inout2, inout3, ...
+# =>
+# (name inout1 inout2 inout3)
+#
+# Formal types:
+#   functions: linked list of info
+#     name: (handle array byte)
+#     inouts: linked list of vars
+#     outputs: linked list of vars
+#     body: block (linked list of statements)
+
+# == Translating a single primitive instruction
+# A second crucial piece of the puzzle is how Mu converts fairly regular
+# primitives with their uniform syntax to SubX instructions with their gnarly
+# x86 details.
+#
+# Mu instructions have inputs and outputs. Primitives can have up to 2 of
+# them.
+# SubX instructions have rm32 and r32 operands.
+# The translation between them covers almost all the possibilities.
+#   Instructions with 1 inout may turn into ones with 1 rm32
+#     (e.g. incrementing a var on the stack)
+#   Instructions with 1 output may turn into ones with 1 rm32
+#     (e.g. incrementing a var in a register)
+#   1 inout and 1 output may turn into 1 rm32 and 1 r32
+#     (e.g. adding a var to a reg)
+#   2 inouts may turn into 1 rm32 and 1 r32
+#     (e.g. adding a reg to a var)
+#   1 inout and 1 literal may turn into 1 rm32 and 1 imm32
+#     (e.g. adding a constant to a var)
+#   1 output and 1 literal may turn into 1 rm32 and 1 imm32
+#     (e.g. adding a constant to a reg)
+#   2 outputs to hardcoded registers and 1 inout may turn into 1 rm32
+#     (special-case: divide edx:eax by a var or reg)
+# Observations:
+#   We always emit rm32. It may be the first inout or the first output.
+#   We may emit r32 or imm32 or neither.
+#   When we emit r32 it may come from first inout or second inout or first output.
+#
+# Accordingly, the formal data structure for a primitive looks like this:
+#   primitives: linked list of info
+#     name: (handle array byte)
+#     mu-inouts: linked list of vars to check
+#     mu-outputs: linked list of vars to check; at most a singleton
+#     subx-name: (handle array byte)
+#     subx-rm32: enum arg-location
+#     subx-r32: enum arg-location
+#     subx-imm32: enum arg-location
+#     subx-imm8: enum arg-location
+#     subx-disp32: enum arg-location
+#     subx-xm32: enum arg-location
+#     subx-x32: enum arg-location
+#   arg-location: enum
+#     0 means none
+#     1 means first inout
+#     2 means second inout
+#     3 means first output
+
+# == Translating a block
+# Emit block name if necessary
+# Emit '{'
+# When you encounter a statement, emit it as above
+# When you encounter a variable declaration
+#   emit any code needed for it (bzeros)
+#   push it on the var stack
+#   update register dict if necessary
+# When you encounter '}'
+#   While popping variables off the var stack until block id changes
+#     Emit code needed to clean up the stack
+#       either increment esp
+#       or pop into appropriate register
+
+# The rest is straightforward.
+
+== data
+
+Program:
+_Program-functions:  # (handle function)
+  0/imm32
+_Program-functions->payload:
+  0/imm32
+_Program-types:  # (handle typeinfo)
+  0/imm32
+_Program-types->payload:
+  0/imm32
+_Program-signatures:  # (handle function)
+  0/imm32
+_Program-signatures->payload:
+  0/imm32
+
+# Some constants for simulating the data structures described above.
+# Many constants here come with a type in a comment.
+#
+# Sometimes the type is of the value at that offset for the given type. For
+# example, if you start at a function record and move forward Function-inouts
+# bytes, you'll find a (handle list var).
+#
+# At other times, the type is of the constant itself. For example, the type of
+# the constant Function-size is (addr int). To get the size of a function,
+# look in *Function-size.
+
+Function-name:  # (handle array byte)
+  0/imm32
+Function-inouts:  # (handle list var)
+  8/imm32
+Function-outputs:  # (handle list var)
+  0x10/imm32
+Function-body:  # (handle block)
+  0x18/imm32
+Function-next:  # (handle function)
+  0x20/imm32
+Function-size:  # (addr int)
+  0x28/imm32/40
+
+Primitive-name:  # (handle array byte)
+  0/imm32
+Primitive-inouts:  # (handle list var)
+  8/imm32
+Primitive-outputs:  # (handle list var)
+  0x10/imm32
+Primitive-subx-name:  # (handle array byte)
+  0x18/imm32
+Primitive-subx-rm32:  # enum arg-location
+  0x20/imm32
+Primitive-subx-r32:  # enum arg-location
+  0x24/imm32
+Primitive-subx-imm32:  # enum arg-location
+  0x28/imm32
+Primitive-subx-imm8:  # enum arg-location  -- only for bit shifts
+  0x2c/imm32
+Primitive-subx-disp32:  # enum arg-location  -- only for branches
+  0x30/imm32
+Primitive-subx-xm32:  # enum arg-location
+  0x34/imm32
+Primitive-subx-x32:  # enum arg-location
+  0x38/imm32
+Primitive-next:  # (handle function)
+  0x3c/imm32
+Primitive-size:  # (addr int)
+  0x44/imm32/68
+
+Stmt-tag:  # int
+  0/imm32
+
+Block-stmts:  # (handle list stmt)
+  4/imm32
+Block-var:  # (handle var)
+  0xc/imm32
+
+Stmt1-operation:  # (handle array byte)
+  4/imm32
+Stmt1-inouts:  # (handle stmt-var)
+  0xc/imm32
+Stmt1-outputs:  # (handle stmt-var)
+  0x14/imm32
+
+Vardef-var:  # (handle var)
+  4/imm32
+
+Regvardef-operation:  # (handle array byte)
+  4/imm32
+Regvardef-inouts:  # (handle stmt-var)
+  0xc/imm32
+Regvardef-outputs:  # (handle stmt-var)  # will have exactly one element
+  0x14/imm32
+
+Stmt-size:  # (addr int)
+  0x1c/imm32
+
+Var-name:  # (handle array byte)
+  0/imm32
+Var-type:  # (handle type-tree)
+  8/imm32
+Var-block-depth:  # int -- not available until code-generation time
+  0x10/imm32
+Var-offset:  # int -- not available until code-generation time
+  0x14/imm32
+Var-register:  # (handle array byte) -- name of a register
+  0x18/imm32
+Var-size:  # (addr int)
+  0x20/imm32
+
+List-value:  # (handle _)
+  0/imm32
+List-next:  # (handle list _)
+  8/imm32
+List-size:  # (addr int)
+  0x10/imm32
+
+# A stmt-var is like a list of vars with call-site specific metadata
+Stmt-var-value:  # (handle var)
+  0/imm32
+Stmt-var-next:  # (handle stmt-var)
+  8/imm32
+Stmt-var-is-deref:  # boolean
+  0x10/imm32
+Stmt-var-size:  # (addr int)
+  0x14/imm32
+
+# A live-var is a var augmented with information needed for tracking live
+# variables.
+Live-var-value:  # (handle var)
+  0/imm32
+Live-var-register-spilled:  # boolean; only used if value is in a register, and only during code-gen
+  8/imm32
+Live-var-size:  # (addr int)
+  0xc/imm32
+
+# Types are expressed as trees (s-expressions) of type-ids (ints).
+
+Type-tree-is-atom:  # boolean
+  0/imm32
+# if is-atom?
+Type-tree-value:  # type-id
+  4/imm32
+Type-tree-value-size:  # int (for static data structure sizes)
+  8/imm32
+Type-tree-parameter-name:  # (handle array byte) for type parameters
+  8/imm32
+# unless is-atom?
+Type-tree-left:  # (addr type-tree)
+  4/imm32
+Type-tree-right:  # (addr type-tree)
+  0xc/imm32
+#
+Type-tree-size:  # (addr int)
+  0x14/imm32
+
+# Types
+
+# TODO: Turn this data structure into valid Mu, with (fake) handles rather than addrs.
+Type-id:  # (stream (addr array byte))
+  0/imm32/write  # initialized later from Primitive-type-ids
+  0/imm32/read
+  0x100/imm32/size
+  # data
+  0/imm32  # 0 reserved for literals; value is just the name
+           # Not to be used directly, so we don't include a name here.
+  "int"/imm32  # 1
+  "addr"/imm32  # 2
+  "array"/imm32  # 3
+  "handle"/imm32  # 4
+  "boolean"/imm32  # 5
+  0/imm32  # 6 reserved for constants; they're like literals, but value is an int in Var-offset
+           # Not to be used directly, so we don't include a name here.
+  "offset"/imm32  # 7: (offset T) is guaranteed to be a 32-bit multiple of size-of(T)
+  # 0x20
+  "byte"/imm32  # 8
+  0/imm32  # 9 reserved for array-capacity; value is in Type-tree-size.
+           # Not to be used directly, so we don't include a name here.
+  0/imm32  # 10 reserved for type parameters; value is (address array byte) in Type-tree-value2.
+           # Not to be used directly, so we don't include a name here.
+  "stream"/imm32  # 11
+  "slice"/imm32  # 12
+  "code-point"/imm32  # 13; smallest scannable unit from a text stream
+  "grapheme"/imm32  # 14; smallest printable unit; will eventually be composed of multiple code-points, but currently corresponds 1:1
+                    # only 4-byte graphemes in utf-8 are currently supported;
+                    # unclear how we should deal with larger clusters.
+  "float"/imm32     # 15
+  # 0x40
+  0/imm32  # 16 reserved for literal strings; value is just the name
+           # Not to be used directly, so we don't include a name here.
+           # TODO: move this up next to literal ints
+  # Keep Primitive-type-ids in sync if you add types here.
+          0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
+  0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
+  0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
+  0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
+  0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
+  0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32 0/imm32
+
+Primitive-type-ids:  # (addr int)
+  0x44
+
+# == Type definitions
+# Program->types contains some typeinfo for each type definition.
+# Types contain vars with types, but can't specify registers.
+Typeinfo-id:  # type-id
+  0/imm32
+Typeinfo-fields:  # (handle table (handle array byte) (handle typeinfo-entry))
+  4/imm32
+# Total size must be >= 0
+# During parsing it may take on two additional values:
+#   -2: not yet initialized
+#   -1: in process of being computed
+# See populate-mu-type-sizes for details.
+Typeinfo-total-size-in-bytes:  # int
+  0xc/imm32
+Typeinfo-next:  # (handle typeinfo)
+  0x10/imm32
+Typeinfo-size:  # (addr int)
+  0x18/imm32
+
+# Each entry in the typeinfo->fields table has a pointer to a string and a
+# pointer to a typeinfo-entry.
+Typeinfo-fields-row-size:  # (addr int)
+  0x10/imm32
+
+# typeinfo-entry objects have information about a field in a single record type
+#
+# each field of a type is represented using two var's:
+#   1. the input var: expected type of the field; convenient for creating using parse-var-with-type
+#   2. the output var: a constant containing the byte offset; convenient for code-generation
+# computing the output happens after parsing; in the meantime we preserve the
+# order of fields in the 'index' field.
+Typeinfo-entry-input-var:  # (handle var)
+  0/imm32
+Typeinfo-entry-index:  # int
+  8/imm32
+Typeinfo-entry-output-var:  # (handle var)
+  0xc/imm32
+Typeinfo-entry-size:  # (addr int)
+  0x14/imm32
+
+== code
+
+Entry:
+    # . prologue
+    89/<- %ebp 4/r32/esp
+    (new-segment *Heap-size Heap)
+    # if (argv[1] == "test') run-tests()
+    {
+      # if (argc <= 1) break
+      81 7/subop/compare *ebp 1/imm32
+      7e/jump-if-<= break/disp8
+      # if (argv[1] != "test") break
+      (kernel-string-equal? *(ebp+8) "test")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      #
+      (run-tests)
+      # syscall(exit, *Num-test-failures)
+      8b/-> *Num-test-failures 3/r32/ebx
+      eb/jump $mu-main:end/disp8
+    }
+    # otherwise convert Stdin
+    (convert-mu Stdin Stdout Stderr 0)
+    (flush Stdout)
+    # syscall(exit, 0)
+    bb/copy-to-ebx 0/imm32
+$mu-main:end:
+    e8/call syscall_exit/disp32
+
+convert-mu:  # in: (addr buffered-file), out: (addr buffered-file), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # initialize global data structures
+    c7 0/subop/copy *Next-block-index 1/imm32
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    c7 0/subop/copy *_Program-functions 0/imm32
+    c7 0/subop/copy *_Program-functions->payload 0/imm32
+    c7 0/subop/copy *_Program-types 0/imm32
+    c7 0/subop/copy *_Program-types->payload 0/imm32
+    c7 0/subop/copy *_Program-signatures 0/imm32
+    c7 0/subop/copy *_Program-signatures->payload 0/imm32
+    #
+    (parse-mu *(ebp+8) *(ebp+0x10) *(ebp+0x14))
+    (populate-mu-type-sizes *(ebp+0x10) *(ebp+0x14))
+#?     (dump-typeinfos "=== typeinfos\n")
+    (check-mu-types *(ebp+0x10) *(ebp+0x14))
+    (emit-subx *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+$convert-mu:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-empty-input:
+    # empty input => empty output
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    (check-stream-equal _test-output-stream "" "F - test-convert-empty-input")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-skeleton:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-skeleton/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-skeleton/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-skeleton/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-skeleton/3")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-skeleton/4")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-skeleton/5")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-skeleton/6")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-skeleton/7")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-multiple-function-skeletons:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn bar {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check first function
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-multiple-function-skeletons/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-multiple-function-skeletons/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-multiple-function-skeletons/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-multiple-function-skeletons/3")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-multiple-function-skeletons/4")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-multiple-function-skeletons/5")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-multiple-function-skeletons/6")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-multiple-function-skeletons/7")
+    # check second function
+    (check-next-stream-line-equal _test-output-stream "bar:"                    "F - test-convert-multiple-function-skeletons/10")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-multiple-function-skeletons/11")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-multiple-function-skeletons/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-multiple-function-skeletons/13")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-multiple-function-skeletons/14")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-multiple-function-skeletons/15")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-multiple-function-skeletons/16")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-multiple-function-skeletons/17")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-arg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo n: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-arg/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-arg/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-arg/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-arg/3")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-arg/4")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-arg/5")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-arg/6")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-arg/7")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-redefined-name:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-redefined-name: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo defined more than once"  "F - test-function-with-redefined-name: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-redefined-name: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-redefined-name-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "sig foo\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-redefined-name-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo defined more than once"  "F - test-function-with-redefined-name-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-redefined-name-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-redefined-name-3:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "sig foo\n")
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-redefined-name-3: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo defined more than once"  "F - test-function-with-redefined-name-3: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-redefined-name-3: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-inout-in-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo x/eax: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-inout-in-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: function inout 'x' cannot be in a register"  "F - test-function-with-inout-in-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-inout-in-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-addr-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: (addr int) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-addr-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: output cannot have an addr type; that could allow unsafe addresses to escape the function"  "F - test-function-with-addr-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-addr-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-addr-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo a: (addr addr int) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-addr-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: inout 'a' cannot contain 'addr' anywhere in the type except the first word; that could allow unsafe addresses to escape the function"  "F - test-function-with-addr-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-addr-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-addr-inout-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo a: (addr array addr int) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-addr-inout-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: inout 'a' cannot contain 'addr' anywhere in the type except the first word; that could allow unsafe addresses to escape the function"  "F - test-function-with-addr-inout-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-addr-inout-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-addr-inout-3:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo a: (addr array (addr int) 3) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-addr-inout-3: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: inout 'a' cannot contain 'addr' anywhere in the type except the first word; that could allow unsafe addresses to escape the function"  "F - test-function-with-addr-inout-3: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-addr-inout-3: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-addr-inout-4:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo a: (array (addr int) 3) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-addr-inout-4: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: inout 'a' cannot contain 'addr' anywhere in the type except the first word; that could allow unsafe addresses to escape the function"  "F - test-function-with-addr-inout-4: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-addr-inout-4: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+# 'main' is an exception
+test-function-main-with-addr-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn main a: (addr addr int) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# 'lookup' is an exception, but only in signatures
+test-signature-lookup-with-addr-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "sig lookup h: (handle _T) -> _/eax: (addr _T)\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-arg-and-body:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo n: int {\n")
+    (write _test-input-stream "  increment n\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-arg-and-body/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-arg-and-body/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-arg-and-body/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-arg-and-body/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-arg-and-body/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-arg-and-body/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 0/subop/increment *(ebp+0x00000008)"  "F - test-convert-function-with-arg-and-body/6")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-arg-and-body/7")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-arg-and-body/8")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-arg-and-body/9")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-arg-and-body/10")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-arg-and-body/11")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-arg-and-body/12")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-distinguishes-args:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo a: int, b: int {\n")
+    (write _test-input-stream "  increment b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-distinguishes-args/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-distinguishes-args/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-distinguishes-args/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-distinguishes-args/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-distinguishes-args/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-distinguishes-args/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 0/subop/increment *(ebp+0x0000000c)"  "F - test-convert-function-distinguishes-args/6")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-distinguishes-args/7")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-distinguishes-args/8")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-distinguishes-args/9")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-distinguishes-args/10")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-distinguishes-args/11")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-distinguishes-args/12")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-return-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  return 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-return-literal/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-return-literal/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-return-literal/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-return-literal/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-return-literal/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-return-literal/5")
+    (check-next-stream-line-equal _test-output-stream "    c7 0/subop/copy %eax 0/imm32"  "F - test-convert-function-with-return-literal/6")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return-literal/7")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-return-literal/8")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-return-literal/9")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-return-literal/10")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-return-literal/11")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-return-literal/12")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-return-literal/13")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-return:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  var y: int\n")
+    (write _test-input-stream "  return y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-return/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-return/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-return/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-return/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-return/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-return/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-with-return/6")  # y
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0xfffffffc) 0x00000000/r32" "F - test-convert-function-with-return/7")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-return/8")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-return/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-return/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-return/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-return/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-return/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-return/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-return-float:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/xmm0: float {\n")
+    (write _test-input-stream "  var y: float\n")
+    (write _test-input-stream "  return y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-return/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-return/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-return/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-return/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-return/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-return/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-with-return/6")  # y
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/-> *(ebp+0xfffffffc) 0x00000000/x32" "F - test-convert-function-with-return/7")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-return/8")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-return/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-return/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-return/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-return/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-return/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-return/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-return-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  var y/eax: int <- copy 3\n")
+    (write _test-input-stream "  return y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-return-register/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-return-register/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-return-register/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-return-register/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-return-register/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-return-register/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-with-return-register/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 3/imm32"  "F - test-convert-function-with-return-register/7")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %eax 0x00000000/r32" "F - test-convert-function-with-return-register/8")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-function-with-return-register/9")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return-register/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-return-register/11")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-return-register/12")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-return-register/13")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-return-register/14")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-return-register/15")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-return-register/16")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-output-without-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-output-without-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: function output '_' must be in a register, in instruction 'fn foo -> _: int {"  "F - test-function-with-output-without-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-output-without-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-outputs-in-conflicting-registers:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int, _/eax: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-outputs-in-conflicting-registers: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: outputs must be in unique registers"  "F - test-function-with-outputs-in-conflicting-registers: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-outputs-in-conflicting-registers: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-function-with-named-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> x/eax: int {\n")
+    (write _test-input-stream "  return 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-function-with-named-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: function outputs cannot be named; rename 'x' in the header to '_'"  "F - test-function-with-named-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-function-with-named-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-return-with-wrong-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "  return x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-return-with-wrong-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: return: 'x' has the wrong type"  "F - test-return-with-wrong-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-return-with-wrong-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-missing-return:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-missing-return: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: final statement should be a 'return'"  "F - test-missing-return: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-missing-return: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-missing-return-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-missing-return-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: final statement should be a 'return'"  "F - test-missing-return-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-missing-return-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-early-exit-without-return:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  break\n")
+    (write _test-input-stream "  return 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-early-exit-without-return: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo has outputs, so you cannot 'break' out of the outermost block. Use 'return'."  "F - test-early-exit-without-return: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-early-exit-without-return: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-return-with-too-few-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  return\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-return-with-too-few-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: return: too few inouts"  "F - test-return-with-too-few-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-return-with-too-few-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-return-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  return 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-return-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: return: too many inouts"  "F - test-return-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-return-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-return-unavailable-value:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int, _/ecx: int {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: int <- copy 0\n")
+    (write _test-input-stream "  return y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-return-unavailable-value: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: return: 'x' is no longer available"  "F - test-return-unavailable-value: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-return-unavailable-value: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-return-literal-to-float:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo -> _/xmm0: float {\n")
+    (write _test-input-stream "  return 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-return-literal-to-float: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: return: cannot copy literal '0' to float"  "F - test-return-literal-to-float: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-return-literal-to-float: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-return-with-duplicate-values:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int, _/ecx: int {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0x34\n")
+    (write _test-input-stream "  return x, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-return-with-duplicate-values/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-return-with-duplicate-values/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-return-with-duplicate-values/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-return-with-duplicate-values/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-return-with-duplicate-values/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-return-with-duplicate-values/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-return-with-duplicate-values/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0x34/imm32"  "F - test-convert-return-with-duplicate-values/7")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %eax 0x00000000/r32"  "F - test-convert-return-with-duplicate-values/8")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %eax 0x00000001/r32"  "F - test-convert-return-with-duplicate-values/9")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-return-with-duplicate-values/10")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-return-with-duplicate-values/11")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-return-with-duplicate-values/12")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-return-with-duplicate-values/13")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-return-with-duplicate-values/14")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-return-with-duplicate-values/15")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-return-with-duplicate-values/16")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-return-with-duplicate-values/17")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-return-with-duplicate-values-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int, _/ecx: int {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 0x34\n")
+    (write _test-input-stream "  return x, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-return-with-duplicate-values-2/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-return-with-duplicate-values-2/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-return-with-duplicate-values-2/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-return-with-duplicate-values-2/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-return-with-duplicate-values-2/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-return-with-duplicate-values-2/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-return-with-duplicate-values-2/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0x34/imm32"  "F - test-convert-return-with-duplicate-values-2/7")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %ecx 0x00000000/r32"  "F - test-convert-return-with-duplicate-values-2/8")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %ecx 0x00000001/r32"  "F - test-convert-return-with-duplicate-values-2/9")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-return-with-duplicate-values-2/10")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-return-with-duplicate-values-2/11")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-return-with-duplicate-values-2/12")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-return-with-duplicate-values-2/13")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-return-with-duplicate-values-2/14")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-return-with-duplicate-values-2/15")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-return-with-duplicate-values-2/16")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-return-with-duplicate-values-2/17")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-stmt-with-unknown-var:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  x <- copy 0x34\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-stmt-with-unknown-var: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: unknown variable 'x'"  "F - test-stmt-with-unknown-var: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-stmt-with-unknown-var: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-stmt-with-invalid-identifier:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  1 <- copy 0x34\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-stmt-with-invalid-identifier: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: invalid identifier '1'"  "F - test-stmt-with-invalid-identifier: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-stmt-with-invalid-identifier: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-stmt-with-deref-var:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  *x <- copy 0x34\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-stmt-with-deref-var: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: output '*x' should write to a register, and therefore cannot be dereferenced"  "F - test-stmt-with-deref-var: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-stmt-with-deref-var: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-literal-arg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo a: int, b: int -> _/eax: int {\n")
+    (write _test-input-stream "  var result/eax: int <- copy a\n")
+    (write _test-input-stream "  result <- add 1\n")
+    (write _test-input-stream "  return result\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-literal-arg/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-literal-arg/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-literal-arg/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-literal-arg/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-literal-arg/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-literal-arg/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-with-literal-arg/6")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x00000008) 0x00000000/r32"  "F - test-convert-function-with-literal-arg/7")
+    (check-next-stream-line-equal _test-output-stream "    05/add-to-eax 1/imm32"  "F - test-convert-function-with-literal-arg/8")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %eax 0x00000000/r32" "F - test-convert-function-with-literal-arg/9")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-function-with-literal-arg/10")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-literal-arg/11")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-literal-arg/12")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-literal-arg/13")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-literal-arg/14")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-literal-arg/15")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-literal-arg/16")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-literal-arg/17")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-literal-arg-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo a: int, b: int -> _/ebx: int {\n")
+    (write _test-input-stream "  var result/ebx: int <- copy a\n")
+    (write _test-input-stream "  result <- add 1\n")
+    (write _test-input-stream "  return result\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-literal-arg-2/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-literal-arg-2/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-literal-arg-2/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-literal-arg-2/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-literal-arg-2/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-literal-arg-2/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ebx"  "F - test-convert-function-with-literal-arg-2/6")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x00000008) 0x00000003/r32"  "F - test-convert-function-with-literal-arg-2/7")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %ebx 1/imm32"  "F - test-convert-function-with-literal-arg-2/8")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %ebx 0x00000003/r32" "F - test-convert-function-with-literal-arg-2/9")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-function-with-literal-arg-2/10")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-literal-arg-2/11")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-literal-arg-2/12")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-literal-arg-2/13")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-literal-arg-2/14")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-literal-arg-2/15")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-literal-arg-2/16")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-literal-arg-2/17")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-literal-arg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn main -> _/ebx: int {\n")
+    (write _test-input-stream "  var result/eax: int <- do-add 3 4\n")
+    (write _test-input-stream "  return result\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn do-add a: int, b: int -> _/eax: int {\n")
+    (write _test-input-stream "  var result/eax: int <- copy a\n")
+    (write _test-input-stream "  result <- add b\n")
+    (write _test-input-stream "  return result\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "main:"                   "F - test-convert-function-call-with-literal-arg/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-literal-arg/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-literal-arg/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-literal-arg/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call-with-literal-arg/4")
+    (check-next-stream-line-equal _test-output-stream "$main:0x00000001:loop:"  "F - test-convert-function-call-with-literal-arg/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-call-with-literal-arg/6")
+    (check-next-stream-line-equal _test-output-stream "    (do-add 3 4)"        "F - test-convert-function-call-with-literal-arg/7")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %eax 0x00000003/r32" "F - test-convert-function-call-with-literal-arg/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax" "F - test-convert-function-with-local-var-in-reg/9")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $main:0x00000001:break/disp32"  "F - test-convert-function-call-with-literal-arg/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call-with-literal-arg/11")
+    (check-next-stream-line-equal _test-output-stream "$main:0x00000001:break:" "F - test-convert-function-call-with-literal-arg/12")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-literal-arg/13")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-literal-arg/14")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-literal-arg/15")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-literal-arg/16")
+    (check-next-stream-line-equal _test-output-stream "do-add:"                 "F - test-convert-function-call-with-literal-arg/17")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-literal-arg/18")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-literal-arg/19")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-literal-arg/20")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call-with-literal-arg/21")
+    (check-next-stream-line-equal _test-output-stream "$do-add:0x00000002:loop:"  "F - test-convert-function-call-with-literal-arg/22")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-call-with-literal-arg/23")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x00000008) 0x00000000/r32"  "F - test-convert-function-call-with-literal-arg/24")
+    (check-next-stream-line-equal _test-output-stream "    03/add *(ebp+0x0000000c) 0x00000000/r32"  "F - test-convert-function-call-with-literal-arg/25")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %eax 0x00000000/r32" "F - test-convert-function-call-with-literal-arg/26")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-function-call-with-literal-arg/27")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $do-add:0x00000002:break/disp32"  "F - test-convert-function-call-with-literal-arg/28")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call-with-literal-arg/29")
+    (check-next-stream-line-equal _test-output-stream "$do-add:0x00000002:break:"  "F - test-convert-function-call-with-literal-arg/30")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-literal-arg/31")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-literal-arg/32")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-literal-arg/33")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-literal-arg/34")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-literal-string-arg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  string-func \"abc\"\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "sig string-func in: (addr array byte)\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    # no errors
+    # not bothering checking output
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-null-addr:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  bar 0\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "sig bar in: (addr int)\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    # no errors
+    # not bothering checking output
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-signature:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn main -> _/ebx: int {\n")
+    (write _test-input-stream "  var result/eax: int <- do-add 3 4\n")
+    (write _test-input-stream "  return result\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "sig do-add a: int, b: int -> _/eax: int\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "main:"                   "F - test-convert-function-call-with-signature/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-signature/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-signature/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-signature/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call-with-signature/4")
+    (check-next-stream-line-equal _test-output-stream "$main:0x00000001:loop:"  "F - test-convert-function-call-with-signature/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-call-with-literal-arg/6")
+    (check-next-stream-line-equal _test-output-stream "    (do-add 3 4)"        "F - test-convert-function-call-with-signature/6")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %eax 0x00000003/r32" "F - test-convert-function-call-with-literal-arg/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax" "F - test-convert-function-with-local-var-in-reg/9")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $main:0x00000001:break/disp32"  "F - test-convert-function-call-with-literal-arg/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call-with-signature/7")
+    (check-next-stream-line-equal _test-output-stream "$main:0x00000001:break:" "F - test-convert-function-call-with-signature/8")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-signature/9")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-signature/10")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-signature/11")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-signature/12")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-in-mem:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  increment x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-in-mem/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-in-mem/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-in-mem/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-in-mem/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-in-mem/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-in-mem/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-with-local-var-in-mem/6")
+    (check-next-stream-line-equal _test-output-stream "    ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-local-var-in-mem/7")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-local-var-in-mem/8")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-in-mem/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-in-mem/10")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-in-mem/11")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-in-mem/12")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-in-mem/13")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-in-mem/14")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-invalid-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  increment 1n\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-invalid-literal: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: variable '1n' cannot begin with a digit (or do you have a typo in a number?)"  "F - test-convert-invalid-literal: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-invalid-literal: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-valid-literal-with-metadata:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 1/abc\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-local-var-in-mem-has-no-initializer:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: int <- copy 0\n")
+    (write _test-input-stream "  increment x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-var-in-mem-has-no-initializer: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: var x: variables on the stack can't take an initializer"  "F - test-var-in-mem-has-no-initializer: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-var-in-mem-has-no-initializer: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-with-compound-type-in-mem:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  copy-to x, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-with-compound-type-in-mem/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-with-compound-type-in-mem/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-with-compound-type-in-mem/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-with-compound-type-in-mem/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-with-compound-type-in-mem/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-with-compound-type-in-mem/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-with-local-var-with-compound-type-in-mem/6")
+    (check-next-stream-line-equal _test-output-stream "    c7 0/subop/copy *(ebp+0xfffffffc) 0/imm32"  "F - test-convert-function-with-local-var-with-compound-type-in-mem/7")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-local-var-with-compound-type-in-mem/8")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-with-compound-type-in-mem/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-with-compound-type-in-mem/10")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-with-compound-type-in-mem/11")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-with-compound-type-in-mem/12")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-with-compound-type-in-mem/13")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-with-compound-type-in-mem/14")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-in-reg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  x <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-in-reg/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-in-reg/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-in-reg/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-in-reg/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-in-reg/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-in-reg/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-local-var-in-reg/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"  "F - test-convert-function-with-local-var-in-reg/7")
+    (check-next-stream-line-equal _test-output-stream "    41/increment-ecx"    "F - test-convert-function-with-local-var-in-reg/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-with-local-var-in-reg/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-in-reg/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-in-reg/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-in-reg/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-in-reg/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-in-reg/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-in-reg/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-in-same-reg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var y/ecx: int <- copy x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-in-same-reg/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-in-same-reg/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-in-same-reg/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-in-same-reg/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-in-same-reg/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-in-same-reg/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-local-var-in-same-reg/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"  "F - test-convert-function-with-local-var-in-same-reg/7")
+    # optimization: skip the second copy
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-with-local-var-in-same-reg/8")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-in-same-reg/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-in-same-reg/10")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-in-same-reg/11")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-in-same-reg/12")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-in-same-reg/13")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-in-same-reg/14")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-in-same-reg-dereferenced:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: int <- copy *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-in-same-reg-dereferenced/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-in-same-reg-dereferenced/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-in-same-reg-dereferenced/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-in-same-reg-dereferenced/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-in-same-reg-dereferenced/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-in-same-reg-dereferenced/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-local-var-in-same-reg-dereferenced/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"  "F - test-convert-function-with-local-var-in-same-reg-dereferenced/7")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *ecx 0x00000001/r32"  "F - test-convert-function-with-local-var-in-same-reg-dereferenced/8")  # don't optimize this away
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-with-local-var-in-same-reg-dereferenced/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-in-same-reg-dereferenced/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-in-same-reg-dereferenced/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-in-same-reg-dereferenced/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-in-same-reg-dereferenced/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-in-same-reg-dereferenced/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-in-same-reg-dereferenced/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-float-var-in-wrong-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0\n")
+    (write _test-input-stream "  var y/eax: float <- convert x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-float-var-in-wrong-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: float var 'y' should be in a floating-point register"  "F - test-float-var-in-wrong-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-float-var-in-wrong-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-non-float-var-in-wrong-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/xmm5: int <- copy 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-non-float-var-in-wrong-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: non-float var 'x' should be in an integer register"  "F - test-non-float-var-in-wrong-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-non-float-var-in-wrong-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-allocate:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: (addr handle int) <- copy 0\n")
+    (write _test-input-stream "  allocate x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-allocate/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-allocate/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-allocate/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-allocate/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-allocate/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-allocate/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-allocate/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"  "F - test-convert-function-with-allocate/7")
+    (check-next-stream-line-equal _test-output-stream "    (allocate Heap 0x00000004 %ecx)"  "F - test-convert-function-with-allocate/8")  # 4 = size-of(int)
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-with-allocate/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-allocate/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-allocate/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-allocate/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-allocate/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-allocate/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-allocate/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-initializer-in-hex:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 10\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-initializer-in-hex: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "literal integers are always hex in Mu; start '10' with a '0x' to be unambiguous, converting it to hexadecimal as necessary."  "F - test-initializer-in-hex: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-initializer-in-hex: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-second-local-var-in-same-reg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var y/ecx: int <- copy 4\n")
+    (write _test-input-stream "  y <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-second-local-var-in-same-reg/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-second-local-var-in-same-reg/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-second-local-var-in-same-reg/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-second-local-var-in-same-reg/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-second-local-var-in-same-reg/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-second-local-var-in-same-reg/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-second-local-var-in-same-reg/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"  "F - test-convert-function-with-second-local-var-in-same-reg/7")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 4/imm32"  "F - test-convert-function-with-second-local-var-in-same-reg/8")
+    (check-next-stream-line-equal _test-output-stream "    41/increment-ecx"    "F - test-convert-function-with-second-local-var-in-same-reg/9")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-with-second-local-var-in-same-reg/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-second-local-var-in-same-reg/11")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-second-local-var-in-same-reg/12")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-second-local-var-in-same-reg/13")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-second-local-var-in-same-reg/14")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-second-local-var-in-same-reg/15")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-second-local-var-in-same-reg/16")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-read-clobbered-reg-var:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)  # bytes of args in call to convert-mu
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var y/ecx: int <- copy 4\n")
+    (write _test-input-stream "  x <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-clobbered-reg-var: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: register ecx reads var 'x' after writing var 'y'"  "F - test-read-clobbered-reg-var: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-clobbered-reg-var: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-overlapping-int-fp-registers:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)  # bytes of args in call to convert-mu
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 3\n")
+    (write _test-input-stream "  var y/xmm0: float <- convert x\n")
+    (write _test-input-stream "  x <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # no errors
+    (check-next-stream-line-equal _test-error-stream  ""  "F - test-overlapping-int-fp-registers: error message")
+    # don't bother checking the generated code
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn main -> _/ebx: int {\n")
+    (write _test-input-stream "  var result/ebx: int <- foo\n")
+    (write _test-input-stream "  return result\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo -> _/ebx: int {\n")
+    (write _test-input-stream "  var result/ebx: int <- copy 3\n")
+    (write _test-input-stream "  return result\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "main:"                   "F - test-convert-function-call/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call/4")
+    (check-next-stream-line-equal _test-output-stream "$main:0x00000001:loop:"  "F - test-convert-function-call/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ebx"  "F - test-convert-function-call-with-literal-arg/6")
+    (check-next-stream-line-equal _test-output-stream "    (foo)"               "F - test-convert-function-call/6")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %ebx 0x00000003/r32" "F - test-convert-function-call-with-literal-arg/8")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-function-call-with-literal-arg/27")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $main:0x00000001:break/disp32"  "F - test-convert-function-call-with-literal-arg/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call/7")
+    (check-next-stream-line-equal _test-output-stream "$main:0x00000001:break:" "F - test-convert-function-call/8")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call/9")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call/10")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call/11")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call/12")
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-call/13")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call/14")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call/16")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call/17")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"  "F - test-convert-function-call/18")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ebx"  "F - test-convert-function-call-with-literal-arg/6")
+    (check-next-stream-line-equal _test-output-stream "    bb/copy-to-ebx 3/imm32"  "F - test-convert-function-call/19")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %ebx 0x00000003/r32" "F - test-convert-function-call-with-literal-arg/8")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-function-call-with-literal-arg/27")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000002:break/disp32"  "F - test-convert-function-call-with-literal-arg/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-call/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-inout-with-compound-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  g x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g a: (addr int) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "f:"                      "F - test-convert-function-call-with-inout-with-compound-type/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-inout-with-compound-type/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-inout-with-compound-type/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-inout-with-compound-type/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call-with-inout-with-compound-type/4")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:loop:"     "F - test-convert-function-call-with-inout-with-compound-type/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-call-with-inout-with-compound-type/6")
+    (check-next-stream-line-equal _test-output-stream "    (g *(ebp+0xfffffffc))"  "F - test-convert-function-call-with-inout-with-compound-type/7")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-call-with-inout-with-compound-type/8")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call-with-inout-with-compound-type/9")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:break:"    "F - test-convert-function-call-with-inout-with-compound-type/10")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-inout-with-compound-type/11")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-inout-with-compound-type/12")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-inout-with-compound-type/13")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-inout-with-compound-type/14")
+    (check-next-stream-line-equal _test-output-stream "g:"                      "F - test-convert-function-call-with-inout-with-compound-type/15")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-inout-with-compound-type/16")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-inout-with-compound-type/17")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-inout-with-compound-type/18")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-inout-with-compound-type/19")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-inout-with-compound-type/20")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-inout-with-compound-type/21")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-inout-with-compound-type/22")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-inout-with-type-parameter:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  g x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g a: (addr _) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # no error; types matched
+    (check-stream-equal _test-error-stream  ""  "F - test-convert-function-call-with-inout-with-type-parameter: error stream should be empty")
+    # don't bother checking the generated code; that's in the test 'test-local-clobbered-by-fn-output' below
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-incorrect-inout-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  g x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g a: foo {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-incorrect-inout-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: type for inout 'x' is not right"  "F - test-convert-function-call-with-incorrect-inout-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-function-call-with-incorrect-inout-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-inout-with-incorrect-compound-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  g x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g a: (addr bool) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-inout-with-incorrect-compound-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: type for inout 'x' is not right"  "F - test-convert-function-call-with-inout-with-incorrect-compound-type: error message")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-inout-with-multiple-type-parameters:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  var y: (addr int)\n")
+    (write _test-input-stream "  g x, y\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g a: (addr _), b: (addr _) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # no errors
+    (check-stream-equal _test-error-stream  ""  "F - test-convert-function-call-with-inout-with-multiple-type-parameters: error stream should be empty")
+    # don't bother checking the generated code
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-type-parameter-matches-rest-of-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: (addr array int)\n")
+    (write _test-input-stream "  g x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g a: (addr _) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # no errors
+    (check-stream-equal _test-error-stream  ""  "F - test-type-parameter-matches-rest-of-type: error stream should be empty")
+    # don't bother checking the generated code
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-inout-with-incompatible-type-parameters:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  var y: (addr boolean)\n")
+    (write _test-input-stream "  g x, y\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g a: (addr _T), b: (addr _T) {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-inout-with-incompatible-type-parameters: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: type for inout 'y' is not right"  "F - test-convert-function-call-with-inout-with-incompatible-type-parameters: error message")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-too-few-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  g\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g a: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-too-few-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: too few inouts"  "F - test-convert-function-call-with-too-few-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-function-call-with-too-few-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  g x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: too many inouts"  "F - test-convert-function-call-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-function-call-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-incorrect-output-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x/eax: int <- g\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g -> _/eax: foo {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-incorrect-output-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: type for output 'x' is not right"  "F - test-convert-function-call-with-incorrect-output-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-function-call-with-incorrect-output-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-too-few-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  g\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g -> _/eax: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-too-few-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: too few outputs"  "F - test-convert-function-call-with-too-few-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-function-call-with-too-few-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-too-many-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x/eax: int <- g\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-too-many-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: too many outputs"  "F - test-convert-function-call-with-too-many-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-function-call-with-too-many-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-missing-output-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  x <- g\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g -> _/eax: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-missing-output-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: output 'x' is not in a register"  "F - test-convert-function-call-with-missing-output-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-function-call-with-missing-output-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-incorrect-output-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var x/ecx: int <- g\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn g -> _/eax: int {\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-function-call-with-incorrect-output-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn f: call g: register for output 'x' is not right"  "F - test-convert-function-call-with-incorrect-output-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-function-call-with-incorrect-output-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-dereferenced:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  increment *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-dereferenced/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-dereferenced/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-dereferenced/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-dereferenced/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-dereferenced/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-dereferenced/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-local-var-dereferenced/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"  "F - test-convert-function-with-local-var-dereferenced/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 0/subop/increment *ecx"  "F - test-convert-function-with-local-var-dereferenced/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-with-local-var-dereferenced/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-dereferenced/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-dereferenced/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-dereferenced/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-dereferenced/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-dereferenced/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-dereferenced/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-dereference-of-var-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  increment *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-dereference-of-var-on-stack: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: cannot dereference var 'x' on stack"  "F - test-dereference-of-var-on-stack: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-dereference-of-var-on-stack: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-byte-operations:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: byte <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: byte <- copy 0\n")
+    (write _test-input-stream "  y <- copy-byte x\n")
+    (write _test-input-stream "  var z/edx: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  y <- copy-byte *z\n")
+    (write _test-input-stream "  copy-byte-to *z, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-function-with-byte-operations/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-function-with-byte-operations/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-function-with-byte-operations/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-function-with-byte-operations/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-function-with-byte-operations/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-function-with-byte-operations/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-function-with-byte-operations/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-function-with-byte-operations/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"                    "F - test-convert-function-with-byte-operations/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"                  "F - test-convert-function-with-byte-operations/9")
+    (check-next-stream-line-equal _test-output-stream "    8a/byte-> %eax 0x00000001/r32"           "F - test-convert-function-with-byte-operations/10")
+    (check-next-stream-line-equal _test-output-stream "    81 4/subop/and %ecx 0xff/imm32"          "F - test-convert-function-with-byte-operations/11")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %edx"                    "F - test-convert-function-with-byte-operations/12")
+    (check-next-stream-line-equal _test-output-stream "    ba/copy-to-edx 0/imm32"                  "F - test-convert-function-with-byte-operations/13")
+    (check-next-stream-line-equal _test-output-stream "    8a/byte-> *edx 0x00000001/r32"           "F - test-convert-function-with-byte-operations/14")
+    (check-next-stream-line-equal _test-output-stream "    81 4/subop/and %ecx 0xff/imm32"          "F - test-convert-function-with-byte-operations/15")
+    (check-next-stream-line-equal _test-output-stream "    88/byte<- *edx 0x00000000/r32"           "F - test-convert-function-with-byte-operations/16")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %edx"                     "F - test-convert-function-with-byte-operations/17")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"                     "F - test-convert-function-with-byte-operations/18")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-function-with-byte-operations/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-function-with-byte-operations/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-function-with-byte-operations/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-function-with-byte-operations/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-function-with-byte-operations/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-function-with-byte-operations/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-function-with-byte-operations/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# variables of type 'byte' are not allowed on the stack
+test-byte-values-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: byte\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-byte-values-on-stack: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: var 'x' of type 'byte' cannot be on the stack"  "F - test-byte-values-on-stack: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-byte-values-on-stack: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+# variables of type 'byte' are not allowed in esi or edi
+test-byte-values-in-unsupported-registers:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/esi: byte <- copy 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-byte-values-in-unsupported-registers: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: var 'x' of type 'byte' cannot be in esi or edi"  "F - test-byte-values-in-unsupported-registers: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-byte-values-in-unsupported-registers: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+# variables of type 'byte' _can_ be function args. They then occupy 4 bytes.
+test-copy-byte-var-from-fn-arg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo x: byte, y: int {\n")
+    (write _test-input-stream "  var a/eax: byte <- copy x\n")
+    (write _test-input-stream "  var b/eax: int <- copy y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-copy-byte-from-fn-arg/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-copy-byte-from-fn-arg/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-copy-byte-from-fn-arg/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-copy-byte-from-fn-arg/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-copy-byte-from-fn-arg/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-copy-byte-from-fn-arg/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-copy-byte-from-fn-arg/6")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x00000008) 0x00000000/r32"  "F - test-copy-byte-from-fn-arg/7")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x0000000c) 0x00000000/r32"  "F - test-copy-byte-from-fn-arg/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"   "F - test-copy-byte-from-fn-arg/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-copy-byte-from-fn-arg/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-copy-byte-from-fn-arg/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-copy-byte-from-fn-arg/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-copy-byte-from-fn-arg/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-copy-byte-from-fn-arg/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-copy-byte-from-fn-arg/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-compare-register-with-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 0\n")
+    (write _test-input-stream "  compare x, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-compare-register-with-literal/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-compare-register-with-literal/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-compare-register-with-literal/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-compare-register-with-literal/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-compare-register-with-literal/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-compare-register-with-literal/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-compare-register-with-literal/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"  "F - test-convert-compare-register-with-literal/7")
+    (check-next-stream-line-equal _test-output-stream "    81 7/subop/compare %ecx 0/imm32"  "F - test-convert-compare-register-with-literal/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-compare-register-with-literal/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-compare-register-with-literal/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-compare-register-with-literal/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-compare-register-with-literal/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-compare-register-with-literal/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-compare-register-with-literal/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-compare-register-with-literal/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-compare-byte-with-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: byte <- copy 0\n")
+    (write _test-input-stream "  compare x, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # no errors; output is identical to test-convert-compare-register-with-literal
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-unknown-variable:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  compare x, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-unknown-variable: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: unknown variable 'x'"  "F - test-unknown-variable: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-unknown-variable: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-in-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-in-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-in-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-in-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-in-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-in-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-in-block/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-local-var-in-block/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-local-var-in-block/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-local-var-in-block/8")
+    (check-next-stream-line-equal _test-output-stream "      ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-local-var-in-block/9")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-local-var-in-block/10")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-local-var-in-block/11")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-local-var-in-block/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-in-block/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-in-block/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-in-block/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-in-block/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-in-block/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-in-block/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-in-mem-after-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var y: int\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  increment x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-in-mem-after-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-in-mem-after-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-in-mem-after-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-in-mem-after-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-in-mem-after-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-in-mem-after-block/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-local-var-in-mem-after-block/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-local-var-in-mem-after-block/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-local-var-in-mem-after-block/8")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-local-var-in-mem-after-block/9")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-local-var-in-mem-after-block/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-local-var-in-mem-after-block/11")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-with-local-var-in-mem-after-block/12")
+    (check-next-stream-line-equal _test-output-stream "    ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-local-var-in-mem-after-block/13")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-local-var-in-mem-after-block/14")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-in-mem-after-block/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-in-mem-after-block/16")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-in-mem-after-block/17")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-in-mem-after-block/18")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-in-mem-after-block/19")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-in-mem-after-block/20")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-in-named-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  $bar: {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-in-named-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-in-named-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-in-named-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-in-named-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-in-named-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-in-named-block/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-local-var-in-named-block/6")
+    (check-next-stream-line-equal _test-output-stream "$bar:loop:"              "F - test-convert-function-with-local-var-in-named-block/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-local-var-in-named-block/8")
+    (check-next-stream-line-equal _test-output-stream "      ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-local-var-in-named-block/9")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-local-var-in-named-block/10")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-local-var-in-named-block/11")
+    (check-next-stream-line-equal _test-output-stream "$bar:break:"             "F - test-convert-function-with-local-var-in-named-block/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-in-named-block/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-in-named-block/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-in-named-block/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-in-named-block/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-in-named-block/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-in-named-block/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-unknown-variable-in-named-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  $a: {\n")
+    (write _test-input-stream "    compare x, 0\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-unknown-variable-in-named-block: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: unknown variable 'x'"  "F - test-unknown-variable-in-named-block: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-unknown-variable-in-named-block: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-always-shadow-outermost-reg-vars-in-function:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-always-shadow-outermost-reg-vars-in-function/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-always-shadow-outermost-reg-vars-in-function/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-always-shadow-outermost-reg-vars-in-function/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-always-shadow-outermost-reg-vars-in-function/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-always-shadow-outermost-reg-vars-in-function/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-always-shadow-outermost-reg-vars-in-function/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-compare-register-with-literal/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"  "F - test-always-shadow-outermost-reg-vars-in-function/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-compare-register-with-literal/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-always-shadow-outermost-reg-vars-in-function/12")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-always-shadow-outermost-reg-vars-in-function/13")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-always-shadow-outermost-reg-vars-in-function/14")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-always-shadow-outermost-reg-vars-in-function/15")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-always-shadow-outermost-reg-vars-in-function/16")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-always-shadow-outermost-reg-vars-in-function/17")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-shadow-local:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var y/ecx: int <- copy 4\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "  x <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-shadow-local/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-shadow-local/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-shadow-local/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-shadow-local/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-shadow-local/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-shadow-local/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-shadow-local/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"  "F - test-shadow-local/7")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-shadow-local/8")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-shadow-local/9")
+    (check-next-stream-line-equal _test-output-stream "      ff 6/subop/push %ecx"  "F - test-shadow-local/10")
+    (check-next-stream-line-equal _test-output-stream "      b9/copy-to-ecx 4/imm32"  "F - test-shadow-local/11")
+    (check-next-stream-line-equal _test-output-stream "      8f 0/subop/pop %ecx" "F - test-shadow-local/12")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-shadow-local/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-shadow-local/14")
+    (check-next-stream-line-equal _test-output-stream "    41/increment-ecx"    "F - test-shadow-local/15")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-shadow-local/16")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-shadow-local/17")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-shadow-local/18")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-shadow-local/19")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-shadow-local/20")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-shadow-local/21")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-shadow-local/22")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-shadow-name:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x/edx: int <- copy 4\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "  x <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-shadow-name/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-shadow-name/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-shadow-name/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-shadow-name/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-shadow-name/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-shadow-name/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-shadow-name/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"  "F - test-shadow-name/7")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-shadow-name/8")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-shadow-name/9")
+    (check-next-stream-line-equal _test-output-stream "      ff 6/subop/push %edx"  "F - test-shadow-name/10")
+    (check-next-stream-line-equal _test-output-stream "      ba/copy-to-edx 4/imm32"  "F - test-shadow-name/11")
+    (check-next-stream-line-equal _test-output-stream "      8f 0/subop/pop %edx" "F - test-shadow-name/12")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-shadow-name/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-shadow-name/14")
+    (check-next-stream-line-equal _test-output-stream "    41/increment-ecx"    "F - test-shadow-name/15")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-shadow-name/16")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-shadow-name/17")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-shadow-name/18")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-shadow-name/19")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-shadow-name/20")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-shadow-name/21")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-shadow-name/22")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-shadow-name-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x/edx: int <- copy 4\n")
+    (write _test-input-stream "    var y/ecx: int <- copy 5\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "  x <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-shadow-name-2/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-shadow-name-2/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-shadow-name-2/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-shadow-name-2/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-shadow-name-2/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-shadow-name-2/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-shadow-name-2/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"  "F - test-shadow-name-2/7")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-shadow-name-2/8")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-shadow-name-2/9")
+    (check-next-stream-line-equal _test-output-stream "      ff 6/subop/push %edx"  "F - test-shadow-name-2/10")
+    (check-next-stream-line-equal _test-output-stream "      ba/copy-to-edx 4/imm32"  "F - test-shadow-name-2/11")
+    (check-next-stream-line-equal _test-output-stream "      ff 6/subop/push %ecx"  "F - test-shadow-name-2/12")
+    (check-next-stream-line-equal _test-output-stream "      b9/copy-to-ecx 5/imm32"  "F - test-shadow-name-2/13")
+    (check-next-stream-line-equal _test-output-stream "      8f 0/subop/pop %ecx" "F - test-shadow-name-2/14")
+    (check-next-stream-line-equal _test-output-stream "      8f 0/subop/pop %edx" "F - test-shadow-name-2/15")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-shadow-name-2/16")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-shadow-name-2/17")
+    (check-next-stream-line-equal _test-output-stream "    41/increment-ecx"    "F - test-shadow-name-2/18")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-shadow-name-2/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-shadow-name-2/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-shadow-name-2/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-shadow-name-2/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-shadow-name-2/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-shadow-name-2/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-shadow-name-2/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-do-not-spill-same-register-in-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var y/ecx: int <- copy 4\n")
+    (write _test-input-stream "  y <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-do-not-spill-same-register-in-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-do-not-spill-same-register-in-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-do-not-spill-same-register-in-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-do-not-spill-same-register-in-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-do-not-spill-same-register-in-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-do-not-spill-same-register-in-block/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-do-not-spill-same-register-in-block/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"  "F - test-do-not-spill-same-register-in-block/7")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 4/imm32"  "F - test-do-not-spill-same-register-in-block/8")
+    (check-next-stream-line-equal _test-output-stream "    41/increment-ecx"    "F - test-do-not-spill-same-register-in-block/9")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-do-not-spill-same-register-in-block/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-do-not-spill-same-register-in-block/11")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-do-not-spill-same-register-in-block/12")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-do-not-spill-same-register-in-block/13")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-do-not-spill-same-register-in-block/14")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-do-not-spill-same-register-in-block/15")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-do-not-spill-same-register-in-block/16")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-spill-different-register-in-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 3\n")
+    (write _test-input-stream "  var y/ecx: int <- copy 4\n")
+    (write _test-input-stream "  y <- increment\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-spill-different-register-in-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-spill-different-register-in-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-spill-different-register-in-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-spill-different-register-in-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-spill-different-register-in-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-spill-different-register-in-block/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-spill-different-register-in-block/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 3/imm32"  "F - test-spill-different-register-in-block/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-spill-different-register-in-block/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 4/imm32"  "F - test-spill-different-register-in-block/9")
+    (check-next-stream-line-equal _test-output-stream "    41/increment-ecx"    "F - test-spill-different-register-in-block/10")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-spill-different-register-in-block/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax" "F - test-spill-different-register-in-block/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-spill-different-register-in-block/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-spill-different-register-in-block/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-spill-different-register-in-block/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-spill-different-register-in-block/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-spill-different-register-in-block/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-spill-different-register-in-block/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-branches-in-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo x: int {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    break-if->=\n")
+    (write _test-input-stream "    loop-if-addr<\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "    loop\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-branches-in-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-branches-in-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-branches-in-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-branches-in-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-branches-in-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-branches-in-block/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-branches-in-block/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-branches-in-block/7")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-branches-in-block/8")
+    (check-next-stream-line-equal _test-output-stream "        0f 8c/jump-if-< break/disp32"  "F - test-convert-function-with-branches-in-block/9")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $foo:0x00000002:break/disp32"  "F - test-convert-function-with-branches-in-block/10")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-branches-in-block/11")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-branches-in-block/12")
+    (check-next-stream-line-equal _test-output-stream "        0f 83/jump-if-addr>= break/disp32"  "F - test-convert-function-with-branches-in-block/13")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $foo:0x00000002:loop/disp32"  "F - test-convert-function-with-branches-in-block/14")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-branches-in-block/15")
+    (check-next-stream-line-equal _test-output-stream "      ff 0/subop/increment *(ebp+0x00000008)"  "F - test-convert-function-with-branches-in-block/16")
+    (check-next-stream-line-equal _test-output-stream "      e9/jump loop/disp32"  "F - test-convert-function-with-branches-in-block/17")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-branches-in-block/18")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-branches-in-block/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-branches-in-block/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-branches-in-block/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-branches-in-block/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-branches-in-block/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-branches-in-block/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-branches-in-block/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-branches-in-block-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo x: int {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    break-if->=\n")
+    (write _test-input-stream "    loop-if-float<\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "    loop\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-branches-in-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-branches-in-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-branches-in-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-branches-in-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-branches-in-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-branches-in-block/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-branches-in-block/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-branches-in-block/7")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-branches-in-block/8")
+    (check-next-stream-line-equal _test-output-stream "        0f 8c/jump-if-< break/disp32"  "F - test-convert-function-with-branches-in-block/9")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $foo:0x00000002:break/disp32"  "F - test-convert-function-with-branches-in-block/10")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-branches-in-block/11")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-branches-in-block/12")
+    (check-next-stream-line-equal _test-output-stream "        0f 83/jump-if-addr>= break/disp32"  "F - test-convert-function-with-branches-in-block/13")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $foo:0x00000002:loop/disp32"  "F - test-convert-function-with-branches-in-block/14")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-branches-in-block/15")
+    (check-next-stream-line-equal _test-output-stream "      ff 0/subop/increment *(ebp+0x00000008)"  "F - test-convert-function-with-branches-in-block/16")
+    (check-next-stream-line-equal _test-output-stream "      e9/jump loop/disp32"  "F - test-convert-function-with-branches-in-block/17")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-branches-in-block/18")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-branches-in-block/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-branches-in-block/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-branches-in-block/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-branches-in-block/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-branches-in-block/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-branches-in-block/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-branches-in-block/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-branches-in-named-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo x: int {\n")
+    (write _test-input-stream "  $bar: {\n")
+    (write _test-input-stream "    break-if->= $bar\n")
+    (write _test-input-stream "    loop-if-addr< $bar\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "    loop\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-branches-in-named-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-branches-in-named-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-branches-in-named-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-branches-in-named-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-branches-in-named-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-branches-in-named-block/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-branches-in-named-block/6")
+    (check-next-stream-line-equal _test-output-stream "$bar:loop:"              "F - test-convert-function-with-branches-in-named-block/7")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-branches-in-named-block/8")
+    (check-next-stream-line-equal _test-output-stream "        0f 8c/jump-if-< break/disp32"  "F - test-convert-function-with-branches-in-named-block/9")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $bar:break/disp32"  "F - test-convert-function-with-branches-in-named-block/10")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-branches-in-named-block/11")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-branches-in-named-block/12")
+    (check-next-stream-line-equal _test-output-stream "        0f 83/jump-if-addr>= break/disp32"  "F - test-convert-function-with-branches-in-named-block/13")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $bar:loop/disp32"  "F - test-convert-function-with-branches-in-named-block/14")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-branches-in-named-block/15")
+    (check-next-stream-line-equal _test-output-stream "      ff 0/subop/increment *(ebp+0x00000008)"  "F - test-convert-function-with-branches-in-named-block/16")
+    (check-next-stream-line-equal _test-output-stream "      e9/jump loop/disp32"   "F - test-convert-function-with-branches-in-named-block/17")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-branches-in-named-block/18")
+    (check-next-stream-line-equal _test-output-stream "$bar:break:"             "F - test-convert-function-with-branches-in-named-block/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-branches-in-named-block/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-branches-in-named-block/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-branches-in-named-block/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-branches-in-named-block/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-branches-in-named-block/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-branches-in-named-block/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-var-in-nested-block:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo x: int {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      var x: int\n")
+    (write _test-input-stream "      increment x\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-var-in-nested-block/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-var-in-nested-block/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-var-in-nested-block/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-var-in-nested-block/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-var-in-nested-block/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-var-in-nested-block/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-var-in-nested-block/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-var-in-nested-block/7")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-var-in-nested-block/8")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-var-in-nested-block/9")
+    (check-next-stream-line-equal _test-output-stream "        68/push 0/imm32" "F - test-convert-function-with-var-in-nested-block/10")
+    (check-next-stream-line-equal _test-output-stream "        ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-var-in-nested-block/11")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-var-in-nested-block/12")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-var-in-nested-block/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-var-in-nested-block/14")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-var-in-nested-block/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-var-in-nested-block/16")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-var-in-nested-block/17")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-var-in-nested-block/18")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-var-in-nested-block/19")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-var-in-nested-block/20")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-var-in-nested-block/21")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-var-in-nested-block/22")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-multiple-vars-in-nested-blocks:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo x: int {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x/eax: int <- copy 0\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      var y: int\n")
+    (write _test-input-stream "      x <- add y\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-multiple-vars-in-nested-blocks/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-multiple-vars-in-nested-blocks/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-multiple-vars-in-nested-blocks/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-multiple-vars-in-nested-blocks/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-multiple-vars-in-nested-blocks/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-multiple-vars-in-nested-blocks/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-multiple-vars-in-nested-blocks/7")
+    (check-next-stream-line-equal _test-output-stream "      ff 6/subop/push %eax"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/8")
+    (check-next-stream-line-equal _test-output-stream "      b8/copy-to-eax 0/imm32"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/9")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-multiple-vars-in-nested-blocks/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-multiple-vars-in-nested-blocks/11")
+    (check-next-stream-line-equal _test-output-stream "        68/push 0/imm32" "F - test-convert-function-with-multiple-vars-in-nested-blocks/12")
+    (check-next-stream-line-equal _test-output-stream "        03/add *(ebp+0xfffffff8) 0x00000000/r32"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/13")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/14")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-multiple-vars-in-nested-blocks/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/16")
+    (check-next-stream-line-equal _test-output-stream "      8f 0/subop/pop %eax"   "F - test-convert-function-with-multiple-vars-in-nested-blocks/17")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-multiple-vars-in-nested-blocks/18")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-multiple-vars-in-nested-blocks/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-multiple-vars-in-nested-blocks/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-multiple-vars-in-nested-blocks/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-multiple-vars-in-nested-blocks/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-multiple-vars-in-nested-blocks/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-branches-and-local-vars:
+    # A conditional 'break' after a 'var' in a block is converted into a
+    # nested block that performs all necessary cleanup before jumping. This
+    # results in some ugly code duplication.
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    break-if->=\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-branches-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-branches-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-branches-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-branches-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-branches-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-branches-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-branches-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-branches-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-branches-and-local-vars/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-branches-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "        0f 8c/jump-if-< break/disp32"  "F - test-convert-function-with-branches-and-local-vars/10")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-branches-and-local-vars/11")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $foo:0x00000002:break/disp32"  "F - test-convert-function-with-branches-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-branches-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "      ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-branches-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-branches-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-branches-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-branches-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-branches-and-local-vars/18")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-branches-and-local-vars/19")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-branches-and-local-vars/20")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-branches-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-branches-and-local-vars/22")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-branches-and-local-vars/23")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-conditional-loops-and-local-vars:
+    # A conditional 'loop' after a 'var' in a block is converted into a nested
+    # block that performs all necessary cleanup before jumping. This results
+    # in some ugly code duplication.
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    loop-if->=\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-conditional-loops-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-conditional-loops-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-conditional-loops-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-conditional-loops-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-conditional-loops-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-conditional-loops-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-conditional-loops-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-conditional-loops-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-conditional-loops-and-local-vars/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-conditional-loops-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "        0f 8c/jump-if-< break/disp32"  "F - test-convert-function-with-conditional-loops-and-local-vars/10")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-conditional-loops-and-local-vars/11")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $foo:0x00000002:loop/disp32"  "F - test-convert-function-with-conditional-loops-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-conditional-loops-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "      ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-conditional-loops-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-conditional-loops-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-conditional-loops-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-conditional-loops-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-conditional-loops-and-local-vars/18")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-conditional-loops-and-local-vars/19")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-conditional-loops-and-local-vars/20")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-conditional-loops-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-conditional-loops-and-local-vars/22")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-conditional-loops-and-local-vars/23")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-unconditional-loops-and-local-vars:
+    # An unconditional 'loop' after a 'var' in a block is emitted _after_ the
+    # regular block cleanup. Any instructions after 'loop' are dead and
+    # therefore skipped.
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    loop\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-unconditional-loops-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-unconditional-loops-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-unconditional-loops-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-unconditional-loops-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-unconditional-loops-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-unconditional-loops-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-unconditional-loops-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-unconditional-loops-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-unconditional-loops-and-local-vars/8")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-unconditional-loops-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "      e9/jump loop/disp32"  "F - test-convert-function-with-unconditional-loops-and-local-vars/10")
+    # not emitted:                                           ff 0/subop/increment *(ebp+0xfffffffc)
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-unconditional-loops-and-local-vars/11")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-unconditional-loops-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-unconditional-loops-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-unconditional-loops-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-unconditional-loops-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-unconditional-loops-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-unconditional-loops-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-unconditional-loops-and-local-vars/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-branches-and-loops-and-local-vars:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    break-if->=\n")
+    (write _test-input-stream "    increment x\n")
+    (write _test-input-stream "    loop\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-branches-and-loops-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-branches-and-loops-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-branches-and-loops-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-branches-and-loops-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-branches-and-loops-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-branches-and-loops-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-branches-and-loops-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-branches-and-loops-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-branches-and-loops-and-local-vars/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-branches-and-loops-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "        0f 8c/jump-if-< break/disp32"  "F - test-convert-function-with-branches-and-loops-and-local-vars/10")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-branches-and-loops-and-local-vars/11")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $foo:0x00000002:break/disp32"  "F - test-convert-function-with-branches-and-loops-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-branches-and-loops-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "      ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-branches-and-loops-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-branches-and-loops-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "      e9/jump loop/disp32"  "F - test-convert-function-with-branches-and-loops-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-branches-and-loops-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-branches-and-loops-and-local-vars/18")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-branches-and-loops-and-local-vars/19")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-branches-and-loops-and-local-vars/20")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-branches-and-loops-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-branches-and-loops-and-local-vars/22")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-branches-and-loops-and-local-vars/23")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-branches-and-loops-and-local-vars/24")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-nonlocal-branches-and-loops-and-local-vars:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  a: {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      var y: int\n")
+    (write _test-input-stream "      break-if->= a\n")
+    (write _test-input-stream "      increment x\n")
+    (write _test-input-stream "      loop\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "a:loop:"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/10")
+    (check-next-stream-line-equal _test-output-stream "        68/push 0/imm32" "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/11")
+    (check-next-stream-line-equal _test-output-stream "        {"               "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "          0f 8c/jump-if-< break/disp32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "          81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "          81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "          e9/jump a:break/disp32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "        }"               "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "        ff 0/subop/increment *(ebp+0xfffffffc)"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/18")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/19")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump loop/disp32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/20")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/22")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/23")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/24")
+    (check-next-stream-line-equal _test-output-stream "a:break:"                "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/25")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/26")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/27")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/28")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/29")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/30")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars/31")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    # non-local conditional branch from a block without a local variable,
+    # unwinding a local on the stack
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  a: {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      break-if->= a\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/6")
+    (check-next-stream-line-equal _test-output-stream "a:loop:"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/10")
+    (check-next-stream-line-equal _test-output-stream "        {"               "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/11")
+    (check-next-stream-line-equal _test-output-stream "          0f 8c/jump-if-< break/disp32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/12")
+    (check-next-stream-line-equal _test-output-stream "          81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/13")
+    (check-next-stream-line-equal _test-output-stream "          e9/jump a:break/disp32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/14")
+    (check-next-stream-line-equal _test-output-stream "        }"               "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/15")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/16")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/17")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/18")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/19")
+    (check-next-stream-line-equal _test-output-stream "a:break:"                "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/20")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/21")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/22")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/23")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/24")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/25")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-2/26")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    # non-local unconditional branch from a block without a local variable,
+    # unwinding a local on the stack
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  a: {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      break a\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/6")
+    (check-next-stream-line-equal _test-output-stream "a:loop:"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/10")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/11")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump a:break/disp32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/12")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/15")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/16")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/17")
+    (check-next-stream-line-equal _test-output-stream "a:break:"                "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/18")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/19")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/20")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/21")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/22")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/23")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-3/24")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  a: {\n")
+    (write _test-input-stream "    var x/esi: int <- copy 0\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      break a\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/6")
+    (check-next-stream-line-equal _test-output-stream "a:loop:"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/7")
+    (check-next-stream-line-equal _test-output-stream "      ff 6/subop/push %esi"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/8")
+    (check-next-stream-line-equal _test-output-stream "      be/copy-to-esi 0/imm32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/9")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/11")
+    (check-next-stream-line-equal _test-output-stream "        8f 0/subop/pop %esi"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/12")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump a:break/disp32"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/13")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/15")
+    (check-next-stream-line-equal _test-output-stream "      8f 0/subop/pop %esi"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/16")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/17")
+    (check-next-stream-line-equal _test-output-stream "a:break:"                "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/18")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/19")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/20")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/21")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/22")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/23")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-nonlocal-branches-and-loops-and-local-vars-4/24")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-nonlocal-unconditional-break-and-local-vars:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  a: {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      var y: int\n")
+    (write _test-input-stream "      break a\n")
+    (write _test-input-stream "      increment x\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "a:loop:"                 "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/10")
+    (check-next-stream-line-equal _test-output-stream "        68/push 0/imm32" "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/11")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump a:break/disp32"  "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/18")
+    (check-next-stream-line-equal _test-output-stream "a:break:"                "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-nonlocal-unconditional-break-and-local-vars/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-unconditional-break-and-local-vars:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      var y: int\n")
+    (write _test-input-stream "      break\n")
+    (write _test-input-stream "      increment x\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-unconditional-break-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-unconditional-break-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-unconditional-break-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-unconditional-break-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-unconditional-break-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-unconditional-break-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-unconditional-break-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-unconditional-break-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-unconditional-break-and-local-vars/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-unconditional-break-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-unconditional-break-and-local-vars/10")
+    (check-next-stream-line-equal _test-output-stream "        68/push 0/imm32" "F - test-convert-function-with-unconditional-break-and-local-vars/11")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-unconditional-break-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-unconditional-break-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-unconditional-break-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-unconditional-break-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-unconditional-break-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-unconditional-break-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-unconditional-break-and-local-vars/18")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-unconditional-break-and-local-vars/19")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-unconditional-break-and-local-vars/20")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-unconditional-break-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-unconditional-break-and-local-vars/22")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-unconditional-break-and-local-vars/23")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-nonlocal-unconditional-loop-and-local-vars:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  a: {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      var y: int\n")
+    (write _test-input-stream "      loop a\n")
+    (write _test-input-stream "      increment x\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "a:loop:"                 "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/8")
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/10")
+    (check-next-stream-line-equal _test-output-stream "        68/push 0/imm32" "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/11")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump a:loop/disp32"  "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/18")
+    (check-next-stream-line-equal _test-output-stream "a:break:"                "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-nonlocal-unconditional-loop-and-local-vars/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-array-var-in-mem:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (array int 3)\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-array-var-in-mem/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-array-var-in-mem/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-array-var-in-mem/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-array-var-in-mem/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-array-var-in-mem/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-array-var-in-mem/5")
+    # define x
+    (check-next-stream-line-equal _test-output-stream "    (push-n-zero-bytes 0x0000000c)"  "F - test-convert-function-with-local-array-var-in-mem/7")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0x0000000c/imm32"  "F - test-convert-function-with-local-array-var-in-mem/8")
+    # reclaim x
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000010/imm32"  "F - test-convert-function-with-local-array-var-in-mem/9")
+    #
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-array-var-in-mem/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-array-var-in-mem/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-array-var-in-mem/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-array-var-in-mem/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-array-var-in-mem/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-array-var-in-mem/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-array-size-in-hex:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (array int 10)\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-array-size-in-hex: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "literal integers are always hex in Mu; start '10' with a '0x' to be unambiguous, converting it to hexadecimal as necessary."  "F - test-array-size-in-hex: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-array-size-in-hex: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-array-size-with-metadata:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (array int 3/bar)\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-populate:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: (addr handle array int) <- copy 0\n")
+    (write _test-input-stream "  populate x, 7\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-populate/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-populate/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-populate/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-populate/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-populate/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-populate/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-populate/6")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"  "F - test-convert-function-with-populate/7")
+    (check-next-stream-line-equal _test-output-stream "    (allocate-array2 Heap 0x00000004 7 %ecx)"  "F - test-convert-function-with-populate/8")  # 4 = size-of(int)
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-with-populate/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-populate/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-populate/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-populate/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-populate/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-populate/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-populate/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# special-case for size(byte) when allocating array
+test-convert-function-with-local-array-of-bytes-in-mem:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (array byte 3)\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-array-of-bytes-in-mem/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-array-of-bytes-in-mem/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-array-of-bytes-in-mem/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-array-of-bytes-in-mem/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-array-of-bytes-in-mem/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-array-of-bytes-in-mem/5")
+    # define x
+    (check-next-stream-line-equal _test-output-stream "    (push-n-zero-bytes 0x00000003)"  "F - test-convert-function-with-local-array-of-bytes-in-mem/7")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0x00000003/imm32"  "F - test-convert-function-with-local-array-of-bytes-in-mem/8")
+    # reclaim x
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000007/imm32"  "F - test-convert-function-with-local-array-of-bytes-in-mem/9")
+    #
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-array-of-bytes-in-mem/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-array-of-bytes-in-mem/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-array-of-bytes-in-mem/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-array-of-bytes-in-mem/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-array-of-bytes-in-mem/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-array-of-bytes-in-mem/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  var b/eax: (addr int) <- address a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-address/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-address/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-address/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-address/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-address/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-address/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-address/6")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-address/7")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(ebp+0xfffffffc) 0x00000000/r32"  "F - test-convert-address/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"  "F - test-convert-address/9")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-address/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-address/11")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-address/12")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-address/13")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-address/14")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-address/15")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-address/16")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-floating-point-convert:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: int <- copy 0\n")
+    (write _test-input-stream "  var b/xmm1: float <- convert a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-floating-point-convert/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-floating-point-convert/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-floating-point-convert/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-floating-point-convert/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-floating-point-convert/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-floating-point-convert/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-floating-point-convert/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"  "F - test-convert-floating-point-convert/7")
+    (check-next-stream-line-equal _test-output-stream "    81 5/subop/subtract %esp 4/imm32"  "F - test-convert-floating-point-convert/8")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/<- *esp 1/x32"  "F - test-convert-floating-point-convert/9")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 2a/convert-to-float %eax 0x00000001/x32"  "F - test-convert-floating-point-convert/10")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/-> *esp 1/x32"  "F - test-convert-floating-point-convert/11")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-floating-point-convert/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax" "F - test-convert-floating-point-convert/13")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-floating-point-convert/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-floating-point-convert/15")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-floating-point-convert/16")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-floating-point-convert/17")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-floating-point-convert/18")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-floating-point-convert/19")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-floating-point-convert-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: int <- copy 0\n")
+    (write _test-input-stream "  var b/xmm1: float <- convert a\n")
+    (write _test-input-stream "  a <- convert b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-floating-point-convert-2/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-floating-point-convert-2/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-floating-point-convert-2/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-floating-point-convert-2/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-floating-point-convert-2/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-floating-point-convert-2/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-floating-point-convert-2/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"  "F - test-convert-floating-point-convert-2/7")
+    (check-next-stream-line-equal _test-output-stream "    81 5/subop/subtract %esp 4/imm32"  "F - test-convert-floating-point-convert-2/8")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/<- *esp 1/x32"  "F - test-convert-floating-point-convert-2/9")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 2a/convert-to-float %eax 0x00000001/x32"  "F - test-convert-floating-point-convert-2/10")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 2d/convert-to-int %xmm1 0x00000000/r32"  "F - test-convert-floating-point-convert-2/11")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/-> *esp 1/x32"  "F - test-convert-floating-point-convert-2/12")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-floating-point-convert-2/13")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax" "F - test-convert-floating-point-convert-2/14")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-floating-point-convert-2/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-floating-point-convert-2/16")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-floating-point-convert-2/17")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-floating-point-convert-2/18")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-floating-point-convert-2/19")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-floating-point-convert-2/20")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-floating-point-operation:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var m: float\n")
+    (write _test-input-stream "  var x/xmm1: float <- copy m\n")
+    (write _test-input-stream "  var y/xmm5: float <- copy m\n")
+    (write _test-input-stream "  x <- copy y\n")
+    (write _test-input-stream "  copy-to m, y\n")
+    (write _test-input-stream "  x <- add y\n")
+    (write _test-input-stream "  x <- add m\n")
+    (write _test-input-stream "  x <- subtract y\n")
+    (write _test-input-stream "  x <- subtract m\n")
+    (write _test-input-stream "  x <- multiply y\n")
+    (write _test-input-stream "  x <- multiply m\n")
+    (write _test-input-stream "  x <- divide y\n")
+    (write _test-input-stream "  x <- divide m\n")
+    (write _test-input-stream "  x <- reciprocal y\n")
+    (write _test-input-stream "  x <- reciprocal m\n")
+    (write _test-input-stream "  x <- square-root y\n")
+    (write _test-input-stream "  x <- square-root m\n")
+    (write _test-input-stream "  x <- inverse-square-root y\n")
+    (write _test-input-stream "  x <- inverse-square-root m\n")
+    (write _test-input-stream "  x <- max y\n")
+    (write _test-input-stream "  x <- max m\n")
+    (write _test-input-stream "  x <- min y\n")
+    (write _test-input-stream "  x <- min m\n")
+    (write _test-input-stream "  compare x, y\n")
+    (write _test-input-stream "  compare x, m\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "f:"                                                                     "F - test-convert-floating-point-operation/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                                                         "F - test-convert-floating-point-operation/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                                                          "F - test-convert-floating-point-operation/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                                                 "F - test-convert-floating-point-operation/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                                                    "F - test-convert-floating-point-operation/4")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:loop:"                                                    "F - test-convert-floating-point-operation/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"                                                    "F - test-convert-floating-point-operation/6")
+    (check-next-stream-line-equal _test-output-stream "    81 5/subop/subtract %esp 4/imm32"                                   "F - test-convert-floating-point-operation/7")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/<- *esp 1/x32"                                             "F - test-convert-floating-point-operation/8")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/copy *(ebp+0xfffffffc) 0x00000001/x32"                     "F - test-convert-floating-point-operation/9")
+    (check-next-stream-line-equal _test-output-stream "    81 5/subop/subtract %esp 4/imm32"                                   "F - test-convert-floating-point-operation/10")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/<- *esp 5/x32"                                             "F - test-convert-floating-point-operation/11")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/copy *(ebp+0xfffffffc) 0x00000005/x32"                     "F - test-convert-floating-point-operation/12")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/copy %xmm1 0x00000005/x32"                                 "F - test-convert-floating-point-operation/13")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/copy *(ebp+0xfffffffc) 0x00000005/x32"                     "F - test-convert-floating-point-operation/14")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 58/add %xmm5 0x00000001/x32"                                  "F - test-convert-floating-point-operation/15")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 58/add *(ebp+0xfffffffc) 0x00000001/x32"                      "F - test-convert-floating-point-operation/16")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 5c/subtract %xmm5 0x00000001/x32"                             "F - test-convert-floating-point-operation/17")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 5c/subtract *(ebp+0xfffffffc) 0x00000001/x32"                 "F - test-convert-floating-point-operation/18")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 59/multiply %xmm5 0x00000001/x32"                             "F - test-convert-floating-point-operation/19")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 59/multiply *(ebp+0xfffffffc) 0x00000001/x32"                 "F - test-convert-floating-point-operation/20")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 5e/divide %xmm5 0x00000001/x32"                               "F - test-convert-floating-point-operation/21")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 5e/divide *(ebp+0xfffffffc) 0x00000001/x32"                   "F - test-convert-floating-point-operation/22")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 53/reciprocal %xmm5 0x00000001/x32"                           "F - test-convert-floating-point-operation/23")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 53/reciprocal *(ebp+0xfffffffc) 0x00000001/x32"               "F - test-convert-floating-point-operation/24")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 51/square-root %xmm5 0x00000001/x32"                          "F - test-convert-floating-point-operation/25")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 51/square-root *(ebp+0xfffffffc) 0x00000001/x32"              "F - test-convert-floating-point-operation/26")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 52/inverse-square-root %xmm5 0x00000001/x32"                  "F - test-convert-floating-point-operation/27")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 52/inverse-square-root *(ebp+0xfffffffc) 0x00000001/x32"      "F - test-convert-floating-point-operation/28")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 5f/max %xmm5 0x00000001/x32"                                  "F - test-convert-floating-point-operation/29")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 5f/max *(ebp+0xfffffffc) 0x00000001/x32"                      "F - test-convert-floating-point-operation/30")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 5d/min %xmm5 0x00000001/x32"                                  "F - test-convert-floating-point-operation/31")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 5d/min *(ebp+0xfffffffc) 0x00000001/x32"                      "F - test-convert-floating-point-operation/32")
+    (check-next-stream-line-equal _test-output-stream "    0f 2f/compare %xmm5 0x00000001/x32"                                 "F - test-convert-floating-point-operation/33")
+    (check-next-stream-line-equal _test-output-stream "    0f 2f/compare *(ebp+0xfffffffc) 0x00000001/x32"                     "F - test-convert-floating-point-operation/34")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/-> *esp 5/x32"                                             "F - test-convert-floating-point-operation/35")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"                                        "F - test-convert-floating-point-operation/36")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/-> *esp 1/x32"                                             "F - test-convert-floating-point-operation/37")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"                                        "F - test-convert-floating-point-operation/38")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"                               "F - test-convert-floating-point-operation/39")
+    (check-next-stream-line-equal _test-output-stream "  }"                                                                    "F - test-convert-floating-point-operation/40")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:break:"                                                   "F - test-convert-floating-point-operation/41")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                                                         "F - test-convert-floating-point-operation/42")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                                                 "F - test-convert-floating-point-operation/43")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                                                        "F - test-convert-floating-point-operation/44")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                                            "F - test-convert-floating-point-operation/45")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-floating-point-dereferenced:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var m: float\n")
+    (write _test-input-stream "  var x/xmm1: float <- copy m\n")
+    (write _test-input-stream "  var y/eax: (addr float) <- copy 0\n")
+    (write _test-input-stream "  x <- multiply *y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "f:"                                                                     "F - test-convert-floating-point-dereferenced/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                                                         "F - test-convert-floating-point-dereferenced/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                                                          "F - test-convert-floating-point-dereferenced/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                                                 "F - test-convert-floating-point-dereferenced/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                                                    "F - test-convert-floating-point-dereferenced/4")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:loop:"                                                    "F - test-convert-floating-point-dereferenced/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"                                                    "F - test-convert-floating-point-dereferenced/6")
+    (check-next-stream-line-equal _test-output-stream "    81 5/subop/subtract %esp 4/imm32"                                   "F - test-convert-floating-point-dereferenced/7")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/<- *esp 1/x32"                                             "F - test-convert-floating-point-dereferenced/8")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/copy *(ebp+0xfffffffc) 0x00000001/x32"                     "F - test-convert-floating-point-dereferenced/9")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                                               "F - test-convert-floating-point-dereferenced/10")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                                             "F - test-convert-floating-point-dereferenced/11")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 59/multiply *eax 0x00000001/x32"                              "F - test-convert-floating-point-dereferenced/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                                                "F - test-convert-floating-point-dereferenced/13")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/-> *esp 1/x32"                                             "F - test-convert-floating-point-dereferenced/14")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"                                        "F - test-convert-floating-point-dereferenced/15")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"                               "F - test-convert-floating-point-dereferenced/16")
+    (check-next-stream-line-equal _test-output-stream "  }"                                                                    "F - test-convert-floating-point-dereferenced/17")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:break:"                                                   "F - test-convert-floating-point-dereferenced/18")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                                                         "F - test-convert-floating-point-dereferenced/19")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                                                 "F - test-convert-floating-point-dereferenced/20")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                                                        "F - test-convert-floating-point-dereferenced/21")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                                            "F - test-convert-floating-point-dereferenced/22")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-length-of-array:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo a: (addr array int) {\n")
+    (write _test-input-stream "  var b/eax: (addr array int) <- copy a\n")
+    (write _test-input-stream "  var c/eax: int <- length b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-length-of-array/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-length-of-array/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-length-of-array/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-length-of-array/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-length-of-array/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-length-of-array/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-length-of-array/6")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x00000008) 0x00000000/r32"  "F - test-convert-length-of-array/7")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *eax 0x00000000/r32"  "F - test-convert-length-of-array/8")
+    (check-next-stream-line-equal _test-output-stream "    c1/shift 5/subop/>> %eax 0x00000002/imm8"  "F - test-convert-length-of-array/9")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"  "F - test-convert-length-of-array/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-length-of-array/11")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-length-of-array/12")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-length-of-array/13")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-length-of-array/14")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-length-of-array/15")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-length-of-array/16")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# special-case for size(byte) when computing array length
+test-convert-length-of-array-of-bytes:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo a: (addr array byte) {\n")
+    (write _test-input-stream "  var b/eax: (addr array byte) <- copy a\n")
+    (write _test-input-stream "  var c/eax: int <- length b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-length-of-array-of-bytes/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-length-of-array-of-bytes/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-length-of-array-of-bytes/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-length-of-array-of-bytes/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-length-of-array-of-bytes/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-length-of-array-of-bytes/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-length-of-array-of-bytes/6")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x00000008) 0x00000000/r32"  "F - test-convert-length-of-array-of-bytes/7")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *eax 0x00000000/r32"  "F - test-convert-length-of-array-of-bytes/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"  "F - test-convert-length-of-array-of-bytes/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-length-of-array-of-bytes/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-length-of-array-of-bytes/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-length-of-array-of-bytes/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-length-of-array-of-bytes/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-length-of-array-of-bytes/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-length-of-array-of-bytes/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-length-of-array-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var b/eax: int <- length a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-length-of-array-on-stack/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-length-of-array-on-stack/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-length-of-array-on-stack/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-length-of-array-on-stack/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-length-of-array-on-stack/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-length-of-array-on-stack/5")
+    # define x
+    (check-next-stream-line-equal _test-output-stream "    (push-n-zero-bytes 0x0000000c)"  "F - test-convert-length-of-array-on-stack/6")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0x0000000c/imm32"  "F - test-convert-length-of-array-on-stack/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-length-of-array-on-stack/8")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0xfffffff0) 0x00000000/r32"  "F - test-convert-length-of-array-on-stack/9")
+    (check-next-stream-line-equal _test-output-stream "    c1/shift 5/subop/>> %eax 0x00000002/imm8"  "F - test-convert-length-of-array-on-stack/10")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"  "F - test-convert-length-of-array-on-stack/11")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000010/imm32"  "F - test-convert-length-of-array-on-stack/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-length-of-array-on-stack/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-length-of-array-on-stack/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-length-of-array-on-stack/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-length-of-array-on-stack/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-length-of-array-on-stack/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-length-of-array-on-stack/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-reg-var-def-with-read-of-same-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)  # bytes of args in call to convert-mu
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 3\n")
+    (write _test-input-stream "  var y/eax: int <- add x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp could be clobbered at this point (though they shouldn't be)
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    (check-stream-equal _test-error-stream  ""  "F - test-reg-var-def-with-read-of-same-register: error stream should be empty")
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-reg-var-def-with-read-of-same-register/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-reg-var-def-with-read-of-same-register/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-reg-var-def-with-read-of-same-register/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-reg-var-def-with-read-of-same-register/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-reg-var-def-with-read-of-same-register/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-reg-var-def-with-read-of-same-register/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-reg-var-def-with-read-of-same-register/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 3/imm32"                  "F - test-reg-var-def-with-read-of-same-register/7")
+    (check-next-stream-line-equal _test-output-stream "    01/add-to %eax 0x00000000/r32"           "F - test-reg-var-def-with-read-of-same-register/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-reg-var-def-with-read-of-same-register/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-reg-var-def-with-read-of-same-register/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-reg-var-def-with-read-of-same-register/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-reg-var-def-with-read-of-same-register/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-reg-var-def-with-read-of-same-register/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-reg-var-def-with-read-of-same-register/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-reg-var-def-with-read-of-same-register/15")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array int) <- copy 0\n")
+    (write _test-input-stream "  var idx/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- index arr, idx\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-index-into-array/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"                    "F - test-convert-index-into-array/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"                  "F - test-convert-index-into-array/9")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds %ecx 0x00000004 *eax \"foo\" \"arr\")"  "F - test-convert-index-into-array/10")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + ecx<<0x00000002 + 4) 0x00000000/r32"  "F - test-convert-index-into-array/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"                     "F - test-convert-index-into-array/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array/13")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array/15")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array/16")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array/17")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array/18")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array/19")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-of-bytes:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array byte) <- copy 0\n")
+    (write _test-input-stream "  var idx/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- index arr, idx\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-of-bytes/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-of-bytes/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-of-bytes/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-of-bytes/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-of-bytes/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-of-bytes/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-of-bytes/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-index-into-array-of-bytes/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"                    "F - test-convert-index-into-array-of-bytes/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"                  "F - test-convert-index-into-array-of-bytes/9")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds %ecx 0x00000001 *eax \"foo\" \"arr\")"  "F - test-convert-index-into-array-of-bytes/10")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + ecx<<0x00000000 + 4) 0x00000000/r32"  "F - test-convert-index-into-array-of-bytes/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"                     "F - test-convert-index-into-array-of-bytes/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-of-bytes/13")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-of-bytes/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-of-bytes/15")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-of-bytes/16")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-of-bytes/17")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-of-bytes/18")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-of-bytes/19")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-with-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array int) <- copy 0\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- index arr, 2\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-with-literal/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-with-literal/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-with-literal/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-with-literal/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-with-literal/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-with-literal/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-with-literal/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-index-into-array-with-literal/7")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds 2 0x00000004 *eax \"foo\" \"arr\")"  "F - test-convert-index-into-array-with-literal/8")
+                                                                                 # 2 * 4 bytes/elem + 4 bytes for size = offset 12
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + 0x0000000c) 0x00000000/r32"  "F - test-convert-index-into-array-with-literal/9")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-with-literal/10")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-with-literal/11")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-with-literal/12")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-with-literal/13")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-with-literal/14")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-with-literal/15")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-with-literal/16")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-of-bytes-with-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array byte) <- copy 0\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- index arr, 2\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-of-bytes-with-literal/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-of-bytes-with-literal/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-of-bytes-with-literal/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-of-bytes-with-literal/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-of-bytes-with-literal/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-of-bytes-with-literal/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-of-bytes-with-literal/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-index-into-array-of-bytes-with-literal/7")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds 2 0x00000001 *eax \"foo\" \"arr\")"  "F - test-convert-index-into-array-of-bytes-with-literal/8")
+                                                                                 # 2 * 1 byte/elem + 4 bytes for size = offset 6
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + 0x00000006) 0x00000000/r32"  "F - test-convert-index-into-array-of-bytes-with-literal/8")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-of-bytes-with-literal/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-of-bytes-with-literal/10")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-of-bytes-with-literal/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-of-bytes-with-literal/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-of-bytes-with-literal/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-of-bytes-with-literal/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-of-bytes-with-literal/15")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr: (array int 3)\n")
+    (write _test-input-stream "  var idx/eax: int <- copy 2\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- index arr, idx\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-on-stack/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-on-stack/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-on-stack/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-on-stack/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-on-stack/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-on-stack/5")
+    # var arr
+    (check-next-stream-line-equal _test-output-stream "    (push-n-zero-bytes 0x0000000c)"          "F - test-convert-index-into-array-on-stack/6")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0x0000000c/imm32"                "F - test-convert-index-into-array-on-stack/7")
+    # var idx
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-on-stack/8")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 2/imm32"                  "F - test-convert-index-into-array-on-stack/9")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds %eax 0x00000004 *(ebp+0xfffffff0) \"foo\" \"arr\")"  "F - test-convert-index-into-array-on-stack/10")
+    # var x is at (ebp-0x10) + idx<<2 + 4 = ebp + idx<<2 - 0xc
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(ebp + eax<<0x00000002 + 0xfffffff4) 0x00000000/r32"  "F - test-convert-index-into-array-on-stack/11")
+    # reclaim idx
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-on-stack/12")
+    # reclaim arr
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000010/imm32"    "F - test-convert-index-into-array-on-stack/13")
+    #
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-on-stack/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-on-stack/15")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-on-stack/16")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-on-stack/17")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-on-stack/18")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-on-stack/19")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-on-stack-with-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr: (array int 3)\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- index arr, 2\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-on-stack-with-literal/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-on-stack-with-literal/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-on-stack-with-literal/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-on-stack-with-literal/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-on-stack-with-literal/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-on-stack-with-literal/5")
+    # var arr
+    (check-next-stream-line-equal _test-output-stream "    (push-n-zero-bytes 0x0000000c)"          "F - test-convert-index-into-array-on-stack-with-literal/6")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0x0000000c/imm32"                "F - test-convert-index-into-array-on-stack-with-literal/7")
+    # var x
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-on-stack-with-literal/8")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds 2 0x00000004 *(ebp+0xfffffff0) \"foo\" \"arr\")"  "F - test-convert-index-into-array-on-stack-with-literal/9")
+    # x is at (ebp-0x10) + 4 + 2*4 = ebp-4
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(ebp + 0xfffffffc) 0x00000000/r32"  "F - test-convert-index-into-array-on-stack-with-literal/10")
+    # reclaim x
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-on-stack-with-literal/11")
+    # reclaim arr
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000010/imm32"    "F - test-convert-index-into-array-on-stack-with-literal/12")
+    #
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-on-stack-with-literal/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-on-stack-with-literal/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-on-stack-with-literal/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-on-stack-with-literal/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-on-stack-with-literal/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-on-stack-with-literal/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-of-bytes-on-stack-with-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr: (array byte 3)\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- index arr, 2\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/5")
+    # var arr
+    (check-next-stream-line-equal _test-output-stream "    (push-n-zero-bytes 0x00000003)"          "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/6")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0x00000003/imm32"                "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/7")
+    # var x
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/8")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds 2 0x00000001 *(ebp+0xfffffff9) \"foo\" \"arr\")"  "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/9")
+    # x is at (ebp-7) + 4 + 2 = ebp-1
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(ebp + 0xffffffff) 0x00000000/r32"  "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/10")
+    # reclaim x
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/11")
+    # reclaim arr
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000007/imm32"    "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/12")
+    #
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-of-bytes-on-stack-with-literal/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-using-offset:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array int) <- copy 0\n")
+    (write _test-input-stream "  var idx/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var off/ecx: (offset int) <- compute-offset arr, idx\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- index arr, off\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-using-offset/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-using-offset/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-using-offset/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-using-offset/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-using-offset/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-using-offset/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-using-offset/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-index-into-array-using-offset/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"                    "F - test-convert-index-into-array-using-offset/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"                  "F - test-convert-index-into-array-using-offset/9")
+    (check-next-stream-line-equal _test-output-stream "    69/multiply %ecx 0x00000004/imm32 0x00000001/r32"  "F - test-convert-index-into-array-using-offset/10")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds %ecx 1 *eax \"foo\" \"arr\")"  "F - test-convert-index-into-array-using-offset/11")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + ecx + 4) 0x00000000/r32"  "F - test-convert-index-into-array-using-offset/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"                     "F - test-convert-index-into-array-using-offset/13")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-using-offset/14")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-using-offset/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-using-offset/16")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-using-offset/17")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-using-offset/18")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-using-offset/19")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-using-offset/20")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-of-bytes-using-offset:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array byte) <- copy 0\n")
+    (write _test-input-stream "  var idx/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var off/ecx: (offset byte) <- compute-offset arr, idx\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- index arr, off\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-of-bytes-using-offset/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-of-bytes-using-offset/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-of-bytes-using-offset/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-of-bytes-using-offset/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-of-bytes-using-offset/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-of-bytes-using-offset/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-of-bytes-using-offset/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-index-into-array-of-bytes-using-offset/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"                    "F - test-convert-index-into-array-of-bytes-using-offset/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"                  "F - test-convert-index-into-array-of-bytes-using-offset/9")
+    (check-next-stream-line-equal _test-output-stream "    69/multiply %ecx 0x00000001/imm32 0x00000001/r32"  "F - test-convert-index-into-array-of-bytes-using-offset/10")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds %ecx 1 *eax \"foo\" \"arr\")"  "F - test-convert-index-into-array-of-bytes-using-offset/11")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + ecx + 4) 0x00000000/r32"  "F - test-convert-index-into-array-of-bytes-using-offset/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"                     "F - test-convert-index-into-array-of-bytes-using-offset/13")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-of-bytes-using-offset/14")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-of-bytes-using-offset/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-of-bytes-using-offset/16")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-of-bytes-using-offset/17")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-of-bytes-using-offset/18")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-of-bytes-using-offset/19")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-of-bytes-using-offset/20")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-using-offset-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array int) <- copy 0\n")
+    (write _test-input-stream "  var idx: int\n")
+    (write _test-input-stream "  var off/ecx: (offset int) <- compute-offset arr, idx\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- index arr, off\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-using-offset-on-stack/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-using-offset-on-stack/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-using-offset-on-stack/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-using-offset-on-stack/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-using-offset-on-stack/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-using-offset-on-stack/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-using-offset-on-stack/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-index-into-array-using-offset-on-stack/7")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"                         "F - test-convert-index-into-array-using-offset-on-stack/8")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"                    "F - test-convert-index-into-array-using-offset-on-stack/9")
+    (check-next-stream-line-equal _test-output-stream "    69/multiply *(ebp+0xfffffff8) 0x00000004/imm32 0x00000001/r32"  "F - test-convert-index-into-array-using-offset-on-stack/10")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds %ecx 1 *eax \"foo\" \"arr\")"  "F - test-convert-index-into-array-using-offset-on-stack/11")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + ecx + 4) 0x00000000/r32"  "F - test-convert-index-into-array-using-offset-on-stack/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"                     "F - test-convert-index-into-array-using-offset-on-stack/13")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"    "F - test-convert-index-into-array-using-offset-on-stack/14")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-using-offset-on-stack/15")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-using-offset-on-stack/16")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-using-offset-on-stack/17")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-using-offset-on-stack/18")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-using-offset-on-stack/19")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-using-offset-on-stack/20")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-using-offset-on-stack/21")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-index-into-array-of-bytes-using-offset-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array byte) <- copy 0\n")
+    (write _test-input-stream "  var idx: int\n")
+    (write _test-input-stream "  var off/ecx: (offset byte) <- compute-offset arr, idx\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- index arr, off\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/7")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"                         "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/8")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"                    "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/9")
+    (check-next-stream-line-equal _test-output-stream "    69/multiply *(ebp+0xfffffff8) 0x00000001/imm32 0x00000001/r32"  "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/10")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds %ecx 1 *eax \"foo\" \"arr\")"  "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/11")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + ecx + 4) 0x00000000/r32"  "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"                     "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/13")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"    "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/14")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/15")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/16")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/17")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/18")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/19")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/20")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-index-into-array-of-bytes-using-offset-on-stack/21")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-and-type-definition:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo a: (addr t) {\n")
+    (write _test-input-stream "  var _a/eax: (addr t) <- copy a\n")
+    (write _test-input-stream "  var b/ecx: (addr int) <- get _a, x\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get _a, y\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-and-type-definition/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-and-type-definition/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-and-type-definition/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-and-type-definition/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-and-type-definition/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-and-type-definition/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-and-type-definition/6")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x00000008) 0x00000000/r32"  "F - test-convert-function-and-type-definition/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-and-type-definition/8")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + 0x00000000) 0x00000001/r32"  "F - test-convert-function-and-type-definition/9")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + 0x00000004) 0x00000001/r32"  "F - test-convert-function-and-type-definition/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-and-type-definition/13")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax" "F - test-convert-function-and-type-definition/14")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-and-type-definition/15")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-and-type-definition/16")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-and-type-definition/17")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-and-type-definition/18")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-and-type-definition/19")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-and-type-definition/20")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-type-definition-with-array:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  a: (array int 3)\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-type-definition-with-array: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "type t: 'array' elements not allowed for now"  "F - test-type-definition-with-array: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-type-definition-with-array: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-type-definition-with-addr:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  a: (addr int)\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-type-definition-with-addr: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "type t: 'addr' elements not allowed"  "F - test-type-definition-with-addr: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-type-definition-with-addr: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-with-user-defined-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-with-user-defined-type/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-with-user-defined-type/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-with-user-defined-type/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-with-user-defined-type/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-with-user-defined-type/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-with-user-defined-type/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-with-local-var-with-user-defined-type/6")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-with-local-var-with-user-defined-type/7")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000008/imm32"  "F - test-convert-function-with-local-var-with-user-defined-type/8")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-with-user-defined-type/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-with-user-defined-type/10")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-with-user-defined-type/11")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-with-user-defined-type/12")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-with-user-defined-type/13")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-with-user-defined-type/14")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: s\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type s {\n")
+    (write _test-input-stream "  z: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/5")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/7")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/8")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/10")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/11")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/12")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/13")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-local-var-with-user-defined-type-containing-user-defined-type/14")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-arg-of-user-defined-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  foo a\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo x: t {\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "f:"                      "F - test-convert-function-call-with-arg-of-user-defined-type/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-arg-of-user-defined-type/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-arg-of-user-defined-type/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-arg-of-user-defined-type/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call-with-arg-of-user-defined-type/4")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:loop:"     "F - test-convert-function-call-with-arg-of-user-defined-type/5")
+    # var a: t
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-call-with-arg-of-user-defined-type/6")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-call-with-arg-of-user-defined-type/7")
+    # foo a
+    (check-next-stream-line-equal _test-output-stream "    (foo *(ebp+0xfffffff8) *(ebp+0xfffffffc))"  "F - test-convert-function-call-with-arg-of-user-defined-type/8")
+    #
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000008/imm32"  "F - test-convert-function-call-with-arg-of-user-defined-type/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call-with-arg-of-user-defined-type/10")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:break:"    "F - test-convert-function-call-with-arg-of-user-defined-type/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-arg-of-user-defined-type/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-arg-of-user-defined-type/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-arg-of-user-defined-type/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-arg-of-user-defined-type/15")
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-call-with-arg-of-user-defined-type/16")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-arg-of-user-defined-type/17")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-arg-of-user-defined-type/18")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-arg-of-user-defined-type/19")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-arg-of-user-defined-type/20")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-arg-of-user-defined-type/21")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-arg-of-user-defined-type/22")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-arg-of-user-defined-type/23")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-call-with-arg-of-user-defined-type-register-indirect:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var a/eax: (addr t) <- copy 0\n")
+    (write _test-input-stream "  foo *a\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo x: t {\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "f:"                      "F - test-convert-function-call-with-arg-of-user-defined-type/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-arg-of-user-defined-type/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-arg-of-user-defined-type/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-arg-of-user-defined-type/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call-with-arg-of-user-defined-type/4")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:loop:"     "F - test-convert-function-call-with-arg-of-user-defined-type/5")
+    # var a
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-call-with-arg-of-user-defined-type/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"  "F - test-convert-function-call-with-arg-of-user-defined-type/7")
+    # foo a
+    (check-next-stream-line-equal _test-output-stream "    (foo *(eax+0x00000000) *(eax+0x00000004))"  "F - test-convert-function-call-with-arg-of-user-defined-type/8")
+    #
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax" "F - test-convert-function-call-with-arg-of-user-defined-type/9")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call-with-arg-of-user-defined-type/10")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:break:"    "F - test-convert-function-call-with-arg-of-user-defined-type/11")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-arg-of-user-defined-type/12")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-arg-of-user-defined-type/13")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-arg-of-user-defined-type/14")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-arg-of-user-defined-type/15")
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-call-with-arg-of-user-defined-type/16")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-arg-of-user-defined-type/17")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-arg-of-user-defined-type/18")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-arg-of-user-defined-type/19")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-arg-of-user-defined-type/20")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-arg-of-user-defined-type/21")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-arg-of-user-defined-type/22")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-arg-of-user-defined-type/23")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# we don't have special support for call-by-reference; just explicitly create
+# a new variable with the address of the arg
+test-convert-function-call-with-arg-of-user-defined-type-by-reference:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn f {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var b/eax: (addr t) <- address a\n")
+    (write _test-input-stream "  foo b\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo x: (addr t) {\n")
+    (write _test-input-stream "  var x/ecx: (addr t) <- copy x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "f:"                      "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/4")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:loop:"     "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/5")
+    # var a: t
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/6")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/7")
+    # var b/eax: (addr t)
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/8")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(ebp+0xfffffff8) 0x00000000/r32"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/9")
+    # foo a
+    (check-next-stream-line-equal _test-output-stream "    (foo %eax)"          "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/10")
+    #
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax" "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/11")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000008/imm32"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/13")
+    (check-next-stream-line-equal _test-output-stream "$f:0x00000001:break:"    "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/18")
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/19")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/20")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/21")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/22")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/23")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/24")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/25")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *(ebp+0x00000008) 0x00000001/r32"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/26")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/27")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/28")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/29")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/30")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/31")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/32")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-call-with-arg-of-user-defined-type-by-reference/33")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-get-on-local-variable:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, y\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-get-on-local-variable/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-get-on-local-variable/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-get-on-local-variable/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-get-on-local-variable/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-get-on-local-variable/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-get-on-local-variable/5")
+    # var a
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-get-on-local-variable/6")
+    (check-next-stream-line-equal _test-output-stream "    68/push 0/imm32"     "F - test-convert-get-on-local-variable/7")
+    # var c
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-get-on-local-variable/8")
+    # get
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(ebp+0xfffffffc) 0x00000001/r32"  "F - test-convert-get-on-local-variable/9")
+    # reclaim c
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-get-on-local-variable/10")
+    # reclaim a
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 0x00000008/imm32"  "F - test-convert-get-on-local-variable/11")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-get-on-local-variable/12")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-get-on-local-variable/13")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-get-on-local-variable/14")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-get-on-local-variable/15")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-get-on-local-variable/16")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-get-on-local-variable/17")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-get-on-function-argument:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo a: t {\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, y\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-get-on-function-argument/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-get-on-function-argument/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-get-on-function-argument/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-get-on-function-argument/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-get-on-function-argument/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-get-on-function-argument/5")
+    # var c
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-get-on-function-argument/6")
+    # get
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(ebp+0x0000000c) 0x00000001/r32"  "F - test-convert-get-on-function-argument/7")
+    # reclaim c
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-get-on-function-argument/8")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-get-on-function-argument/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-get-on-function-argument/10")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-get-on-function-argument/11")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-get-on-function-argument/12")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-get-on-function-argument/13")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-get-on-function-argument/14")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-get-on-function-argument-with-known-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo a: t {\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-get-on-function-argument-with-known-type/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-get-on-function-argument-with-known-type/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-get-on-function-argument-with-known-type/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-get-on-function-argument-with-known-type/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-get-on-function-argument-with-known-type/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-get-on-function-argument-with-known-type/5")
+    # var c
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-get-on-function-argument-with-known-type/6")
+    # get
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(ebp+0x0000000c) 0x00000001/r32"  "F - test-convert-get-on-function-argument-with-known-type/7")
+    # reclaim c
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx" "F - test-convert-get-on-function-argument-with-known-type/8")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-get-on-function-argument-with-known-type/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-get-on-function-argument-with-known-type/10")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-get-on-function-argument-with-known-type/11")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-get-on-function-argument-with-known-type/12")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-get-on-function-argument-with-known-type/13")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-get-on-function-argument-with-known-type/14")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-add-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  var b/ecx: int <- add a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-add-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt add: too many inouts; most primitives support at most two arguments, across inouts and outputs"  "F - test-add-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-add-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-add-with-too-many-inouts-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  add-to a, 0, 1\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-add-with-too-many-inouts-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt add-to: too many inouts; most primitives support at most two arguments, across inouts and outputs"  "F - test-add-with-too-many-inouts-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-add-with-too-many-inouts-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-add-with-too-many-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: int <- copy 0\n")
+    (write _test-input-stream "  var b/ebx: int <- copy 0\n")
+    (write _test-input-stream "  var c/ecx: int <- copy 0\n")
+    (write _test-input-stream "  c, b <- add a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-add-with-too-many-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt add: too many outputs; most primitives support at most one output"  "F - test-add-with-too-many-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-add-with-too-many-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-add-with-non-number:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  var b/ecx: (addr int) <- add a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-add-with-non-number: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt add: 'b' must be a non-addr non-offset scalar"  "F - test-add-with-non-number: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-add-with-non-number: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-add-with-addr-dereferenced:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  add-to *a, 1\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no error
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy' expects an inout"  "F - test-copy-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-with-multiple-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-with-multiple-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy' must have just one inout"  "F - test-copy-with-multiple-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-with-multiple-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-with-no-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  copy 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-with-no-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy' expects an output"  "F - test-copy-with-no-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-with-no-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-with-multiple-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: boolean <- copy 0\n")
+    (write _test-input-stream "  x, y <- copy 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-with-multiple-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy' must have just one output"  "F - test-copy-with-multiple-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-with-multiple-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-invalid-value-to-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr int) <- copy x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-invalid-value-to-address: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy: 'y' must be a non-addr non-offset scalar"  "F - test-copy-invalid-value-to-address: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-invalid-value-to-address: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-null-value-to-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-invalid-value-to-offset:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (offset int) <- copy x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-invalid-value-to-address: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy: 'y' must be a non-addr non-offset scalar"  "F - test-copy-invalid-value-to-address: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-invalid-value-to-offset: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-null-value-to-offset:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (offset int) <- copy 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-non-literal-to-byte:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var y/ecx: byte <- copy x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-non-literal-to-byte: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy: cannot copy non-literal to 'y' of type byte; use copy-byte"  "F - test-copy-non-literal-to-byte: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-non-literal-to-byte: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr addr int) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr int) <- copy *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-non-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  x <- copy 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-non-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy: output 'x' not in a register"  "F - test-copy-to-non-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-non-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-from-non-scalar-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (handle int)\n")
+    (write _test-input-stream "  var y/eax: int <- copy x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-from-non-scalar-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy: 'x' is too large to fit in a register"  "F - test-copy-from-non-scalar-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-from-non-scalar-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  copy-to\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-to' must have two inouts"  "F - test-copy-to-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-with-no-source:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: boolean\n")
+    (write _test-input-stream "  copy-to x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-with-no-source: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-to' must have two inouts"  "F - test-copy-to-with-no-source: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-with-no-source: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-with-no-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: boolean\n")
+    (write _test-input-stream "  copy-to x, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-with-no-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-to: source (second inout) is in memory"  "F - test-copy-to-with-no-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-with-no-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: boolean\n")
+    (write _test-input-stream "  copy-to x, 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-to' must have two inouts"  "F - test-copy-to-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: boolean <- copy 0\n")
+    (write _test-input-stream "  x <- copy-to y, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-to' must not have any outputs"  "F - test-copy-to-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-invalid-value-to-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0\n")
+    (write _test-input-stream "  var y: (addr int)\n")
+    (write _test-input-stream "  copy-to y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-invalid-value-to-address: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-to: 'y' must be a non-addr non-offset scalar"  "F - test-copy-to-invalid-value-to-address: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-invalid-value-to-address: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-null-value-to-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y: (addr int)\n")
+    (write _test-input-stream "  copy-to y, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-invalid-value-to-offset:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0\n")
+    (write _test-input-stream "  var y: (offset int)\n")
+    (write _test-input-stream "  copy-to y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-invalid-value-to-offset: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-to: 'y' must be a non-addr non-offset scalar"  "F - test-copy-to-invalid-value-to-offset: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-invalid-value-to-offset: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-null-value-to-offset:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y: (offset int)\n")
+    (write _test-input-stream "  copy-to y, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-non-literal-to-byte:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/ecx: byte <- copy 3\n")
+    (write _test-input-stream "  var y/eax: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  copy-to *y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-non-literal-to-byte: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-to: cannot copy non-literal to type byte; use copy-byte-to"  "F - test-copy-to-non-literal-to-byte: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-non-literal-to-byte: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr addr int) <- copy 0\n")
+    (write _test-input-stream "  copy-to *y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-to-from-non-scalar-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (handle int)\n")
+    (write _test-input-stream "  var y: int\n")
+    (write _test-input-stream "  copy-to y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-to-from-non-scalar-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-to: 'x' is too large to copy"  "F - test-copy-to-from-non-scalar-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-to-from-non-scalar-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: byte <- copy-byte\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte' expects an inout"  "F - test-copy-byte-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-with-multiple-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: byte <- copy-byte 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-with-multiple-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte' must have just one inout"  "F - test-copy-byte-with-multiple-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-with-multiple-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-with-no-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  copy-byte 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-with-no-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte' expects an output"  "F - test-copy-byte-with-no-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-with-no-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-with-multiple-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: byte <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: byte <- copy 0\n")
+    (write _test-input-stream "  x, y <- copy-byte 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-with-multiple-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte' must have just one output"  "F - test-copy-byte-with-multiple-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-with-multiple-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: byte <- copy-byte *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # not bothering checking output
+    (check-next-stream-line-equal _test-error-stream  ""  "F - test-copy-byte-deref-address: error message")
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-with-invalid-output-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  var y/eax: int <- copy-byte *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-with-invalid-output-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte' must write to output of type byte"  "F - test-copy-byte-with-invalid-output-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-with-invalid-output-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-from-non-scalar-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (handle int)\n")
+    (write _test-input-stream "  var y/eax: byte <- copy-byte x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-from-non-scalar-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-byte: 'x' is too large to fit in a register"  "F - test-copy-byte-from-non-scalar-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-from-non-scalar-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-to-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  copy-byte-to\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-to-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte-to' must have two inouts"  "F - test-copy-byte-to-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-to-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-to-with-no-source:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  copy-byte-to *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-to-with-no-source: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte-to' must have two inouts"  "F - test-copy-byte-to-with-no-source: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-to-with-no-source: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-to-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  copy-byte-to *x, 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-to-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte-to' must have two inouts"  "F - test-copy-byte-to-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-to-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-to-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: byte <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  x <- copy-byte-to *y, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-to-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-byte-to' must not have any outputs"  "F - test-copy-byte-to-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-to-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-to-with-invalid-output-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: byte <- copy 0\n")
+    (write _test-input-stream "  var y: int\n")
+    (write _test-input-stream "  copy-byte-to y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-to-with-invalid-output-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-byte-to: 'y' must be a byte"  "F - test-copy-byte-to-with-invalid-output-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-to-with-invalid-output-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-to-with-literal-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  copy-byte-to *x, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-to-with-literal-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-byte-to: source (second inout) must be in a register"  "F - test-copy-byte-to-with-literal-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-to-with-literal-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-to-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: byte <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  copy-byte-to *y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-byte-to-from-non-scalar-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (handle int)\n")
+    (write _test-input-stream "  var y/eax: (addr byte) <- copy 0\n")
+    (write _test-input-stream "  copy-byte-to *y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-byte-to-from-non-scalar-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-byte-to: 'x' is too large to copy"  "F - test-copy-byte-to-from-non-scalar-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-byte-to-from-non-scalar-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: boolean\n")
+    (write _test-input-stream "  compare\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compare-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'compare' must have two inouts"  "F - test-compare-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compare-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-with-just-one-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: boolean\n")
+    (write _test-input-stream "  compare x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compare-with-just-one-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'compare' must have two inouts"  "F - test-compare-with-just-one-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compare-with-just-one-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: boolean\n")
+    (write _test-input-stream "  compare x, 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compare-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'compare' must have two inouts"  "F - test-compare-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compare-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: boolean <- copy 0\n")
+    (write _test-input-stream "  x <- compare y, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compare-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'compare' must not have any outputs"  "F - test-compare-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compare-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-invalid-value-to-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0\n")
+    (write _test-input-stream "  var y: (addr int)\n")
+    (write _test-input-stream "  compare y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compare-invalid-value-to-address: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compare: 'y' must be a non-addr non-offset scalar"  "F - test-compare-invalid-value-to-address: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compare-invalid-value-to-address: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  compare y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr addr int) <- copy 0\n")
+    (write _test-input-stream "  compare *y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-two-vars-in-memory:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: boolean\n")
+    (write _test-input-stream "  compare x, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compare-two-vars-in-memory: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compare: both inouts are in memory"  "F - test-compare-two-vars-in-memory: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compare-two-vars-in-memory: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-non-scalar:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (handle int)\n")
+    (write _test-input-stream "  var y: int\n")
+    (write _test-input-stream "  compare y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compare-non-scalar: output should be empty")
+#?     (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compare: 'x' is too large to compare"  "F - test-compare-non-scalar: error message")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compare: both inouts are in memory"  "F - test-compare-non-scalar: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compare-non-scalar: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-with-string-literal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr array byte) <- copy 0\n")
+    (write _test-input-stream "  compare x, \"abc\"\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compare-with-string-literal: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compare: string literal \"abc\" is not supported; use the string-equal? function"  "F - test-compare-with-string-literal: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compare-with-string-literal: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-address-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- address\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-address-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'address' expects an inout"  "F - test-address-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-address-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-address-with-multiple-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- address 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-address-with-multiple-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'address' must have just one inout"  "F - test-address-with-multiple-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-address-with-multiple-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-address-with-no-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  address 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-address-with-no-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'address' expects an output"  "F - test-address-with-no-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-address-with-no-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-address-with-multiple-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: boolean <- copy 0\n")
+    (write _test-input-stream "  x, y <- address 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-address-with-multiple-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'address' must have just one output"  "F - test-address-with-multiple-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-address-with-multiple-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+# silly but it works
+test-address-of-deref:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr int) <- address *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-address-to-non-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  x <- address 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-address-to-non-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt address: output 'x' not in a register"  "F - test-address-to-non-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-address-to-non-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-address-with-wrong-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  var y/eax: (addr boolean) <- address x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-address-with-wrong-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt address: output 'y' cannot hold address of 'x'"  "F - test-address-with-wrong-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-address-with-wrong-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-address-with-right-type-for-array:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (array int 3)\n")
+    (write _test-input-stream "  var y/eax: (addr array int) <- address x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-address-with-right-type-for-stream:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (stream int 3)\n")
+    (write _test-input-stream "  var y/eax: (addr stream int) <- address x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-field:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, y\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-field: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: type 't' has no member called 'y'"  "F - test-get-with-wrong-field: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-field: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: var 'a' must have a 'type' definition"  "F - test-get-with-wrong-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-base-type-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr t)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, y\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-base-type-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: var 'a' is an 'addr' type, and so must live in a register"  "F - test-get-with-wrong-base-type-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-base-type-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-base-type-3:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (handle int)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-base-type-3: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: var 'a' must have a 'type' definition"  "F - test-get-with-wrong-base-type-3: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-base-type-3: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-offset-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var b: int\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, b\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-offset-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: type 't' has no member called 'b'"  "F - test-get-with-wrong-offset-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-offset-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-output-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c: (addr int)\n")
+    (write _test-input-stream "  c <- get a, x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-output-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: output 'c' is not in a register"  "F - test-get-with-wrong-output-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-output-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-output-type-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c/ecx: int <- get a, x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-output-type-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: output must be an addr"  "F - test-get-with-wrong-output-type-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-output-type-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-output-type-3:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c/ecx: (array int) <- get a, x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-output-type-3: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: output must be an addr"  "F - test-get-with-wrong-output-type-3: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-output-type-3: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-output-type-4:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c/ecx: (addr boolean) <- get a, x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-wrong-output-type-4: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: wrong output type for member 'x' of type 't'"  "F - test-get-with-wrong-output-type-4: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-wrong-output-type-4: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-wrong-output-type-5:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c/ecx: (addr handle int) <- get a, x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: (handle int)\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-too-few-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-too-few-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: too few inouts (2 required)"  "F - test-get-with-too-few-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-too-few-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- get a, x, 0\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: too many inouts (2 required)"  "F - test-get-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-no-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  get a, x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-no-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: must have an output"  "F - test-get-with-no-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-no-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-get-with-too-many-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: t\n")
+    (write _test-input-stream "  var b: int\n")
+    (write _test-input-stream "  var c/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  c, b <- get a, x\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-get-with-too-many-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt get: too many outputs (1 required)"  "F - test-get-with-too-many-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-get-with-too-many-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-array-of-user-defined-types:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "type t {\n")  # each t is 8 bytes, which is a power of 2
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array t) <- copy 0\n")
+    (write _test-input-stream "  var idx/ecx: int <- copy 3\n")
+    (write _test-input-stream "  var x/eax: (addr t) <- index arr, idx\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                                        "F - test-convert-array-of-user-defined-types/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                              "F - test-convert-array-of-user-defined-types/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                               "F - test-convert-array-of-user-defined-types/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"                      "F - test-convert-array-of-user-defined-types/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                                         "F - test-convert-array-of-user-defined-types/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"                       "F - test-convert-array-of-user-defined-types/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"                    "F - test-convert-array-of-user-defined-types/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"                  "F - test-convert-array-of-user-defined-types/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"                    "F - test-convert-array-of-user-defined-types/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 3/imm32"                  "F - test-convert-array-of-user-defined-types/9")
+    (check-next-stream-line-equal _test-output-stream "    (__check-mu-array-bounds %ecx 0x00000008 *eax \"foo\" \"arr\")"  "F - test-convert-array-of-user-defined-types/10")
+    (check-next-stream-line-equal _test-output-stream "    8d/copy-address *(eax + ecx<<0x00000003 + 4) 0x00000000/r32"  "F - test-convert-array-of-user-defined-types/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"                     "F - test-convert-array-of-user-defined-types/12")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"                     "F - test-convert-array-of-user-defined-types/13")
+    (check-next-stream-line-equal _test-output-stream "  }"                                         "F - test-convert-array-of-user-defined-types/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"                      "F - test-convert-array-of-user-defined-types/15")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                              "F - test-convert-array-of-user-defined-types/16")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"                      "F - test-convert-array-of-user-defined-types/17")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                             "F - test-convert-array-of-user-defined-types/18")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                                 "F - test-convert-array-of-user-defined-types/19")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-length-of-array-of-user-defined-types-to-eax:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "type t {\n")  # size = 12, which is not a power of 2
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "  z: int\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array t) <- copy 0\n")
+    (write _test-input-stream "  var x/eax: int <- length arr\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-length-of-array-of-user-defined-types-to-eax/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-length-of-array-of-user-defined-types-to-eax/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-length-of-array-of-user-defined-types-to-eax/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-length-of-array-of-user-defined-types-to-eax/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-length-of-array-of-user-defined-types-to-eax/5")
+    # var arr
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/7")
+    # length instruction
+    (check-next-stream-line-equal _test-output-stream "    51/push-ecx"         "F - test-convert-length-of-array-of-user-defined-types-to-eax/8")
+    (check-next-stream-line-equal _test-output-stream "    52/push-edx"         "F - test-convert-length-of-array-of-user-defined-types-to-eax/9")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *eax 0x00000000/r32"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/10")
+    (check-next-stream-line-equal _test-output-stream "    31/xor %edx 2/r32/edx"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/11")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0x0000000c/imm32"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/12")
+    (check-next-stream-line-equal _test-output-stream "    f7 7/subop/idiv-eax-edx-by %ecx"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/13")
+    (check-next-stream-line-equal _test-output-stream "    5a/pop-to-edx"       "F - test-convert-length-of-array-of-user-defined-types-to-eax/14")
+    (check-next-stream-line-equal _test-output-stream "    59/pop-to-ecx"       "F - test-convert-length-of-array-of-user-defined-types-to-eax/15")
+    # reclaim arr
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/16")
+    #
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-length-of-array-of-user-defined-types-to-eax/17")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/18")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-length-of-array-of-user-defined-types-to-eax/19")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-length-of-array-of-user-defined-types-to-eax/20")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-length-of-array-of-user-defined-types-to-eax/21")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-length-of-array-of-user-defined-types-to-eax/22")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-length-of-array-of-user-defined-types-to-ecx:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "type t {\n")  # size = 12, which is not a power of 2
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "  z: int\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array t) <- copy 0\n")
+    (write _test-input-stream "  var x/ecx: int <- length arr\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-length-of-array-of-user-defined-types-to-ecx/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-length-of-array-of-user-defined-types-to-ecx/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-length-of-array-of-user-defined-types-to-ecx/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-length-of-array-of-user-defined-types-to-ecx/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-length-of-array-of-user-defined-types-to-ecx/5")
+    # var a
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/7")
+    # var x
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/8")
+    # length instruction
+    (check-next-stream-line-equal _test-output-stream "    50/push-eax"         "F - test-convert-length-of-array-of-user-defined-types-to-ecx/9")
+    (check-next-stream-line-equal _test-output-stream "    52/push-edx"         "F - test-convert-length-of-array-of-user-defined-types-to-ecx/10")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *eax 0x00000000/r32"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/11")
+    (check-next-stream-line-equal _test-output-stream "    31/xor %edx 2/r32/edx"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/12")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0x0000000c/imm32"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/13")
+    (check-next-stream-line-equal _test-output-stream "    f7 7/subop/idiv-eax-edx-by %ecx"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/14")
+    (check-next-stream-line-equal _test-output-stream "    89/<- %ecx 0/r32/eax"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/15")
+    (check-next-stream-line-equal _test-output-stream "    5a/pop-to-edx"       "F - test-convert-length-of-array-of-user-defined-types-to-ecx/16")
+    (check-next-stream-line-equal _test-output-stream "    58/pop-to-eax"       "F - test-convert-length-of-array-of-user-defined-types-to-ecx/17")
+    # reclaim x
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/18")
+    # reclaim a
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/19")
+    #
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-length-of-array-of-user-defined-types-to-ecx/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-length-of-array-of-user-defined-types-to-ecx/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-length-of-array-of-user-defined-types-to-ecx/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-length-of-array-of-user-defined-types-to-ecx/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-length-of-array-of-user-defined-types-to-ecx/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-length-of-array-of-user-defined-types-to-edx:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "type t {\n")  # size = 12, which is not a power of 2
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "  z: int\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array t) <- copy 0\n")
+    (write _test-input-stream "  var x/edx: int <- length arr\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-length-of-array-of-user-defined-types-to-edx/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-length-of-array-of-user-defined-types-to-edx/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-length-of-array-of-user-defined-types-to-edx/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-length-of-array-of-user-defined-types-to-edx/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-length-of-array-of-user-defined-types-to-edx/5")
+    # var a
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/7")
+    # var x
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %edx"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/8")
+    # length instruction
+    (check-next-stream-line-equal _test-output-stream "    50/push-eax"         "F - test-convert-length-of-array-of-user-defined-types-to-edx/9")
+    (check-next-stream-line-equal _test-output-stream "    51/push-ecx"         "F - test-convert-length-of-array-of-user-defined-types-to-edx/10")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *eax 0x00000000/r32"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/11")
+    (check-next-stream-line-equal _test-output-stream "    31/xor %edx 2/r32/edx"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/12")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0x0000000c/imm32"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/13")
+    (check-next-stream-line-equal _test-output-stream "    f7 7/subop/idiv-eax-edx-by %ecx"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/14")
+    (check-next-stream-line-equal _test-output-stream "    89/<- %edx 0/r32/eax"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/15")
+    (check-next-stream-line-equal _test-output-stream "    59/pop-to-ecx"       "F - test-convert-length-of-array-of-user-defined-types-to-edx/16")
+    (check-next-stream-line-equal _test-output-stream "    58/pop-to-eax"       "F - test-convert-length-of-array-of-user-defined-types-to-edx/17")
+    # reclaim x
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %edx"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/18")
+    # reclaim a
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/19")
+    #
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-length-of-array-of-user-defined-types-to-edx/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-length-of-array-of-user-defined-types-to-edx/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-length-of-array-of-user-defined-types-to-edx/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-length-of-array-of-user-defined-types-to-edx/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-length-of-array-of-user-defined-types-to-edx/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-length-of-array-of-user-defined-types:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "type t {\n")  # each t is 8 bytes, which is a power of 2
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "  z: int\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var arr/eax: (addr array t) <- copy 0\n")
+    (write _test-input-stream "  var x/ebx: int <- length arr\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-length-of-array-of-user-defined-types/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-length-of-array-of-user-defined-types/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-length-of-array-of-user-defined-types/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-length-of-array-of-user-defined-types/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-length-of-array-of-user-defined-types/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-length-of-array-of-user-defined-types/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-length-of-array-of-user-defined-types/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 0/imm32"  "F - test-convert-length-of-array-of-user-defined-types/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ebx"  "F - test-convert-length-of-array-of-user-defined-types/8")
+    (check-next-stream-line-equal _test-output-stream "    50/push-eax"         "F - test-convert-length-of-array-of-user-defined-types/9")
+    (check-next-stream-line-equal _test-output-stream "    51/push-ecx"         "F - test-convert-length-of-array-of-user-defined-types/10")
+    (check-next-stream-line-equal _test-output-stream "    52/push-edx"         "F - test-convert-length-of-array-of-user-defined-types/11")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> *eax 0x00000000/r32"  "F - test-convert-length-of-array-of-user-defined-types/12")
+    (check-next-stream-line-equal _test-output-stream "    31/xor %edx 2/r32/edx"  "F - test-convert-length-of-array-of-user-defined-types/13")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0x0000000c/imm32"  "F - test-convert-length-of-array-of-user-defined-types/14")
+    (check-next-stream-line-equal _test-output-stream "    f7 7/subop/idiv-eax-edx-by %ecx"  "F - test-convert-length-of-array-of-user-defined-types/15")
+    (check-next-stream-line-equal _test-output-stream "    89/<- %ebx 0/r32/eax"  "F - test-convert-length-of-array-of-user-defined-types/16")
+    (check-next-stream-line-equal _test-output-stream "    5a/pop-to-edx"       "F - test-convert-length-of-array-of-user-defined-types/17")
+    (check-next-stream-line-equal _test-output-stream "    59/pop-to-ecx"       "F - test-convert-length-of-array-of-user-defined-types/18")
+    (check-next-stream-line-equal _test-output-stream "    58/pop-to-eax"       "F - test-convert-length-of-array-of-user-defined-types/19")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ebx"  "F - test-convert-length-of-array-of-user-defined-types/20")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"  "F - test-convert-length-of-array-of-user-defined-types/21")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-length-of-array-of-user-defined-types/22")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-length-of-array-of-user-defined-types/23")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-length-of-array-of-user-defined-types/24")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-length-of-array-of-user-defined-types/25")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-length-of-array-of-user-defined-types/26")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-length-of-array-of-user-defined-types/27")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-non-array-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-non-array-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: var 'a' is not an array"  "F - test-index-with-non-array-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-non-array-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-non-array-compound-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (handle int)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-non-array-compound-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: var 'a' is not an array"  "F - test-index-with-non-array-compound-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-non-array-compound-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-non-array-compound-base-type-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr int)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-non-array-compound-base-type-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: var 'a' is not an array"  "F - test-index-with-non-array-compound-base-type-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-non-array-compound-base-type-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-array-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: array\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-array-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: array 'a' must specify the type of its elements"  "F - test-index-with-array-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-array-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-addr-base-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr array int)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-addr-base-on-stack: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: var 'a' is an addr to an array, and so must live in a register"  "F - test-index-with-addr-base-on-stack: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-addr-base-on-stack: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-wrong-index-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: (addr array int) <- copy 0\n")
+    (write _test-input-stream "  var b: boolean\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-wrong-index-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: second argument 'b' must be an int or offset"  "F - test-index-with-wrong-index-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-wrong-index-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-offset-atom-index-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: (addr array int) <- copy 0\n")
+    (write _test-input-stream "  var b: offset\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-offset-atom-index-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: offset 'b' must specify the type of array elements"  "F - test-index-with-offset-atom-index-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-offset-atom-index-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-offset-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: (addr array int) <- copy 0\n")
+    (write _test-input-stream "  var b: int\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-offset-on-stack: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: second argument 'b' must be in a register"  "F - test-index-with-offset-on-stack: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-offset-on-stack: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-needs-offset-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: (addr array t) <- copy 0\n")
+    (write _test-input-stream "  var b/ebx: int <- copy 0\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, b\n")
+    (write _test-input-stream "}\n")
+    (write _test-input-stream "type t {\n")  # size 12 is not a power of two
+    (write _test-input-stream "  x: int\n")
+    (write _test-input-stream "  y: int\n")
+    (write _test-input-stream "  z: int\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-needs-offset-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: cannot take an int for array 'a'; create an offset instead. See mu.md for details."  "F - test-index-needs-offset-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-needs-offset-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-output-not-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: int <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-output-not-address: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: output 'o' must be an addr"  "F - test-index-with-output-not-address: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-output-not-address: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-output-not-address-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: (int) <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-output-not-address-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: output 'o' must be an addr"  "F - test-index-with-output-not-address-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-output-not-address-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-wrong-output-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: (addr int) <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-wrong-output-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: output 'o' does not have the right type"  "F - test-index-with-wrong-output-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-wrong-output-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-wrong-output-compound-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array handle boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: (addr handle int) <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-wrong-output-compound-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: output 'o' does not have the right type"  "F - test-index-with-wrong-output-compound-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-wrong-output-compound-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-no-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-no-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: too few inouts (2 required)"  "F - test-index-with-no-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-no-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-too-few-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-too-few-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: too few inouts (2 required)"  "F - test-index-with-too-few-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-too-few-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- index a, 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: too many inouts (2 required)"  "F - test-index-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-no-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-no-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: must have an output"  "F - test-index-with-no-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-no-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-index-with-too-many-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var b/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  b, c <- index a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-index-with-too-many-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt index: too many outputs (1 required)"  "F - test-index-with-too-many-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-index-with-too-many-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-non-array-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  var c/ecx: (offset int) <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-non-array-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: var 'a' is not an array"  "F - test-compute-offset-with-non-array-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-non-array-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-non-array-compound-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (handle int)\n")
+    (write _test-input-stream "  var c/ecx: (offset int) <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-non-array-compound-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: var 'a' is not an array"  "F - test-compute-offset-with-non-array-compound-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-non-array-compound-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-non-array-compound-base-type-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr int)\n")
+    (write _test-input-stream "  var c/ecx: (offset int) <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-non-array-compound-base-type-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: var 'a' is not an array"  "F - test-compute-offset-with-non-array-compound-base-type-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-non-array-compound-base-type-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-array-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: array\n")
+    (write _test-input-stream "  var c/ecx: (offset int) <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-array-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: array 'a' must specify the type of its elements"  "F - test-compute-offset-with-array-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-array-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-wrong-index-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: (addr array int) <- copy 0\n")
+    (write _test-input-stream "  var b: boolean\n")
+    (write _test-input-stream "  var c/ecx: (offset int) <- compute-offset a, b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-wrong-index-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: second argument 'b' must be an int"  "F - test-compute-offset-with-wrong-index-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-wrong-index-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-output-not-offset:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: int <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-output-not-offset: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: output 'o' must be an offset"  "F - test-compute-offset-with-output-not-offset: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-output-not-offset: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-output-not-address-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: (int) <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-output-not-address-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: output 'o' must be an offset"  "F - test-compute-offset-with-output-not-address-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-output-not-address-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-wrong-output-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: (offset int) <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-wrong-output-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: output 'o' does not have the right type"  "F - test-compute-offset-with-wrong-output-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-wrong-output-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-wrong-output-compound-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array handle boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: (offset handle int) <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-wrong-output-compound-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: output 'o' does not have the right type"  "F - test-compute-offset-with-wrong-output-compound-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-wrong-output-compound-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-no-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var c/ecx: (offset int) <- compute-offset\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-no-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: too few inouts (2 required)"  "F - test-compute-offset-with-no-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-no-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-too-few-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var c/ecx: (offset int) <- compute-offset a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-too-few-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: too few inouts (2 required)"  "F - test-compute-offset-with-too-few-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-too-few-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var c/ecx: (offset int) <- compute-offset a, 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: too many inouts (2 required)"  "F - test-compute-offset-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-no-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-no-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: must have an output"  "F - test-compute-offset-with-no-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-no-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-offset-with-too-many-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var b/eax: (offset int) <- compute-offset a, 0\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  b, c <- compute-offset a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-compute-offset-with-too-many-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt compute-offset: too many outputs (1 required)"  "F - test-compute-offset-with-too-many-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-compute-offset-with-too-many-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-read-from-stream:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var s/esi: (addr stream int) <- copy 0\n")
+    (write _test-input-stream "  var o/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  read-from-stream s, o\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                            "F - test-convert-read-from-stream/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                  "F - test-convert-read-from-stream/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                   "F - test-convert-read-from-stream/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"          "F - test-convert-read-from-stream/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                             "F - test-convert-read-from-stream/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"           "F - test-convert-read-from-stream/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %esi"        "F - test-convert-read-from-stream/6")
+    (check-next-stream-line-equal _test-output-stream "    be/copy-to-esi 0/imm32"      "F - test-convert-read-from-stream/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"        "F - test-convert-read-from-stream/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"      "F - test-convert-read-from-stream/9")
+    (check-next-stream-line-equal _test-output-stream "    (read-from-stream %esi %ecx 0x00000004)"  "F - test-convert-read-from-stream/10")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"         "F - test-convert-read-from-stream/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %esi"         "F - test-convert-read-from-stream/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                             "F - test-convert-read-from-stream/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"          "F - test-convert-read-from-stream/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                  "F - test-convert-read-from-stream/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"          "F - test-convert-read-from-stream/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                 "F - test-convert-read-from-stream/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                     "F - test-convert-read-from-stream/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-read-from-stream-with-correct-payload-size:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var s/esi: (addr stream handle int) <- copy 0\n")
+    (write _test-input-stream "  var o/ecx: (addr handle int) <- copy 0\n")
+    (write _test-input-stream "  read-from-stream s, o\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                            "F - test-convert-read-from-stream-with-correct-payload-size/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                  "F - test-convert-read-from-stream-with-correct-payload-size/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                   "F - test-convert-read-from-stream-with-correct-payload-size/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"          "F - test-convert-read-from-stream-with-correct-payload-size/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                             "F - test-convert-read-from-stream-with-correct-payload-size/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"           "F - test-convert-read-from-stream-with-correct-payload-size/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %esi"        "F - test-convert-read-from-stream-with-correct-payload-size/6")
+    (check-next-stream-line-equal _test-output-stream "    be/copy-to-esi 0/imm32"      "F - test-convert-read-from-stream-with-correct-payload-size/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"        "F - test-convert-read-from-stream-with-correct-payload-size/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"      "F - test-convert-read-from-stream-with-correct-payload-size/9")
+    (check-next-stream-line-equal _test-output-stream "    (read-from-stream %esi %ecx 0x00000008)"  "F - test-convert-read-from-stream-with-correct-payload-size/10")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"         "F - test-convert-read-from-stream-with-correct-payload-size/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %esi"         "F - test-convert-read-from-stream-with-correct-payload-size/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                             "F - test-convert-read-from-stream-with-correct-payload-size/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"          "F - test-convert-read-from-stream-with-correct-payload-size/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                  "F - test-convert-read-from-stream-with-correct-payload-size/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"          "F - test-convert-read-from-stream-with-correct-payload-size/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                 "F - test-convert-read-from-stream-with-correct-payload-size/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                     "F - test-convert-read-from-stream-with-correct-payload-size/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-non-stream-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  read-from-stream a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-non-stream-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: var 'a' must be an addr to a stream"  "F - test-read-from-stream-with-non-stream-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-non-stream-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-non-stream-compound-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (handle int)\n")
+    (write _test-input-stream "  read-from-stream a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-non-stream-compound-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: var 'a' must be an addr to a stream"  "F - test-read-from-stream-with-non-stream-compound-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-non-stream-compound-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-non-stream-compound-base-type-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr int)\n")
+    (write _test-input-stream "  read-from-stream a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-non-stream-compound-base-type-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: var 'a' must be an addr to a stream"  "F - test-read-from-stream-with-non-stream-compound-base-type-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-non-stream-compound-base-type-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-stream-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: stream\n")
+    (write _test-input-stream "  read-from-stream a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-stream-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: var 'a' must be an addr to a stream"  "F - test-read-from-stream-with-stream-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-stream-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-wrong-index-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: (addr stream int) <- copy 0\n")
+    (write _test-input-stream "  var b: boolean\n")
+    (write _test-input-stream "  read-from-stream a, b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-wrong-index-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: target 'b' must be an addr"  "F - test-read-from-stream-with-wrong-index-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-wrong-index-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-no-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  read-from-stream\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-no-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: too few inouts (2 required)"  "F - test-read-from-stream-with-no-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-no-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-too-few-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr stream int)\n")
+    (write _test-input-stream "  read-from-stream a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-too-few-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: too few inouts (2 required)"  "F - test-read-from-stream-with-too-few-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-too-few-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr stream int)\n")
+    (write _test-input-stream "  var b: (addr int)\n")
+    (write _test-input-stream "  read-from-stream a, b, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: too many inouts (2 required)"  "F - test-read-from-stream-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-read-from-stream-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr stream int)\n")
+    (write _test-input-stream "  var b/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  b <- read-from-stream a, b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-read-from-stream-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt read-from-stream: unexpected output"  "F - test-read-from-stream-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-read-from-stream-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-write-to-stream:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var s/esi: (addr stream int) <- copy 0\n")
+    (write _test-input-stream "  var o/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  write-to-stream s, o\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                            "F - test-convert-write-to-stream/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                  "F - test-convert-write-to-stream/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                   "F - test-convert-write-to-stream/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"          "F - test-convert-write-to-stream/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                             "F - test-convert-write-to-stream/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"           "F - test-convert-write-to-stream/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %esi"        "F - test-convert-write-to-stream/6")
+    (check-next-stream-line-equal _test-output-stream "    be/copy-to-esi 0/imm32"      "F - test-convert-write-to-stream/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"        "F - test-convert-write-to-stream/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"      "F - test-convert-write-to-stream/9")
+    (check-next-stream-line-equal _test-output-stream "    (write-to-stream %esi %ecx 0x00000004)"  "F - test-convert-write-to-stream/10")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"         "F - test-convert-write-to-stream/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %esi"         "F - test-convert-write-to-stream/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                             "F - test-convert-write-to-stream/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"          "F - test-convert-write-to-stream/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                  "F - test-convert-write-to-stream/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"          "F - test-convert-write-to-stream/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                 "F - test-convert-write-to-stream/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                     "F - test-convert-write-to-stream/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-write-to-stream-with-correct-payload-size:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var s/esi: (addr stream handle int) <- copy 0\n")
+    (write _test-input-stream "  var o/ecx: (addr handle int) <- copy 0\n")
+    (write _test-input-stream "  write-to-stream s, o\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                            "F - test-convert-write-to-stream-with-correct-payload-size/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"                  "F - test-convert-write-to-stream-with-correct-payload-size/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"                   "F - test-convert-write-to-stream-with-correct-payload-size/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"          "F - test-convert-write-to-stream-with-correct-payload-size/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                             "F - test-convert-write-to-stream-with-correct-payload-size/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"           "F - test-convert-write-to-stream-with-correct-payload-size/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %esi"        "F - test-convert-write-to-stream-with-correct-payload-size/6")
+    (check-next-stream-line-equal _test-output-stream "    be/copy-to-esi 0/imm32"      "F - test-convert-write-to-stream-with-correct-payload-size/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"        "F - test-convert-write-to-stream-with-correct-payload-size/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 0/imm32"      "F - test-convert-write-to-stream-with-correct-payload-size/9")
+    (check-next-stream-line-equal _test-output-stream "    (write-to-stream %esi %ecx 0x00000008)"  "F - test-convert-write-to-stream-with-correct-payload-size/10")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"         "F - test-convert-write-to-stream-with-correct-payload-size/11")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %esi"         "F - test-convert-write-to-stream-with-correct-payload-size/12")
+    (check-next-stream-line-equal _test-output-stream "  }"                             "F - test-convert-write-to-stream-with-correct-payload-size/13")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"          "F - test-convert-write-to-stream-with-correct-payload-size/14")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"                  "F - test-convert-write-to-stream-with-correct-payload-size/15")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"          "F - test-convert-write-to-stream-with-correct-payload-size/16")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"                 "F - test-convert-write-to-stream-with-correct-payload-size/17")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"                     "F - test-convert-write-to-stream-with-correct-payload-size/18")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-non-stream-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  write-to-stream a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-non-stream-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: var 'a' must be an addr to a stream"  "F - test-write-to-stream-with-non-stream-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-non-stream-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-non-stream-compound-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (handle int)\n")
+    (write _test-input-stream "  write-to-stream a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-non-stream-compound-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: var 'a' must be an addr to a stream"  "F - test-write-to-stream-with-non-stream-compound-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-non-stream-compound-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-non-stream-compound-base-type-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr int)\n")
+    (write _test-input-stream "  write-to-stream a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-non-stream-compound-base-type-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: var 'a' must be an addr to a stream"  "F - test-write-to-stream-with-non-stream-compound-base-type-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-non-stream-compound-base-type-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-stream-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: stream\n")
+    (write _test-input-stream "  write-to-stream a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-stream-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: var 'a' must be an addr to a stream"  "F - test-write-to-stream-with-stream-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-stream-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-wrong-index-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/eax: (addr stream int) <- copy 0\n")
+    (write _test-input-stream "  var b: boolean\n")
+    (write _test-input-stream "  write-to-stream a, b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-wrong-index-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: target 'b' must be an addr"  "F - test-write-to-stream-with-wrong-index-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-wrong-index-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-no-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  write-to-stream\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-no-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: too few inouts (2 required)"  "F - test-write-to-stream-with-no-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-no-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-too-few-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr stream int)\n")
+    (write _test-input-stream "  write-to-stream a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-too-few-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: too few inouts (2 required)"  "F - test-write-to-stream-with-too-few-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-too-few-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr stream int)\n")
+    (write _test-input-stream "  var b: (addr int)\n")
+    (write _test-input-stream "  write-to-stream a, b, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: too many inouts (2 required)"  "F - test-write-to-stream-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-write-to-stream-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr stream int)\n")
+    (write _test-input-stream "  var b/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  b <- write-to-stream a, b\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-write-to-stream-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt write-to-stream: unexpected output"  "F - test-write-to-stream-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-write-to-stream-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-non-array-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: int\n")
+    (write _test-input-stream "  var c/ecx: int <- length a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-non-array-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: var 'a' is not an array"  "F - test-length-with-non-array-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-non-array-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-non-array-compound-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (handle int)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- length a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-non-array-compound-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: var 'a' is not an array"  "F - test-length-with-non-array-compound-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-non-array-compound-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-non-array-compound-base-type-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr int)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- length a, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-non-array-compound-base-type-2: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: var 'a' is not an array"  "F - test-length-with-non-array-compound-base-type-2: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-non-array-compound-base-type-2: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-array-atom-base-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: array\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- length a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-array-atom-base-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: array 'a' must specify the type of its elements"  "F - test-length-with-array-atom-base-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-array-atom-base-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-addr-base-on-stack:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (addr array int)\n")
+    (write _test-input-stream "  var c/ecx: (addr int) <- length a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-addr-base-on-stack: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: var 'a' is an addr to an array, and so must live in a register"  "F - test-length-with-addr-base-on-stack: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-addr-base-on-stack: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-wrong-output-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: (addr int) <- length a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-wrong-output-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: output 'o' does not have the right type"  "F - test-length-with-wrong-output-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-wrong-output-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-wrong-output-compound-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a/ebx: (addr array handle boolean) <- copy 0\n")
+    (write _test-input-stream "  var o/edi: (addr handle int) <- length a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-wrong-output-compound-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: output 'o' does not have the right type"  "F - test-length-with-wrong-output-compound-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-wrong-output-compound-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-no-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var c/ecx: int <- length\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-no-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: too few inouts (1 required)"  "F - test-length-with-no-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-no-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var c/ecx: int <- length a, 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: too many inouts (1 required)"  "F - test-length-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-no-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  length a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-no-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: must have an output"  "F - test-length-with-no-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-no-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-length-with-too-many-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var a: (array int 3)\n")
+    (write _test-input-stream "  var b/eax: int <- copy 0\n")
+    (write _test-input-stream "  var c/ecx: int <- copy 0\n")
+    (write _test-input-stream "  b, c <- length a\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-length-with-too-many-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt length: too many outputs (1 required)"  "F - test-length-with-too-many-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-length-with-too-many-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-return-register-and-local:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  var y/eax: int <- copy 3\n")
+    (write _test-input-stream "  var z/ecx: int <- copy 4\n")
+    (write _test-input-stream "  return y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-return-register-and-local/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-return-register-and-local/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-return-register-and-local/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-return-register-and-local/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-return-register-and-local/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-return-register-and-local/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-with-return-register-and-local/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 3/imm32"  "F - test-convert-function-with-return-register-and-local/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-return-register-and-local/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 4/imm32"  "F - test-convert-function-with-return-register-and-local/9")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %eax 0x00000000/r32" "F - test-convert-function-with-return-register-and-local/10")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"         "F - test-convert-function-with-return-register-and-local/11")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-function-with-return-register-and-local/12")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return-register-and-local/13")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-return-register-and-local/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-return-register-and-local/15")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-return-register-and-local/16")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-return-register-and-local/17")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-return-register-and-local/18")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-return-register-and-local/19")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-return-register-and-local-2:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  var y/eax: int <- copy 3\n")
+    (write _test-input-stream "  var z/ecx: int <- copy 4\n")
+    (write _test-input-stream "  return z\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-return-register-and-local-2/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-return-register-and-local-2/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-return-register-and-local-2/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-return-register-and-local-2/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-return-register-and-local-2/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-return-register-and-local-2/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-with-return-register-and-local-2/6")
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 3/imm32"  "F - test-convert-function-with-return-register-and-local-2/7")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %ecx"  "F - test-convert-function-with-return-register-and-local-2/8")
+    (check-next-stream-line-equal _test-output-stream "    b9/copy-to-ecx 4/imm32"  "F - test-convert-function-with-return-register-and-local-2/9")
+    (check-next-stream-line-equal _test-output-stream "    8b/-> %ecx 0x00000000/r32" "F - test-convert-function-with-return-register-and-local-2/10")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %ecx"         "F - test-convert-function-with-return-register-and-local-2/11")
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-function-with-return-register-and-local-2/12")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return-register-and-local-2/13")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-return-register-and-local-2/14")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-return-register-and-local-2/15")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-return-register-and-local-2/16")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-return-register-and-local-2/17")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-return-register-and-local-2/18")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-return-register-and-local-2/19")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-return-float-register-and-local:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/xmm1: float {\n")
+    (write _test-input-stream "  var y/eax: int <- copy 3\n")
+    (write _test-input-stream "  var g/xmm0: float <- convert y\n")
+    (write _test-input-stream "  var h/xmm1: float <- convert y\n")
+    (write _test-input-stream "  return g\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-return-float-register-and-local/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-return-float-register-and-local/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-return-float-register-and-local/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-return-float-register-and-local/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-return-float-register-and-local/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-return-float-register-and-local/5")
+    (check-next-stream-line-equal _test-output-stream "    ff 6/subop/push %eax"  "F - test-convert-function-with-return-float-register-and-local/6")  # var y
+    (check-next-stream-line-equal _test-output-stream "    b8/copy-to-eax 3/imm32"  "F - test-convert-function-with-return-float-register-and-local/7")
+    (check-next-stream-line-equal _test-output-stream "    81 5/subop/subtract %esp 4/imm32"  "F - test-convert-function-with-return-float-register-and-local/8")  # var g
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/<- *esp 0/x32"  "F - test-convert-function-with-return-float-register-and-local/9")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 2a/convert-to-float %eax 0x00000000/x32"  "F - test-convert-function-with-return-float-register-and-local/10")
+    (check-next-stream-line-equal _test-output-stream "    81 5/subop/subtract %esp 4/imm32"  "F - test-convert-function-with-return-float-register-and-local/11")  # var h
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 11/<- *esp 1/x32"  "F - test-convert-function-with-return-float-register-and-local/12")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 2a/convert-to-float %eax 0x00000001/x32"  "F - test-convert-function-with-return-float-register-and-local/13")
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/-> %xmm0 0x00000001/x32"  "F - test-convert-function-with-return-float-register-and-local/14")  # return g
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-floating-point-dereferenced/15")  # reclaim h
+    (check-next-stream-line-equal _test-output-stream "    f3 0f 10/-> *esp 0/x32"  "F - test-convert-floating-point-dereferenced/16")  # reclaim g
+    (check-next-stream-line-equal _test-output-stream "    81 0/subop/add %esp 4/imm32"  "F - test-convert-floating-point-dereferenced/17")
+    (check-next-stream-line-equal _test-output-stream "    8f 0/subop/pop %eax"         "F - test-convert-function-with-return-float-register-and-local/18")  # reclaim y
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return-float-register-and-local/19")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-return-float-register-and-local/20")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-return-float-register-and-local/21")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-return-float-register-and-local/22")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-return-float-register-and-local/23")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-return-float-register-and-local/24")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-return-float-register-and-local/25")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-function-with-return-and-local-vars:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo -> _/eax: int {\n")
+    (write _test-input-stream "  {\n")
+    (write _test-input-stream "    var x: int\n")
+    (write _test-input-stream "    {\n")
+    (write _test-input-stream "      var y: int\n")
+    (write _test-input-stream "      return y\n")
+    (write _test-input-stream "      increment x\n")
+    (write _test-input-stream "    }\n")
+    (write _test-input-stream "  }\n")
+    (write _test-input-stream "  return 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "foo:"                    "F - test-convert-function-with-return-and-local-vars/0")
+    (check-next-stream-line-equal _test-output-stream "  # . prologue"          "F - test-convert-function-with-return-and-local-vars/1")
+    (check-next-stream-line-equal _test-output-stream "  55/push-ebp"           "F - test-convert-function-with-return-and-local-vars/2")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %ebp 4/r32/esp"  "F - test-convert-function-with-return-and-local-vars/3")
+    (check-next-stream-line-equal _test-output-stream "  {"                     "F - test-convert-function-with-return-and-local-vars/4")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:loop:"   "F - test-convert-function-with-return-and-local-vars/5")
+    (check-next-stream-line-equal _test-output-stream "    {"                   "F - test-convert-function-with-return-and-local-vars/6")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:loop:"   "F - test-convert-function-with-return-and-local-vars/7")
+    (check-next-stream-line-equal _test-output-stream "      68/push 0/imm32"   "F - test-convert-function-with-return-and-local-vars/8")  # var x
+    (check-next-stream-line-equal _test-output-stream "      {"                 "F - test-convert-function-with-return-and-local-vars/9")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:loop:"   "F - test-convert-function-with-return-and-local-vars/10")
+    (check-next-stream-line-equal _test-output-stream "        68/push 0/imm32" "F - test-convert-function-with-return-and-local-vars/11")  # var y
+    (check-next-stream-line-equal _test-output-stream "        8b/-> *(ebp+0xfffffff8) 0x00000000/r32" "F - test-convert-function-with-return-and-local-vars/12")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-return-and-local-vars/13")
+    (check-next-stream-line-equal _test-output-stream "        81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-return-and-local-vars/14")
+    (check-next-stream-line-equal _test-output-stream "        e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return-and-local-vars/15")
+    (check-next-stream-line-equal _test-output-stream "      }"                 "F - test-convert-function-with-return-and-local-vars/16")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000003:break:"  "F - test-convert-function-with-return-and-local-vars/17")
+    (check-next-stream-line-equal _test-output-stream "      81 0/subop/add %esp 0x00000004/imm32"  "F - test-convert-function-with-return-and-local-vars/18")
+    (check-next-stream-line-equal _test-output-stream "    }"                   "F - test-convert-function-with-return-and-local-vars/19")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000002:break:"  "F - test-convert-function-with-return-and-local-vars/20")
+    (check-next-stream-line-equal _test-output-stream "    c7 0/subop/copy %eax 0/imm32"  "F - test-convert-function-with-return-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "    e9/jump $foo:0x00000001:break/disp32"  "F - test-convert-function-with-return-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "  }"                     "F - test-convert-function-with-return-and-local-vars/21")
+    (check-next-stream-line-equal _test-output-stream "$foo:0x00000001:break:"  "F - test-convert-function-with-return-and-local-vars/22")
+    (check-next-stream-line-equal _test-output-stream "  # . epilogue"          "F - test-convert-function-with-return-and-local-vars/23")
+    (check-next-stream-line-equal _test-output-stream "  89/<- %esp 5/r32/ebp"  "F - test-convert-function-with-return-and-local-vars/24")
+    (check-next-stream-line-equal _test-output-stream "  5d/pop-to-ebp"         "F - test-convert-function-with-return-and-local-vars/25")
+    (check-next-stream-line-equal _test-output-stream "  c3/return"             "F - test-convert-function-with-return-and-local-vars/26")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-object-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  copy-object\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-object-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-object' must have two inouts"  "F - test-copy-object-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-object-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-object-with-no-source:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  copy-object x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-object-with-no-source: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-object' must have two inouts"  "F - test-copy-object-with-no-source: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-object-with-no-source: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-object-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr boolean)\n")
+    (write _test-input-stream "  copy-object x, x, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-object-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-object' must have two inouts"  "F - test-copy-object-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-object-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-object-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr boolean) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr boolean) <- copy 0\n")
+    (write _test-input-stream "  x <- copy-object x, y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-object-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'copy-object' must not have any outputs"  "F - test-copy-object-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-object-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-object-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr addr int) <- copy 0\n")
+    (write _test-input-stream "  copy-object *y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-object-non-addr:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  var y: int\n")
+    (write _test-input-stream "  copy-object y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-object-non-addr: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-object: two inouts with identical addr types expected"  "F - test-copy-object-non-addr: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-object-non-addr: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-copy-object-non-equal:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr int)\n")
+    (write _test-input-stream "  var y: (addr boolean)\n")
+    (write _test-input-stream "  copy-object y, x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-copy-object-non-equal: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt copy-object: two inouts with identical addr types expected"  "F - test-copy-object-non-equal: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-copy-object-non-equal: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-allocate-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  allocate\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-allocate-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'allocate' must have a single inout"  "F - test-allocate-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-allocate-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-allocate-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr handle int)\n")
+    (write _test-input-stream "  allocate x, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-allocate-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'allocate' must have a single inout"  "F - test-allocate-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-allocate-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-allocate-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr handle int) <- copy 0\n")
+    (write _test-input-stream "  x <- allocate y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-allocate-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'allocate' must not have any outputs"  "F - test-allocate-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-allocate-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-allocate-non-addr:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y: (handle int)\n")
+    (write _test-input-stream "  allocate y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-allocate-non-addr: output must be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt allocate: inout 'y' must have type (addr handle ...)"  "F - test-allocate-non-addr: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-allocate-non-addr: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-allocate-non-addr-handle:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  allocate y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-allocate-non-addr-handle: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt allocate: inout 'y' must have type (addr handle ...)"  "F - test-allocate-non-addr-handle: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-allocate-non-addr-handle: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-allocate-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr addr handle int) <- copy 0\n")
+    (write _test-input-stream "  allocate *y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  populate\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'populate' must have two inouts"  "F - test-populate-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr handle int)\n")
+    (write _test-input-stream "  populate x, 3, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'populate' must have two inouts"  "F - test-populate-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr handle int) <- copy 0\n")
+    (write _test-input-stream "  x <- populate y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'populate' must not have any outputs"  "F - test-populate-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-non-addr:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y: (handle int)\n")
+    (write _test-input-stream "  populate y, 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-non-addr: output must be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt populate: first inout 'y' must have type (addr handle array ...)"  "F - test-populate-non-addr: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-non-addr: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-non-addr-handle:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  populate y, 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-non-addr-handle: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt populate: first inout 'y' must have type (addr handle array ...)"  "F - test-populate-non-addr-handle: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-non-addr-handle: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-non-addr-handle-array:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr handle int) <- copy 0\n")
+    (write _test-input-stream "  populate y, 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-non-addr-handle-array: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt populate: first inout 'y' must have type (addr handle array ...)"  "F - test-populate-non-addr-handle-array: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-non-addr-handle-array: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr addr handle array int) <- copy 0\n")
+    (write _test-input-stream "  populate *y, 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-stream-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  populate-stream\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-stream-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'populate-stream' must have two inouts"  "F - test-populate-stream-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-stream-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-stream-with-too-many-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: (addr handle int)\n")
+    (write _test-input-stream "  populate-stream x, 3, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-stream-with-too-many-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'populate-stream' must have two inouts"  "F - test-populate-stream-with-too-many-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-stream-with-too-many-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-stream-with-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: boolean <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: (addr handle int) <- copy 0\n")
+    (write _test-input-stream "  x <- populate-stream y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-stream-with-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'populate-stream' must not have any outputs"  "F - test-populate-stream-with-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-stream-with-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-stream-non-addr:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y: (handle int)\n")
+    (write _test-input-stream "  populate-stream y, 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-stream-non-addr: output must be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt populate-stream: first inout 'y' must have type (addr handle stream ...)"  "F - test-populate-stream-non-addr: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-stream-non-addr: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-stream-non-addr-handle:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr int) <- copy 0\n")
+    (write _test-input-stream "  populate-stream y, 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-stream-non-addr-handle: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt populate-stream: first inout 'y' must have type (addr handle stream ...)"  "F - test-populate-stream-non-addr-handle: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-stream-non-addr-handle: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-stream-non-addr-handle-stream:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr handle int) <- copy 0\n")
+    (write _test-input-stream "  populate-stream y, 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-populate-stream-non-addr-handle-stream: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt populate-stream: first inout 'y' must have type (addr handle stream ...)"  "F - test-populate-stream-non-addr-handle-stream: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-populate-stream-non-addr-handle-stream: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-populate-stream-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var y/ecx: (addr addr handle stream int) <- copy 0\n")
+    (write _test-input-stream "  populate-stream *y, 3\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-with-no-inout:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- convert\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-with-no-inout: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'convert' expects an inout"  "F - test-convert-with-no-inout: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-with-no-inout: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-with-multiple-inouts:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- convert 0, 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-with-multiple-inouts: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'convert' must have just one inout"  "F - test-convert-with-multiple-inouts: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-with-multiple-inouts: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-with-no-output:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  convert 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-with-no-output: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'convert' expects an output"  "F - test-convert-with-no-output: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-with-no-output: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-with-multiple-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: int <- copy 0\n")
+    (write _test-input-stream "  var y/ecx: int <- copy 0\n")
+    (write _test-input-stream "  x, y <- convert 0\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-with-multiple-outputs: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt 'convert' must have just one output"  "F - test-convert-with-multiple-outputs: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-with-multiple-outputs: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-deref-address:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x/eax: (addr int) <- copy 0\n")
+    (write _test-input-stream "  var y/xmm4: float <- convert *x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file Stderr 0)
+    (flush _test-output-buffered-file)
+    # no errors
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-to-non-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: float\n")
+    (write _test-input-stream "  var y: int\n")
+    (write _test-input-stream "  x <- convert y\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-to-non-register: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt convert: output 'x' not in a register"  "F - test-convert-to-non-register: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-to-non-register: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-invalid-inout-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: boolean\n")
+    (write _test-input-stream "  var y/xmm1: float <- convert x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-invalid-inout-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt convert: inout 'x' must be an int or float"  "F - test-convert-invalid-inout-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-invalid-inout-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-invalid-output-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: float\n")
+    (write _test-input-stream "  var y/eax: boolean <- convert x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-invalid-output-type: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt convert: output 'y' must be an int or float"  "F - test-convert-invalid-output-type: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-invalid-output-type: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-int-to-int:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: int\n")
+    (write _test-input-stream "  var y/eax: int <- convert x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-int-to-int: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt convert: no need to convert int to int"  "F - test-convert-int-to-int: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-int-to-int: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-float-to-float:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-input-stream)
+    (clear-stream $_test-input-buffered-file->buffer)
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    (clear-stream _test-error-stream)
+    (clear-stream $_test-error-buffered-file->buffer)
+    # var ed/edx: exit-descriptor = tailor-exit-descriptor(16)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    (tailor-exit-descriptor %edx 0x10)
+    #
+    (write _test-input-stream "fn foo {\n")
+    (write _test-input-stream "  var x: float\n")
+    (write _test-input-stream "  var y/xmm6: float <- convert x\n")
+    (write _test-input-stream "}\n")
+    # convert
+    (convert-mu _test-input-buffered-file _test-output-buffered-file _test-error-buffered-file %edx)
+    # registers except esp clobbered at this point
+    # restore ed
+    89/<- %edx 4/r32/esp
+    (flush _test-output-buffered-file)
+    (flush _test-error-buffered-file)
+#?     # dump _test-error-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-error-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-error-stream)
+#?     # }}}
+    # check output
+    (check-stream-equal _test-output-stream  ""  "F - test-convert-float-to-float: output should be empty")
+    (check-next-stream-line-equal _test-error-stream  "fn foo: stmt convert: no need to convert float to float"  "F - test-convert-float-to-float: error message")
+    # check that stop(1) was called
+    (check-ints-equal *(edx+4) 2 "F - test-convert-float-to-float: exit status")
+    # don't restore from ebp
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    5d/pop-to-ebp
+    c3/return
+
+#######################################################
+# Parsing
+#######################################################
+
+== data
+
+# Global state added to each var record when parsing a function
+Next-block-index:  # (addr int)
+    1/imm32
+
+Curr-block-depth:  # (addr int)
+    1/imm32
+
+== code
+
+parse-mu:  # in: (addr buffered-file), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode
+    #   var curr-function: (addr handle function) = Program->functions
+    #   var curr-signature: (addr handle function) = Program->signatures
+    #   var curr-type: (addr handle typeinfo) = Program->types
+    #   var line: (stream byte 512)
+    #   var word-slice: slice
+    #   while true                                  # line loop
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break               # end of file
+    #     word-slice = next-mu-token(line)
+    #     if slice-empty?(word-slice)               # end of line
+    #       continue
+    #     else if slice-starts-with?(word-slice, "#")  # comment
+    #       continue                                # end of line
+    #     else if slice-equal?(word-slice, "fn")
+    #       var new-function: (handle function) = allocate(function)
+    #       var vars: (stack live-var 256)
+    #       populate-mu-function-header(line, new-function, vars)
+    #       populate-mu-function-body(in, new-function, vars)
+    #       assert(vars->top == 0)
+    #       *curr-function = new-function
+    #       curr-function = &new-function->next
+    #     else if slice-equal?(word-slice, "sig")
+    #       var new-function: (handle function) = allocate(function)
+    #       populate-mu-function-signature(line, new-function)
+    #       *curr-signature = new-function
+    #       curr-signature = &new-function->next
+    #     else if slice-equal?(word-slice, "type")
+    #       word-slice = next-mu-token(line)
+    #       type-id = pos-or-insert-slice(Type-id, word-slice)
+    #       var new-type: (handle typeinfo) = find-or-create-typeinfo(type-id)
+    #       assert(next-word(line) == "{")
+    #       populate-mu-type(in, new-type)
+    #     else
+    #       abort()
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var curr-signature: (addr handle function) at *(ebp-4)
+    68/push _Program-signatures/imm32
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var line/ecx: (stream byte 512)
+    81 5/subop/subtract %esp 0x200/imm32
+    68/push 0x200/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %ecx 4/r32/esp
+    # var word-slice/edx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %edx 4/r32/esp
+    # var curr-function/edi: (addr handle function)
+    bf/copy-to-edi _Program-functions/imm32
+    # var vars/ebx: (stack live-var 256)
+    81 5/subop/subtract %esp 0xc00/imm32
+    68/push 0xc00/imm32/size
+    68/push 0/imm32/top
+    89/<- %ebx 4/r32/esp
+    {
+$parse-mu:line-loop:
+      (clear-stream %ecx)
+      (read-line-buffered *(ebp+8) %ecx)
+      # if (line->write == 0) break
+      81 7/subop/compare *ecx 0/imm32
+      0f 84/jump-if-= break/disp32
+#?       # dump line {{{
+#?       (write 2 "parse-mu: ^")
+#?       (write-stream 2 %ecx)
+#?       (write 2 "$\n")
+#?       (rewind-stream %ecx)
+#?       # }}}
+      (next-mu-token %ecx %edx)
+      # if slice-empty?(word-slice) continue
+      (slice-empty? %edx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= loop/disp32
+      # if (*word-slice->start == "#") continue
+      # . eax = *word-slice->start
+      8b/-> *edx 0/r32/eax
+      8a/copy-byte *eax 0/r32/AL
+      81 4/subop/and %eax 0xff/imm32
+      # . if (eax == '#') continue
+      3d/compare-eax-and 0x23/imm32/hash
+      0f 84/jump-if-= loop/disp32
+      # if (slice-equal?(word-slice, "fn")) parse a function
+      {
+$parse-mu:fn:
+        (slice-equal? %edx "fn")  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 84/jump-if-= break/disp32
+        # var new-function/esi: (handle function)
+        68/push 0/imm32
+        68/push 0/imm32
+        89/<- %esi 4/r32/esp
+        # populate-mu-function(line, in, vars, new-function)
+        (allocate Heap *Function-size %esi)
+        # var new-function-addr/eax: (addr function)
+        (lookup *esi *(esi+4))  # => eax
+        # initialize vars
+        (clear-stack %ebx)
+        #
+        (populate-mu-function-header %ecx %eax %ebx *(ebp+0xc) *(ebp+0x10))
+        (populate-mu-function-body *(ebp+8) %eax %ebx *(ebp+0xc) *(ebp+0x10))
+        # *curr-function = new-function
+        8b/-> *esi 0/r32/eax
+        89/<- *edi 0/r32/eax
+        8b/-> *(esi+4) 0/r32/eax
+        89/<- *(edi+4) 0/r32/eax
+        # curr-function = &new-function->next
+        # . var tmp/eax: (addr function) = lookup(new-function)
+        (lookup *esi *(esi+4))  # => eax
+        # . curr-function = &tmp->next
+        8d/copy-address *(eax+0x20) 7/r32/edi  # Function-next
+        # reclaim new-function
+        81 0/subop/add %esp 8/imm32
+        #
+        e9/jump $parse-mu:line-loop/disp32
+      }
+      # if (slice-equal?(word-slice, "sig")) parse a function signature
+      # Function signatures are for providing types to SubX functions.
+      {
+$parse-mu:sig:
+        (slice-equal? %edx "sig")  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 84/jump-if-= break/disp32
+        # edi = curr-function
+        57/push-edi
+        8b/-> *(ebp-4) 7/r32/edi
+        # var new-function/esi: (handle function)
+        68/push 0/imm32
+        68/push 0/imm32
+        89/<- %esi 4/r32/esp
+        # populate-mu-function(line, in, vars, new-function)
+        (allocate Heap *Function-size %esi)
+        # var new-function-addr/eax: (addr function)
+        (lookup *esi *(esi+4))  # => eax
+        #
+        (populate-mu-function-signature %ecx %eax *(ebp+0xc) *(ebp+0x10))
+        # *curr-signature = new-function
+        8b/-> *esi 0/r32/eax
+        89/<- *edi 0/r32/eax
+        8b/-> *(esi+4) 0/r32/eax
+        89/<- *(edi+4) 0/r32/eax
+        # curr-signature = &new-function->next
+        # . var tmp/eax: (addr function) = lookup(new-function)
+        (lookup *esi *(esi+4))  # => eax
+        # . curr-function = &tmp->next
+        8d/copy-address *(eax+0x20) 7/r32/edi  # Function-next
+        # reclaim new-function
+        81 0/subop/add %esp 8/imm32
+        # save curr-function
+        89/<- *(ebp-4) 7/r32/edi
+        # restore edi
+        5f/pop-to-edi
+        #
+        e9/jump $parse-mu:line-loop/disp32
+      }
+      # if (slice-equal?(word-slice, "type")) parse a type (struct/record) definition
+      {
+$parse-mu:type:
+        (slice-equal? %edx "type")  # => eax
+        3d/compare-eax-and 0/imm32
+        0f 84/jump-if-= break/disp32
+        (next-mu-token %ecx %edx)
+        # var type-id/eax: int
+        (pos-or-insert-slice Type-id %edx)  # => eax
+        # spill
+        51/push-ecx
+        # var new-type/ecx: (handle typeinfo)
+        68/push 0/imm32
+        68/push 0/imm32
+        89/<- %ecx 4/r32/esp
+        (find-or-create-typeinfo %eax %ecx)
+        #
+        (lookup *ecx *(ecx+4))  # => eax
+        # TODO: ensure that 'line' has nothing else but '{'
+#? (dump-typeinfos "=== aaa\n")
+        (populate-mu-type *(ebp+8) %eax *(ebp+0xc) *(ebp+0x10))  # => eax
+#? (dump-typeinfos "=== zzz\n")
+        # reclaim new-type
+        81 0/subop/add %esp 8/imm32
+        # restore
+        59/pop-to-ecx
+        e9/jump $parse-mu:line-loop/disp32
+      }
+      # otherwise abort
+      e9/jump $parse-mu:error1/disp32
+    } # end line loop
+$parse-mu:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x20c/imm32  # line
+    81 0/subop/add %esp 0xc08/imm32  # vars
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . reclaim local
+    81 0/subop/add %esp 4/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$parse-mu:error1:
+    # error("unexpected top-level command: " word-slice "\n")
+    (write-buffered *(ebp+0xc) "unexpected top-level command: ")
+    (write-slice-buffered *(ebp+0xc) %edx)
+    (write-buffered *(ebp+0xc) "\n")
+    (flush *(ebp+0xc))
+    (stop *(ebp+0x10) 1)
+    # never gets here
+
+$parse-mu:error2:
+    # error(vars->top " vars not reclaimed after fn '" new-function->name "'\n")
+    (write-int32-hex-buffered *(ebp+0xc) *ebx)
+    (write-buffered *(ebp+0xc) " vars not reclaimed after fn '")
+    (write-slice-buffered *(ebp+0xc) *eax)  # Function-name
+    (write-buffered *(ebp+0xc) "'\n")
+    (flush *(ebp+0xc))
+    (stop *(ebp+0x10) 1)
+    # never gets here
+
+# scenarios considered:
+# ✗ fn foo  # no block
+# ✓ fn foo {
+# ✗ fn foo { {
+# ✗ fn foo { }
+# ✗ fn foo { } {
+# ✗ fn foo x {
+# ✗ fn foo x: {
+# ✓ fn foo x: int {
+# ✓ fn foo x: int {
+# ✓ fn foo x: int -> _/eax: int {
+# TODO:
+#   disallow outputs of type `(... addr ...)`
+#   disallow inputs of type `(... addr ... addr ...)`
+populate-mu-function-header:  # first-line: (addr stream byte), out: (addr function), vars: (addr stack live-var), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var word-slice: slice
+    #   next-mu-token(first-line, word-slice)
+    #   if slice-empty?(word-slice) abort
+    #   assert(word-slice not in '{' '}' '->')
+    #   out->name = slice-to-string(word-slice)
+    #   ## inouts
+    #   while true
+    #     word-slice = next-mu-token(first-line)
+    #     if slice-empty?(word-slice) abort
+    #     if (word-slice == '{') goto done
+    #     if (word-slice == '->') break
+    #     assert(word-slice != '}')
+    #     var v: (handle var) = parse-var-with-type(word-slice, first-line)
+    #     assert(v->register == null)
+    #     # v->block-depth is implicitly 0
+    #     out->inouts = append(v, out->inouts)
+    #     push(vars, {v, false})
+    #   ## outputs
+    #   while true
+    #     word-slice = next-mu-token(first-line)
+    #     if slice-empty?(word-slice) abort
+    #     if (word-slice == '{') break
+    #     assert(word-slice not in '}' '->')
+    #     var v: (handle var) = parse-var-with-type(word-slice, first-line)
+    #     assert(v->register != null)
+    #     assert(v->name == "_")
+    #     out->outputs = append(v, out->outputs)
+    #   done:
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    57/push-edi
+    # edi = out
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # var word-slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # var v/ebx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ebx 4/r32/esp
+    # read function name
+    (next-mu-token *(ebp+8) %ecx)
+    # error checking
+    # if slice-empty?(word-slice) abort
+    (slice-empty? %ecx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+    # if (word-slice == '{') abort
+    (slice-equal? %ecx "{")   # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+    # if (word-slice == '->') abort
+    (slice-equal? %ecx "->")   # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+    # if (word-slice == '}') abort
+    (slice-equal? %ecx "}")   # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+    # if word-slice already defined, abort
+    (function-exists? %ecx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-header:error-duplicate/disp32
+    #
+    (slice-starts-with? %ecx "break")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-header:error-break/disp32
+    (slice-starts-with? %ecx "loop")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-header:error-loop/disp32
+    (slice-equal? %ecx "lookup")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-header:error-lookup/disp32
+    # save function name
+    (slice-to-string Heap %ecx %edi)  # Function-name
+    # save function inouts
+    {
+$populate-mu-function-header:check-for-inout:
+      (next-mu-token *(ebp+8) %ecx)
+      # if slice-empty?(word-slice) abort
+      (slice-empty? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+      # if (word-slice == '{') goto done
+      (slice-equal? %ecx "{")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-header:done/disp32
+      # if (word-slice == '->') break
+      (slice-equal? %ecx "->")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if (word-slice == '}') abort
+      (slice-equal? %ecx "}")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+      # v = parse-var-with-type(word-slice, first-line)
+      (lookup *edi *(edi+4))  # Function-name Function-name => eax
+      (parse-var-with-type %ecx *(ebp+8) %ebx %eax *(ebp+0x14) *(ebp+0x18))
+      # if (v->register != null) abort
+      # . eax: (addr var) = lookup(v)
+      (lookup *ebx *(ebx+4))  # => eax
+      81 7/subop/compare *(eax+0x18) 0/imm32  # Var-register
+      0f 85/jump-if-!= $populate-mu-function-header:error2/disp32
+      # if function name is not "main"
+      #    and v->type contains an 'addr' anywhere except the start, abort
+      {
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (string-equal? %eax "main")  # => eax
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+        (lookup *ebx *(ebx+4))  # => eax
+        (addr-payload-contains-addr? %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 85/jump-if-!= $populate-mu-function-header:error-nested-addr-inout/disp32
+      }
+      # v->block-depth is implicitly 0
+      #
+      # out->inouts = append(v, out->inouts)
+      8d/copy-address *(edi+8) 0/r32/eax  # Function-inouts
+      (append-list Heap  *ebx *(ebx+4)  *(edi+8) *(edi+0xc)  %eax)  # Function-inouts, Function-inouts
+      # push(vars, {v, false})
+      (push *(ebp+0x10) *ebx)
+      (push *(ebp+0x10) *(ebx+4))
+      (push *(ebp+0x10) 0)  # false
+      #
+      e9/jump loop/disp32
+    }
+    # save function outputs
+    {
+$populate-mu-function-header:check-for-out:
+      (next-mu-token *(ebp+8) %ecx)
+      # if slice-empty?(word-slice) abort
+      (slice-empty? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+      # if (word-slice == '{') break
+      (slice-equal? %ecx "{")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if (word-slice == '->') abort
+      (slice-equal? %ecx "->")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+      # if (word-slice == '}') abort
+      (slice-equal? %ecx "}")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-header:error1/disp32
+      # v = parse-var-with-type(word-slice, first-line)
+      (lookup *edi *(edi+4))  # Function-name Function-name => eax
+      (parse-var-with-type %ecx *(ebp+8) %ebx %eax *(ebp+0x14) *(ebp+0x18))
+      # assert(var->register != null)
+      # . eax: (addr var) = lookup(v)
+      (lookup *ebx *(ebx+4))  # => eax
+      81 7/subop/compare *(eax+0x18) 0/imm32  # Var-register
+      0f 84/jump-if-= $populate-mu-function-header:error3/disp32
+      # if (var->name != "_") abort
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      (string-equal? %eax "_")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $populate-mu-function-header:error4/disp32
+      # if v->type is an addr, abort
+      (lookup *ebx *(ebx+4))  # => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-mu-addr-type? %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-header:error-addr-output/disp32
+      # out->outputs = append(v, out->outputs)
+      8d/copy-address *(edi+0x10) 0/r32/eax  # Function-outputs
+      (append-list Heap  *ebx *(ebx+4)  *(edi+0x10) *(edi+0x14)  %eax)  # Function-outputs, Function-outputs
+      #
+      e9/jump loop/disp32
+    }
+$populate-mu-function-header:done:
+    (check-no-tokens-left *(ebp+8))
+$populate-mu-function-header:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x10/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$populate-mu-function-header:error1:
+    # error("function header not in form 'fn <name> {'")
+    (write-buffered *(ebp+0x14) "function header not in form 'fn <name> [inouts] [-> outputs] {' -- '")
+    (flush *(ebp+0x14))
+    (rewind-stream *(ebp+8))
+    (write-stream-data *(ebp+0x14) *(ebp+8))
+    (write-buffered *(ebp+0x14) "'\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error2:
+    # error("fn " fn ": function inout '" var "' cannot be in a register")
+    (write-buffered *(ebp+0x14) "fn ")
+    50/push-eax
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x14) ": function inout '")
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    (write-buffered *(ebp+0x14) "' cannot be in a register")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error3:
+    # error("fn " fn ": function output '" var "' must be in a register")
+    (write-buffered *(ebp+0x14) "fn ")
+    50/push-eax
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x14) ": function output '")
+    (lookup *ebx *(ebx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    (write-buffered *(ebp+0x14) "' must be in a register, in instruction '")
+    (rewind-stream *(ebp+8))
+    (write-stream-data *(ebp+0x14) *(ebp+8))
+    (write-buffered *(ebp+0x14) "'\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error4:
+    # error("fn " fn ": function outputs cannot be named; rename '" var "' in the header to '_'")
+    (write-buffered *(ebp+0x14) "fn ")
+    50/push-eax
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x14) ": function outputs cannot be named; rename '")
+    (lookup *ebx *(ebx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    (write-buffered *(ebp+0x14) "' in the header to '_'\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error-duplicate:
+    (write-buffered *(ebp+0x14) "fn ")
+    (write-slice-buffered *(ebp+0x14) %ecx)
+    (write-buffered *(ebp+0x14) " defined more than once\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error-break:
+    (write-buffered *(ebp+0x14) "Sorry, I've reserved all function names starting with 'break' for now. Please contact mu@akkartik.com.\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error-loop:
+    (write-buffered *(ebp+0x14) "Sorry, I've reserved all function names starting with 'loop' for now. Please contact mu@akkartik.com.\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error-lookup:
+    (write-buffered *(ebp+0x14) "cannot define a function called 'lookup'\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error-addr-output:
+    # error("fn " fn ": output cannot have an addr type; that could allow unsafe addresses to escape the function")
+    (write-buffered *(ebp+0x14) "fn ")
+    50/push-eax
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x14) ": output cannot have an addr type; that could allow unsafe addresses to escape the function\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$populate-mu-function-header:error-nested-addr-inout:
+    # error("fn " fn ": inout '" var "' cannot contain 'addr' anywhere in the type except the first word; that could allow unsafe addresses to escape the function")
+    (write-buffered *(ebp+0x14) "fn ")
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    (write-buffered *(ebp+0x14) ": inout '")
+    (lookup *ebx *(ebx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    (write-buffered *(ebp+0x14) "' cannot contain 'addr' anywhere in the type except the first word; that could allow unsafe addresses to escape the function\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+# scenarios considered:
+# ✓ fn foo
+# ✗ fn foo {
+# ✓ fn foo x
+# ✓ fn foo x: int
+# ✓ fn foo x: int -> _/eax: int
+# TODO:
+#   disallow outputs of type `(... addr ...)`
+#   disallow inputs of type `(... addr ... addr ...)`
+populate-mu-function-signature:  # first-line: (addr stream byte), out: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var word-slice: slice
+    #   next-mu-token(first-line, word-slice)
+    #   assert(word-slice not in '{' '}' '->')
+    #   out->name = slice-to-string(word-slice)
+    #   ## inouts
+    #   while true
+    #     word-slice = next-mu-token(first-line)
+    #     if slice-empty?(word-slice) break
+    #     if (word-slice == '->') break
+    #     assert(word-slice not in '{' '}')
+    #     var v: (handle var) = parse-var-with-type(word-slice, first-line)
+    #     assert(v->register == null)
+    #     # v->block-depth is implicitly 0
+    #     out->inouts = append(v, out->inouts)
+    #   ## outputs
+    #   while true
+    #     word-slice = next-mu-token(first-line)
+    #     if slice-empty?(word-slice) break
+    #     assert(word-slice not in '{' '}' '->')
+    #     var v: (handle var) = parse-var-with-type(word-slice, first-line)
+    #     assert(v->register != null)
+    #     out->outputs = append(v, out->outputs)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    57/push-edi
+    # edi = out
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # var word-slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # var v/ebx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ebx 4/r32/esp
+    # read function name
+    (next-mu-token *(ebp+8) %ecx)
+    # error checking
+    # if (word-slice == '{') abort
+    (slice-equal? %ecx "{")   # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-signature:error1/disp32
+    # if (word-slice == '->') abort
+    (slice-equal? %ecx "->")   # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-signature:error1/disp32
+    # if (word-slice == '}') abort
+    (slice-equal? %ecx "}")   # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-signature:error1/disp32
+    # if word-slice already defined, abort
+    (function-exists? %ecx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-signature:error-duplicate/disp32
+    #
+    (slice-starts-with? %ecx "break")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-signature:error-break/disp32
+    (slice-starts-with? %ecx "loop")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $populate-mu-function-signature:error-loop/disp32
+    # save function name
+    (slice-to-string Heap %ecx %edi)  # Function-name
+    # save function inouts
+    {
+$populate-mu-function-signature:check-for-inout:
+      (next-mu-token *(ebp+8) %ecx)
+      (slice-empty? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if (word-slice == '->') break
+      (slice-equal? %ecx "->")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if (word-slice == '{') abort
+      (slice-equal? %ecx "{")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-signature:error1/disp32
+      # if (word-slice == '}') abort
+      (slice-equal? %ecx "}")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-signature:error1/disp32
+      # v = parse-var-with-type(word-slice, first-line)
+      (lookup *edi *(edi+4))  # Function-name Function-name => eax
+      (parse-var-with-type %ecx *(ebp+8) %ebx %eax *(ebp+0x10) *(ebp+0x14))
+      # if (v->register != null) abort
+      # . eax: (addr var) = lookup(v)
+      (lookup *ebx *(ebx+4))  # => eax
+      81 7/subop/compare *(eax+0x18) 0/imm32  # Var-register
+      0f 85/jump-if-!= $populate-mu-function-signature:error2/disp32
+      # if function name is not "main"
+      #    and v->type contains an 'addr' anywhere except the start, abort
+      {
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (string-equal? %eax "main")  # => eax
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+        (lookup *ebx *(ebx+4))  # => eax
+        (addr-payload-contains-addr? %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 85/jump-if-!= $populate-mu-function-signature:error-nested-addr-inout/disp32
+      }
+      # assert(v->register == null)
+      # . eax: (addr var) = lookup(v)
+      (lookup *ebx *(ebx+4))  # => eax
+      81 7/subop/compare *(eax+0x18) 0/imm32  # Var-register
+      0f 85/jump-if-!= $populate-mu-function-signature:error2/disp32
+      # v->block-depth is implicitly 0
+      #
+      # out->inouts = append(v, out->inouts)
+      8d/copy-address *(edi+8) 0/r32/eax  # Function-inouts
+      (append-list Heap  *ebx *(ebx+4)  *(edi+8) *(edi+0xc)  %eax)  # Function-inouts, Function-inouts
+      #
+      e9/jump loop/disp32
+    }
+    # save function outputs
+    {
+$populate-mu-function-signature:check-for-out:
+      (next-mu-token *(ebp+8) %ecx)
+      (slice-empty? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if (word-slice == '{') abort
+      (slice-equal? %ecx "{")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-signature:error1/disp32
+      # if (word-slice == '->') abort
+      (slice-equal? %ecx "->")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-signature:error1/disp32
+      # if (word-slice == '}') abort
+      (slice-equal? %ecx "}")   # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-function-signature:error1/disp32
+      # v = parse-var-with-type(word-slice, first-line)
+      (lookup *edi *(edi+4))  # Function-name Function-name => eax
+      (parse-var-with-type %ecx *(ebp+8) %ebx %eax *(ebp+0x10) *(ebp+0x14))
+      # assert(var->register != null)
+      # . eax: (addr var) = lookup(v)
+      (lookup *ebx *(ebx+4))  # => eax
+      81 7/subop/compare *(eax+0x18) 0/imm32  # Var-register
+      0f 84/jump-if-= $populate-mu-function-signature:error3/disp32
+      # if (var->name != "_") abort
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      (string-equal? %eax "_")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $populate-mu-function-signature:error4/disp32
+      # if function name is not "lookup"
+      #    and v->type is an addr, abort
+      {
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (string-equal? %eax "lookup")  # => eax
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+        (lookup *ebx *(ebx+4))  # => eax
+        (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+        (is-mu-addr-type? %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 85/jump-if-!= $populate-mu-function-signature:error-addr-output/disp32
+      }
+      # out->outputs = append(v, out->outputs)
+      8d/copy-address *(edi+0x10) 0/r32/eax  # Function-outputs
+      (append-list Heap  *ebx *(ebx+4)  *(edi+0x10) *(edi+0x14)  %eax)  # Function-outputs, Function-outputs
+      #
+      e9/jump loop/disp32
+    }
+$populate-mu-function-signature:done:
+    (check-no-tokens-left *(ebp+8))
+$populate-mu-function-signature:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x10/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$populate-mu-function-signature:error1:
+    # error("function signature not in form 'fn <name> {'")
+    (write-buffered *(ebp+0x10) "function signature not in form 'fn <name> [inouts] [-> outputs] {' -- '")
+    (flush *(ebp+0x10))
+    (rewind-stream *(ebp+8))
+    (write-stream-data *(ebp+0x10) *(ebp+8))
+    (write-buffered *(ebp+0x10) "'\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-function-signature:error2:
+    # error("fn " fn ": function inout '" var "' cannot be in a register")
+    (write-buffered *(ebp+0x10) "fn ")
+    50/push-eax
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x10) ": function inout '")
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' cannot be in a register")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-function-signature:error3:
+    # error("fn " fn ": function output '" var "' must be in a register")
+    (write-buffered *(ebp+0x10) "fn ")
+    50/push-eax
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x10) ": function output '")
+    (lookup *ebx *(ebx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be in a register, in instruction '")
+    (rewind-stream *(ebp+8))
+    (write-stream-data *(ebp+0x10) *(ebp+8))
+    (write-buffered *(ebp+0x10) "'\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-function-signature:error4:
+    # error("fn " fn ": function outputs cannot be named; rename '" var "' in the header to '_'")
+    (write-buffered *(ebp+0x10) "fn ")
+    50/push-eax
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x10) ": function outputs cannot be named; rename '")
+    (lookup *ebx *(ebx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' in the header to '_'\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-function-signature:error-duplicate:
+    (write-buffered *(ebp+0x10) "fn ")
+    (write-slice-buffered *(ebp+0x10) %ecx)
+    (write-buffered *(ebp+0x10) " defined more than once\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-function-signature:error-break:
+    (write-buffered *(ebp+0x10) "Sorry, I've reserved all function names starting with 'break' for now. Please contact mu@akkartik.com.\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-function-signature:error-loop:
+    (write-buffered *(ebp+0x10) "Sorry, I've reserved all function names starting with 'loop' for now. Please contact mu@akkartik.com.\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-function-signature:error-addr-output:
+    # error("fn " fn ": output cannot have an addr type; that could allow unsafe addresses to escape the function")
+    (write-buffered *(ebp+0x10) "fn ")
+    50/push-eax
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x10) ": output cannot have an addr type; that could allow unsafe addresses to escape the function\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-function-signature:error-nested-addr-inout:
+    # error("fn " fn ": inout '" var "' cannot contain 'addr' anywhere in the type except the first word; that could allow unsafe addresses to escape the function")
+    (write-buffered *(ebp+0x10) "fn ")
+    (lookup *edi *(edi+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": inout '")
+    (lookup *ebx *(ebx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' cannot contain 'addr' anywhere in the type except the first word; that could allow unsafe addresses to escape the function\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+addr-payload-contains-addr?:  # v: (addr var) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var t/eax: (addr type-tree) = v->type
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # if t->right contains addr, return true
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    (type-tree-contains? %eax 2)  # addr => eax
+    # we don't have to look at t->left as long as it's guaranteed to be an atom
+$addr-payload-contains-addr?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+type-tree-contains?:  # t: (addr type-tree), n: type-id -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # if t is null, return false
+    8b/-> *(ebp+8) 0/r32/eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $type-tree-contains?:end/disp32  # eax changes type
+    # if t is an atom, return (t->value == n)
+    81 7/subop/compare *eax 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      8b/-> *(ebp+0xc) 1/r32/ecx
+      39/compare *(eax+4) 1/r32/ecx  # Type-tree-value
+      0f 94/set-if-= %al
+      81 4/subop/and %eax 0xff/imm32
+      eb/jump $type-tree-contains?:end/disp8
+    }
+    # if t->left contains n, return true
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    (type-tree-contains? %eax *(ebp+0xc))  # => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $type-tree-contains?:end/disp8
+    # otherwise return whether t->right contains n
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    (type-tree-contains? %eax *(ebp+0xc))  # => eax
+$type-tree-contains?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+function-exists?:  # s: (addr slice) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var curr/ecx: (addr function) = functions
+    (lookup *_Program-functions *_Program-functions->payload)  # => eax
+    89/<- %ecx 0/r32/eax
+    {
+      # if (curr == null) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # if (curr->name == s) return true
+      {
+        (lookup *ecx *(ecx+4))  # Function-name Function-name => eax
+        (slice-equal? *(ebp+8) %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+        b8/copy-to-eax 1/imm32/true
+        e9/jump $function-exists?:end/disp32
+      }
+      # curr = curr->next
+      (lookup *(ecx+0x20) *(ecx+0x24))  # Function-next Function-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      eb/jump loop/disp8
+    }
+    # var curr/ecx: (addr function) = signatures
+    (lookup *_Program-signatures *_Program-signatures->payload)  # => eax
+    89/<- %ecx 0/r32/eax
+    {
+      # if (curr == null) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # if (curr->name == s) return true
+      {
+        (lookup *ecx *(ecx+4))  # Function-name Function-name => eax
+        (slice-equal? *(ebp+8) %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+        b8/copy-to-eax 1/imm32/true
+        eb/jump $function-exists?:end/disp8
+      }
+      # curr = curr->next
+      (lookup *(ecx+0x20) *(ecx+0x24))  # Function-next Function-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      eb/jump loop/disp8
+    }
+    # return false
+    b8/copy-to-eax 0/imm32/false
+$function-exists?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-function-header-with-arg:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    c7 0/subop/copy *_Program-functions 0/imm32
+    c7 0/subop/copy *_Program-functions->payload 0/imm32
+    c7 0/subop/copy *_Program-types 0/imm32
+    c7 0/subop/copy *_Program-types->payload 0/imm32
+    c7 0/subop/copy *_Program-signatures 0/imm32
+    c7 0/subop/copy *_Program-signatures->payload 0/imm32
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "foo n: int {\n")
+    # var result/ecx: function
+    2b/subtract *Function-size 4/r32/esp
+    89/<- %ecx 4/r32/esp
+    (zero-out %ecx *Function-size)
+    # var vars/ebx: (stack live-var 16)
+    81 5/subop/subtract %esp 0xc0/imm32
+    68/push 0xc0/imm32/size
+    68/push 0/imm32/top
+    89/<- %ebx 4/r32/esp
+    # convert
+    (populate-mu-function-header _test-input-stream %ecx %ebx Stderr 0)
+    # check result->name
+    (lookup *ecx *(ecx+4))  # Function-name Function-name => eax
+    (check-strings-equal %eax "foo" "F - test-function-header-with-arg/name")
+    # var v/edx: (addr var) = result->inouts->value
+    (lookup *(ecx+8) *(ecx+0xc))  # Function-inouts Function-inouts => eax
+    (lookup *eax *(eax+4))  # List-value List-value => eax
+    89/<- %edx 0/r32/eax
+    # check v->name
+    (lookup *edx *(edx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "n" "F - test-function-header-with-arg/inout:0")
+    # check v->type
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-arg/inout:0/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-arg/inout:0/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-function-header-with-arg/inout:0/type:2")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-function-header-with-multiple-args:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    c7 0/subop/copy *_Program-functions 0/imm32
+    c7 0/subop/copy *_Program-functions->payload 0/imm32
+    c7 0/subop/copy *_Program-types 0/imm32
+    c7 0/subop/copy *_Program-types->payload 0/imm32
+    c7 0/subop/copy *_Program-signatures 0/imm32
+    c7 0/subop/copy *_Program-signatures->payload 0/imm32
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "foo a: int, b: int c: int {\n")
+    # result/ecx: function
+    2b/subtract *Function-size 4/r32/esp
+    89/<- %ecx 4/r32/esp
+    (zero-out %ecx *Function-size)
+    # var vars/ebx: (stack live-var 16)
+    81 5/subop/subtract %esp 0xc0/imm32
+    68/push 0xc0/imm32/size
+    68/push 0/imm32/top
+    89/<- %ebx 4/r32/esp
+    # convert
+    (populate-mu-function-header _test-input-stream %ecx %ebx Stderr 0)
+    # check result->name
+    (lookup *ecx *(ecx+4))  # Function-name Function-name => eax
+    (check-strings-equal %eax "foo" "F - test-function-header-with-multiple-args/name")
+    # var inouts/edx: (addr list var) = lookup(result->inouts)
+    (lookup *(ecx+8) *(ecx+0xc))  # Function-inouts Function-inouts => eax
+    89/<- %edx 0/r32/eax
+$test-function-header-with-multiple-args:inout0:
+    # var v/ebx: (addr var) = lookup(inouts->value)
+    (lookup *edx *(edx+4))  # List-value List-value => eax
+    89/<- %ebx 0/r32/eax
+    # check v->name
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "a" "F - test-function-header-with-multiple-args/inout:0")  # Var-name
+    # check v->type
+    (lookup *(ebx+8) *(ebx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-multiple-args/inout:0/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-multiple-args/inout:0/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-function-header-with-multiple-args/inout:0/type:2")  # Type-tree-right
+$test-function-header-with-multiple-args:inout1:
+    # inouts = lookup(inouts->next)
+    (lookup *(edx+8) *(edx+0xc))  # List-next List-next => eax
+    89/<- %edx 0/r32/eax
+    # v = lookup(inouts->value)
+    (lookup *edx *(edx+4))  # List-value List-value => eax
+    89/<- %ebx 0/r32/eax
+    # check v->name
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "b" "F - test-function-header-with-multiple-args/inout:1")  # Var-name
+    # check v->type
+    (lookup *(ebx+8) *(ebx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-multiple-args/inout:1/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-multiple-args/inout:1/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-function-header-with-multiple-args/inout:1/type:2")  # Type-tree-right
+$test-function-header-with-multiple-args:inout2:
+    # inouts = lookup(inouts->next)
+    (lookup *(edx+8) *(edx+0xc))  # List-next List-next => eax
+    89/<- %edx 0/r32/eax
+    # v = lookup(inouts->value)
+    (lookup *edx *(edx+4))  # List-value List-value => eax
+    89/<- %ebx 0/r32/eax
+    # check v->name
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "c" "F - test-function-header-with-multiple-args/inout:2")  # Var-name
+    # check v->type
+    (lookup *(ebx+8) *(ebx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-multiple-args/inout:2/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-multiple-args/inout:2/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-function-header-with-multiple-args/inout:2/type:2")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-function-header-with-multiple-args-and-outputs:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    c7 0/subop/copy *_Program-functions 0/imm32
+    c7 0/subop/copy *_Program-functions->payload 0/imm32
+    c7 0/subop/copy *_Program-types 0/imm32
+    c7 0/subop/copy *_Program-types->payload 0/imm32
+    c7 0/subop/copy *_Program-signatures 0/imm32
+    c7 0/subop/copy *_Program-signatures->payload 0/imm32
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "foo a: int, b: int, c: int -> _/ecx: int _/edx: int {\n")
+    # result/ecx: function
+    2b/subtract *Function-size 4/r32/esp
+    89/<- %ecx 4/r32/esp
+    (zero-out %ecx *Function-size)
+    # var vars/ebx: (stack live-var 16)
+    81 5/subop/subtract %esp 0xc0/imm32
+    68/push 0xc0/imm32/size
+    68/push 0/imm32/top
+    89/<- %ebx 4/r32/esp
+    # convert
+    (populate-mu-function-header _test-input-stream %ecx %ebx Stderr 0)
+    # check result->name
+    (lookup *ecx *(ecx+4))  # Function-name Function-name => eax
+    (check-strings-equal %eax "foo" "F - test-function-header-with-multiple-args-and-outputs/name")
+    # var inouts/edx: (addr list var) = lookup(result->inouts)
+    (lookup *(ecx+8) *(ecx+0xc))  # Function-inouts Function-inouts => eax
+    89/<- %edx 0/r32/eax
+$test-function-header-with-multiple-args-and-outputs:inout0:
+    # var v/ebx: (addr var) = lookup(inouts->value)
+    (lookup *edx *(edx+4))  # List-value List-value => eax
+    89/<- %ebx 0/r32/eax
+    # check v->name
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "a" "F - test-function-header-with-multiple-args-and-outputs/inout:0")
+    # check v->type
+    (lookup *(ebx+8) *(ebx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-multiple-args-and-outputs/inout:0/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-multiple-args-and-outputs/inout:0/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-function-header-with-multiple-args-and-outputs/inout:0/type:2")  # Type-tree-right
+$test-function-header-with-multiple-args-and-outputs:inout1:
+    # inouts = lookup(inouts->next)
+    (lookup *(edx+8) *(edx+0xc))  # List-next List-next => eax
+    89/<- %edx 0/r32/eax
+    # v = lookup(inouts->value)
+    (lookup *edx *(edx+4))  # List-value List-value => eax
+    89/<- %ebx 0/r32/eax
+    # check v->name
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "b" "F - test-function-header-with-multiple-args-and-outputs/inout:1")
+    # check v->type
+    (lookup *(ebx+8) *(ebx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-multiple-args-and-outputs/inout:1/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-multiple-args-and-outputs/inout:1/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-function-header-with-multiple-args-and-outputs/inout:1/type:2")  # Type-tree-right
+$test-function-header-with-multiple-args-and-outputs:inout2:
+    # inouts = lookup(inouts->next)
+    (lookup *(edx+8) *(edx+0xc))  # List-next List-next => eax
+    89/<- %edx 0/r32/eax
+    # v = lookup(inouts->value)
+    (lookup *edx *(edx+4))  # List-value List-value => eax
+    89/<- %ebx 0/r32/eax
+    # check v->name
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "c" "F - test-function-header-with-multiple-args-and-outputs/inout:2")
+    # check v->type
+    (lookup *(ebx+8) *(ebx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-multiple-args-and-outputs/inout:2/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-multiple-args-and-outputs/inout:2/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-function-header-with-multiple-args-and-outputs/inout:2/type:2")  # Type-tree-right
+$test-function-header-with-multiple-args-and-outputs:out0:
+    # var outputs/edx: (addr list var) = lookup(result->outputs)
+    (lookup *(ecx+0x10) *(ecx+0x14))  # Function-outputs Function-outputs => eax
+    89/<- %edx 0/r32/eax
+    # v = lookup(outputs->value)
+    (lookup *edx *(edx+4))  # List-value List-value => eax
+    89/<- %ebx 0/r32/eax
+    # check v->name
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "_" "F - test-function-header-with-multiple-args-and-outputs/output:0")
+    # check v->register
+    (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register Var-register => eax
+    (check-strings-equal %eax "ecx" "F - test-function-header-with-multiple-args-and-outputs/output:0/register")
+    # check v->type
+    (lookup *(ebx+8) *(ebx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-multiple-args-and-outputs/output:0/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-multiple-args-and-outputs/output:0/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-function-header-with-multiple-args-and-outputs/output:0/type:2")  # Type-tree-right
+$test-function-header-with-multiple-args-and-outputs:out1:
+    # outputs = lookup(outputs->next)
+    (lookup *(edx+8) *(edx+0xc))  # List-next List-next => eax
+    89/<- %edx 0/r32/eax
+    # v = lookup(inouts->value)
+    (lookup *edx *(edx+4))  # List-value List-value => eax
+    89/<- %ebx 0/r32/eax
+    # check v->name
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "_" "F - test-function-header-with-multiple-args-and-outputs/output:1")
+    # check v->register
+    (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register Var-register => eax
+    (check-strings-equal %eax "edx" "F - test-function-header-with-multiple-args-and-outputs/output:1/register")
+    # check v->type
+    (lookup *(ebx+8) *(ebx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-function-header-with-multiple-args-and-outputs/output:1/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-function-header-with-multiple-args-and-outputs/output:1/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0c) 0 "F - test-function-header-with-multiple-args-and-outputs/output:1/type:2")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# format for variables with types
+#   x: int
+#   x: int,
+#   x/eax: int
+#   x/eax: int,
+# ignores at most one trailing comma
+# does not support other, non-register metadata
+# WARNING: modifies name
+parse-var-with-type:  # name: (addr slice), first-line: (addr stream byte), out: (addr handle var), fn-name: (addr array byte), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var s: slice
+    #   if (!slice-ends-with(name, ":"))
+    #     abort
+    #   --name->end to skip ':'
+    #   next-token-from-slice(name->start, name->end, '/', s)
+    #   new-var-from-slice(s, out)
+    #   ## register
+    #   next-token-from-slice(s->end, name->end, '/', s)
+    #   if (!slice-empty?(s))
+    #     out->register = slice-to-string(s)
+    #   ## type
+    #   var type: (handle type-tree) = parse-type(first-line)
+    #   out->type = type
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = name
+    8b/-> *(ebp+8) 6/r32/esi
+    # if (!slice-ends-with?(name, ":")) abort
+    8b/-> *(esi+4) 1/r32/ecx  # Slice-end
+    49/decrement-ecx
+    8a/copy-byte *ecx 1/r32/CL
+    81 4/subop/and %ecx 0xff/imm32
+    81 7/subop/compare %ecx 0x3a/imm32/colon
+    0f 85/jump-if-!= $parse-var-with-type:abort/disp32
+    # --name->end to skip ':'
+    ff 1/subop/decrement *(esi+4)
+    # var s/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+$parse-var-with-type:parse-name:
+    (next-token-from-slice *esi *(esi+4) 0x2f %ecx)  # Slice-start, Slice-end, '/'
+$parse-var-with-type:create-var:
+    # new-var-from-slice(s, out)
+    (new-var-from-slice Heap %ecx *(ebp+0x10))
+    # save out->register
+$parse-var-with-type:save-register:
+    # . var out-addr/edi: (addr var) = lookup(*out)
+    8b/-> *(ebp+0x10) 7/r32/edi
+    (lookup *edi *(edi+4))  # => eax
+    89/<- %edi 0/r32/eax
+    # . s = next-token(...)
+    (next-token-from-slice *(ecx+4) *(esi+4) 0x2f %ecx)  # s->end, name->end, '/'
+    # . if (!slice-empty?(s)) out->register = slice-to-string(s)
+    {
+$parse-var-with-type:write-register:
+      (slice-empty? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      # out->register = slice-to-string(s)
+      8d/copy-address *(edi+0x18) 0/r32/eax  # Var-register
+      (slice-to-string Heap %ecx %eax)
+    }
+$parse-var-with-type:save-type:
+    8d/copy-address *(edi+8) 0/r32/eax  # Var-type
+    (parse-type Heap *(ebp+0xc) %eax *(ebp+0x18) *(ebp+0x1c))
+$parse-var-with-type:check-register:
+    (lookup *(edi+0x18) *(edi+0x1c))  # Var-register Var-register => eax
+    3d/compare-eax-and 0/imm32
+    74/jump-if-= $parse-var-with-type:end/disp8
+    (is-float-register? %eax)  # => eax
+    {
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      # var is in a float register; ensure type is float
+      (lookup *(edi+8) *(edi+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 0xf)  # float => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $parse-var-with-type:error-non-float-in-floating-point-register/disp32
+      eb/jump $parse-var-with-type:end/disp8
+    }
+    # var is not in a float register; ensure type is not float
+    (lookup *(edi+8) *(edi+0xc))  # Var-type Var-type => eax
+    (is-simple-mu-type? %eax 0xf)  # float => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $parse-var-with-type:error-float-in-integer-register/disp32
+$parse-var-with-type:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$parse-var-with-type:abort:
+    # error("fn " fn ": var should have form 'name: type' in '" line "'\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    (write-buffered *(ebp+0x18) *(ebp+0x14))
+    (write-buffered *(ebp+0x18) ": var should have form 'name: type' in '")
+    (flush *(ebp+0x18))
+    (rewind-stream *(ebp+0xc))
+    (write-stream-data *(ebp+0x18) *(ebp+0xc))
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$parse-var-with-type:error-float-in-integer-register:
+    # error("fn " fn ": float var '" var "' should be in a floating-point register\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    (write-buffered *(ebp+0x18) *(ebp+0x14))
+    (write-buffered *(ebp+0x18) ": float var '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) "' should be in a floating-point register\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$parse-var-with-type:error-non-float-in-floating-point-register:
+    # error("fn " fn ": non-float var '" var "' should be in an integer register\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    (write-buffered *(ebp+0x18) *(ebp+0x14))
+    (write-buffered *(ebp+0x18) ": non-float var '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) "' should be in an integer register\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+is-float-register?:  # r: (addr array byte) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (get Mu-registers-unique *(ebp+8) 0xc "Mu-registers-unique")  # => eax
+    81 7/subop/compare *eax 8/imm32/start-of-floating-point-registers
+    0f 9d/set-if->= %al
+    81 4/subop/and %eax 0xff/imm32
+$is-float-register?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-type:  # ad: (addr allocation-descriptor), in: (addr stream byte), out: (addr handle type-tree), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var s: slice = next-mu-token(in)
+    #   assert s != ""
+    #   assert s != "->"
+    #   assert s != "{"
+    #   assert s != "}"
+    #   if s == ")"
+    #     return
+    #   out = allocate(Type-tree)
+    #   if s != "("
+    #     HACK: if s is an int, parse and return it
+    #     out->is-atom? = true
+    #     if (s[0] == "_")
+    #       out->value = type-parameter
+    #       out->parameter-name = slice-to-string(ad, s)
+    #     else
+    #       out->value = pos-or-insert-slice(Type-id, s)
+    #     return
+    #   out->left = parse-type(ad, in)
+    #   out->right = parse-type-tree(ad, in)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # clear out
+    (zero-out *(ebp+0x10) *Handle-size)
+    # var s/ecx: slice
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # s = next-mu-token(in)
+    (next-mu-token *(ebp+0xc) %ecx)
+#?     (write-buffered Stderr "tok: ")
+#?     (write-slice-buffered Stderr %ecx)
+#?     (write-buffered Stderr "$\n")
+#?     (flush Stderr)
+    # assert s != ""
+    (slice-equal? %ecx "")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $parse-type:abort/disp32
+    # assert s != "{"
+    (slice-equal? %ecx "{")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $parse-type:abort/disp32
+    # assert s != "}"
+    (slice-equal? %ecx "}")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $parse-type:abort/disp32
+    # assert s != "->"
+    (slice-equal? %ecx "->")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $parse-type:abort/disp32
+    # if (s == ")") return
+    (slice-equal? %ecx ")")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $parse-type:end/disp32
+    # out = new tree
+    (allocate *(ebp+8) *Type-tree-size *(ebp+0x10))
+    # var out-addr/edx: (addr type-tree) = lookup(*out)
+    8b/-> *(ebp+0x10) 2/r32/edx
+    (lookup *edx *(edx+4))  # => eax
+    89/<- %edx 0/r32/eax
+    {
+      # if (s != "(") break
+      (slice-equal? %ecx "(")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if s is a number, store it in the type's size field
+      {
+$parse-type:check-for-int:
+        # var tmp/eax: byte = *s->slice
+        8b/-> *ecx 0/r32/eax
+        8a/copy-byte *eax 0/r32/AL
+        81 4/subop/and %eax 0xff/imm32
+        # TODO: raise an error on `var x: (array int a)`
+        (is-decimal-digit? %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+$parse-type:int:
+        # strip out metadata
+        (next-token-from-slice *ecx *(ecx+4) 0x2f %ecx)
+        #
+        (check-mu-hex-int %ecx *(ebp+0x14) *(ebp+0x18))
+        (parse-hex-int-from-slice %ecx)  # => eax
+        c7 0/subop/copy *(edx+4) 9/imm32/type-id-array-capacity  # Type-tree-value
+        89/<- *(edx+8) 0/r32/eax  # Type-tree-value-size
+        e9/jump $parse-type:end/disp32
+      }
+$parse-type:atom:
+      # out->is-atom? = true
+      c7 0/subop/copy *edx 1/imm32/true  # Type-tree-is-atom
+      {
+$parse-type:check-for-type-parameter:
+        # var tmp/eax: byte = *s->slice
+        8b/-> *ecx 0/r32/eax
+        8a/copy-byte *eax 0/r32/AL
+        81 4/subop/and %eax 0xff/imm32
+        # if (tmp != '_') break
+        3d/compare-eax-and 0x5f/imm32/_
+        75/jump-if-!= break/disp8
+$parse-type:type-parameter:
+        # out->value = type-parameter
+        c7 0/subop/copy *(edx+4) 0xa/imm32/type-parameter  # Type-tree-value
+        # out->parameter-name = slice-to-string(ad, s)
+        8d/copy-address *(edx+8) 0/r32/eax  # Type-tree-parameter-name
+        (slice-to-string *(ebp+8) %ecx %eax)
+        e9/jump $parse-type:end/disp32
+      }
+$parse-type:non-type-parameter:
+      # out->value = pos-or-insert-slice(Type-id, s)
+      (pos-or-insert-slice Type-id %ecx)  # => eax
+      89/<- *(edx+4) 0/r32/eax  # Type-tree-value
+      e9/jump $parse-type:end/disp32
+    }
+$parse-type:non-atom:
+    # otherwise s == "("
+    # out->left = parse-type(ad, in)
+    8d/copy-address *(edx+4) 0/r32/eax  # Type-tree-left
+    (parse-type *(ebp+8) *(ebp+0xc) %eax *(ebp+0x14) *(ebp+0x18))
+    # out->right = parse-type-tree(ad, in)
+    8d/copy-address *(edx+0xc) 0/r32/eax  # Type-tree-right
+    (parse-type-tree *(ebp+8) *(ebp+0xc) %eax *(ebp+0x14) *(ebp+0x18))
+$parse-type:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$parse-type:abort:
+    # error("unexpected token when parsing type: '" s "'\n")
+    (write-buffered *(ebp+0x14) "unexpected token when parsing type: '")
+    (write-slice-buffered *(ebp+0x14) %ecx)
+    (write-buffered *(ebp+0x14) "'\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+parse-type-tree:  # ad: (addr allocation-descriptor), in: (addr stream byte), out: (addr handle type-tree), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var tmp: (handle type-tree) = parse-type(ad, in)
+    #   if tmp == 0
+    #     return 0
+    #   out = allocate(Type-tree)
+    #   out->left = tmp
+    #   out->right = parse-type-tree(ad, in)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    #
+    (zero-out *(ebp+0x10) *Handle-size)
+    # var tmp/ecx: (handle type-tree)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # tmp = parse-type(ad, in)
+    (parse-type *(ebp+8) *(ebp+0xc) %ecx *(ebp+0x14) *(ebp+0x18))
+    # if (tmp == 0) return
+    81 7/subop/compare *ecx 0/imm32
+    74/jump-if-= $parse-type-tree:end/disp8
+    # out = new tree
+    (allocate *(ebp+8) *Type-tree-size *(ebp+0x10))
+    # var out-addr/edx: (addr tree) = lookup(*out)
+    8b/-> *(ebp+0x10) 2/r32/edx
+    (lookup *edx *(edx+4))  # => eax
+    89/<- %edx 0/r32/eax
+    # out->left = tmp
+    8b/-> *ecx 0/r32/eax
+    89/<- *(edx+4) 0/r32/eax  # Type-tree-left
+    8b/-> *(ecx+4) 0/r32/eax
+    89/<- *(edx+8) 0/r32/eax  # Type-tree-left
+    # out->right = parse-type-tree(ad, in)
+    8d/copy-address *(edx+0xc) 0/r32/eax  # Type-tree-right
+    (parse-type-tree *(ebp+8) *(ebp+0xc) %eax *(ebp+0x14) *(ebp+0x18))
+$parse-type-tree:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+next-mu-token:  # in: (addr stream byte), out: (addr slice)
+    # pseudocode:
+    # start:
+    #   skip-chars-matching-whitespace(in)
+    #   if in->read >= in->write              # end of in
+    #     out = {0, 0}
+    #     return
+    #   out->start = &in->data[in->read]
+    #   var curr-byte/eax: byte = in->data[in->read]
+    #   if curr->byte == ','                  # comment token
+    #     ++in->read
+    #     goto start
+    #   if curr-byte == '#'                   # comment
+    #     goto done                             # treat as eof
+    #   if curr-byte == '"'                   # string literal
+    #     skip-string(in)
+    #     goto done                           # no metadata
+    #   if curr-byte == '('
+    #     ++in->read
+    #     goto done
+    #   if curr-byte == ')'
+    #     ++in->read
+    #     goto done
+    #   # read a word
+    #   while true
+    #     if in->read >= in->write
+    #       break
+    #     curr-byte = in->data[in->read]
+    #     if curr-byte == ' '
+    #       break
+    #     if curr-byte == '\r'
+    #       break
+    #     if curr-byte == '\n'
+    #       break
+    #     if curr-byte == '('
+    #       break
+    #     if curr-byte == ')'
+    #       break
+    #     if curr-byte == ','
+    #       break
+    #     ++in->read
+    # done:
+    #   out->end = &in->data[in->read]
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = in
+    8b/-> *(ebp+8) 6/r32/esi
+    # edi = out
+    8b/-> *(ebp+0xc) 7/r32/edi
+$next-mu-token:start:
+    (skip-chars-matching-whitespace %esi)
+$next-mu-token:check0:
+    # if (in->read >= in->write) return out = {0, 0}
+    # . ecx = in->read
+    8b/-> *(esi+4) 1/r32/ecx
+    # . if (ecx >= in->write) return out = {0, 0}
+    3b/compare<- *esi 1/r32/ecx
+    c7 0/subop/copy *edi 0/imm32
+    c7 0/subop/copy *(edi+4) 0/imm32
+    0f 8d/jump-if->= $next-mu-token:end/disp32
+    # out->start = &in->data[in->read]
+    8d/copy-address *(esi+ecx+0xc) 0/r32/eax
+    89/<- *edi 0/r32/eax
+    # var curr-byte/eax: byte = in->data[in->read]
+    31/xor-with %eax 0/r32/eax
+    8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
+    {
+$next-mu-token:check-for-comma:
+      # if (curr-byte != ',') break
+      3d/compare-eax-and 0x2c/imm32/comma
+      75/jump-if-!= break/disp8
+      # ++in->read
+      ff 0/subop/increment *(esi+4)
+      # restart
+      e9/jump $next-mu-token:start/disp32
+    }
+    {
+$next-mu-token:check-for-comment:
+      # if (curr-byte != '#') break
+      3d/compare-eax-and 0x23/imm32/pound
+      75/jump-if-!= break/disp8
+      # return eof
+      e9/jump $next-mu-token:done/disp32
+    }
+    {
+$next-mu-token:check-for-string-literal:
+      # if (curr-byte != '"') break
+      3d/compare-eax-and 0x22/imm32/dquote
+      75/jump-if-!= break/disp8
+      (skip-string %esi)
+      # return
+      e9/jump $next-mu-token:done/disp32
+    }
+    {
+$next-mu-token:check-for-open-paren:
+      # if (curr-byte != '(') break
+      3d/compare-eax-and 0x28/imm32/open-paren
+      75/jump-if-!= break/disp8
+      # ++in->read
+      ff 0/subop/increment *(esi+4)
+      # return
+      e9/jump $next-mu-token:done/disp32
+    }
+    {
+$next-mu-token:check-for-close-paren:
+      # if (curr-byte != ')') break
+      3d/compare-eax-and 0x29/imm32/close-paren
+      75/jump-if-!= break/disp8
+      # ++in->read
+      ff 0/subop/increment *(esi+4)
+      # return
+      e9/jump $next-mu-token:done/disp32
+    }
+    {
+$next-mu-token:regular-word-without-metadata:
+      # if (in->read >= in->write) break
+      # . ecx = in->read
+      8b/-> *(esi+4) 1/r32/ecx
+      # . if (ecx >= in->write) break
+      3b/compare<- *esi 1/r32/ecx
+      7d/jump-if->= break/disp8
+      # var c/eax: byte = in->data[in->read]
+      31/xor-with %eax 0/r32/eax
+      8a/copy-byte *(esi+ecx+0xc) 0/r32/AL
+      # if (c == ' ') break
+      3d/compare-eax-and 0x20/imm32/space
+      74/jump-if-= break/disp8
+      # if (c == '\r') break
+      3d/compare-eax-and 0xd/imm32/carriage-return
+      74/jump-if-= break/disp8
+      # if (c == '\n') break
+      3d/compare-eax-and 0xa/imm32/newline
+      74/jump-if-= break/disp8
+      # if (c == '(') break
+      3d/compare-eax-and 0x28/imm32/open-paren
+      0f 84/jump-if-= break/disp32
+      # if (c == ')') break
+      3d/compare-eax-and 0x29/imm32/close-paren
+      0f 84/jump-if-= break/disp32
+      # if (c == ',') break
+      3d/compare-eax-and 0x2c/imm32/comma
+      0f 84/jump-if-= break/disp32
+      # ++in->read
+      ff 0/subop/increment *(esi+4)
+      #
+      e9/jump loop/disp32
+    }
+$next-mu-token:done:
+    # out->end = &in->data[in->read]
+    8b/-> *(esi+4) 1/r32/ecx
+    8d/copy-address *(esi+ecx+0xc) 0/r32/eax
+    89/<- *(edi+4) 0/r32/eax
+$next-mu-token:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+pos-or-insert-slice:  # arr: (addr stream (addr array byte)), s: (addr slice) -> index/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # if (pos-slice(arr, s) != -1) return it
+    (pos-slice *(ebp+8) *(ebp+0xc))  # => eax
+    3d/compare-eax-and -1/imm32
+    75/jump-if-!= $pos-or-insert-slice:end/disp8
+$pos-or-insert-slice:insert:
+    # var s2/eax: (handle array byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %eax 4/r32/esp
+    (slice-to-string Heap *(ebp+0xc) %eax)
+    # throw away alloc-id
+    (lookup *eax *(eax+4))  # => eax
+    (write-int *(ebp+8) %eax)
+    (pos-slice *(ebp+8) *(ebp+0xc))  # => eax
+$pos-or-insert-slice:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# return the index in an array of strings matching 's', -1 if not found
+# index is denominated in elements, not bytes
+pos-slice:  # arr: (addr stream (addr array byte)), s: (addr slice) -> index/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+#?     (write-buffered Stderr "pos-slice: ")
+#?     (write-slice-buffered Stderr *(ebp+0xc))
+#?     (write-buffered Stderr "\n")
+#?     (flush Stderr)
+    # esi = arr
+    8b/-> *(ebp+8) 6/r32/esi
+    # var index/ecx: int = 0
+    b9/copy-to-ecx 0/imm32
+    # var curr/edx: (addr (addr array byte)) = arr->data
+    8d/copy-address *(esi+0xc) 2/r32/edx
+    # var max/ebx: (addr (addr array byte)) = &arr->data[arr->write]
+    8b/-> *esi 3/r32/ebx
+    8d/copy-address *(esi+ebx+0xc) 3/r32/ebx
+    {
+#?       (write-buffered Stderr "  ")
+#?       (write-int32-hex-buffered Stderr %ecx)
+#?       (write-buffered Stderr "\n")
+#?       (flush Stderr)
+      # if (curr >= max) return -1
+      39/compare %edx 3/r32/ebx
+      b8/copy-to-eax -1/imm32
+      73/jump-if-addr>= $pos-slice:end/disp8
+      # if (slice-equal?(s, *curr)) break
+      (slice-equal? *(ebp+0xc) *edx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      # ++index
+      41/increment-ecx
+      # curr += 4
+      81 0/subop/add %edx 4/imm32
+      #
+      eb/jump loop/disp8
+    }
+    # return index
+    89/<- %eax 1/r32/ecx
+$pos-slice:end:
+#?     (write-buffered Stderr "=> ")
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (write-buffered Stderr "\n")
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-var-with-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    # (eax..ecx) = "x:"
+    b8/copy-to-eax "x:"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    # _test-input-stream contains "int"
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "int")
+    # var v/edx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    #
+    (parse-var-with-type %ecx _test-input-stream %edx 0 Stderr 0)
+    # var v-addr/edx: (addr var) = lookup(v)
+    (lookup *edx *(edx+4))  # => eax
+    89/<- %edx 0/r32/eax
+    # check v-addr->name
+    (lookup *edx *(edx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "x" "F - test-parse-var-with-type/name")
+    # check v-addr->type
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-parse-var-with-type/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-parse-var-with-type/type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-parse-var-with-type/type:2")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-var-with-type-and-register:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    # (eax..ecx) = "x/eax:"
+    b8/copy-to-eax "x/eax:"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    # _test-input-stream contains "int"
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "int")
+    # var v/edx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    #
+    (parse-var-with-type %ecx _test-input-stream %edx 0 Stderr 0)
+    # var v-addr/edx: (addr var) = lookup(v)
+    (lookup *edx *(edx+4))  # => eax
+    89/<- %edx 0/r32/eax
+    # check v-addr->name
+    (lookup *edx *(edx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "x" "F - test-parse-var-with-type-and-register/name")
+    # check v-addr->register
+    (lookup *(edx+0x18) *(edx+0x1c))  # Var-register Var-register => eax
+    (check-strings-equal %eax "eax" "F - test-parse-var-with-type-and-register/register")
+    # check v-addr->type
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-parse-var-with-type-and-register/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-parse-var-with-type-and-register/type:1")  # Type-tree-left
+    (check-ints-equal *(eax+0xc) 0 "F - test-parse-var-with-type-and-register/type:2")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-var-with-trailing-characters:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    # (eax..ecx) = "x:"
+    b8/copy-to-eax "x:"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    # _test-input-stream contains "int,"
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "int,")
+    # var v/edx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    #
+    (parse-var-with-type %ecx _test-input-stream %edx 0 Stderr 0)
+    # var v-addr/edx: (addr var) = lookup(v)
+    (lookup *edx *(edx+4))  # => eax
+    89/<- %edx 0/r32/eax
+    # check v-addr->name
+    (lookup *edx *(edx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "x" "F - test-parse-var-with-trailing-characters/name")
+    # check v-addr->register
+    (check-ints-equal *(edx+0x18) 0 "F - test-parse-var-with-trailing-characters/register")  # Var-register
+    # check v-addr->type
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-parse-var-with-trailing-characters/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-parse-var-with-trailing-characters/type:1")  # Type-tree-left
+    (check-ints-equal *(eax+0xc) 0 "F - test-parse-var-with-trailing-characters/type:1")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-var-with-register-and-trailing-characters:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    # (eax..ecx) = "x/eax:"
+    b8/copy-to-eax "x/eax:"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    # _test-input-stream contains "int,"
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "int,")
+    # var v/edx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    #
+    (parse-var-with-type %ecx _test-input-stream %edx 0 Stderr 0)
+    # var v-addr/edx: (addr var) = lookup(v)
+    (lookup *edx *(edx+4))  # => eax
+    89/<- %edx 0/r32/eax
+    # check v-addr->name
+    (lookup *edx *(edx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "x" "F - test-parse-var-with-register-and-trailing-characters/name")
+    # check v-addr->register
+    (lookup *(edx+0x18) *(edx+0x1c))  # Var-register Var-register => eax
+    (check-strings-equal %eax "eax" "F - test-parse-var-with-register-and-trailing-characters/register")
+    # check v-addr->type
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-parse-var-with-register-and-trailing-characters/type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-parse-var-with-register-and-trailing-characters/type:1")  # Type-tree-left
+    (check-ints-equal *(eax+0xc) 0 "F - test-parse-var-with-register-and-trailing-characters/type:2")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-var-with-compound-type:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    # (eax..ecx) = "x:"
+    b8/copy-to-eax "x:"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    # _test-input-stream contains "(addr int)"
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "(addr int)")
+    # var v/edx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    #
+    (parse-var-with-type %ecx _test-input-stream %edx 0 Stderr 0)
+    # var v-addr/edx: (addr var) = lookup(v)
+    (lookup *edx *(edx+4))  # => eax
+    89/<- %edx 0/r32/eax
+    # check v-addr->name
+    (lookup *edx *(edx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "x" "F - test-parse-var-with-compound-type/name")
+    # check v-addr->register
+    (check-ints-equal *(edx+0x18) 0 "F - test-parse-var-with-compound-type/register")  # Var-register
+    # - check v-addr->type
+    # var type/edx: (addr type-tree) = var->type
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    # type is a non-atom
+    (check-ints-equal *edx 0 "F - test-parse-var-with-compound-type/type:0")  # Type-tree-is-atom
+    # type->left == atom(addr)
+    (lookup *(edx+4) *(edx+8))  # Type-tree-left Type-tree-left => eax
+    (check-ints-equal *eax 1 "F - test-parse-var-with-compound-type/type:1")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 2 "F - test-parse-var-with-compound-type/type:2")  # Type-tree-value
+    # type->right->left == atom(int)
+    (lookup *(edx+0xc) *(edx+0x10))  # Type-tree-right Type-tree-right => eax
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    (check-ints-equal *eax 1 "F - test-parse-var-with-compound-type/type:3")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-parse-var-with-compound-type/type:4")  # Type-tree-value
+    # type->right->right == null
+    (check-ints-equal *(eax+0xc) 0 "F - test-parse-var-with-compound-type/type:5")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# identifier starts with a letter or '$' or '_'
+# no constraints at the moment on later letters
+# all we really want to do so far is exclude '{', '}' and '->'
+is-identifier?:  # in: (addr slice) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # if (slice-empty?(in)) return false
+    (slice-empty? *(ebp+8))  # => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $is-identifier?:false/disp8
+    # var c/eax: byte = *in->start
+    8b/-> *(ebp+8) 0/r32/eax
+    8b/-> *eax 0/r32/eax
+    8a/copy-byte *eax 0/r32/AL
+    81 4/subop/and %eax 0xff/imm32
+    # if (c == '$') return true
+    3d/compare-eax-and 0x24/imm32/$
+    74/jump-if-= $is-identifier?:true/disp8
+    # if (c == '_') return true
+    3d/compare-eax-and 0x5f/imm32/_
+    74/jump-if-= $is-identifier?:true/disp8
+    # drop case
+    25/and-eax-with 0x5f/imm32
+    # if (c < 'A') return false
+    3d/compare-eax-and 0x41/imm32/A
+    7c/jump-if-< $is-identifier?:false/disp8
+    # if (c > 'Z') return false
+    3d/compare-eax-and 0x5a/imm32/Z
+    7f/jump-if-> $is-identifier?:false/disp8
+    # otherwise return true
+$is-identifier?:true:
+    b8/copy-to-eax 1/imm32/true
+    eb/jump $is-identifier?:end/disp8
+$is-identifier?:false:
+    b8/copy-to-eax 0/imm32/false
+$is-identifier?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-dollar:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "$a"
+    b8/copy-to-eax "$a"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 1 "F - test-is-identifier-dollar")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-underscore:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "_a"
+    b8/copy-to-eax "_a"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 1 "F - test-is-identifier-underscore")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-a:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "a$"
+    b8/copy-to-eax "a$"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 1 "F - test-is-identifier-a")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-z:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "z$"
+    b8/copy-to-eax "z$"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 1 "F - test-is-identifier-z")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-A:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "A$"
+    b8/copy-to-eax "A$"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 1 "F - test-is-identifier-A")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-Z:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "Z$"
+    b8/copy-to-eax "Z$"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 1 "F - test-is-identifier-Z")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-at:
+    # character before 'A' is invalid
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "@a"
+    b8/copy-to-eax "@a"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 0 "F - test-is-identifier-@")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-square-bracket:
+    # character after 'Z' is invalid
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "[a"
+    b8/copy-to-eax "[a"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 0 "F - test-is-identifier-@")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-backtick:
+    # character before 'a' is invalid
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "`a"
+    b8/copy-to-eax "`a"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 0 "F - test-is-identifier-backtick")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-curly-brace-open:
+    # character after 'z' is invalid; also used for blocks
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "{a"
+    b8/copy-to-eax "{a"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 0 "F - test-is-identifier-curly-brace-open")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-curly-brace-close:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "}a"
+    b8/copy-to-eax "}a"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 0 "F - test-is-identifier-curly-brace-close")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-is-identifier-hyphen:
+    # disallow leading '-' since '->' has special meaning
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # (eax..ecx) = "-a"
+    b8/copy-to-eax "-a"/imm32
+    8b/-> *eax 1/r32/ecx
+    8d/copy-address *(eax+ecx+4) 1/r32/ecx
+    05/add-to-eax 4/imm32
+    # var slice/ecx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/<- %ecx 4/r32/esp
+    #
+    (is-identifier? %ecx)
+    (check-ints-equal %eax 0 "F - test-is-identifier-hyphen")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+populate-mu-function-body:  # in: (addr buffered-file), out: (addr function), vars: (addr stack live-var), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    57/push-edi
+    # esi = in
+    8b/-> *(ebp+8) 6/r32/esi
+    # edi = out
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # initialize some global state
+    c7 0/subop/copy *Curr-block-depth 1/imm32
+    # parse-mu-block(in, vars, out, out->body)
+    8d/copy-address *(edi+0x18) 0/r32/eax  # Function-body
+    (parse-mu-block %esi *(ebp+0x10) %edi %eax *(ebp+0x14) *(ebp+0x18))
+$populate-mu-function-body:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# parses a block, assuming that the leading '{' has already been read by the caller
+parse-mu-block:  # in: (addr buffered-file), vars: (addr stack live-var), fn: (addr function), out: (addr handle block), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var line: (stream byte 512)
+    #   var word-slice: slice
+    #   allocate(Heap, Stmt-size, out)
+    #   var out-addr: (addr block) = lookup(*out)
+    #   out-addr->tag = 0/block
+    #   out-addr->var = some unique name
+    #   push(vars, {out-addr->var, false})
+    #   while true                                  # line loop
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break               # end of file
+    #     word-slice = next-mu-token(line)
+    #     if slice-empty?(word-slice)               # end of line
+    #       continue
+    #     else if slice-starts-with?(word-slice, "#")
+    #       continue
+    #     else if slice-equal?(word-slice, "{")
+    #       assert(no-tokens-in(line))
+    #       block = parse-mu-block(in, vars, fn)
+    #       append-to-block(out-addr, block)
+    #     else if slice-equal?(word-slice, "}")
+    #       break
+    #     else if slice-ends-with?(word-slice, ":")
+    #       # TODO: error-check the rest of 'line'
+    #       --word-slice->end to skip ':'
+    #       named-block = parse-mu-named-block(word-slice, in, vars, fn)
+    #       append-to-block(out-addr, named-block)
+    #     else if slice-equal?(word-slice, "var")
+    #       var-def = parse-mu-var-def(line, vars, fn)
+    #       append-to-block(out-addr, var-def)
+    #     else
+    #       stmt = parse-mu-stmt(line, vars, fn)
+    #       append-to-block(out-addr, stmt)
+    #   pop(vars)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    57/push-edi
+    # var line/ecx: (stream byte 512)
+    81 5/subop/subtract %esp 0x200/imm32
+    68/push 0x200/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %ecx 4/r32/esp
+    # var word-slice/edx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %edx 4/r32/esp
+    # allocate into out
+    (allocate Heap *Stmt-size *(ebp+0x14))
+    # var out-addr/edi: (addr block) = lookup(*out)
+    8b/-> *(ebp+0x14) 7/r32/edi
+    (lookup *edi *(edi+4))  # => eax
+    89/<- %edi 0/r32/eax
+    # out-addr->tag is 0 (block) by default
+    # set out-addr->var
+    8d/copy-address *(edi+0xc) 0/r32/eax  # Block-var
+    (new-block-name *(ebp+0x10) %eax)
+    # push(vars, out-addr->var)
+    (push *(ebp+0xc) *(edi+0xc))  # Block-var
+    (push *(ebp+0xc) *(edi+0x10))  # Block-var
+    (push *(ebp+0xc) 0)  # false
+    # increment *Curr-block-depth
+    ff 0/subop/increment *Curr-block-depth
+    {
+$parse-mu-block:line-loop:
+      # line = read-line-buffered(in)
+      (clear-stream %ecx)
+      (read-line-buffered *(ebp+8) %ecx)
+#?       (write-buffered Stderr "line: ")
+#?       (write-stream-data Stderr %ecx)
+#? #?       (write-buffered Stderr Newline)  # line has its own newline
+#?       (flush Stderr)
+#?       (rewind-stream %ecx)
+      # if (line->write == 0) break
+      81 7/subop/compare *ecx 0/imm32
+      0f 84/jump-if-= break/disp32
+#?       (write-buffered Stderr "vars:\n")
+#?       (dump-vars *(ebp+0xc))
+      # word-slice = next-mu-token(line)
+      (next-mu-token %ecx %edx)
+#?       (write-buffered Stderr "word: ")
+#?       (write-slice-buffered Stderr %edx)
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      # if slice-empty?(word-slice) continue
+      (slice-empty? %edx)
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= loop/disp32
+      # if (slice-starts-with?(word-slice, '#') continue
+      # . eax = *word-slice->start
+      8b/-> *edx 0/r32/eax
+      8a/copy-byte *eax 0/r32/AL
+      81 4/subop/and %eax 0xff/imm32
+      # . if (eax == '#') continue
+      3d/compare-eax-and 0x23/imm32/hash
+      0f 84/jump-if-= loop/disp32
+      # if slice-equal?(word-slice, "{")
+      {
+$parse-mu-block:check-for-block:
+        (slice-equal? %edx "{")
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+        (check-no-tokens-left %ecx)
+        # parse new block and append
+        # . var tmp/eax: (handle block)
+        68/push 0/imm32
+        68/push 0/imm32
+        89/<- %eax 4/r32/esp
+        # .
+        (parse-mu-block *(ebp+8) *(ebp+0xc) *(ebp+0x10) %eax *(ebp+0x18) *(ebp+0x1c))
+        (append-to-block Heap %edi  *eax *(eax+4))
+        # . reclaim tmp
+        81 0/subop/add %esp 8/imm32
+        # .
+        e9/jump $parse-mu-block:line-loop/disp32
+      }
+      # if slice-equal?(word-slice, "}") break
+$parse-mu-block:check-for-end:
+      (slice-equal? %edx "}")
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if slice-ends-with?(word-slice, ":") parse named block and append
+      {
+$parse-mu-block:check-for-named-block:
+        # . eax = *(word-slice->end-1)
+        8b/-> *(edx+4) 0/r32/eax
+        48/decrement-eax
+        8a/copy-byte *eax 0/r32/AL
+        81 4/subop/and %eax 0xff/imm32
+        # . if (eax != ':') break
+        3d/compare-eax-and 0x3a/imm32/colon
+        0f 85/jump-if-!= break/disp32
+        # TODO: error-check the rest of 'line'
+        #
+        # skip ':'
+        ff 1/subop/decrement *(edx+4)  # Slice-end
+        # var tmp/eax: (handle block)
+        68/push 0/imm32
+        68/push 0/imm32
+        89/<- %eax 4/r32/esp
+        #
+        (parse-mu-named-block %edx *(ebp+8) *(ebp+0xc) *(ebp+0x10) %eax *(ebp+0x18) *(ebp+0x1c))
+        (append-to-block Heap %edi  *eax *(eax+4))
+        # reclaim tmp
+        81 0/subop/add %esp 8/imm32
+        #
+        e9/jump $parse-mu-block:line-loop/disp32
+      }
+      # if slice-equal?(word-slice, "var")
+      {
+$parse-mu-block:check-for-var:
+        (slice-equal? %edx "var")
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+        # var tmp/eax: (handle block)
+        68/push 0/imm32
+        68/push 0/imm32
+        89/<- %eax 4/r32/esp
+        #
+        (parse-mu-var-def %ecx *(ebp+0xc) %eax *(ebp+0x10) *(ebp+0x18) *(ebp+0x1c))
+        (append-to-block Heap %edi  *eax *(eax+4))
+        # reclaim tmp
+        81 0/subop/add %esp 8/imm32
+        #
+        e9/jump $parse-mu-block:line-loop/disp32
+      }
+$parse-mu-block:regular-stmt:
+      # otherwise
+      # var tmp/eax: (handle block)
+      68/push 0/imm32
+      68/push 0/imm32
+      89/<- %eax 4/r32/esp
+      #
+      (parse-mu-stmt %ecx *(ebp+0xc) *(ebp+0x10) %eax *(ebp+0x18) *(ebp+0x1c))
+      (append-to-block Heap %edi  *eax *(eax+4))
+      # reclaim tmp
+      81 0/subop/add %esp 8/imm32
+      #
+      e9/jump loop/disp32
+    } # end line loop
+    (clean-up-blocks *(ebp+0xc) *Curr-block-depth *(ebp+0x10))
+    # decrement *Curr-block-depth
+    ff 1/subop/decrement *Curr-block-depth
+    # pop(vars)
+    (pop *(ebp+0xc))  # => eax
+    (pop *(ebp+0xc))  # => eax
+    (pop *(ebp+0xc))  # => eax
+$parse-mu-block:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x214/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$parse-mu-block:abort:
+    # error("'{' or '}' should be on its own line, but got '")
+    (write-buffered *(ebp+0x18) "'{' or '}' should be on its own line, but got '")
+    (rewind-stream %ecx)
+    (write-stream-data *(ebp+0x18) %ecx)
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+new-block-name:  # fn: (addr function), out: (addr handle var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # var n/ecx: int = len(fn->name) + 10 for an int + 2 for '$:'
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    8b/-> *eax 0/r32/eax  # String-size
+    05/add-to-eax 0xd/imm32  # 10 + 2 for '$:'
+    89/<- %ecx 0/r32/eax
+    # var name/edx: (stream byte n)
+    29/subtract-from %esp 1/r32/ecx
+    ff 6/subop/push %ecx
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %edx 4/r32/esp
+    (clear-stream %edx)
+    # eax = fn->name
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    # construct result using Next-block-index (and increment it)
+    (write %edx "$")
+    (write %edx %eax)
+    (write %edx ":")
+    (write-int32-hex %edx *Next-block-index)
+    ff 0/subop/increment *Next-block-index
+    # var s/eax: slice = {name->data, name->data + name->write}  (clobbering edx)
+    # . eax = name->write
+    8b/-> *edx 0/r32/eax
+    # . edx = name->data
+    8d/copy-address *(edx+0xc) 2/r32/edx
+    # . eax = name->write + name->data
+    01/add-to %eax 2/r32/edx
+    # . push {edx, eax}
+    ff 6/subop/push %eax
+    ff 6/subop/push %edx
+    89/<- %eax 4/r32/esp
+    # out = new literal(s)
+    (new-literal Heap %eax *(ebp+0xc))
+#?     8b/-> *(ebp+0xc) 0/r32/eax
+#?     (write-buffered Stderr "type allocid in caller after new-literal: ")
+#?     (write-int32-hex-buffered Stderr *(eax+8))
+#?     (write-buffered Stderr " for var ")
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+$new-block-name:end:
+    # . reclaim locals
+    81 0/subop/add %ecx 0xc/imm32  # name.{read/write/len}
+    81 0/subop/add %ecx 8/imm32  # slice
+    01/add-to %esp 1/r32/ecx
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-no-tokens-left:  # line: (addr stream byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # var s/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    #
+    (next-mu-token *(ebp+8) %ecx)
+    # if slice-empty?(s) return
+    (slice-empty? %ecx)
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $check-no-tokens-left:end/disp8
+    # if (slice-starts-with?(s, '#') return
+    # . eax = *s->start
+    8b/-> *edx 0/r32/eax
+    8a/copy-byte *eax 0/r32/AL
+    81 4/subop/and %eax 0xff/imm32
+    # . if (eax == '#') continue
+    3d/compare-eax-and 0x23/imm32/hash
+    74/jump-if-= $check-no-tokens-left:end/disp8
+    # abort
+    (write-buffered Stderr "'{' or '}' should be on its own line, but got '")
+    (rewind-stream %ecx)
+    (write-stream 2 %ecx)
+    (write-buffered Stderr "'\n")
+    (flush Stderr)
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call syscall_exit/disp32
+    # never gets here
+$check-no-tokens-left:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-mu-named-block:  # name: (addr slice), in: (addr buffered-file), vars: (addr stack live-var), fn: (addr function), out: (addr handle stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var v: (handle var)
+    #   new-literal(name, v)
+    #   push(vars, {v, false})
+    #   parse-mu-block(in, vars, fn, out)
+    #   pop(vars)
+    #   out->tag = block
+    #   out->var = v
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    57/push-edi
+    # var v/ecx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    #
+    (new-literal Heap *(ebp+8) %ecx)
+    # push(vars, v)
+    (push *(ebp+0x10) *ecx)
+    (push *(ebp+0x10) *(ecx+4))
+    (push *(ebp+0x10) 0)  # false
+    #
+    (parse-mu-block *(ebp+0xc) *(ebp+0x10) *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c) *(ebp+0x20))
+    # pop v off vars
+    (pop *(ebp+0x10))  # => eax
+    (pop *(ebp+0x10))  # => eax
+    (pop *(ebp+0x10))  # => eax
+    # var out-addr/edi: (addr stmt) = lookup(*out)
+    8b/-> *(ebp+0x18) 7/r32/edi
+    (lookup *edi *(edi+4))  # => eax
+    89/<- %edi 0/r32/eax
+    # out-addr->tag = named-block
+    c7 0/subop/copy *edi 0/imm32/block  # Stmt-tag
+    # out-addr->var = v
+    8b/-> *ecx 0/r32/eax
+    89/<- *(edi+0xc) 0/r32/eax  # Block-var
+    8b/-> *(ecx+4) 0/r32/eax
+    89/<- *(edi+0x10) 0/r32/eax  # Block-var
+$parse-mu-named-block:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5f/pop-to-edi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-mu-var-def:  # line: (addr stream byte), vars: (addr stack live-var), out: (addr handle stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # edi = out
+    8b/-> *(ebp+0x10) 7/r32/edi
+    # var word-slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # var v/edx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    # v = parse-var-with-type(next-mu-token(line))
+    (next-mu-token *(ebp+8) %ecx)
+    {
+      # just for tests, support null fn
+      8b/-> *(ebp+0x14) 0/r32/eax
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    }
+    (parse-var-with-type %ecx *(ebp+8) %edx %eax *(ebp+0x18) *(ebp+0x1c))
+    # var v-addr/esi: (addr var)
+    (lookup *edx *(edx+4))  # => eax
+    89/<- %esi 0/r32/eax
+    # v->block-depth = *Curr-block-depth
+    8b/-> *Curr-block-depth 0/r32/eax
+    89/<- *(esi+0x10) 0/r32/eax  # Var-block-depth
+    # either v has no register and there's no more to this line
+    81 7/subop/compare *(esi+0x18) 0/imm32
+    {
+      75/jump-if-!= break/disp8
+      # if v-addr->type == byte, abort
+      (lookup *(esi+8) *(esi+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 8)  # byte => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $parse-mu-var-def:error-byte-on-stack/disp32
+      # ensure that there's nothing else on this line
+      (next-mu-token *(ebp+8) %ecx)
+      (slice-empty? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $parse-mu-var-def:error2/disp32
+      #
+      (new-var-def Heap  *edx *(edx+4)  %edi)
+      e9/jump $parse-mu-var-def:update-vars/disp32
+    }
+    # or v has a register and there's more to this line
+    {
+      0f 84/jump-if-= break/disp32
+      # if v-addr->type == byte, check for unsupported registers
+      {
+        (lookup *(esi+8) *(esi+0xc))  # Var-type Var-type => eax
+        (is-simple-mu-type? %eax 8)  # byte => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+        (lookup *(esi+0x18) *(esi+0x1c))  # => eax
+        (string-equal? %eax "esi")  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 85/jump-if-!= $parse-mu-var-def:error-byte-registers/disp32
+        (lookup *(esi+0x18) *(esi+0x1c))  # => eax
+        (string-equal? %eax "edi")  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 85/jump-if-!= $parse-mu-var-def:error-byte-registers/disp32
+      }
+      # TODO: vars of type 'byte' should only be initialized by clearing to 0
+      # ensure that the next word is '<-'
+      (next-mu-token *(ebp+8) %ecx)
+      (slice-equal? %ecx "<-")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $parse-mu-var-def:error1/disp32
+      #
+      (new-reg-var-def Heap  *edx *(edx+4)  %edi)
+      (lookup *edi *(edi+4))  # => eax
+      (add-operation-and-inputs-to-stmt %eax *(ebp+8) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+    }
+$parse-mu-var-def:update-vars:
+    # push 'v' at end of function
+    (push *(ebp+0xc) *edx)
+    (push *(ebp+0xc) *(edx+4))
+    (push *(ebp+0xc) 0)  # Live-var-register-spilled is unused during parsing
+$parse-mu-var-def:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x10/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$parse-mu-var-def:error1:
+    (rewind-stream *(ebp+8))
+    # error("register variable requires a valid instruction to initialize but got '" line "'\n")
+    (write-buffered *(ebp+0x18) "register variable requires a valid instruction to initialize but got '")
+    (flush *(ebp+0x18))
+    (write-stream-data *(ebp+0x18) *(ebp+8))
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$parse-mu-var-def:error2:
+    # error("fn " fn ": var " var ": variables on the stack can't take an initializer\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": var ")
+    # var v-addr/eax: (addr var) = lookup(v)
+    (lookup *edx *(edx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": variables on the stack can't take an initializer\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$parse-mu-var-def:error-byte-on-stack:
+    # error("fn " fn ": var '" var "' of type 'byte' cannot be on the stack\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": var '")
+    # var v-addr/eax: (addr var) = lookup(v)
+    (lookup *edx *(edx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) "' of type 'byte' cannot be on the stack\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$parse-mu-var-def:error-byte-registers:
+    # error("fn " fn ": var '" var "' of type 'byte' cannot be in esi or edi\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": var '")
+    # var v-addr/eax: (addr var) = lookup(v)
+    (lookup *edx *(edx+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) "' of type 'byte' cannot be in esi or edi\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+test-parse-mu-var-def:
+    # 'var n: int'
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "n: int\n")  # caller has consumed the 'var'
+    c7 0/subop/copy *Curr-block-depth 1/imm32
+    # var out/esi: (handle stmt)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    # var vars/ecx: (stack (addr var) 16)
+    81 5/subop/subtract %esp 0xc0/imm32
+    68/push 0xc0/imm32/size
+    68/push 0/imm32/top
+    89/<- %ecx 4/r32/esp
+    (clear-stack %ecx)
+    # convert
+    (parse-mu-var-def _test-input-stream %ecx %esi 0 Stderr 0)
+    # var out-addr/esi: (addr stmt)
+    (lookup *esi *(esi+4))  # => eax
+    89/<- %esi 0/r32/eax
+    #
+    (check-ints-equal *esi 2 "F - test-parse-mu-var-def/tag")  # Stmt-tag is var-def
+    # var v/ecx: (addr var) = lookup(out->var)
+    (lookup *(esi+4) *(esi+8))  # Vardef-var Vardef-var => eax
+    89/<- %ecx 0/r32/eax
+    # v->name
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "n" "F - test-parse-mu-var-def/var-name")
+    # v->register
+    (check-ints-equal *(ecx+0x18) 0 "F - test-parse-mu-var-def/var-register")  # Var-register
+    # v->block-depth
+    (check-ints-equal *(ecx+0x10) 1 "F - test-parse-mu-var-def/output-block-depth")  # Var-block-depth
+    # v->type == int
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-parse-mu-var-def/var-type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-parse-mu-var-def/var-type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-parse-mu-var-def/var-type:2")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-mu-reg-var-def:
+    # 'var n/eax: int <- copy 0'
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "n/eax: int <- copy 0\n")  # caller has consumed the 'var'
+    c7 0/subop/copy *Curr-block-depth 1/imm32
+    # var out/esi: (handle stmt)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    # var vars/ecx: (stack (addr var) 16)
+    81 5/subop/subtract %esp 0xc0/imm32
+    68/push 0xc0/imm32/size
+    68/push 0/imm32/top
+    89/<- %ecx 4/r32/esp
+    (clear-stack %ecx)
+    # convert
+    (parse-mu-var-def _test-input-stream %ecx %esi 0 Stderr 0)
+    # var out-addr/esi: (addr stmt)
+    (lookup *esi *(esi+4))  # => eax
+    89/<- %esi 0/r32/eax
+    #
+    (check-ints-equal *esi 3 "F - test-parse-mu-reg-var-def/tag")  # Stmt-tag is reg-var-def
+    # var v/ecx: (addr var) = lookup(out->outputs->value)
+    # . eax: (addr stmt-var) = lookup(out->outputs)
+    (lookup *(esi+0x14) *(esi+0x18))  # Regvardef-outputs Regvardef-outputs => eax
+    # .
+    (check-ints-equal *(eax+8) 0 "F - test-parse-mu-reg-var-def/single-output")  # Stmt-var-next
+    # . eax: (addr var) = lookup(eax->value)
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    # . ecx = eax
+    89/<- %ecx 0/r32/eax
+    # v->name
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (check-strings-equal %eax "n" "F - test-parse-mu-reg-var-def/output-name")  # Var-name
+    # v->register
+    (lookup *(ecx+0x18) *(ecx+0x1c))  # Var-register Var-register => eax
+    (check-strings-equal %eax "eax" "F - test-parse-mu-reg-var-def/output-register")
+    # v->block-depth
+    (check-ints-equal *(ecx+0x10) 1 "F - test-parse-mu-reg-var-def/output-block-depth")  # Var-block-depth
+    # v->type == int
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    (check-ints-equal *eax 1 "F - test-parse-mu-reg-var-def/output-type:0")  # Type-tree-is-atom
+    (check-ints-equal *(eax+4) 1 "F - test-parse-mu-reg-var-def/output-type:1")  # Type-tree-value
+    (check-ints-equal *(eax+0xc) 0 "F - test-parse-mu-reg-var-def/output-type:2")  # Type-tree-right
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+parse-mu-stmt:  # line: (addr stream byte), vars: (addr stack live-var), fn: (addr function), out: (addr handle stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var name: slice
+    #   allocate(Heap, Stmt-size, out)
+    #   var out-addr: (addr stmt) = lookup(*out)
+    #   out-addr->tag = stmt
+    #   if stmt-has-outputs?(line)
+    #     while true
+    #       name = next-mu-token(line)
+    #       if (name == '<-') break
+    #       assert(is-identifier?(name))
+    #       var v: (handle var) = lookup-var(name, vars)
+    #       out-addr->outputs = append(v, out-addr->outputs)
+    #   add-operation-and-inputs-to-stmt(out-addr, line, vars)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    57/push-edi
+    # var name/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # var is-deref?/edx: boolean = false
+    ba/copy-to-edx 0/imm32/false
+    # var v: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ebx 4/r32/esp
+    #
+    (allocate Heap *Stmt-size *(ebp+0x14))
+    # var out-addr/edi: (addr stmt) = lookup(*out)
+    8b/-> *(ebp+0x14) 7/r32/edi
+    (lookup *edi *(edi+4))  # => eax
+    89/<- %edi 0/r32/eax
+    # out-addr->tag = 1/stmt
+    c7 0/subop/copy *edi 1/imm32/stmt1  # Stmt-tag
+    {
+      (stmt-has-outputs? *(ebp+8))
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      {
+$parse-mu-stmt:read-outputs:
+        # name = next-mu-token(line)
+        (next-mu-token *(ebp+8) %ecx)
+        # if slice-empty?(word-slice) break
+        (slice-empty? %ecx)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 85/jump-if-!= break/disp32
+        # if (name == "<-") break
+        (slice-equal? %ecx "<-")  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 85/jump-if-!= break/disp32
+        # if slice-starts-with?(name, "*") abort
+        8b/-> *ecx 0/r32/eax  # Slice-start
+        8a/copy-byte *eax 0/r32/AL
+        81 4/subop/and %eax 0xff/imm32
+        3d/compare-eax-and 0x2a/imm32/asterisk
+        0f 84/jump-if-= $parse-mu-stmt:error-output-dereferenced/disp32
+        # assert(is-identifier?(name))
+        (is-identifier? %ecx)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 84/jump-if-= $parse-mu-stmt:abort/disp32
+        #
+        (lookup-var %ecx *(ebp+0xc) %ebx *(ebp+0x10) *(ebp+0x18) *(ebp+0x1c))
+        8d/copy-address *(edi+0x14) 0/r32/eax  # Stmt1-outputs
+        (append-stmt-var Heap  *ebx *(ebx+4)  *(edi+0x14) *(edi+0x18)  0  %eax)  # Stmt1-outputs
+        #
+        e9/jump loop/disp32
+      }
+    }
+    (add-operation-and-inputs-to-stmt %edi *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x18) *(ebp+0x1c))
+$parse-mu-stmt:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x10/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$parse-mu-stmt:abort:
+    # error("invalid identifier '" name "'\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": invalid identifier '")
+    (write-slice-buffered *(ebp+0x18) %ecx)
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$parse-mu-stmt:error-output-dereferenced:
+    # error("invalid identifier '" name "'\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": output '")
+    (write-slice-buffered *(ebp+0x18) %ecx)
+    (write-buffered *(ebp+0x18) "' should write to a register, and therefore cannot be dereferenced\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+add-operation-and-inputs-to-stmt:  # stmt: (addr stmt), line: (addr stream byte), vars: (addr stack live-var), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   stmt->name = slice-to-string(next-mu-token(line))
+    #   while true
+    #     name = next-mu-token(line)
+    #     v = lookup-var-or-literal(name)
+    #     stmt->inouts = append(v, stmt->inouts)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # edi = stmt
+    8b/-> *(ebp+8) 7/r32/edi
+    # var name/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # var is-deref?/edx: boolean = false
+    ba/copy-to-edx 0/imm32/false
+    # var v/esi: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+$add-operation-and-inputs-to-stmt:read-operation:
+    (next-mu-token *(ebp+0xc) %ecx)
+    8d/copy-address *(edi+4) 0/r32/eax  # Stmt1-operation or Regvardef-operationStmt1-operation or Regvardef-operation
+    (slice-to-string Heap %ecx %eax)
+    # var is-get?/ebx: boolean = (name == "get")
+    (slice-equal? %ecx "get")  # => eax
+    89/<- %ebx 0/r32/eax
+    {
+$add-operation-and-inputs-to-stmt:read-inouts:
+      # name = next-mu-token(line)
+      (next-mu-token *(ebp+0xc) %ecx)
+      # if slice-empty?(word-slice) break
+      (slice-empty? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if (name == "<-") abort
+      (slice-equal? %ecx "<-")
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $add-operation-and-inputs-to-stmt:abort/disp32
+      # if (is-get? && second operand) lookup or create offset
+      {
+        81 7/subop/compare %ebx 0/imm32/false
+        74/jump-if-= break/disp8
+        (lookup *(edi+0xc) *(edi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+        3d/compare-eax-and 0/imm32
+        74/jump-if-= break/disp8
+        (lookup-or-create-constant %eax %ecx %esi)
+#?         (lookup *esi *(esi+4))
+#?         (write-buffered Stderr "creating new output var ")
+#?         (write-int32-hex-buffered Stderr %eax)
+#?         (write-buffered Stderr " for field called ")
+#?         (write-slice-buffered Stderr %ecx)
+#?         (write-buffered Stderr "; var name ")
+#?         (lookup *eax *(eax+4))  # Var-name
+#?         (write-buffered Stderr %eax)
+#?         (write-buffered Stderr Newline)
+#?         (flush Stderr)
+        e9/jump $add-operation-and-inputs-to-stmt:save-var/disp32
+      }
+      # is-deref? = false
+      ba/copy-to-edx 0/imm32/false
+      # if (slice-starts-with?(name, '*')) ++name->start and set is-deref?
+      8b/-> *ecx 0/r32/eax  # Slice-start
+      8a/copy-byte *eax 0/r32/AL
+      81 4/subop/and %eax 0xff/imm32
+      3d/compare-eax-and 0x2a/imm32/asterisk
+      {
+        75/jump-if-!= break/disp8
+$add-operation-and-inputs-to-stmt:inout-is-deref:
+        ff 0/subop/increment *ecx
+        ba/copy-to-edx 1/imm32/true
+      }
+      (lookup-var-or-literal %ecx *(ebp+0x10) %esi *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+      # if (is-deref?) some additional checks
+      81 7/subop/compare %edx 0/imm32/false
+      {
+        74/jump-if-= break/disp8
+        # if var is not in register, abort
+        (lookup *esi *(esi+4))  # => eax
+        81 7/subop/compare *(eax+0x18) 0/imm32  # Var-register
+        0f 84/jump-if-= $add-operation-and-inputs-to-stmt:error-deref-on-stack/disp32
+        # if var is not an address, abort
+        (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+        (is-mu-addr-type? %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 84/jump-if-= $add-operation-and-inputs-to-stmt:error-deref-non-addr/disp32
+      }
+$add-operation-and-inputs-to-stmt:save-var:
+      8d/copy-address *(edi+0xc) 0/r32/eax
+      (append-stmt-var Heap  *esi *(esi+4)  *(edi+0xc) *(edi+0x10)  %edx  %eax)  # Stmt1-inouts or Regvardef-inouts
+      #
+      e9/jump loop/disp32
+    }
+$add-operation-and-inputs-to-stmt:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x10/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$add-operation-and-inputs-to-stmt:abort:
+    # error("fn ___: invalid identifier in '" line "'\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (rewind-stream *(ebp+0xc))
+    (write-buffered *(ebp+0x18) ": invalid identifier in '")
+    (write-stream-data *(ebp+0x18) *(ebp+0xc))
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$add-operation-and-inputs-to-stmt:error-deref-on-stack:
+    # error("fn ___: cannot dereference var ___ on stack\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (rewind-stream *(ebp+0xc))
+    (write-buffered *(ebp+0x18) ": cannot dereference var '")
+    (lookup *esi *(esi+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) "' on stack\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$add-operation-and-inputs-to-stmt:error-deref-non-addr:
+    # error("fn ___: cannot dereference non-addr var ___\n")
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (rewind-stream *(ebp+0xc))
+    (write-buffered *(ebp+0x18) ": cannot dereference non-addr var '")
+    (lookup *esi *(esi+4))  # => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+stmt-has-outputs?:  # line: (addr stream byte) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var word-slice/ecx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %ecx 4/r32/esp
+    # result = false
+    b8/copy-to-eax 0/imm32/false
+    (rewind-stream *(ebp+8))
+    {
+      (next-mu-token *(ebp+8) %ecx)
+      # if slice-empty?(word-slice) break
+      (slice-empty? %ecx)
+      3d/compare-eax-and 0/imm32/false
+      b8/copy-to-eax 0/imm32/false/result  # restore result (if we're here it's still false)
+      0f 85/jump-if-!= break/disp32
+      # if slice-starts-with?(word-slice, '#') break
+      # . eax = *word-slice->start
+      8b/-> *ecx 0/r32/eax
+      8a/copy-byte *eax 0/r32/AL
+      81 4/subop/and %eax 0xff/imm32
+      # . if (eax == '#') break
+      3d/compare-eax-and 0x23/imm32/hash
+      b8/copy-to-eax 0/imm32/false/result  # restore result (if we're here it's still false)
+      0f 84/jump-if-= break/disp32
+      # if slice-equal?(word-slice, '<-') return true
+      (slice-equal? %ecx "<-")
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= loop/disp8
+      b8/copy-to-eax 1/imm32/true
+    }
+$stmt-has-outputs:end:
+    (rewind-stream *(ebp+8))
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# if 'name' starts with a digit, create a new literal var for it
+# otherwise return first 'name' from the top (back) of 'vars' and abort if not found
+lookup-var-or-literal:  # name: (addr slice), vars: (addr stack live-var), out: (addr handle var), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # esi = name
+    8b/-> *(ebp+8) 6/r32/esi
+    # if slice-empty?(name) abort
+    (slice-empty? %esi)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $lookup-var-or-literal:abort/disp32
+    # var c/ecx: byte = *name->start
+    8b/-> *esi 1/r32/ecx
+    8a/copy-byte *ecx 1/r32/CL
+    81 4/subop/and %ecx 0xff/imm32
+    # if (is-decimal-digit?(c) || c == '-') return new var(name)
+    {
+      81 7/subop/compare %ecx 0x2d/imm32/dash
+      74/jump-if-= $lookup-var-or-literal:literal/disp8
+      (is-decimal-digit? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$lookup-var-or-literal:literal:
+      (new-literal-integer Heap %esi *(ebp+0x10) *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+      eb/jump $lookup-var-or-literal:end/disp8
+    }
+    # else if (c == '"') return new var(name)
+    {
+      81 7/subop/compare %ecx 0x22/imm32/dquote
+      75/jump-if-!= break/disp8
+$lookup-var-or-literal:literal-string:
+      (new-literal-string Heap %esi *(ebp+0x10))
+      eb/jump $lookup-var-or-literal:end/disp8
+    }
+    # otherwise return lookup-var(name, vars)
+    {
+$lookup-var-or-literal:var:
+      (lookup-var %esi *(ebp+0xc) *(ebp+0x10) *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+    }
+$lookup-var-or-literal:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$lookup-var-or-literal:abort:
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": empty variable!")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+# return first 'name' from the top (back) of 'vars' and abort if not found
+lookup-var:  # name: (addr slice), vars: (addr stack live-var), out: (addr handle var), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    #
+    (lookup-var-helper *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+    # if (*out == 0) abort
+    8b/-> *(ebp+0x10) 0/r32/eax
+    81 7/subop/compare *eax 0/imm32
+    74/jump-if-= $lookup-var:abort/disp8
+$lookup-var:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$lookup-var:abort:
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": unknown variable '")
+    (write-slice-buffered *(ebp+0x18) *(ebp+8))
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+# return first 'name' from the top (back) of 'vars', and 0/null if not found
+# ensure that 'name' if in a register is the topmost variable in that register
+lookup-var-helper:  # name: (addr slice), vars: (addr stack live-var), out: (addr handle var), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var curr: (addr handle var) = &vars->data[vars->top - 12]
+    #   var min = vars->data
+    #   while curr >= min
+    #     var v: (handle var) = *curr
+    #     if v->name == name
+    #       return
+    #     curr -= 12
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # clear out
+    (zero-out *(ebp+0x10) *Handle-size)
+    # esi = vars
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # ebx = vars->top
+    8b/-> *esi 3/r32/ebx
+    # if (vars->top > vars->size) abort
+    3b/compare<- *(esi+4) 0/r32/eax
+    0f 8f/jump-if-> $lookup-var-helper:error1/disp32
+    # var min/edx: (addr handle var) = vars->data
+    8d/copy-address *(esi+8) 2/r32/edx
+    # var curr/ebx: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(esi+ebx-4) 3/r32/ebx  # vars + 8 + vars->type - 12
+    # var var-in-reg/edi: 16 addrs
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edi 4/r32/esp
+    {
+$lookup-var-helper:loop:
+      # if (curr < min) return
+      39/compare %ebx 2/r32/edx
+      0f 82/jump-if-addr< break/disp32
+      # var v/ecx: (addr var) = lookup(*curr)
+      (lookup *ebx *(ebx+4))  # => eax
+      89/<- %ecx 0/r32/eax
+      # var vn/eax: (addr array byte) = lookup(v->name)
+      (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+      # if (vn == name) return curr
+      (slice-equal? *(ebp+8) %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        74/jump-if-= break/disp8
+$lookup-var-helper:found:
+        # var vr/eax: (addr array byte) = lookup(v->register)
+        (lookup *(ecx+0x18) *(ecx+0x1c))  # Var-register Var-register => eax
+        3d/compare-eax-and 0/imm32
+        {
+          74/jump-if-= break/disp8
+$lookup-var-helper:found-register:
+          # var reg/eax: int = get(Registers, vr)
+          (get Mu-registers-unique %eax 0xc "Mu-registers-unique")  # => eax
+          8b/-> *eax 0/r32/eax
+          # if (var-in-reg[reg]) error
+          8b/-> *(edi+eax<<2) 0/r32/eax
+          3d/compare-eax-and 0/imm32
+          0f 85/jump-if-!= $lookup-var-helper:error2/disp32
+        }
+$lookup-var-helper:return:
+        # esi = out
+        8b/-> *(ebp+0x10) 6/r32/esi
+        # *out = *curr
+        8b/-> *ebx 0/r32/eax
+        89/<- *esi 0/r32/eax
+        8b/-> *(ebx+4) 0/r32/eax
+        89/<- *(esi+4) 0/r32/eax
+        # return
+        eb/jump $lookup-var-helper:end/disp8
+      }
+      # 'name' not yet found; update var-in-reg if v in register
+      # . var vr/eax: (addr array byte) = lookup(v->register)
+      (lookup *(ecx+0x18) *(ecx+0x1c))  # Var-register Var-register => eax
+      # . if (vr == 0) continue
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= $lookup-var-helper:continue/disp8
+      # . var reg/eax: int = get(Registers, vr)
+      (get Mu-registers-unique %eax 0xc "Mu-registers-unique")  # => eax
+      8b/-> *eax 0/r32/eax
+      # . var-in-reg[reg] = v
+      89/<- *(edi+eax<<2) 1/r32/ecx
+$lookup-var-helper:continue:
+      # curr -= 12
+      81 5/subop/subtract %ebx 0xc/imm32
+      e9/jump loop/disp32
+    }
+$lookup-var-helper:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x40/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$lookup-var-helper:error1:
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": malformed stack when looking up '")
+    (write-slice-buffered *(ebp+0x18) *(ebp+8))
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+$lookup-var-helper:error2:
+    # eax contains the conflicting var at this point
+    (write-buffered *(ebp+0x18) "fn ")
+    50/push-eax
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    58/pop-eax
+    (write-buffered *(ebp+0x18) ": register ")
+    50/push-eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    (write-buffered *(ebp+0x18) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0x18) " reads var '")
+    (write-slice-buffered *(ebp+0x18) *(ebp+8))
+    (write-buffered *(ebp+0x18) "' after writing var '")
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) "'\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+dump-vars:  # vars: (addr stack live-var)
+    # pseudocode:
+    #   var curr: (addr handle var) = &vars->data[vars->top - 12]
+    #   var min = vars->data
+    #   while curr >= min
+    #     var v: (handle var) = *curr
+    #     print v
+    #     curr -= 12
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = vars
+    8b/-> *(ebp+8) 6/r32/esi
+    # ebx = vars->top
+    8b/-> *esi 3/r32/ebx
+    # var min/edx: (addr handle var) = vars->data
+    8d/copy-address *(esi+8) 2/r32/edx
+    # var curr/ebx: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(esi+ebx-4) 3/r32/ebx  # vars + 8 + vars->type - 12
+    {
+$dump-vars:loop:
+      # if (curr < min) return
+      39/compare %ebx 2/r32/edx
+      0f 82/jump-if-addr< break/disp32
+      #
+      (write-buffered Stderr "  var@")
+      (dump-var 2 %ebx)
+      # curr -= 12
+      81 5/subop/subtract %ebx 0xc/imm32
+      e9/jump loop/disp32
+    }
+$dump-vars:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+# Like Registers, but no esp or ebp
+Mu-registers:  # (addr stream {(handle array byte), int})
+  # a table is a stream
+  0xa8/imm32/write
+  0/imm32/read
+  0xa8/imm32/length
+  # data
+  # general-purpose registers
+  # it is perfectly ok to use fake alloc-ids -- as long as you never try to reclaim them
+  0x11/imm32/alloc-id $Mu-register-eax/imm32 0/imm32
+  0x11/imm32/alloc-id $Mu-register-ecx/imm32 1/imm32
+  0x11/imm32/alloc-id $Mu-register-edx/imm32 2/imm32
+  0x11/imm32/alloc-id $Mu-register-ebx/imm32 3/imm32
+  0x11/imm32/alloc-id $Mu-register-esi/imm32 6/imm32
+  0x11/imm32/alloc-id $Mu-register-edi/imm32 7/imm32
+  # floating-point registers
+  0x11/imm32/alloc-id $Mu-register-xmm0/imm32 0/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm1/imm32 1/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm2/imm32 2/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm3/imm32 3/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm4/imm32 4/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm5/imm32 5/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm6/imm32 6/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm7/imm32 7/imm32
+
+# Like Mu-registers, but with unique codes for integer and floating-point
+# registers.
+# Don't use this for code-generation, only for checking.
+Mu-registers-unique:  # (addr stream {(handle array byte), int})
+  # a table is a stream
+  0xa8/imm32/write
+  0/imm32/read
+  0xa8/imm32/length
+  # data
+  # general-purpose registers
+  0x11/imm32/alloc-id $Mu-register-eax/imm32 0/imm32
+  0x11/imm32/alloc-id $Mu-register-ecx/imm32 1/imm32
+  0x11/imm32/alloc-id $Mu-register-edx/imm32 2/imm32
+  0x11/imm32/alloc-id $Mu-register-ebx/imm32 3/imm32
+  0x11/imm32/alloc-id $Mu-register-esi/imm32 6/imm32
+  0x11/imm32/alloc-id $Mu-register-edi/imm32 7/imm32
+  # floating-point registers
+  0x11/imm32/alloc-id $Mu-register-xmm0/imm32 8/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm1/imm32 9/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm2/imm32 0xa/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm3/imm32 0xb/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm4/imm32 0xc/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm5/imm32 0xd/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm6/imm32 0xe/imm32
+  0x11/imm32/alloc-id $Mu-register-xmm7/imm32 0xf/imm32
+
+$Mu-register-eax:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x61/a 0x78/x
+
+$Mu-register-ecx:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x63/c 0x78/x
+
+$Mu-register-edx:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x64/d 0x78/x
+
+$Mu-register-ebx:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x62/b 0x78/x
+
+$Mu-register-esi:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x73/s 0x69/i
+
+$Mu-register-edi:
+  0x11/imm32/alloc-id
+  3/imm32/size
+  0x65/e 0x64/d 0x69/i
+
+$Mu-register-xmm0:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm0"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x30/0
+
+$Mu-register-xmm1:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm1"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x31/1
+
+$Mu-register-xmm2:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm2"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x32/2
+
+$Mu-register-xmm3:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm3"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x33/3
+
+$Mu-register-xmm4:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm4"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x34/4
+
+$Mu-register-xmm5:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm5"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x35/5
+
+$Mu-register-xmm6:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm6"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x36/6
+
+$Mu-register-xmm7:
+  0x11/imm32/alloc-id:fake:payload
+  # "xmm7"
+  0x4/imm32/size
+  0x78/x 0x6d/m 0x6d/m 0x37/7
+
+== code
+
+# push 'out' to 'vars' if not already there; it's assumed to be a fn output
+maybe-define-var:  # out: (handle var), vars: (addr stack live-var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # var out-addr/eax: (addr var)
+    (lookup *(ebp+8) *(ebp+0xc))  # => eax
+    #
+    (binding-exists? %eax *(ebp+0x10))  # => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $maybe-define-var:end/disp8
+    # otherwise update vars
+    (push *(ebp+0x10) *(ebp+8))
+    (push *(ebp+0x10) *(ebp+0xc))
+    (push *(ebp+0x10) 0)  # 'out' is always a fn output; never spill it
+$maybe-define-var:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# simpler version of lookup-var-helper
+binding-exists?:  # target: (addr var), vars: (addr stack live-var) -> result/eax: boolean
+    # pseudocode:
+    #   var curr: (addr handle var) = &vars->data[vars->top - 12]
+    #   var min = vars->data
+    #   while curr >= min
+    #     var v: (handle var) = *curr
+    #     if v->name == target->name
+    #       return true
+    #     curr -= 12
+    #   return false
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # var target-name/ecx: (addr array byte) = lookup(target->name)
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    89/<- %ecx 0/r32/eax
+    # esi = vars
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # eax = vars->top
+    8b/-> *esi 0/r32/eax
+    # var min/edx: (addr handle var) = vars->data
+    8d/copy-address *(esi+8) 2/r32/edx
+    # var curr/esi: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(esi+eax-4) 6/r32/esi  # vars + 8 + vars->type - 12
+    {
+$binding-exists?:loop:
+      # if (curr < min) return
+      39/compare %esi 2/r32/edx
+      0f 82/jump-if-addr< break/disp32
+      # var v/eax: (addr var) = lookup(*curr)
+      (lookup *esi *(esi+4))  # => eax
+      # var vn/eax: (addr array byte) = lookup(v->name)
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      # if (vn == target-name) return true
+      (string-equal? %ecx %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= $binding-exists?:end/disp8  # eax already contains true
+      # curr -= 12
+      81 5/subop/subtract %esi 0xc/imm32
+      e9/jump loop/disp32
+    }
+    b8/copy-to-eax 0/imm32/false
+$binding-exists?:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-mu-stmt:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "increment n\n")
+    # var vars/ecx: (stack (addr var) 16)
+    81 5/subop/subtract %esp 0xc0/imm32
+    68/push 0xc0/imm32/size
+    68/push 0/imm32/top
+    89/<- %ecx 4/r32/esp
+    (clear-stack %ecx)
+    # var v/edx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    # var s/eax: (handle array byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %eax 4/r32/esp
+    # v = new var("n")
+    (copy-array Heap "n" %eax)
+    (new-var Heap *eax *(eax+4) %edx)
+    #
+    (push %ecx *edx)
+    (push %ecx *(edx+4))
+    (push %ecx 0)
+    # var out/eax: (handle stmt)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %eax 4/r32/esp
+    # convert
+    (parse-mu-stmt _test-input-stream %ecx 0 %eax Stderr 0)
+    # var out-addr/edx: (addr stmt) = lookup(*out)
+    (lookup *eax *(eax+4))  # => eax
+    89/<- %edx 0/r32/eax
+    # out->tag
+    (check-ints-equal *edx 1 "F - test-parse-mu-stmt/tag")  # Stmt-tag is Stmt1
+    # out->operation
+    (lookup *(edx+4) *(edx+8))  # Stmt1-operation Stmt1-operation => eax
+    (check-strings-equal %eax "increment" "F - test-parse-mu-stmt/name")  # Stmt1-operation
+    # out->inouts->value->name
+    # . eax = out->inouts
+    (lookup *(edx+0xc) *(edx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    # . eax = out->inouts->value
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    # . eax = out->inouts->value->name
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    # .
+    (check-strings-equal %eax "n" "F - test-parse-mu-stmt/inout:0")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-mu-stmt-with-comma:
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    8b/-> *Primitive-type-ids 0/r32/eax
+    89/<- *Type-id 0/r32/eax  # stream-write
+    (clear-stream _test-input-stream)
+    (write _test-input-stream "copy-to n, 3\n")
+    # var vars/ecx: (stack (addr var) 16)
+    81 5/subop/subtract %esp 0xc0/imm32
+    68/push 0xc0/imm32/size
+    68/push 0/imm32/top
+    89/<- %ecx 4/r32/esp
+    (clear-stack %ecx)
+    # var v/edx: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edx 4/r32/esp
+    # var s/eax: (handle array byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %eax 4/r32/esp
+    # v = new var("n")
+    (copy-array Heap "n" %eax)
+    (new-var Heap *eax *(eax+4) %edx)
+    #
+    (push %ecx *edx)
+    (push %ecx *(edx+4))
+    (push %ecx 0)
+    # var out/eax: (handle stmt)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %eax 4/r32/esp
+    # convert
+    (parse-mu-stmt _test-input-stream %ecx 0 %eax Stderr 0)
+    # var out-addr/edx: (addr stmt) = lookup(*out)
+    (lookup *eax *(eax+4))  # => eax
+    89/<- %edx 0/r32/eax
+    # out->tag
+    (check-ints-equal *edx 1 "F - test-parse-mu-stmt-with-comma/tag")  # Stmt-tag is Stmt1
+    # out->operation
+    (lookup *(edx+4) *(edx+8))  # Stmt1-operation Stmt1-operation => eax
+    (check-strings-equal %eax "copy-to" "F - test-parse-mu-stmt-with-comma/name")  # Stmt1-operation
+    # out->inouts->value->name
+    # . eax = out->inouts
+    (lookup *(edx+0xc) *(edx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    # . eax = out->inouts->value
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    # . eax = out->inouts->value->name
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    # .
+    (check-strings-equal %eax "n" "F - test-parse-mu-stmt-with-comma/inout:0")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+new-var:  # ad: (addr allocation-descriptor), name: (handle array byte), out: (addr handle var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # ecx = out
+    8b/-> *(ebp+0x14) 1/r32/ecx
+    #
+    (allocate *(ebp+8) *Var-size %ecx)
+    # var out-addr/eax: (addr var)
+    (lookup *ecx *(ecx+4))  # => eax
+    # out-addr->name = name
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    89/<- *eax 1/r32/ecx  # Var-name
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    89/<- *(eax+4) 1/r32/ecx  # Var-name
+#?     (write-buffered Stderr "var ")
+#?     (lookup *(ebp+0xc) *(ebp+0x10))
+#?     (write-buffered Stderr %eax)
+#?     (write-buffered Stderr " at ")
+#?     8b/-> *(ebp+0x14) 1/r32/ecx
+#?     (lookup *ecx *(ecx+4))  # => eax
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+$new-var:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# WARNING: modifies name
+new-literal-integer:  # ad: (addr allocation-descriptor), name: (addr slice), out: (addr handle var), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # first strip out metadata
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    (next-token-from-slice *ecx *(ecx+4) 0x2f *(ebp+0xc))
+    # if (!is-hex-int?(name)) abort
+    (is-hex-int? *(ebp+0xc))  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $new-literal-integer:abort/disp32
+    # a little more error-checking
+    (check-mu-hex-int *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+    # out = new var(s)
+    (new-var-from-slice *(ebp+8) *(ebp+0xc) *(ebp+0x10))
+    # var out-addr/ecx: (addr var) = lookup(*out)
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    89/<- %ecx 0/r32/eax
+    # out-addr->block-depth = *Curr-block-depth
+    8b/-> *Curr-block-depth 0/r32/eax
+    89/<- *(ecx+0x10) 0/r32/eax  # Var-block-depth
+    # out-addr->type = new tree()
+    8d/copy-address *(ecx+8) 0/r32/eax  # Var-type
+    (allocate *(ebp+8) *Type-tree-size %eax)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    c7 0/subop/copy *eax 1/imm32/true  # Type-tree-is-atom
+    # nothing else to do; default type is 'literal'
+$new-literal-integer:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$new-literal-integer:abort:
+    (write-buffered *(ebp+0x18) "fn ")
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x18) %eax)
+    (write-buffered *(ebp+0x18) ": variable '")
+    (write-slice-buffered *(ebp+0x18) *(ebp+0xc))
+    (write-buffered *(ebp+0x18) "' cannot begin with a digit (or do you have a typo in a number?)\n")
+    (flush *(ebp+0x18))
+    (stop *(ebp+0x1c) 1)
+    # never gets here
+
+# precondition: name is a valid hex integer; require a '0x' prefix
+check-mu-hex-int:  # name: (addr slice), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # ecx = name
+    8b/-> *(ebp+8) 1/r32/ecx
+    # var start/edx: (addr byte) = name->start
+    8b/-> *ecx 2/r32/edx
+    # if (*start == '-') ++start
+    b8/copy-to-eax 0/imm32
+    8a/copy-byte *edx 0/r32/AL
+    3d/compare-eax-and 0x2d/imm32/dash
+    {
+      75/jump-if-!= break/disp8
+      42/increment-edx
+    }
+    # var end/ecx: (addr byte) = name->end
+    8b/-> *(ecx+4) 1/r32/ecx
+    # var len/eax: int = name->end - name->start
+    89/<- %eax 1/r32/ecx
+    29/subtract-from %eax 2/r32/edx
+    # if (len <= 1) return
+    3d/compare-eax-with 1/imm32
+    0f 8e/jump-if-<= $check-mu-hex-int:end/disp32
+$check-mu-hex-int:length->-1:
+    # if slice-starts-with?({start, end}, "0x") return
+    # . var tmp = {start, end}
+    51/push-ecx
+    52/push-edx
+    89/<- %eax 4/r32/esp
+    # .
+    (slice-starts-with? %eax "0x")  # => eax
+    # . reclaim tmp
+    81 0/subop/add %esp 8/imm32
+    # .
+    3d/compare-eax-with 0/imm32/false
+    75/jump-if-!= $check-mu-hex-int:end/disp8
+$check-mu-hex-int:abort:
+    # otherwise abort
+    (write-buffered *(ebp+0xc) "literal integers are always hex in Mu; start '")
+    (write-slice-buffered *(ebp+0xc) *(ebp+8))
+    (write-buffered *(ebp+0xc) "' with a '0x' to be unambiguous, converting it to hexadecimal as necessary.\n")
+    (flush *(ebp+0xc))
+    (stop *(ebp+0x10) 1)
+$check-mu-hex-int:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+new-literal:  # ad: (addr allocation-descriptor), name: (addr slice), out: (addr handle var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # var s/ecx: (handle array byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # s = slice-to-string(name)
+    (slice-to-string Heap *(ebp+0xc) %ecx)
+    # allocate to out
+    (new-var *(ebp+8) *ecx *(ecx+4) *(ebp+0x10))
+    # var out-addr/ecx: (addr var) = lookup(*out)
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    (lookup *ecx *(ecx+4))  # => eax
+    89/<- %ecx 0/r32/eax
+    # out-addr->block-depth = *Curr-block-depth
+    8b/-> *Curr-block-depth 0/r32/eax
+    89/<- *(ecx+0x10) 0/r32/eax  # Var-block-depth
+    # out-addr->type/eax = new type
+    8d/copy-address *(ecx+8) 0/r32/eax  # Var-type
+    (allocate *(ebp+8) *Type-tree-size %eax)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    # nothing else to do; default type is 'literal'
+    c7 0/subop/copy *eax 1/imm32/true  # Type-tree-is-atom
+$new-literal:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+new-literal-string:  # ad: (addr allocation-descriptor), name: (addr slice), out: (addr handle var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # var s/ecx: (handle array byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # s = slice-to-string(name)
+    (slice-to-string Heap *(ebp+0xc) %ecx)
+    # allocate to out
+    (new-var *(ebp+8) *ecx *(ecx+4) *(ebp+0x10))
+    # var out-addr/ecx: (addr var) = lookup(*out)
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    (lookup *ecx *(ecx+4))  # => eax
+    89/<- %ecx 0/r32/eax
+    # out-addr->block-depth = *Curr-block-depth
+    8b/-> *Curr-block-depth 0/r32/eax
+    89/<- *(ecx+0x10) 0/r32/eax  # Var-block-depth
+    # out-addr->type/eax = new type
+    8d/copy-address *(ecx+8) 0/r32/eax  # Var-type
+    (allocate *(ebp+8) *Type-tree-size %eax)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    # out-addr->type->value = literal-string
+    c7 0/subop/copy *(eax+4) 0x10/imm32/type-id-string-literal  # Type-tree-value
+    # out-addr->type->is-atom? = true
+    c7 0/subop/copy *eax 1/imm32/true  # Type-tree-is-atom
+$new-literal-string:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+new-var-from-slice:  # ad: (addr allocation-descriptor), name: (addr slice), out: (addr handle var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var tmp/ecx: (handle array byte)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # tmp = slice-to-string(name)
+    (slice-to-string Heap *(ebp+0xc) %ecx)
+    # out = new-var(tmp)
+    (new-var *(ebp+8) *ecx *(ecx+4) *(ebp+0x10))
+$new-var-from-slice:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+new-var-def:  # ad: (addr allocation-descriptor), var: (handle var), out: (addr handle stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    #
+    (allocate *(ebp+8) *Stmt-size *(ebp+0x14))
+    # var out-addr/eax: (addr stmt) = lookup(*out)
+    8b/-> *(ebp+0x14) 0/r32/eax
+    (lookup *eax *(eax+4))  # => eax
+    # out-addr->tag = stmt
+    c7 0/subop/copy *eax 2/imm32/tag/var-on-stack  # Stmt-tag
+    # result->var = var
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    89/<- *(eax+4) 1/r32/ecx  # Vardef-var
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    89/<- *(eax+8) 1/r32/ecx  # Vardef-var
+$new-var-def:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+new-reg-var-def:  # ad: (addr allocation-descriptor), var: (handle var), out: (addr handle stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # eax = out
+    8b/-> *(ebp+0x14) 0/r32/eax
+    #
+    (allocate *(ebp+8) *Stmt-size %eax)
+    # var out-addr/eax: (addr stmt) = lookup(*out)
+    (lookup *eax *(eax+4))  # => eax
+    # set tag
+    c7 0/subop/copy *eax 3/imm32/tag/var-in-register  # Stmt-tag
+    # set output
+    8d/copy-address *(eax+0x14) 0/r32/eax  # Regvardef-outputs
+    (append-stmt-var Heap  *(ebp+0xc) *(ebp+0x10)  0 0  0  %eax)
+$new-reg-var-def:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+append-list:  # ad: (addr allocation-descriptor), value: (handle _type), list: (handle list _type), out: (addr handle list _type)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    57/push-edi
+    # edi = out
+    8b/-> *(ebp+0x1c) 7/r32/edi
+    # *out = new list
+    (allocate *(ebp+8) *List-size %edi)
+    # var out-addr/edi: (addr list _type) = lookup(*out)
+    (lookup *edi *(edi+4))  # => eax
+    89/<- %edi 0/r32/eax
+    # out-addr->value = value
+    8b/-> *(ebp+0xc) 0/r32/eax
+    89/<- *edi 0/r32/eax  # List-value
+    8b/-> *(ebp+0x10) 0/r32/eax
+    89/<- *(edi+4) 0/r32/eax  # List-value
+    # if (list == null) return
+    81 7/subop/compare *(ebp+0x14) 0/imm32
+    74/jump-if-= $append-list:end/disp8
+    # otherwise append
+$append-list:non-empty-list:
+    # var curr/eax: (addr list _type) = lookup(list)
+    (lookup *(ebp+0x14) *(ebp+0x18))  # => eax
+    # while (curr->next != null) curr = curr->next
+    {
+      81 7/subop/compare *(eax+8) 0/imm32  # List-next
+      74/jump-if-= break/disp8
+      # curr = lookup(curr->next)
+      (lookup *(eax+8) *(eax+0xc))  # List-next, List-next => eax
+      #
+      eb/jump loop/disp8
+    }
+    # edi = out
+    8b/-> *(ebp+0x1c) 7/r32/edi
+    # curr->next = out
+    8b/-> *edi 1/r32/ecx
+    89/<- *(eax+8) 1/r32/ecx  # List-next
+    8b/-> *(edi+4) 1/r32/ecx
+    89/<- *(eax+0xc) 1/r32/ecx  # List-next
+    # out = list
+    8b/-> *(ebp+0x14) 1/r32/ecx
+    89/<- *edi 1/r32/ecx
+    8b/-> *(ebp+0x18) 1/r32/ecx
+    89/<- *(edi+4) 1/r32/ecx
+$append-list:end:
+    # . restore registers
+    5f/pop-to-edi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+append-stmt-var:  # ad: (addr allocation-descriptor), v: (handle var), vars: (handle stmt-var), is-deref?: boolean, out: (addr handle stmt-var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    57/push-edi
+    # edi = out
+    8b/-> *(ebp+0x20) 7/r32/edi
+    # out = new stmt-var
+    (allocate *(ebp+8) *Stmt-var-size %edi)
+    # var out-addr/ecx: (addr stmt-var) = lookup(*out)
+    (lookup *edi *(edi+4))  # => eax
+    89/<- %ecx 0/r32/eax
+    # out-addr->value = v
+    8b/-> *(ebp+0xc) 0/r32/eax
+    89/<- *ecx 0/r32/eax  # Stmt-var-value
+    8b/-> *(ebp+0x10) 0/r32/eax
+    89/<- *(ecx+4) 0/r32/eax  # Stmt-var-value
+    # out-addr->is-deref? = is-deref?
+    8b/-> *(ebp+0x1c) 0/r32/eax
+    89/<- *(ecx+0x10) 0/r32/eax  # Stmt-var-is-deref
+    # if (vars == null) return result
+    81 7/subop/compare *(ebp+0x14) 0/imm32/null
+    74/jump-if-= $append-stmt-var:end/disp8
+    # otherwise append
+    # var curr/eax: (addr stmt-var) = lookup(vars)
+    (lookup *(ebp+0x14) *(ebp+0x18))  # => eax
+    # while (curr->next != null) curr = curr->next
+    {
+      81 7/subop/compare *(eax+8) 0/imm32  # Stmt-var-next
+      74/jump-if-= break/disp8
+      # curr = lookup(curr->next)
+      (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next, Stmt-var-next => eax
+      #
+      eb/jump loop/disp8
+    }
+    # curr->next = out
+    8b/-> *edi 1/r32/ecx
+    89/<- *(eax+8) 1/r32/ecx  # Stmt-var-next
+    8b/-> *(edi+4) 1/r32/ecx
+    89/<- *(eax+0xc) 1/r32/ecx  # Stmt-var-next
+    # out = vars
+    8b/-> *(ebp+0x14) 1/r32/ecx
+    89/<- *edi 1/r32/ecx
+    8b/-> *(ebp+0x18) 1/r32/ecx
+    89/<- *(edi+4) 1/r32/ecx
+$append-stmt-var:end:
+    # . restore registers
+    5f/pop-to-edi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+append-to-block:  # ad: (addr allocation-descriptor), block: (addr block), x: (handle stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # esi = block
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # block->stmts = append(x, block->stmts)
+    8d/copy-address *(esi+4) 0/r32/eax  # Block-stmts
+    (append-list *(ebp+8)  *(ebp+0x10) *(ebp+0x14)  *(esi+4) *(esi+8)  %eax)  # ad, x, x, Block-stmts, Block-stmts
+$append-to-block:end:
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+## Parsing types
+# We need to create metadata on user-defined types, and we need to use this
+# metadata as we parse instructions.
+# However, we also want to allow types to be used before their definitions.
+# This means we can't ever assume any type data structures exist.
+
+lookup-or-create-constant:  # container: (addr stmt-var), field-name: (addr slice), out: (addr handle var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # var container-type/esi: type-id
+    (container-type *(ebp+8))  # => eax
+    89/<- %esi 0/r32/eax
+    # var tmp/eax: (handle typeinfo) = find-or-create-typeinfo(container-type)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %eax 4/r32/esp
+    (find-or-create-typeinfo %esi %eax)
+    # var tmp-addr/eax: (addr typeinfo) = lookup(tmp)
+    (lookup *eax *(eax+4))  # => eax
+    # result = find-or-create-typeinfo-output-var(typeinfo, field-name)
+#?     (write-buffered Stderr "constant: ")
+#?     (write-slice-buffered Stderr *(ebp+0xc))
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    (find-or-create-typeinfo-output-var %eax *(ebp+0xc) *(ebp+0x10))
+#?     8b/-> *(ebp+0x10) 0/r32/eax
+#?     (write-buffered Stderr "@")
+#?     (lookup *eax *(eax+4))
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (lookup *eax *(eax+4))
+#?     (write-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+#?     (write-buffered Stderr "offset: ")
+#?     8b/-> *(eax+0x14) 0/r32/eax
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+$lookup-or-create-constant:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# if addr var:
+#   container->var->type->right->left->value
+# otherwise
+#   container->var->type->value
+container-type:  # container: (addr stmt-var) -> result/eax: type-id
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    {
+      81 7/subop/compare *(eax+8) 0/imm32  # Type-tree-right
+      74/jump-if-= break/disp8
+      (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    8b/-> *(eax+4) 0/r32/eax  # Type-tree-value
+$container-type:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-container?:  # t: type-id -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    8b/-> *(ebp+8) 0/r32/eax
+    c1/shift 4/subop/left %eax 2/imm8
+    3b/compare 0/r32/eax *Primitive-type-ids
+    0f 9d/set-if->= %al
+    81 4/subop/and %eax 0xff/imm32
+$is-container?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+find-or-create-typeinfo:  # t: type-id, out: (addr handle typeinfo)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    57/push-edi
+    # edi = out
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # var fields/ecx: (handle table (handle array byte) (handle typeinfo-entry))
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # find-typeinfo(t, out)
+    (find-typeinfo *(ebp+8) %edi)
+    {
+      # if (*out != 0) break
+      81 7/subop/compare *edi 0/imm32
+      0f 85/jump-if-!= break/disp32
+$find-or-create-typeinfo:create:
+      # *out = allocate
+      (allocate Heap *Typeinfo-size %edi)
+      # var tmp/eax: (addr typeinfo) = lookup(*out)
+      (lookup *edi *(edi+4))  # => eax
+#?     (write-buffered Stderr "created typeinfo at ")
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (write-buffered Stderr " for type-id ")
+#?     (write-int32-hex-buffered Stderr *(ebp+8))
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+      # tmp->id = t
+      8b/-> *(ebp+8) 2/r32/edx
+      89/<- *eax 2/r32/edx  # Typeinfo-id
+      # tmp->fields = new table
+      # . fields = new table
+      (new-stream Heap 0x40 *Typeinfo-fields-row-size %ecx)
+      # . tmp->fields = fields
+      8b/-> *ecx 2/r32/edx
+      89/<- *(eax+4) 2/r32/edx  # Typeinfo-fields
+      8b/-> *(ecx+4) 2/r32/edx
+      89/<- *(eax+8) 2/r32/edx  # Typeinfo-fields
+      # tmp->next = Program->types
+      8b/-> *_Program-types 1/r32/ecx
+      89/<- *(eax+0x10) 1/r32/ecx  # Typeinfo-next
+      8b/-> *_Program-types->payload 1/r32/ecx
+      89/<- *(eax+0x14) 1/r32/ecx  # Typeinfo-next
+      # Program->types = out
+      8b/-> *edi 1/r32/ecx
+      89/<- *_Program-types 1/r32/ecx
+      8b/-> *(edi+4) 1/r32/ecx
+      89/<- *_Program-types->payload 1/r32/ecx
+    }
+$find-or-create-typeinfo:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+find-typeinfo:  # t: type-id, out: (addr handle typeinfo)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    57/push-edi
+    # ecx = t
+    8b/-> *(ebp+8) 1/r32/ecx
+    # edi = out
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # *out = Program->types
+    8b/-> *_Program-types 0/r32/eax
+    89/<- *edi 0/r32/eax
+    8b/-> *_Program-types->payload 0/r32/eax
+    89/<- *(edi+4) 0/r32/eax
+    {
+$find-typeinfo:loop:
+      # if (*out == 0) break
+      81 7/subop/compare *edi 0/imm32
+      74/jump-if-= break/disp8
+$find-typeinfo:check:
+      # var tmp/eax: (addr typeinfo) = lookup(*out)
+      (lookup *edi *(edi+4))  # => eax
+      # if (tmp->id == t) break
+      39/compare *eax 1/r32/ecx  # Typeinfo-id
+      74/jump-if-= break/disp8
+$find-typeinfo:continue:
+      # *out = tmp->next
+      8b/-> *(eax+0x10) 2/r32/edx  # Typeinfo-next
+      89/<- *edi 2/r32/edx
+      8b/-> *(eax+0x14) 2/r32/edx  # Typeinfo-next
+      89/<- *(edi+4) 2/r32/edx
+      #
+      eb/jump loop/disp8
+    }
+$find-typeinfo:end:
+    # . restore registers
+    5f/pop-to-edi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+find-or-create-typeinfo-output-var:  # T: (addr typeinfo), f: (addr slice), out: (addr handle var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    52/push-edx
+    57/push-edi
+    # var dest/edi: (handle typeinfo-entry)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %edi 4/r32/esp
+    # find-or-create-typeinfo-fields(T, f, dest)
+    (find-or-create-typeinfo-fields *(ebp+8) *(ebp+0xc) %edi)
+    # var dest-addr/edi: (addr typeinfo-entry) = lookup(dest)
+    (lookup *edi *(edi+4))  # => eax
+    89/<- %edi 0/r32/eax
+    # if dest-addr->output-var doesn't exist, create it
+    {
+      81 7/subop/compare *(edi+0xc) 0/imm32  # Typeinfo-entry-output-var
+      0f 85/jump-if-!= break/disp32
+      # dest-addr->output-var = new var(dummy name, type, -1 offset)
+      # . var name/eax: (handle array byte) = "field"
+      68/push 0/imm32
+      68/push 0/imm32
+      89/<- %eax 4/r32/esp
+      (slice-to-string Heap *(ebp+0xc) %eax)
+      # . new var
+      8d/copy-address *(edi+0xc) 2/r32/edx
+      (new-var Heap  *eax *(eax+4)  %edx)
+      # . reclaim name
+      81 0/subop/add %esp 8/imm32
+      # var result/edx: (addr var) = lookup(dest-addr->output-var)
+      (lookup *(edi+0xc) *(edi+0x10))  # => eax
+      89/<- %edx 0/r32/eax
+      # result->type = new constant type
+      8d/copy-address *(edx+8) 0/r32/eax  # Var-type
+      (allocate Heap *Type-tree-size %eax)
+      (lookup *(edx+8) *(edx+0xc))  # => eax
+      c7 0/subop/copy *eax 1/imm32/true  # Type-tree-is-atom
+      c7 0/subop/copy *(eax+4) 6/imm32/constant  # Type-tree-value
+      c7 0/subop/copy *(eax+8) 0/imm32  # Type-tree-left
+      c7 0/subop/copy *(eax+0xc) 0/imm32  # Type-tree-right
+      c7 0/subop/copy *(eax+0x10) 0/imm32  # Type-tree-right
+      # result->offset isn't filled out yet
+      c7 0/subop/copy *(edx+0x14) -1/imm32/uninitialized  # Var-offset
+    }
+    # out = dest-addr->output-var
+    8b/-> *(ebp+0x10) 2/r32/edx
+    8b/-> *(edi+0xc) 0/r32/eax  # Typeinfo-entry-output-var
+    89/<- *edx 0/r32/eax
+    8b/-> *(edi+0x10) 0/r32/eax  # Typeinfo-entry-output-var
+    89/<- *(edx+4) 0/r32/eax
+$find-or-create-typeinfo-output-var:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5a/pop-to-edx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+find-or-create-typeinfo-fields:  # T: (addr typeinfo), f: (addr slice), out: (addr handle typeinfo-entry)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    57/push-edi
+    # eax = lookup(T->fields)
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+4) *(eax+8))  # Typeinfo-fields Typeinfo-fields => eax
+    # edi = out
+    8b/-> *(ebp+0x10) 7/r32/edi
+    # var src/esi: (addr handle typeinfo-entry) = get-or-insert-slice(T->fields, f)
+    (get-or-insert-slice %eax *(ebp+0xc) *Typeinfo-fields-row-size Heap)  # => eax
+    89/<- %esi 0/r32/eax
+    # if src doesn't exist, allocate it
+    {
+      81 7/subop/compare *esi 0/imm32
+      75/jump-if-!= break/disp8
+      (allocate Heap *Typeinfo-entry-size %esi)
+#?       (write-buffered Stderr "handle at ")
+#?       (write-int32-hex-buffered Stderr %esi)
+#?       (write-buffered Stderr ": ")
+#?       (write-int32-hex-buffered Stderr *esi)
+#?       (write-buffered Stderr " ")
+#?       (write-int32-hex-buffered Stderr *(esi+4))
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+#?       (lookup *esi *(esi+4))
+#?       (write-buffered Stderr "created typeinfo fields at ")
+#?       (write-int32-hex-buffered Stderr %esi)
+#?       (write-buffered Stderr " for ")
+#?       (write-int32-hex-buffered Stderr *(ebp+8))
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+    }
+    # *out = src
+    # . *edi = *src
+    8b/-> *esi 0/r32/eax
+    89/<- *edi 0/r32/eax
+    8b/-> *(esi+4) 0/r32/eax
+    89/<- *(edi+4) 0/r32/eax
+$find-or-create-typeinfo-fields:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+populate-mu-type:  # in: (addr stream byte), t: (addr typeinfo), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # pseudocode:
+    #   var line: (stream byte 512)
+    #   curr-index = 0
+    #   while true
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if line->write == 0
+    #       abort
+    #     word-slice = next-mu-token(line)
+    #     if slice-empty?(word-slice)               # end of line
+    #       continue
+    #     if slice-equal?(word-slice, "}")
+    #       break
+    #     var v: (handle var) = parse-var-with-type(word-slice, line)
+    #     var r: (handle typeinfo-fields) = find-or-create-typeinfo-fields(t, word-slice/v->name)
+    #     TODO: ensure that r->first is null
+    #     r->index = curr-index
+    #     curr-index++
+    #     r->input-var = v
+    #     if r->output-var == 0
+    #       r->output-var = new literal
+    #     TODO: ensure nothing else in line
+    # t->total-size-in-bytes = -2 (not yet initialized)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var curr-index: int at *(ebp-4)
+    68/push 0/imm32
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # edi = t
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # var line/ecx: (stream byte 512)
+    81 5/subop/subtract %esp 0x200/imm32
+    68/push 0x200/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %ecx 4/r32/esp
+    # var word-slice/edx: slice
+    68/push 0/imm32/end
+    68/push 0/imm32/start
+    89/<- %edx 4/r32/esp
+    # var v/esi: (handle var)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %esi 4/r32/esp
+    # var r/ebx: (handle typeinfo-entry)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ebx 4/r32/esp
+    {
+$populate-mu-type:line-loop:
+      (clear-stream %ecx)
+      (read-line-buffered *(ebp+8) %ecx)
+      # if (line->write == 0) abort
+      81 7/subop/compare *ecx 0/imm32
+      0f 84/jump-if-= $populate-mu-type:error1/disp32
+#?       # dump line {{{
+#?       (write 2 "parse-mu: ^")
+#?       (write-stream 2 %ecx)
+#?       (write 2 "$\n")
+#?       (rewind-stream %ecx)
+#?       # }}}
+      (next-mu-token %ecx %edx)
+      # if slice-empty?(word-slice) continue
+      (slice-empty? %edx)  # => eax
+      3d/compare-eax-and 0/imm32
+      0f 85/jump-if-!= loop/disp32
+      # if slice-equal?(word-slice, "}") break
+      (slice-equal? %edx "}")
+      3d/compare-eax-and 0/imm32
+      0f 85/jump-if-!= break/disp32
+$populate-mu-type:parse-element:
+      # v = parse-var-with-type(word-slice, first-line)
+      # must do this first to strip the trailing ':' from word-slice before
+      # using it in find-or-create-typeinfo-fields below
+      # TODO: clean up that mutation in parse-var-with-type
+      (type-name *edi)  # Typeinfo-id => eax
+      (parse-var-with-type %edx %ecx %esi %eax *(ebp+0x10) *(ebp+0x14))
+      # if v is an addr, abort
+      (lookup *esi *(esi+4))  # => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-mu-addr-type? %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-type:error2/disp32
+      # if v is an array, abort  (we could support it, but initialization gets complex)
+      (lookup *esi *(esi+4))  # => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-mu-array-type? %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-type:error3/disp32
+      # if v is a byte, abort
+      (lookup *esi *(esi+4))  # => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 8)  # byte => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-type:error4/disp32
+      # if v is a slice, abort
+      (lookup *esi *(esi+4))  # => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 0xc)  # slice => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-type:error5/disp32
+      # if v is a stream, abort  (we could support it, but initialization gets even more complex)
+      (lookup *esi *(esi+4))  # => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-mu-stream-type? %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $populate-mu-type:error6/disp32
+      # var tmp/ecx
+      51/push-ecx
+$populate-mu-type:create-typeinfo-fields:
+      # var r/ebx: (handle typeinfo-entry)
+      (find-or-create-typeinfo-fields %edi %edx %ebx)
+      # r->index = curr-index
+      (lookup *ebx *(ebx+4))  # => eax
+      8b/-> *(ebp-4) 1/r32/ecx
+#?       (write-buffered Stderr "saving index ")
+#?       (write-int32-hex-buffered Stderr %ecx)
+#?       (write-buffered Stderr " at ")
+#?       (write-int32-hex-buffered Stderr %edi)
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      89/<- *(eax+8) 1/r32/ecx  # Typeinfo-entry-index
+      # ++curr-index
+      ff 0/subop/increment *(ebp-4)
+$populate-mu-type:set-input-type:
+      # r->input-var = v
+      8b/-> *esi 1/r32/ecx
+      89/<- *eax 1/r32/ecx  # Typeinfo-entry-input-var
+      8b/-> *(esi+4) 1/r32/ecx
+      89/<- *(eax+4) 1/r32/ecx  # Typeinfo-entry-input-var
+      # restore line
+      59/pop-to-ecx
+      {
+$populate-mu-type:create-output-type:
+        # if (r->output-var == 0) create a new var with some placeholder data
+        81 7/subop/compare *(eax+0xc) 0/imm32  # Typeinfo-entry-output-var
+        75/jump-if-!= break/disp8
+        8d/copy-address *(eax+0xc) 0/r32/eax  # Typeinfo-entry-output-var
+        (new-literal Heap %edx %eax)
+      }
+      e9/jump loop/disp32
+    }
+$populate-mu-type:invalidate-total-size-in-bytes:
+    # Offsets and total size may not be accurate here since we may not yet
+    # have encountered the element types.
+    # We'll recompute them separately after parsing the entire program.
+    c7 0/subop/copy *(edi+0xc) -2/imm32/uninitialized  # Typeinfo-total-size-in-bytes
+$populate-mu-type:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x224/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # reclaim curr-index
+    81 0/subop/add %esp 4/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$populate-mu-type:error1:
+    # error("incomplete type definition '" t->name "'\n")
+    (write-buffered *(ebp+0x10) "incomplete type definition '")
+    (type-name *edi)  # Typeinfo-id => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-type:error2:
+    (write-buffered *(ebp+0x10) "type ")
+    (type-name *edi)  # Typeinfo-id => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": 'addr' elements not allowed\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-type:error3:
+    (write-buffered *(ebp+0x10) "type ")
+    (type-name *edi)  # Typeinfo-id => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": 'array' elements not allowed for now\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-type:error4:
+    (write-buffered *(ebp+0x10) "type ")
+    (type-name *edi)  # Typeinfo-id => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": 'byte' elements not allowed\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-type:error5:
+    (write-buffered *(ebp+0x10) "type ")
+    (type-name *edi)  # Typeinfo-id => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": 'slice' elements not allowed\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$populate-mu-type:error6:
+    (write-buffered *(ebp+0x10) "type ")
+    (type-name *edi)  # Typeinfo-id => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": 'stream' elements not allowed for now\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+type-name:  # index: int -> result/eax: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (index Type-id *(ebp+8))
+$type-name:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+index:  # arr: (addr stream (handle array byte)), index: int -> result/eax: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    56/push-esi
+    # TODO: bounds-check index
+    # esi = arr
+    8b/-> *(ebp+8) 6/r32/esi
+    # eax = index
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # eax = *(arr + 12 + index)
+    8b/-> *(esi+eax<<2+0xc) 0/r32/eax
+$index:end:
+    # . restore registers
+    5e/pop-to-esi
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+#######################################################
+# Compute type sizes
+#######################################################
+
+# Compute the sizes of all user-defined types.
+# We'll need the sizes of their elements, which may be other user-defined
+# types, which we will compute as needed.
+
+# Initially, all user-defined types have their sizes set to -2 (invalid)
+populate-mu-type-sizes:  # err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+$populate-mu-type-sizes:total-sizes:
+    # var curr/eax: (addr typeinfo) = lookup(Program->types)
+    (lookup *_Program-types *_Program-types->payload)  # => eax
+    {
+      # if (curr == null) break
+      3d/compare-eax-and 0/imm32/null
+      74/jump-if-= break/disp8
+      (populate-mu-type-sizes-in-type %eax *(ebp+8) *(ebp+0xc))
+      # curr = lookup(curr->next)
+      (lookup *(eax+0x10) *(eax+0x14))  # Typeinfo-next Typeinfo-next => eax
+      eb/jump loop/disp8
+    }
+$populate-mu-type-sizes:offsets:
+    # curr = *Program->types
+    (lookup *_Program-types *_Program-types->payload)  # => eax
+    {
+      # if (curr == null) break
+      3d/compare-eax-and 0/imm32/null
+      74/jump-if-= break/disp8
+      (populate-mu-type-offsets %eax *(ebp+8) *(ebp+0xc))
+      # curr = curr->next
+      (lookup *(eax+0x10) *(eax+0x14))  # Typeinfo-next Typeinfo-next => eax
+      eb/jump loop/disp8
+    }
+$populate-mu-type-sizes:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# compute sizes of all fields, recursing as necessary
+# sum up all their sizes to arrive at total size
+# fields may be out of order, but that doesn't affect the answer
+populate-mu-type-sizes-in-type:  # T: (addr typeinfo), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # esi = T
+    8b/-> *(ebp+8) 6/r32/esi
+    # if T is already computed, return
+    81 7/subop/compare *(esi+0xc) 0/imm32  # Typeinfo-total-size-in-bytes
+    0f 8d/jump-if->= $populate-mu-type-sizes-in-type:end/disp32
+    # if T is being computed, abort
+    81 7/subop/compare *(esi+0xc) -1/imm32/being-computed  # Typeinfo-total-size-in-bytes
+    0f 84/jump-if-= $populate-mu-type-sizes-in-type:abort/disp32
+    # tag T (-2 to -1) to avoid infinite recursion
+    c7 0/subop/copy *(esi+0xc) -1/imm32/being-computed  # Typeinfo-total-size-in-bytes
+    # var total-size/edi: int = 0
+    bf/copy-to-edi 0/imm32
+    # - for every field, if it's a user-defined type, compute its size
+    # var table/ecx: (addr table (handle array byte) (handle typeinfo-entry)) = lookup(T->fields)
+    (lookup *(esi+4) *(esi+8))  # Typeinfo-fields Typeinfo-fields => eax
+    89/<- %ecx 0/r32/eax
+    # var table-size/edx: int = table->write
+    8b/-> *ecx 2/r32/edx  # stream-write
+    # var curr/ecx: (addr table_row) = table->data
+    8d/copy-address *(ecx+0xc) 1/r32/ecx
+    # var max/edx: (addr table_row) = table->data + table->write
+    8d/copy-address *(ecx+edx) 2/r32/edx
+    {
+$populate-mu-type-sizes-in-type:loop:
+      # if (curr >= max) break
+      39/compare %ecx 2/r32/edx
+      73/jump-if-addr>= break/disp8
+      # var t/eax: (addr typeinfo-entry) = lookup(curr->value)
+      (lookup *(ecx+8) *(ecx+0xc))  # => eax
+      # if (t->input-var == 0) silently ignore it; we'll emit a nice error message while type-checking
+      81 7/subop/compare *eax 0/imm32  # Typeinfo-entry-input-var
+      74/jump-if-= $populate-mu-type-sizes-in-type:end/disp8
+      # compute size of t->input-var
+      (lookup *eax *(eax+4))  # Typeinfo-entry-input-var Typeinfo-entry-input-var => eax
+      (compute-size-of-var %eax *(ebp+0xc) *(ebp+0x10))  # => eax
+      # result += eax
+      01/add-to %edi 0/r32/eax
+      # curr += row-size
+      81 0/subop/add %ecx 0x10/imm32  # Typeinfo-fields-row-size
+      #
+      eb/jump loop/disp8
+    }
+    # - save result
+    89/<- *(esi+0xc) 7/r32/edi  # Typeinfo-total-size-in-bytes
+$populate-mu-type-sizes-in-type:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$populate-mu-type-sizes-in-type:abort:
+    (write-buffered *(ebp+0xc) "cycle in type definitions\n")
+    (flush *(ebp+0xc))
+    (stop *(ebp+0x10) 1)
+    # never gets here
+
+# Analogous to size-of, except we need to compute what size-of can just read
+# off the right data structures.
+compute-size-of-var:  # in: (addr var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . push registers
+    51/push-ecx
+    # var t/ecx: (addr type-tree) = lookup(v->type)
+    8b/-> *(ebp+8) 1/r32/ecx
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if (t->is-atom == false) t = lookup(t->left)
+    {
+      81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+      75/jump-if-!= break/disp8
+      (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ecx 0/r32/eax
+    }
+    # TODO: ensure t is an atom
+    (compute-size-of-type-id *(ecx+4) *(ebp+0xc) *(ebp+0x10))  # Type-tree-value => eax
+$compute-size-of-var:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+compute-size-of-type-id:  # t: type-id, err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var out/ecx: (handle typeinfo)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # eax = t
+    8b/-> *(ebp+8) 0/r32/eax
+    # if t is a literal, return 0
+    3d/compare-eax-and 0/imm32/literal
+    0f 84/jump-if-= $compute-size-of-type-id:end/disp32  # eax changes type from type-id to int
+    # if t is a byte, return 4 (because we don't really support non-multiples of 4)
+    3d/compare-eax-and 8/imm32/byte
+    {
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 4/imm32
+      eb/jump $compute-size-of-type-id:end/disp8
+    }
+    # if t is a handle, return 8
+    3d/compare-eax-and 4/imm32/handle
+    {
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 8/imm32
+      eb/jump $compute-size-of-type-id:end/disp8  # eax changes type from type-id to int
+    }
+    # if t is a slice, return 8
+    3d/compare-eax-and 0xc/imm32/slice
+    {
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 8/imm32
+      eb/jump $compute-size-of-type-id:end/disp8  # eax changes type from type-id to int
+    }
+    # if t is a user-defined type, compute its size
+    # TODO: support non-atom type
+    (find-typeinfo %eax %ecx)
+    {
+      81 7/subop/compare *ecx 0/imm32
+      74/jump-if-= break/disp8
+$compute-size-of-type-id:user-defined:
+      (lookup *ecx *(ecx+4))  # => eax
+      (populate-mu-type-sizes-in-type %eax *(ebp+0xc) *(ebp+0x10))
+      8b/-> *(eax+0xc) 0/r32/eax  # Typeinfo-total-size-in-bytes
+      eb/jump $compute-size-of-type-id:end/disp8
+    }
+    # otherwise return the word size
+    b8/copy-to-eax 4/imm32
+$compute-size-of-type-id:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# at this point we have total sizes for all user-defined types
+# compute offsets for each element
+# complication: fields may be out of order
+populate-mu-type-offsets:  # in: (addr typeinfo), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+#?     (dump-typeinfos "aaa\n")
+    # var curr-offset/edi: int = 0
+    bf/copy-to-edi 0/imm32
+    # var table/ecx: (addr table string_key (handle typeinfo-entry)) = lookup(in->fields)
+    8b/-> *(ebp+8) 1/r32/ecx
+    (lookup *(ecx+4) *(ecx+8))  # Typeinfo-fields Typeinfo-fields => eax
+    89/<- %ecx 0/r32/eax
+    # var num-elems/edx: int = table->write / Typeinfo-fields-row-size
+    8b/-> *ecx 2/r32/edx  # stream-write
+    c1 5/subop/shift-right-logical  %edx 4/imm8
+    # var i/ebx: int = 0
+    bb/copy-to-ebx 0/imm32
+    {
+$populate-mu-type-offsets:loop:
+      39/compare %ebx 2/r32/edx
+      0f 8d/jump-if->= break/disp32
+#?       (write-buffered Stderr "looking up index ")
+#?       (write-int32-hex-buffered Stderr %ebx)
+#?       (write-buffered Stderr " in ")
+#?       (write-int32-hex-buffered Stderr *(ebp+8))
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      # var v/esi: (addr typeinfo-entry)
+      (locate-typeinfo-entry-with-index %ecx %ebx *(ebp+0xc) *(ebp+0x10))  # => eax
+      89/<- %esi 0/r32/eax
+      # if v is null, silently move on; we'll emit a nice error message while type-checking
+      81 7/subop/compare %esi 0/imm32  # Typeinfo-entry-input-var
+      74/jump-if-= $populate-mu-type-offsets:end/disp8
+      # if (v->input-var == 0) silently ignore v; we'll emit a nice error message while type-checking
+      81 7/subop/compare *esi 0/imm32  # Typeinfo-entry-input-var
+      74/jump-if-= $populate-mu-type-offsets:end/disp8
+      # v->output-var->offset = curr-offset
+      # . eax: (addr var)
+      (lookup *(esi+0xc) *(esi+0x10))  # Typeinfo-entry-output-var Typeinfo-entry-output-var => eax
+      89/<- *(eax+0x14) 7/r32/edi  # Var-offset
+      # curr-offset += size-of(v->input-var)
+      (lookup *esi *(esi+4))  # Typeinfo-entry-input-var Typeinfo-entry-input-var => eax
+      (size-of %eax)  # => eax
+      01/add-to %edi 0/r32/eax
+      # ++i
+      43/increment-ebx
+      e9/jump loop/disp32
+    }
+$populate-mu-type-offsets:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+locate-typeinfo-entry-with-index:  # table: (addr table (handle array byte) (handle typeinfo-entry)), idx: int, err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: (addr typeinfo-entry)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = table
+    8b/-> *(ebp+8) 6/r32/esi
+    # var curr/ecx: (addr row (handle array byte) (handle typeinfo-entry)) = table->data
+    8d/copy-address *(esi+0xc) 1/r32/ecx
+    # var max/edx: (addr byte) = &table->data[table->write]
+    8b/-> *esi 2/r32/edx
+    8d/copy-address *(ecx+edx) 2/r32/edx
+    {
+$locate-typeinfo-entry-with-index:loop:
+      39/compare %ecx 2/r32/edx
+      73/jump-if-addr>= break/disp8
+      # var v/eax: (addr typeinfo-entry)
+      (lookup *(ecx+8) *(ecx+0xc))  # => eax
+      # if (v->index == idx) return v
+      8b/-> *(eax+8) 3/r32/ebx  # Typeinfo-entry-index
+#?       (write-buffered Stderr "comparing ")
+#?       (write-int32-hex-buffered Stderr %ebx)
+#?       (write-buffered Stderr " and ")
+#?       (write-int32-hex-buffered Stderr *(ebp+0xc))
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      39/compare *(ebp+0xc) 3/r32/ebx
+      74/jump-if-= $locate-typeinfo-entry-with-index:end/disp8
+      # curr += Typeinfo-entry-size
+      81 0/subop/add %ecx 0x10/imm32  # Typeinfo-entry-size
+      #
+      eb/jump loop/disp8
+    }
+    # return 0
+    b8/copy-to-eax 0/imm32
+$locate-typeinfo-entry-with-index:end:
+#?     (write-buffered Stderr "returning ")
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+dump-typeinfos:  # hdr: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    #
+    (write-buffered Stderr *(ebp+8))
+    (flush Stderr)
+    # var curr/eax: (addr typeinfo) = lookup(Program->types)
+    (lookup *_Program-types *_Program-types->payload)  # => eax
+    {
+      # if (curr == null) break
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+      (write-buffered Stderr "---\n")
+      (flush Stderr)
+      (dump-typeinfo %eax)
+      # curr = lookup(curr->next)
+      (lookup *(eax+0x10) *(eax+0x14))  # Typeinfo-next Typeinfo-next => eax
+      eb/jump loop/disp8
+    }
+$dump-typeinfos:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+dump-typeinfo:  # in: (addr typeinfo)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = in
+    8b/-> *(ebp+8) 6/r32/esi
+    # var table/ecx: (addr table (handle array byte) (handle typeinfo-entry)) = lookup(T->fields)
+    (lookup *(esi+4) *(esi+8))  # Typeinfo-fields Typeinfo-fields => eax
+    89/<- %ecx 0/r32/eax
+    (write-buffered Stderr "id:")
+    (write-int32-hex-buffered Stderr *esi)
+    (write-buffered Stderr "\n")
+    (write-buffered Stderr "fields @ ")
+    (write-int32-hex-buffered Stderr %ecx)
+    (write-buffered Stderr Newline)
+    (flush Stderr)
+    (write-buffered Stderr "  write: ")
+    (write-int32-hex-buffered Stderr *ecx)
+    (write-buffered Stderr Newline)
+    (flush Stderr)
+    (write-buffered Stderr "  read: ")
+    (write-int32-hex-buffered Stderr *(ecx+4))
+    (write-buffered Stderr Newline)
+    (flush Stderr)
+    (write-buffered Stderr "  size: ")
+    (write-int32-hex-buffered Stderr *(ecx+8))
+    (write-buffered Stderr Newline)
+    (flush Stderr)
+    # var table-size/edx: int = table->write
+    8b/-> *ecx 2/r32/edx  # stream-write
+    # var curr/ecx: (addr table_row) = table->data
+    8d/copy-address *(ecx+0xc) 1/r32/ecx
+    # var max/edx: (addr table_row) = table->data + table->write
+    8d/copy-address *(ecx+edx) 2/r32/edx
+    {
+$dump-typeinfo:loop:
+      # if (curr >= max) break
+      39/compare %ecx 2/r32/edx
+      0f 83/jump-if-addr>= break/disp32
+      (write-buffered Stderr "  row:\n")
+      (write-buffered Stderr "    key: ")
+      (write-int32-hex-buffered Stderr *ecx)
+      (write-buffered Stderr ",")
+      (write-int32-hex-buffered Stderr *(ecx+4))
+      (write-buffered Stderr " = '")
+      (lookup *ecx *(ecx+4))
+      (write-buffered Stderr %eax)
+      (write-buffered Stderr "' @ ")
+      (write-int32-hex-buffered Stderr %eax)
+      (write-buffered Stderr Newline)
+      (flush Stderr)
+      (write-buffered Stderr "    value: ")
+      (write-int32-hex-buffered Stderr *(ecx+8))
+      (write-buffered Stderr ",")
+      (write-int32-hex-buffered Stderr *(ecx+0xc))
+      (write-buffered Stderr " = typeinfo-entry@")
+      (lookup *(ecx+8) *(ecx+0xc))
+      (write-int32-hex-buffered Stderr %eax)
+      (write-buffered Stderr Newline)
+      (flush Stderr)
+      (write-buffered Stderr "        input var@")
+      (dump-var 5 %eax)
+      (lookup *(ecx+8) *(ecx+0xc))
+      (write-buffered Stderr "        index: ")
+      (write-int32-hex-buffered Stderr *(eax+8))
+      (write-buffered Stderr Newline)
+      (flush Stderr)
+      (write-buffered Stderr "        output var@")
+      8d/copy-address *(eax+0xc) 0/r32/eax  # Typeinfo-entry-output-var
+      (dump-var 5 %eax)
+      (flush Stderr)
+      # curr += row-size
+      81 0/subop/add %ecx 0x10/imm32  # Typeinfo-fields-row-size
+      #
+      e9/jump loop/disp32
+    }
+$dump-typeinfo:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+dump-var:  # indent: int, v: (addr handle var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    53/push-ebx
+    # eax = v
+    8b/-> *(ebp+0xc) 0/r32/eax
+    #
+    (write-int32-hex-buffered Stderr *eax)
+    (write-buffered Stderr ",")
+    (write-int32-hex-buffered Stderr *(eax+4))
+    (write-buffered Stderr "->")
+    (lookup *eax *(eax+4))
+    (write-int32-hex-buffered Stderr %eax)
+    (write-buffered Stderr Newline)
+    (flush Stderr)
+    {
+      3d/compare-eax-and 0/imm32
+      0f 84/jump-if-= break/disp32
+      (emit-indent Stderr *(ebp+8))
+      (write-buffered Stderr "name: ")
+      89/<- %ebx 0/r32/eax
+      (write-int32-hex-buffered Stderr *ebx)  # Var-name
+      (write-buffered Stderr ",")
+      (write-int32-hex-buffered Stderr *(ebx+4))  # Var-name
+      (write-buffered Stderr "->")
+      (lookup *ebx *(ebx+4))  # Var-name
+      (write-int32-hex-buffered Stderr %eax)
+      {
+        3d/compare-eax-and 0/imm32
+        74/jump-if-= break/disp8
+        (write-buffered Stderr Space)
+        (write-buffered Stderr %eax)
+      }
+      (write-buffered Stderr Newline)
+      (flush Stderr)
+      (emit-indent Stderr *(ebp+8))
+      (write-buffered Stderr "block depth: ")
+      (write-int32-hex-buffered Stderr *(ebx+0x10))  # Var-block-depth
+      (write-buffered Stderr Newline)
+      (flush Stderr)
+      (emit-indent Stderr *(ebp+8))
+      (write-buffered Stderr "stack offset: ")
+      (write-int32-hex-buffered Stderr *(ebx+0x14))  # Var-offset
+      (write-buffered Stderr Newline)
+      (flush Stderr)
+      (emit-indent Stderr *(ebp+8))
+      (write-buffered Stderr "reg: ")
+      (write-int32-hex-buffered Stderr *(ebx+0x18))  # Var-register
+      (write-buffered Stderr ",")
+      (write-int32-hex-buffered Stderr *(ebx+0x1c))  # Var-register
+      (write-buffered Stderr "->")
+      (flush Stderr)
+      (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register
+      (write-int32-hex-buffered Stderr %eax)
+      {
+        3d/compare-eax-and 0/imm32
+        74/jump-if-= break/disp8
+        (write-buffered Stderr Space)
+        (write-buffered Stderr %eax)
+      }
+      (write-buffered Stderr Newline)
+      (flush Stderr)
+    }
+$dump-var:end:
+    # . restore registers
+    5b/pop-to-ebx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+#######################################################
+# Type-checking
+#######################################################
+
+check-mu-types:  # err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # var curr/eax: (addr function) = lookup(Program->functions)
+    (lookup *_Program-functions *_Program-functions->payload)  # => eax
+    {
+$check-mu-types:loop:
+      # if (curr == null) break
+      3d/compare-eax-and 0/imm32
+      0f 84/jump-if-= break/disp32
+#?       # dump curr->name {{{
+#?       50/push-eax
+#?       (lookup *eax *(eax+4))  # Function-name Function-name => eax
+#?       (write-buffered Stderr %eax)
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+#?       58/pop-to-eax
+#?       # }}}
+      (check-mu-function %eax *(ebp+8) *(ebp+0xc))
+      # curr = lookup(curr->next)
+      (lookup *(eax+0x20) *(eax+0x24))  # Function-next Function-next => eax
+      e9/jump loop/disp32
+    }
+$check-mu-types:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-mu-function:  # fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # esi = f
+    8b/-> *(ebp+8) 6/r32/esi
+    # outputs
+    (lookup *(esi+0x10) *(esi+0x14))  # Function-outputs Function-outputs => eax
+    (check-all-unique-registers %eax %esi *(ebp+0xc) *(ebp+0x10))
+    # body
+    (lookup *(esi+0x18) *(esi+0x1c))  # Function-body Function-body => eax
+    (check-mu-block %eax *(ebp+8) *(ebp+0xc) *(ebp+0x10))
+    # if function has no outputs, we're done
+    81 7/subop/compare *(esi+0x10) 0/imm32
+    74/jump-if-= $check-mu-function:end/disp8
+    # some final checks on body
+    (check-final-stmt-is-return %eax %esi *(ebp+0xc) *(ebp+0x10))
+    (check-no-breaks %eax %esi *(ebp+0xc) *(ebp+0x10))
+$check-mu-function:end:
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-mu-block:  # block: (addr block), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # eax = block
+    8b/-> *(ebp+8) 0/r32/eax
+    # var stmts/eax: (addr list stmt) = lookup(block->statements)
+    (lookup *(eax+4) *(eax+8))  # Block-stmts Block-stmts => eax
+    #
+    {
+$check-mu-block:check-empty:
+      3d/compare-eax-and 0/imm32
+      0f 84/jump-if-= break/disp32
+      # emit block->statements
+      (check-mu-stmt-list %eax *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+    }
+$check-mu-block:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-mu-stmt-list:  # stmts: (addr list stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # esi = stmts
+    8b/-> *(ebp+8) 6/r32/esi
+    {
+$check-mu-stmt-list:loop:
+      81 7/subop/compare %esi 0/imm32
+      0f 84/jump-if-= break/disp32
+      # var curr-stmt/eax: (addr stmt) = lookup(stmts->value)
+      (lookup *esi *(esi+4))  # List-value List-value => eax
+      {
+$check-mu-stmt-list:check-for-block:
+        81 7/subop/compare *eax 0/imm32/block  # Stmt-tag
+        75/jump-if-!= break/disp8
+$check-mu-stmt-list:block:
+        (check-mu-block %eax *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+        eb/jump $check-mu-stmt-list:continue/disp8
+      }
+      {
+$check-mu-stmt-list:check-for-stmt1:
+        81 7/subop/compare *eax 1/imm32/stmt1  # Stmt-tag
+        0f 85/jump-if-!= break/disp32
+$check-mu-stmt-list:stmt1:
+        (check-mu-stmt %eax *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+        eb/jump $check-mu-stmt-list:continue/disp8
+      }
+      {
+$check-mu-stmt-list:check-for-reg-var-def:
+        81 7/subop/compare *eax 3/imm32/reg-var-def  # Stmt-tag
+        0f 85/jump-if-!= break/disp32
+$check-mu-stmt-list:reg-var-def:
+        (check-mu-stmt %eax *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+        eb/jump $check-mu-stmt-list:continue/disp8
+      }
+$check-mu-stmt-list:continue:
+      # TODO: raise an error on unrecognized Stmt-tag
+      (lookup *(esi+8) *(esi+0xc))  # List-next List-next => eax
+      89/<- %esi 0/r32/eax
+      e9/jump loop/disp32
+    }
+$check-mu-stmt-list:end:
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-mu-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # - if stmt's operation matches a primitive, check against it
+    (has-primitive-name? *(ebp+8))  # => eax
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (check-mu-primitive *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-stmt:end/disp32
+    }
+    # - otherwise find a function to check against
+    # var f/eax: (addr function) = lookup(*Program->functions)
+    (lookup *_Program-functions *_Program-functions->payload)  # => eax
+    (find-matching-function %eax *(ebp+8))  # => eax
+    3d/compare-eax-and 0/imm32
+    {
+      74/jump-if-= break/disp8
+      (check-mu-call *(ebp+8) %eax *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      eb/jump $check-mu-stmt:end/disp8
+    }
+    # var f/eax: (addr function) = lookup(*Program->signatures)
+    (lookup *_Program-signatures *_Program-signatures->payload)  # => eax
+    (find-matching-function %eax *(ebp+8))  # => eax
+    3d/compare-eax-and 0/imm32
+    {
+      74/jump-if-= break/disp8
+      (check-mu-call *(ebp+8) %eax *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      eb/jump $check-mu-stmt:end/disp8
+    }
+    # - otherwise abort
+    e9/jump $check-mu-stmt:unknown-call/disp32
+$check-mu-stmt:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-stmt:unknown-call:
+    (write-buffered *(ebp+0x10) "unknown function '")
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+4) *(eax+8))  # Stmt1-operation Stmt1-operation => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "'\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+has-primitive-name?:  # stmt: (addr stmt) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # var name/esi: (addr array byte) = lookup(stmt->operation)
+    8b/-> *(ebp+8) 6/r32/esi
+    (lookup *(esi+4) *(esi+8))  # Stmt1-operation Stmt1-operation => eax
+    89/<- %esi 0/r32/eax
+    # if (name == "return") return true
+    (string-equal? %esi "return")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "get") return true
+    (string-equal? %esi "get")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "index") return true
+    (string-equal? %esi "index")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "length") return true
+    (string-equal? %esi "length")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "compute-offset") return true
+    (string-equal? %esi "compute-offset")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "copy-object") return true
+    (string-equal? %esi "copy-object")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "clear-object") return true
+    (string-equal? %esi "clear-object")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "allocate") return true
+    (string-equal? %esi "allocate")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "populate") return true
+    (string-equal? %esi "populate")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "populate-stream") return true
+    (string-equal? %esi "populate-stream")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "read-from-stream") return true
+    (string-equal? %esi "read-from-stream")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # if (name == "write-to-stream") return true
+    (string-equal? %esi "write-to-stream")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $has-primitive-name?:end/disp32
+    # var curr/ecx: (addr primitive) = Primitives
+    b9/copy-to-ecx Primitives/imm32
+    {
+$has-primitive-name?:loop:
+      # if (curr == null) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # if (primitive->name == name) return true
+      (lookup *ecx *(ecx+4))  # Primitive-name Primitive-name => eax
+#?       (write-buffered Stderr %eax)
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      (string-equal? %esi %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= $has-primitive-name?:end/disp8
+$has-primitive-name?:next-primitive:
+      # curr = curr->next
+      (lookup *(ecx+0x3c) *(ecx+0x40))  # Primitive-next Primitive-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      e9/jump loop/disp32
+    }
+    # return null
+    b8/copy-to-eax 0/imm32
+$has-primitive-name?:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-mu-primitive:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # var op/ecx: (addr array byte) = lookup(stmt->operation)
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+4) *(eax+8))  # Stmt1-operation Stmt1-operation => eax
+    89/<- %ecx 0/r32/eax
+    # if (op == "copy") check-mu-copy-stmt
+    {
+      (string-equal? %ecx "copy")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-copy-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "copy-to") check-mu-copy-to-stmt
+    {
+      (string-equal? %ecx "copy-to")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-copy-to-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "copy-byte") check-mu-copy-byte-stmt
+    {
+      (string-equal? %ecx "copy-byte")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-copy-byte-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "copy-byte-to") check-mu-copy-byte-to-stmt
+    {
+      (string-equal? %ecx "copy-byte-to")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-copy-byte-to-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "compare") check-mu-compare-stmt
+    {
+      (string-equal? %ecx "compare")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-compare-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "address") check-mu-address-stmt
+    {
+      (string-equal? %ecx "address")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-address-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "return") check-mu-return-stmt
+    {
+      (string-equal? %ecx "return")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-return-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "get") check-mu-get-stmt
+    {
+      (string-equal? %ecx "get")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-get-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "index") check-mu-index-stmt
+    {
+      (string-equal? %ecx "index")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-index-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "length") check-mu-length-stmt
+    {
+      (string-equal? %ecx "length")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-length-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "compute-offset") check-mu-compute-offset-stmt
+    {
+      (string-equal? %ecx "compute-offset")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-compute-offset-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "copy-object") check-mu-copy-object-stmt
+    {
+      (string-equal? %ecx "copy-object")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-copy-object-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "clear-object") check-mu-clear-object-stmt
+    {
+      (string-equal? %ecx "clear-object")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-clear-object-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "allocate") check-mu-allocate-stmt
+    {
+      (string-equal? %ecx "allocate")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-allocate-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "populate") check-mu-populate-stmt
+    {
+      (string-equal? %ecx "populate")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-populate-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "populate-stream") check-mu-populate-stream-stmt
+    {
+      (string-equal? %ecx "populate-stream")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-populate-stream-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "read-from-stream") check-mu-read-from-stream-stmt
+    {
+      (string-equal? %ecx "read-from-stream")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-read-from-stream-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "write-to-stream") check-mu-write-to-stream-stmt
+    {
+      (string-equal? %ecx "write-to-stream")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-write-to-stream-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # if (op == "convert") check-mu-convert-stmt
+    {
+      (string-equal? %ecx "convert")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (check-mu-convert-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      e9/jump $check-mu-primitive:end/disp32
+    }
+    # otherwise check-numberlike-stmt
+    (check-mu-numberlike-primitive *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+$check-mu-primitive:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# by default, Mu primitives should only operate on 'number-like' types
+check-mu-numberlike-primitive:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # var gas/ecx: int = 2
+    b9/copy-to-ecx 2/imm32
+    # - check at most 1 output
+    # var output/eax: (addr stmt-var) = stmt->outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    {
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+$check-mu-numberlike-primitive:output:
+      (check-mu-numberlike-output %eax *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+      3d/compare-eax-and 0/imm32
+      0f 85/jump-if-!= $check-mu-numberlike-primitive:error-too-many-outputs/disp32
+      # check output is in a register
+      # --gas
+      49/decrement-ecx
+    }
+    # - check first inout
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    {
+      3d/compare-eax-and 0/imm32
+      0f 84/jump-if-= $check-mu-numberlike-primitive:end/disp32
+$check-mu-numberlike-primitive:first-inout:
+      (check-mu-numberlike-arg %eax *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+      # --gas
+      49/decrement-ecx
+    }
+    # - check second inout
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    {
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= $check-mu-numberlike-primitive:end/disp8
+$check-mu-numberlike-primitive:second-inout:
+      # is a second inout allowed?
+      81 7/subop/compare %ecx 0/imm32
+      0f 84/jump-if-= $check-mu-numberlike-primitive:error-too-many-inouts/disp32
+$check-mu-numberlike-primitive:second-inout-permitted:
+      (check-mu-numberlike-arg %eax *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+    }
+$check-mu-numberlike-primitive:third-inout:
+    # if there's a third arg, raise an error
+    81 7/subop/compare *(eax+8) 0/imm32  # Stmt-var-next
+    0f 85/jump-if-!= $check-mu-numberlike-primitive:error-too-many-inouts/disp32
+$check-mu-numberlike-primitive:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-numberlike-primitive:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt ")
+    (lookup *(esi+4) *(esi+8))  # Stmt1-operation Stmt1-operation => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": too many inouts; most primitives support at most two arguments, across inouts and outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-numberlike-primitive:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt ")
+    (lookup *(esi+4) *(esi+8))  # Stmt1-operation Stmt1-operation => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": too many outputs; most primitives support at most one output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-numberlike-arg:  # v: (addr stmt-var), stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # var t/esi: (addr type-tree) = lookup(v->value->type)
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %esi 0/r32/eax
+$check-mu-numberlike-arg:check-literal:
+    # if t is an int, return
+    (is-simple-mu-type? %esi 0)  # literal => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-numberlike-arg:end/disp32
+$check-mu-numberlike-arg:check-addr:
+    # if t is an addr and v is dereferenced, return whether t->payload is an addr
+    {
+      (is-mu-addr-type? %esi)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      8b/-> *(ebp+8) 0/r32/eax
+      8b/-> *(eax+0x10) 0/r32/eax  # Stmt-var-is-deref
+      3d/compare-eax-and 0/imm32/false
+      {
+        74/jump-if-= break/disp8
+        (lookup *(esi+0xc) *(esi+0x10))  # Type-tree-right Type-tree-right => eax
+        # if t->right is null, t = t->left
+        81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+        {
+          75/jump-if-!= break/disp8
+          (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+        }
+        (is-mu-addr-type? %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= $check-mu-numberlike-arg:end/disp8
+      }
+    }
+$check-mu-numberlike-arg:output-checks:
+    (check-mu-numberlike-output *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14) *(ebp+0x18))
+$check-mu-numberlike-arg:end:
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-mu-numberlike-output:  # v: (addr stmt-var), stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    #
+    (is-mu-numberlike-output-var? *(ebp+8))  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-numberlike-output:fail/disp32
+$check-mu-numberlike-output:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-numberlike-output:fail:
+    # otherwise raise an error
+    (write-buffered *(ebp+0x14) "fn ")
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    (write-buffered *(ebp+0x14) ": stmt ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *(eax+4) *(eax+8))  # Stmt1-operation Stmt1-operation => eax
+    (write-buffered *(ebp+0x14) %eax)
+    (write-buffered *(ebp+0x14) ": '")
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x14) %eax)
+    (write-buffered *(ebp+0x14) "' must be a non-addr non-offset scalar\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+is-mu-numberlike-output-var?:  # v: (addr stmt-var) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    (is-mu-numberlike-output? %eax)  # => eax
+$is-mu-numberlike-output-var?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-mu-numberlike-output?:  # v: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    56/push-esi
+    # var t/esi: (addr type-tree) = lookup(v->value->type)
+    8b/-> *(ebp+8) 6/r32/esi
+$is-mu-numberlike-output?:check-int:
+    # if t is an int, return
+    (is-simple-mu-type? %esi 1)  # int => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $is-mu-numberlike-output?:return-true/disp32
+$is-mu-numberlike-output?:check-float:
+    # if t is a float, return
+    (is-simple-mu-type? %esi 0xf)  # float => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $is-mu-numberlike-output?:return-true/disp8
+$is-mu-numberlike-output?:check-boolean:
+    # if t is a boolean, return
+    (is-simple-mu-type? %esi 5)  # boolean => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $is-mu-numberlike-output?:return-true/disp8
+$is-mu-numberlike-output?:check-byte:
+    # if t is a byte, return
+    (is-simple-mu-type? %esi 8)  # byte => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $is-mu-numberlike-output?:return-true/disp8
+$is-mu-numberlike-output?:check-code-point:
+    # if t is a code-point, return
+    (is-simple-mu-type? %esi 0xd)  # code-point => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $is-mu-numberlike-output?:return-true/disp8
+$is-mu-numberlike-output?:check-grapheme:
+    # if t is a grapheme, return
+    (is-simple-mu-type? %esi 0xe)  # grapheme => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $is-mu-numberlike-output?:return-true/disp8
+$is-mu-numberlike-output?:return-false:
+    b8/copy-to-eax 0/imm32/false
+    eb/jump $is-mu-numberlike-output?:end/disp8
+$is-mu-numberlike-output?:return-true:
+    b8/copy-to-eax 1/imm32/true
+$is-mu-numberlike-output?:end:
+    # . restore registers
+    5e/pop-to-esi
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-mu-copy-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # var type-parameters/edx: (addr table (handle array byte) (addr type-tree) 8)
+    81 5/subop/subtract %esp 0x60/imm32
+    68/push 0x60/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %edx 4/r32/esp
+$check-mu-copy-stmt:get-output:
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # var output/edi: (addr stmt-var) = stmt->outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    89/<- %edi 0/r32/eax
+    # zero outputs
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-stmt:error-no-output/disp32
+    # > 1 output
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-stmt:error-too-many-outputs/disp32
+$check-mu-copy-stmt:get-inout:
+    # var inout/esi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %esi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-stmt:error-no-inout/disp32
+    # > 1 inout
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-stmt:error-too-many-inouts/disp32
+$check-mu-copy-stmt:types:
+    # if inout is not a scalar, abort
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (size-of %eax)  # => eax
+    3d/compare-eax-and 4/imm32
+    0f 8f/jump-if-> $check-mu-copy-stmt:error-inout-too-large/disp32
+    # var inout-type/ecx: (addr type-tree) = inout->value->type
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if (inout->is-deref?) inout-type = inout-type->payload
+    8b/-> *(esi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if inout-type->right is null, t = inout-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ecx 0/r32/eax
+    }
+    # if output not in register, abort
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-stmt:error-output-not-in-register/disp32
+    # var output-type/eax: (addr type-tree) = output->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # if (inout-type == output-type) return
+    (type-match? %eax %ecx %edx)  # => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-stmt:end/disp32
+    # if output is an addr and inout is 0, return
+    {
+      (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-mu-addr-type? %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      (string-equal? %eax "0")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      e9/jump $check-mu-copy-stmt:end/disp32
+    }
+    # if output is an offset and inout is 0, return
+    {
+      (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 7)  # offset => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      (string-equal? %eax "0")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      e9/jump $check-mu-copy-stmt:end/disp32
+    }
+    # if output is a byte, abort if inout is not a literal. Otherwise return.
+    {
+      (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 8)  # byte => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 0)  # literal => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $check-mu-copy-stmt:error-non-literal-to-byte/disp32
+      eb/jump $check-mu-copy-stmt:end/disp8
+    }
+    # if output is not number-like, abort
+    (check-mu-numberlike-output %edi *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+$check-mu-copy-stmt:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x6c/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-copy-stmt:error-no-inout:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy' expects an inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy' must have just one inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-stmt:error-no-output:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy' expects an output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-stmt:error-output-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy: output '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' not in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy' must have just one output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-stmt:error-inout-too-large:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy: '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is too large to fit in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-stmt:error-non-literal-to-byte:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy: cannot copy non-literal to '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' of type byte; use copy-byte\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-copy-to-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var type-parameters/edx: (addr table (handle array byte) (addr type-tree) 8)
+    81 5/subop/subtract %esp 0x60/imm32
+    68/push 0x60/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %edx 4/r32/esp
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+$check-mu-copy-to-stmt:check-for-output:
+    # if stmt->outputs abort
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-to-stmt:error-too-many-outputs/disp32
+$check-mu-copy-to-stmt:get-dest:
+    # var dest/edi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-to-stmt:error-incorrect-inouts/disp32
+$check-mu-copy-to-stmt:get-src:
+    # var src/esi: (addr stmt-var) = dest->next
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %esi 0/r32/eax
+    # 1 inout
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-to-stmt:error-incorrect-inouts/disp32
+    # > 2 inouts
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-to-stmt:error-incorrect-inouts/disp32
+$check-mu-copy-to-stmt:types:
+    # if src is not a scalar, abort
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (size-of %eax)  # => eax
+    3d/compare-eax-and 4/imm32
+    0f 8f/jump-if-> $check-mu-copy-to-stmt:error-src-too-large/disp32
+    # var src-type/ecx: (addr type-tree) = src->value->type
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if src not in register or literal, abort
+    # (we can't use stack-offset because it hasn't been computed yet)
+    {
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+0x8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 0)  # => eax
+      3d/compare-eax-and 0/imm32
+      75/jump-if-!= break/disp8
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      3d/compare-eax-and 0/imm32
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-copy-to-stmt:error-src-not-literal-or-in-register/disp32
+    }
+    # var dest-type/ebx: (addr type-tree) = dest->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # if (dest->is-deref?) dest-type = dest-type->payload
+$check-mu-copy-to-stmt:check-dest-deref:
+    8b/-> *(edi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+$check-mu-copy-to-stmt:dest-is-deref:
+      # if dest-type->right is null, dest-type = dest-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+$check-mu-copy-to-stmt:dest-is-deref2:
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ebx 0/r32/eax
+    }
+    # if dest is a byte and src is not a literal, abort
+    {
+$check-mu-copy-to-stmt:final-check-byte:
+      (is-simple-mu-type? %ebx 8)  # byte => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (is-simple-mu-type? %ecx 0)  # literal => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $check-mu-copy-to-stmt:error-non-literal-to-byte/disp32
+    }
+    # if (src-type == dest-type) return
+    (type-match? %ebx %ecx %edx)  # => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-to-stmt:end/disp32
+    # if dest is an addr and src is 0, return
+    {
+$check-mu-copy-to-stmt:final-check-addr:
+      (is-mu-addr-type? %ebx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      (string-equal? %eax "0")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      e9/jump $check-mu-copy-to-stmt:end/disp32
+    }
+    # if dest is an offset and src is 0, return
+    {
+$check-mu-copy-to-stmt:final-check-offset:
+      81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+      75/jump-if-!= break/disp8
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 7)  # offset => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      (string-equal? %eax "0")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      e9/jump $check-mu-copy-to-stmt:end/disp32
+    }
+    # if dest is not number-like, abort
+    (check-mu-numberlike-arg %edi *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+$check-mu-copy-to-stmt:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x6c/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-copy-to-stmt:error-incorrect-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-to' must have two inouts\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-to-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-to' must not have any outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-to-stmt:error-src-not-literal-or-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-to: source (second inout) is in memory\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-to-stmt:error-src-too-large:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-to: '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is too large to copy\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-to-stmt:error-non-literal-to-byte:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-to: cannot copy non-literal to type byte; use copy-byte-to\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-copy-byte-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+    # var type-parameters/edx: (addr table (handle array byte) (addr type-tree) 8)
+    81 5/subop/subtract %esp 0x60/imm32
+    68/push 0x60/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %edx 4/r32/esp
+$check-mu-copy-byte-stmt:get-output:
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # var output/edi: (addr stmt-var) = stmt->outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    89/<- %edi 0/r32/eax
+    # zero outputs
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-byte-stmt:error-no-output/disp32
+    # > 1 output
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-byte-stmt:error-too-many-outputs/disp32
+$check-mu-copy-byte-stmt:get-inout:
+    # var inout/esi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %esi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-byte-stmt:error-no-inout/disp32
+    # > 1 inout
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-byte-stmt:error-too-many-inouts/disp32
+$check-mu-copy-byte-stmt:types:
+    # if inout is not a scalar, abort
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (size-of %eax)  # => eax
+    3d/compare-eax-and 4/imm32
+    0f 8f/jump-if-> $check-mu-copy-byte-stmt:error-inout-too-large/disp32
+    # var inout-type/ecx: (addr type-tree) = inout->value->type
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+$check-mu-copy-byte-stmt:check-inout-deref:
+    # if (inout->is-deref?) inout-type = inout-type->payload
+    8b/-> *(esi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+$check-mu-copy-byte-stmt:inout-is-deref:
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if inout-type->right is null, t = inout-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+$check-mu-copy-byte-stmt:inout-is-deref2:
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ecx 0/r32/eax
+    }
+    # if output not in register, abort
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-byte-stmt:error-output-not-in-register/disp32
+    # var output-type/eax: (addr type-tree) = output->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # if output is not of type byte, abort
+    (is-simple-mu-type? %eax 8)  # byte => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-byte-stmt:error-invalid-output-type/disp32
+$check-mu-copy-byte-stmt:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x6c/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-copy-byte-stmt:error-no-inout:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-byte' expects an inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-byte' must have just one inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-stmt:error-no-output:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-byte' expects an output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-stmt:error-output-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-byte: output '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' not in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-byte' must have just one output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-stmt:error-invalid-output-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-byte' must write to output of type byte\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-stmt:error-inout-too-large:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-byte: '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is too large to fit in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-copy-byte-to-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var type-parameters/edx: (addr table (handle array byte) (addr type-tree) 8)
+    81 5/subop/subtract %esp 0x60/imm32
+    68/push 0x60/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %edx 4/r32/esp
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+$check-mu-copy-byte-to-stmt:check-for-output:
+    # if stmt->outputs abort
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-byte-to-stmt:error-too-many-outputs/disp32
+$check-mu-copy-byte-to-stmt:get-dest:
+    # var dest/edi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-byte-to-stmt:error-incorrect-inouts/disp32
+$check-mu-copy-byte-to-stmt:get-src:
+    # var src/esi: (addr stmt-var) = dest->next
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %esi 0/r32/eax
+    # 1 inout
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-byte-to-stmt:error-incorrect-inouts/disp32
+    # > 2 inouts
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-byte-to-stmt:error-incorrect-inouts/disp32
+$check-mu-copy-byte-to-stmt:types:
+    # if src is not a scalar, abort
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (size-of %eax)  # => eax
+    3d/compare-eax-and 4/imm32
+    0f 8f/jump-if-> $check-mu-copy-byte-to-stmt:error-src-too-large/disp32
+    # if src not in register, abort
+    {
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      3d/compare-eax-and 0/imm32
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-copy-byte-to-stmt:error-src-not-in-register/disp32
+    }
+    # var dest-type/ebx: (addr type-tree) = dest->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # if (dest->is-deref?) dest-type = dest-type->payload
+$check-mu-copy-byte-to-stmt:check-dest-deref:
+    8b/-> *(edi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+$check-mu-copy-byte-to-stmt:dest-is-deref:
+      # if dest-type->right is null, dest-type = dest-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+$check-mu-copy-byte-to-stmt:dest-is-deref2:
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ebx 0/r32/eax
+    }
+    # if dest is not a byte, abort
+    (is-simple-mu-type? %ebx 8)  # byte => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-copy-byte-to-stmt:error-invalid-dest-type/disp32
+$check-mu-copy-byte-to-stmt:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x6c/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-copy-byte-to-stmt:error-incorrect-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-byte-to' must have two inouts\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-to-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-byte-to' must not have any outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-to-stmt:error-src-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-byte-to: source (second inout) must be in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-to-stmt:error-invalid-dest-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-byte-to: '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be a byte\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-byte-to-stmt:error-src-too-large:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-byte-to: '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is too large to copy\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-compare-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var type-parameters/edx: (addr table (handle array byte) (addr type-tree) 8)
+    81 5/subop/subtract %esp 0x60/imm32
+    68/push 0x60/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %edx 4/r32/esp
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+$check-mu-compare-stmt:check-for-output:
+    # if stmt->outputs abort
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-compare-stmt:error-too-many-outputs/disp32
+$check-mu-compare-stmt:get-left:
+    # var left/edi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-compare-stmt:error-incorrect-inouts/disp32
+$check-mu-compare-stmt:get-right:
+    # var right/esi: (addr stmt-var) = left->next
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %esi 0/r32/eax
+    # 1 inout
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-compare-stmt:error-incorrect-inouts/disp32
+    # > 2 inouts
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-compare-stmt:error-incorrect-inouts/disp32
+    # if both inouts are in memory, abort
+    {
+$check-mu-compare-stmt:both-in-mem:
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+0x8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 0)  # => eax
+      3d/compare-eax-and 0/imm32
+      0f 85/jump-if-!= break/disp32
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      3d/compare-eax-and 0/imm32
+      75/jump-if-!= break/disp8
+      (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+0x8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 0)  # => eax
+      3d/compare-eax-and 0/imm32
+      75/jump-if-!= break/disp8
+      (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      3d/compare-eax-and 0/imm32
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-compare-stmt:error-both-in-memory/disp32
+    }
+$check-mu-compare-stmt:types:
+    # var right-type/ecx: (addr type-tree) = right->value->type
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if (right->is-deref?) right-type = right-type->payload
+    8b/-> *(esi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if right-type->right is null, right-type = right-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ecx 0/r32/eax
+    }
+    # if right-type is a literal string, abort
+    (is-simple-mu-type? %ecx 0x10)  # string-literal => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-compare-stmt:error-right-string-literal/disp32
+    # if right is not a scalar, abort
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (size-of %eax)  # => eax
+    3d/compare-eax-and 4/imm32
+    0f 8f/jump-if-> $check-mu-compare-stmt:error-right-too-large/disp32
+    # if left is not a scalar, abort
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (size-of %eax)  # => eax
+    3d/compare-eax-and 4/imm32
+    0f 8f/jump-if-> $check-mu-compare-stmt:error-left-too-large/disp32
+    # var left-type/ebx: (addr type-tree) = left->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # if (left->is-deref?) left-type = left-type->payload
+    8b/-> *(edi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if left-type->right is null, left-type = left-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ebx 0/r32/eax
+    }
+    # if (left-type == right-type) return
+    (type-match? %ebx %ecx %edx)  # => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-compare-stmt:end/disp32
+    # if left is an addr and right is 0, return
+    {
+      (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      (is-mu-addr-type? %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      (string-equal? %eax "0")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      eb/jump $check-mu-compare-stmt:end/disp8
+    }
+    # if left is not number-like, abort
+    (check-mu-numberlike-arg %edi *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+$check-mu-compare-stmt:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x6c/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-compare-stmt:error-incorrect-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'compare' must have two inouts\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compare-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'compare' must not have any outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compare-stmt:error-both-in-memory:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compare: both inouts are in memory\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compare-stmt:error-left-too-large:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compare: '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is too large to compare\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compare-stmt:error-right-too-large:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compare: '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is too large to compare\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compare-stmt:error-right-string-literal:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compare: string literal ")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) " is not supported; use the string-equal? function\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-address-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+$check-mu-address-stmt:get-output:
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # var output/edi: (addr stmt-var) = stmt->outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    89/<- %edi 0/r32/eax
+    # zero outputs
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-address-stmt:error-no-output/disp32
+    # > 1 output
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-address-stmt:error-too-many-outputs/disp32
+$check-mu-address-stmt:get-inout:
+    # var inout/esi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %esi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-address-stmt:error-no-inout/disp32
+    # > 1 inout
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-address-stmt:error-too-many-inouts/disp32
+$check-mu-address-stmt:types:
+    # if output not in register, abort
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-address-stmt:error-output-not-in-register/disp32
+    # var output-type/edx: (addr type-tree) = output->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    # if output-type not an addr, abort
+    (is-mu-addr-type? %edx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-address-stmt:error-output-not-address/disp32
+    # output-type = output-type->right
+    (lookup *(edx+0xc) *(edx+0x10))  # Type-tree-right Type-tree-right => eax
+    # if output-type->right is null, output-type = output-type->left
+    81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    89/<- %edx 0/r32/eax
+    # var inout-type/ecx: (addr type-tree) = inout->value->type
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if (inout->is-deref?) inout-type = inout-type->payload
+    8b/-> *(esi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if inout-type->right is null, t = inout-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ecx 0/r32/eax
+    }
+    # if (inout-type != output-type) abort
+    (type-equal-ignoring-capacity? %edx %ecx)  # => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-address-stmt:error-type-mismatch/disp32
+$check-mu-address-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-address-stmt:error-no-inout:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'address' expects an inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-address-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'address' must have just one inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-address-stmt:error-no-output:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'address' expects an output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-address-stmt:error-output-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt address: output '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' not in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-address-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'address' must have just one output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-address-stmt:error-output-not-address:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt address: output '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is not an addr\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-address-stmt:error-type-mismatch:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt address: output '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' cannot hold address of '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "'\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+type-equal-ignoring-capacity?:  # a: (addr type-tree), b: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # var curr-a/ecx: (addr type-tree) = a
+    8b/-> *(ebp+8) 1/r32/ecx
+    # var curr-b/ebx: (addr type-tree) = b
+    8b/-> *(ebp+0xc) 3/r32/ebx
+    # if (curr-a->is-atom?) fall back to regular equality
+    81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $type-equal-ignoring-capacity?:base-case/disp32
+    # if (curr-a->left != curr-b->left) return false
+    (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+    89/<- %edx 0/r32/eax
+    (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+    (type-equal? %edx %eax)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $type-equal-ignoring-capacity?:end/disp32  # eax switches meaning
+    # if (curr-a->left == "array") curr-a = curr-a->element-type
+    {
+      (is-mu-array? %edx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+$type-equal-ignoring-capacity?:array:
+      # curr-a = curr-a->right->left
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ecx 0/r32/eax
+      # curr-b = curr-b->right->left
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ebx 0/r32/eax
+      eb/jump $type-equal-ignoring-capacity?:base-case/disp8
+    }
+    # if (curr-a->left == "stream") curr-a = curr-a->element-type
+    {
+      (is-mu-stream? %edx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+$type-equal-ignoring-capacity?:stream:
+      # curr-a = curr-a->right->left
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ecx 0/r32/eax
+      # curr-b = curr-b->right->left
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ebx 0/r32/eax
+      eb/jump $type-equal-ignoring-capacity?:base-case/disp8
+    }
+$type-equal-ignoring-capacity?:base-case:
+    # return type-equal?(curr-a, curr-b)
+    (type-equal? %ecx %ebx)  # => eax
+$type-equal-ignoring-capacity?:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-mu-return-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var type-parameters/edx: (addr table (handle array byte) (addr type-tree) 8)
+    81 5/subop/subtract %esp 0x60/imm32
+    68/push 0x60/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %edx 4/r32/esp
+    # var template/esi: (addr list var) = fn->outputs
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *(eax+0x10) *(eax+0x14))  # Function-outputs Function-outputs => eax
+    89/<- %esi 0/r32/eax
+    # var curr-template/ebx: (addr list var) = fn->outputs
+    89/<- %ebx 0/r32/eax
+    # var curr/edi: (addr stmt-var) = stmt->inouts
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+0xc) *(eax+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    {
+      # if template is null, break
+      81 7/subop/compare %ebx 0/imm32
+      0f 84/jump-if-= break/disp32
+      # if curr is null, abort
+      81 7/subop/compare %edi 0/imm32
+      0f 84/jump-if-= $check-mu-return-stmt:error-too-few-inouts/disp32
+      # var template-type/ecx: (addr type-tree) = template->value->type
+      (lookup *ebx *(ebx+4))  # List-value List-value => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      89/<- %ecx 0/r32/eax
+      # var curr-type/eax: (addr type-tree) = curr->value->type
+      (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      # if (curr->is-deref?) curr-type = payload of curr-type
+      81 7/subop/compare *(edi+0x10) 0/imm32/false  # Stmt-var-is-deref
+      {
+        74/jump-if-= break/disp8
+        (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+        # if t->right is null, t = t->left
+        81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      # if curr-type is literal and template-type is float, abort
+      50/push-eax
+      {
+        (is-simple-mu-type? %eax 0)  # literal => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+        (is-simple-mu-type? %ecx 0xf)  # float => eax
+        3d/compare-eax-and 0/imm32/false
+        0f 85/jump-if-!= $check-mu-return-stmt:error-literal-to-float/disp32
+      }
+      58/pop-to-eax
+      # if (curr-type != template-type) abort
+      (type-match? %ecx %eax %edx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $check-mu-return-stmt:error1/disp32
+      # if register-within-list-with-conflict?(curr, original template, curr-template, stmt) abort
+      (register-within-list-with-conflict? %edi %esi %ebx *(ebp+8))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $check-mu-return-stmt:error2/disp32
+      # template = template->next
+      (lookup *(ebx+8) *(ebx+0xc))  # List-next List-next => eax
+      89/<- %ebx 0/r32/eax
+      # curr = curr->next
+      (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+      89/<- %edi 0/r32/eax
+      #
+      e9/jump loop/disp32
+    }
+    # if curr is not null, abort
+    81 7/subop/compare %edi 0/imm32
+    0f 85/jump-if-!= $check-mu-return-stmt:error-too-many-inouts/disp32
+$check-mu-return-stmt:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x6c/imm32
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-return-stmt:error1:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": return: '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' has the wrong type\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-return-stmt:error2:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": return: '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is no longer available\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-return-stmt:error-literal-to-float:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": return: cannot copy literal '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' to float\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-return-stmt:error-too-few-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": return: too few inouts\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-return-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": return: too many inouts\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-all-unique-registers:  # outputs: (addr list var), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # var table/esi: (addr table (handle array byte) int 8)
+    81 5/subop/subtract %esp 0x60/imm32
+    68/push 0x60/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    89/<- %esi 4/r32/esp
+    # var curr/ecx: (addr list var) = outputs
+    8b/-> *(ebp+8) 1/r32/ecx
+    {
+      # if (curr == 0) break
+      81 7/subop/compare %ecx 0/imm32
+      0f 84/jump-if-= break/disp32
+      # var reg/eax: (addr array byte) = curr->value->register  # guaranteed to exist
+      (lookup *ecx *(ecx+4))  # List-value List-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      # if reg exists in table, abort
+      (maybe-get %esi %eax 0xc)  # => eax
+      3d/compare-eax-and 0/imm32
+      0f 85/jump-if-!= $check-all-unique-registers:abort/disp32
+      # insert reg in table
+      (lookup *ecx *(ecx+4))  # List-value List-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      (get-or-insert %esi %eax 0xc Heap)
+      # curr = curr->next
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      89/<- %ecx 0/r32/eax
+      e9/jump loop/disp32
+    }
+$check-all-unique-registers:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0x6c/imm32
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-all-unique-registers:abort:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": outputs must be in unique registers\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+# return false if s's register is not between start (inclusive) and end (exclusive)
+# return false if the positionally corresponding register in stmt->inouts (where s comes from) is also s's register
+# otherwise return true
+register-within-list-with-conflict?:  # s: (addr stmt-var), start: (addr list var), end: (addr list var), stmt: (addr stmt) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var target/ebx: (addr array byte) = s->value->register
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+#?     (write-buffered Stderr "AA: ")
+#?     (write-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    # if (var->register == 0) return false
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $register-within-list-with-conflict?:end/disp32  # eax turns into result
+    89/<- %ebx 0/r32/eax
+    # var curr/ecx: (addr list var) = start
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # edx = end
+    8b/-> *(ebp+0x10) 2/r32/edx
+    {
+      # if (curr == 0) break
+      81 7/subop/compare %edi 0/imm32
+      0f 84/jump-if-= break/disp32
+      # if (curr == end) break
+      39/compare %ecx 2/r32/edx
+      0f 84/jump-if-= break/disp32
+      # var curr-reg/eax: (addr array byte) = curr->value->register
+      (lookup *ecx *(ecx+4))  # List-value List-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      # if (curr-reg == 0) continue
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= $register-within-list-with-conflict?:continue/disp8
+      # if (curr-reg == target) check for conflict
+      (string-equal? %eax %ebx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        74/jump-if-= break/disp8
+#?         (write-buffered Stderr "conflict?\n")
+#?         (flush Stderr)
+        # var return-inouts/eax: (addr stmt-var) = stmt->inouts
+        8b/-> *(ebp+0x14) 0/r32/eax
+        (lookup *(eax+0xc) *(eax+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+        (register-conflict? %ebx %eax *(ebp+0xc))  # => eax
+        eb/jump $register-within-list-with-conflict?:end/disp8
+      }
+$register-within-list-with-conflict?:continue:
+      # curr = curr->next
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      89/<- %ecx 0/r32/eax
+      e9/jump loop/disp32
+    }
+    # return false
+    b8/copy-to-eax 0/imm32/false
+$register-within-list-with-conflict?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# At the first occurrence of register 'reg' in fn-outputs,
+# check if the corresponding element of return-inouts has a different register.
+# This hacky helper is intended to be called in one specific place. Don't
+# reuse it as is.
+register-conflict?:  # reg: (addr array byte), return-inouts: (addr stmt-var), fn-outputs: (addr list var) => result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+#?     (write-buffered Stderr "BB: ")
+#?     (write-buffered Stderr *(ebp+8))
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    # var curr-output/edi: (addr list var) = fn-outputs
+    8b/-> *(ebp+0x10) 7/r32/edi
+    # var curr-inout/esi: (addr stmt-var) = return-inouts
+    8b/-> *(ebp+0xc) 6/r32/esi
+    {
+      # if (curr-output == 0) abort
+      81 7/subop/compare %edi 0/imm32
+      0f 84/jump-if-= break/disp32
+      # if (curr-output->value->register != reg) continue
+      (lookup *edi *(edi+4))  # List-value List-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      (string-equal? %eax *(ebp+8))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if= $register-conflict?:continue/disp32
+#?       (write-buffered Stderr "rescan\n")
+#?       (flush Stderr)
+      # var curr-reg/eax: (addr array byte) = curr-inout->value->register
+      (lookup *esi *(esi+4))  # List-value List-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      # if (curr-reg == 0) return true
+      3d/compare-eax-and 0/imm32
+      {
+        75/jump-if-!= break/disp8
+#?         (write-buffered Stderr "no register\n")
+#?         (flush Stderr)
+        b8/copy-to-eax 1/imm32/true
+        e9/jump $register-conflict?:end/disp32
+      }
+      # return (curr-reg != reg)
+      (string-equal? %eax *(ebp+8))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 94/set-if-= %al
+#?       (write-buffered Stderr "final: ")
+#?       (write-int32-hex-buffered Stderr %eax)
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      eb/jump $register-conflict?:end/disp8
+$register-conflict?:continue:
+      # curr-output = curr-output->next
+      (lookup *(edi+8) *(edi+0xc))  # List-next List-next => eax
+      89/<- %edi 0/r32/eax
+      # curr-inout = curr-inout->next
+      (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+      89/<- %esi 0/r32/eax
+      e9/jump loop/disp32
+    }
+    # should never get here
+    (write-buffered Stderr "register-conflict? misused\n")
+    (flush Stderr)
+    e8/call syscall_exit/disp32
+$register-conflict?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+check-final-stmt-is-return:  # block: (addr block), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # var curr/ecx: (addr list stmt) = block->stmts
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+4) *(eax+8))  # Block-stmts Block-stmts => eax
+    3d/compare-eax-and 0/imm32
+    74/jump-if-= $check-final-stmt-is-return:error/disp8
+    89/<- %ecx 0/r32/eax
+    {
+      # if curr->next == 0, break
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+      # curr = curr->next
+      89/<- %ecx 0/r32/eax
+      e9/jump loop/disp32
+    }
+$check-final-stmt-is-return:check-tag:
+    # if curr->value->tag != Stmt1, abort
+    (lookup *ecx *(ecx+4))  # List-value List-value => eax
+    81 7/subop/compare *eax 1/imm32/stmt1  # Stmt-tag
+    75/jump-if-!= $check-final-stmt-is-return:error/disp8
+$check-final-stmt-is-return:check-operation:
+    # if curr->operation != "return", abort
+    (lookup *(eax+4) *(eax+8))  # Stmt1-operation Stmt1-operation => eax
+    (string-equal? %eax "return")
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $check-final-stmt-is-return:error/disp8
+$check-final-stmt-is-return:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-final-stmt-is-return:error:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": final statement should be a 'return'\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-no-breaks:  # block: (addr block), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # var curr/ecx: (addr list stmt) = block->stmts
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+4) *(eax+8))  # Block-stmts Block-stmts => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-no-breaks:end/disp32
+    89/<- %ecx 0/r32/eax
+    {
+      # if curr->next == 0, break
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+      # if curr->value->tag != Stmt1, continue
+      (lookup *ecx *(ecx+4))  # List-value List-value => eax
+      81 7/subop/compare *eax 1/imm32/stmt1  # Stmt-tag
+      75/jump-if-!= $check-no-breaks:continue/disp8
+      # if curr->value->operation starts with "break", abort
+      (lookup *(eax+4) *(eax+8))  # Stmt1-operation Stmt1-operation => eax
+      (string-starts-with? %eax "break")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= $check-no-breaks:error/disp8
+$check-no-breaks:continue:
+      # curr = curr->next
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      89/<- %ecx 0/r32/eax
+      e9/jump loop/disp32
+    }
+$check-no-breaks:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-no-breaks:error:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) " has outputs, so you cannot 'break' out of the outermost block. Use 'return'.\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-get-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # - check for 0 inouts
+    # var base/ecx: (addr var) = stmt->inouts->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-get-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+$check-mu-get-stmt:check-base:
+    # - check base type
+    # if it's an 'addr', check that it's in a register
+    # var base-type/ebx: (addr type-tree) = lookup(base->type)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    {
+      81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+      0f 85/jump-if-!= break/disp32
+$check-mu-get-stmt:base-is-compound:
+      # if (type->left != addr) break
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$check-mu-get-stmt:base-is-addr:
+      # now check for register
+      81 7/subop/compare *(ecx+0x18) 0/imm32  # Var-register
+      0f 84/jump-if-= $check-mu-get-stmt:error-base-type-addr-but-not-register/disp32
+$check-mu-get-stmt:base-is-addr-in-register:
+      # type->left is now an addr; skip it
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      0f 85/jump-if-!= $check-mu-get-stmt:error-bad-base/disp32
+$check-mu-get-stmt:base-is-addr-to-atom-in-register:
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ebx 0/r32/eax
+    }
+$check-mu-get-stmt:check-base-typeinfo:
+    # ensure type is a container
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ebx 0/r32/eax
+    }
+    # var base-type-id/ebx: type-id = base-type->value
+    8b/-> *(ebx+4) 3/r32/ebx  # Type-tree-value
+    (is-container? %ebx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-get-stmt:error-bad-base/disp32
+    # var base-typeinfo/edx: (addr typeinfo) = find-typeinfo(base-type-id)
+    # . var container/ecx: (handle typeinfo)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # .
+    (find-typeinfo %ebx %ecx)
+    (lookup *ecx *(ecx+4))  # => eax
+    # . reclaim container
+    81 0/subop/add %esp 8/imm32
+    # .
+    89/<- %edx 0/r32/eax
+    # var offset/ecx: (addr stmt-var) = stmt->inouts->next
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %ecx 0/r32/eax
+    # - check for 1 inout
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-get-stmt:error-too-few-inouts/disp32
+    # var offset/ecx: (addr var) = lookup(offset->value)
+    (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # - check for valid field
+    81 7/subop/compare *(ecx+0x14) -1/imm32/uninitialized  # Var-offset
+    0f 84/jump-if-= $check-mu-get-stmt:error-bad-field/disp32
+    # - check for too many inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-get-stmt:error-too-many-inouts/disp32
+    # var output/edi: (addr var) = stmt->outputs->value
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    # - check for 0 outputs
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-get-stmt:error-too-few-outputs/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %edi 0/r32/eax
+$check-mu-get-stmt:check-output-type:
+    # - check output type
+    # must be in register
+    (lookup *(edi+0x18) *(edi+0x1c))  # Var-register Var-register => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-get-stmt:error-output-not-in-register/disp32
+    # must have a non-atomic type
+    (lookup *(edi+8) *(edi+0xc))  # Var-type Var-type => eax
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-get-stmt:error-output-type-not-address/disp32
+    # type must start with (addr ...)
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 2)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-get-stmt:error-output-type-not-address/disp32
+$check-mu-get-stmt:check-output-type-match:
+    # payload of addr type must match 'type' definition
+    (lookup *(edi+8) *(edi+0xc))  # Var-type Var-type => eax
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # if (payload->right == null) payload = payload->left
+    81 7/subop/compare *(eax+0xc) 0/imm32/null  # Type-tree-right
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    89/<- %edi 0/r32/eax
+    # . var output-name/ecx: (addr array byte)
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    89/<- %ecx 0/r32/eax
+    # . var base-typeinfo-entry/eax: (addr handle typeinfo-entry)
+    (lookup *(edx+4) *(edx+8))  # Typeinfo-fields Typeinfo-fields => eax
+    (get %eax %ecx 0x10)  # => eax
+    # .
+    (lookup *eax *(eax+4))  # => eax
+    (lookup *eax *(eax+4))  # Typeinfo-entry-input-var Typeinfo-entry-input-var => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # .
+    (type-equal? %edi %eax)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-get-stmt:error-bad-output-type/disp32
+    # - check for too many outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-get-stmt:error-too-many-outputs/disp32
+$check-mu-get-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-get-stmt:error-too-few-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: too few inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: too many inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-too-few-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: must have an output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: too many outputs (1 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-bad-base:
+    # error("fn " fn ": stmt get: var '" base->name "' must have a 'type' definition\n")
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: var '")
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must have a 'type' definition\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-base-type-addr-but-not-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: var '")
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is an 'addr' type, and so must live in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-bad-field:
+    # error("fn " fn ": stmt get: type " type " has no member called '" curr->name "'\n")
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: type '")
+    # . write(Type-id->data[tmp])
+    bf/copy-to-edi Type-id/imm32
+    8b/-> *(edi+ebx<<2+0xc) 6/r32/esi
+    {
+      81 7/subop/compare %esi 0/imm32
+      74/jump-if-= break/disp8
+      (write-buffered *(ebp+0x10) %esi)
+    }
+    # .
+    (write-buffered *(ebp+0x10) "' has no member called '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "'\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-output-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is not in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-output-type-not-address:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: output must be an addr\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-get-stmt:error-bad-output-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt get: wrong output type for member '")
+    (write-buffered *(ebp+0x10) %ecx)
+    (write-buffered *(ebp+0x10) "' of type '")
+    bf/copy-to-edi Type-id/imm32
+    8b/-> *(edi+ebx<<2+0xc) 6/r32/esi
+    {
+      81 7/subop/compare %esi 0/imm32
+      74/jump-if-= break/disp8
+      (write-buffered *(ebp+0x10) %esi)
+    }
+    (write-buffered *(ebp+0x10) "'\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-index-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # - check for 0 inouts
+    # var base/ecx: (addr var) = stmt->inouts->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+$check-mu-index-stmt:check-no-inouts:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-index-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # - check base type is either (addr array ...) in register or (array ...) on stack
+    # var base-type/ebx: (addr type-tree) = lookup(base->type)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # if base-type is an atom, abort with a precise error
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    {
+      74/jump-if-= break/disp8
+      (is-simple-mu-type? %ebx 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $check-mu-index-stmt:error-base-array-atom-type/disp32
+      0f 84/jump-if-= $check-mu-index-stmt:error-base-non-array-type/disp32
+    }
+$check-mu-index-stmt:base-is-compound:
+    # if type->left not addr or array, abort
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-index-stmt:error-base-non-array-type/disp32
+    }
+    # if (type->left == addr) ensure type->right->left == array and type->register exists
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$check-mu-index-stmt:base-is-addr:
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $check-mu-index-stmt:error-base-non-array-type/disp32
+$check-mu-index-stmt:check-base-addr-is-register:
+      81 7/subop/compare *(ecx+0x18) 0/imm32  # Var-register
+      0f 84/jump-if-= $check-mu-index-stmt:error-base-address-array-type-on-stack/disp32
+    }
+    # if (type->left == array) ensure type->register doesn't exist
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$check-mu-index-stmt:base-is-array:
+      81 7/subop/compare *(ecx+0x18) 0/imm32  # Var-register
+      0f 85/jump-if-!= $check-mu-index-stmt:error-base-array-type-in-register/disp32
+    }
+    # if (base-type->left == addr) base-type = base-type->right
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      89/<- %ebx 0/r32/eax
+    }
+    # - check for 1 inout
+    # var index/ecx: (addr stmt-var) = stmt->inouts->next->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+$check-mu-index-stmt:check-single-inout:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-index-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # - check index is either a literal or register
+    # var index-type/edx: (addr type-tree)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    # if index type is an atom, it must be a literal or int
+    81 7/subop/compare *edx 0/imm32/false  # Type-tree-is-atom
+    {
+      74/jump-if-= break/disp8
+$check-mu-index-stmt:index-type-is-atom:
+      (is-simple-mu-type? %edx 0)  # literal => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= $check-mu-index-stmt:index-type-done/disp8
+      (is-simple-mu-type? %edx 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= $check-mu-index-stmt:index-type-done/disp8
+      (is-simple-mu-type? %edx 7)  # offset => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $check-mu-index-stmt:error-index-offset-atom-type/disp32
+      e9/jump $check-mu-index-stmt:error-invalid-index-type/disp32
+    }
+    # if index type is a non-atom: it must be an offset
+    {
+      75/jump-if-!= break/disp8
+$check-mu-index-stmt:index-type-is-non-atom:
+      (lookup *(edx+4) *(edx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 7)  # offset => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $check-mu-index-stmt:error-invalid-index-type/disp32
+    }
+$check-mu-index-stmt:index-type-done:
+    # check index is either a literal or in a register
+    {
+      (is-simple-mu-type? %edx 0)  # literal => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+$check-mu-index-stmt:check-index-in-register:
+      81 7/subop/compare *(ecx+0x18) 0/imm32  # Var-register
+      0f 84/jump-if-= $check-mu-index-stmt:error-index-on-stack/disp32
+    }
+    # - if index is an 'int', check that element type of base has size 1, 2, 4 or 8 bytes.
+    {
+      (is-simple-mu-type? %edx 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$check-mu-index-stmt:check-index-can-be-int:
+      (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+      (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+      (array-element-size %eax)  # => eax
+      3d/compare-eax-and 1/imm32
+      74/jump-if-= break/disp8
+      3d/compare-eax-and 2/imm32
+      74/jump-if-= break/disp8
+      3d/compare-eax-and 4/imm32
+      74/jump-if-= break/disp8
+      3d/compare-eax-and 8/imm32
+      74/jump-if-= break/disp8
+      e9/jump $check-mu-index-stmt:error-index-needs-offset/disp32
+    }
+    # - check for too many inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-index-stmt:error-too-many-inouts/disp32
+    # - check for 0 outputs
+    # var output/edi: (addr var) = stmt->outputs->value
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-index-stmt:error-too-few-outputs/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %edi 0/r32/eax
+    # - check output type
+    # must have a non-atomic type
+    (lookup *(edi+8) *(edi+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    81 7/subop/compare *edx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-index-stmt:error-output-type-not-address/disp32
+    # type must start with (addr ...)
+    (lookup *(edx+4) *(edx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 2)  # addr => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-index-stmt:error-output-type-not-address/disp32
+    # if tail(base-type) != tail(output-type) abort
+    (type-tail %ebx)  # => eax
+    89/<- %ebx 0/r32/eax
+    (type-tail %edx)  # => eax
+    (type-equal? %ebx %eax)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-index-stmt:error-bad-output-type/disp32
+    # - check for too many outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-index-stmt:error-too-many-outputs/disp32
+$check-mu-index-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-index-stmt:error-base-non-array-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is not an array\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-base-array-atom-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: array '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must specify the type of its elements\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-base-address-array-type-on-stack:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is an addr to an array, and so must live in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-base-array-type-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is an array, and so must live on the stack\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-too-few-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: too few inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-invalid-index-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: second argument '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an int or offset\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-index-offset-atom-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: offset '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must specify the type of array elements\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-index-on-stack:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: second argument '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-index-needs-offset:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: cannot take an int for array '")
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "'; create an offset instead. See mu.md for details.\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: too many inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-too-few-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: must have an output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: too many outputs (1 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-output-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is not in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-output-type-not-address:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an addr\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-index-stmt:error-bad-output-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt index: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' does not have the right type\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-length-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # - check for 0 inouts
+    # var base/ecx: (addr var) = stmt->inouts->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+$check-mu-length-stmt:check-no-inouts:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-length-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # - check base type is either (addr array ...) in register or (array ...) on stack
+    # var base-type/ebx: (addr type-tree) = lookup(base->type)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # if base-type is an atom, abort with a precise error
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    {
+      74/jump-if-= break/disp8
+      (is-simple-mu-type? %ebx 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $check-mu-length-stmt:error-base-array-atom-type/disp32
+      0f 84/jump-if-= $check-mu-length-stmt:error-base-non-array-type/disp32
+    }
+$check-mu-length-stmt:base-is-compound:
+    # if type->left not addr or array, abort
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-length-stmt:error-base-non-array-type/disp32
+    }
+    # if (type->left == addr) ensure type->right->left == array and type->register exists
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$check-mu-length-stmt:base-is-addr:
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $check-mu-length-stmt:error-base-non-array-type/disp32
+$check-mu-length-stmt:check-base-addr-is-register:
+      81 7/subop/compare *(ecx+0x18) 0/imm32  # Var-register
+      0f 84/jump-if-= $check-mu-length-stmt:error-base-address-array-type-on-stack/disp32
+    }
+    # if (type->left == array) ensure type->register doesn't exist
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$check-mu-length-stmt:base-is-array:
+      81 7/subop/compare *(ecx+0x18) 0/imm32  # Var-register
+      0f 85/jump-if-!= $check-mu-length-stmt:error-base-array-type-in-register/disp32
+    }
+    # if (base-type->left == addr) base-type = base-type->right
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      89/<- %ebx 0/r32/eax
+    }
+    # - check for too many inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-length-stmt:error-too-many-inouts/disp32
+    # - check for 0 outputs
+    # var output/edi: (addr var) = stmt->outputs->value
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-length-stmt:error-too-few-outputs/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %edi 0/r32/eax
+    # - check output type
+    # must have a non-atomic type
+    (lookup *(edi+8) *(edi+0xc))  # Var-type Var-type => eax
+    (is-simple-mu-type? %eax 1)  # int => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-length-stmt:error-invalid-output-type/disp32
+    # - check for too many outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-length-stmt:error-too-many-outputs/disp32
+$check-mu-length-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-length-stmt:error-base-non-array-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is not an array\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-base-array-atom-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: array '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must specify the type of its elements\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-base-address-array-type-on-stack:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is an addr to an array, and so must live in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-base-array-type-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is an array, and so must live on the stack\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-too-few-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: too few inouts (1 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-invalid-index-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: second argument '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an int or offset\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-index-offset-atom-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: offset '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must specify the type of array elements\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-index-on-stack:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: second argument '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-index-needs-offset:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: cannot take an int for array '")
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "'; create an offset instead. See mu.md for details.\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: too many inouts (1 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-too-few-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: must have an output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: too many outputs (1 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-output-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is not in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-length-stmt:error-invalid-output-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt length: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' does not have the right type\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-compute-offset-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # - check for 0 inouts
+    # var base/ecx: (addr var) = stmt->inouts->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+$check-mu-compute-offset-stmt:check-no-inouts:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-compute-offset-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # - check base type is either (addr array ...) in register or (array ...) on stack
+    # var base-type/ebx: (addr type-tree) = lookup(base->type)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # if base-type is an atom, abort with a precise error
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    {
+      74/jump-if-= break/disp8
+      (is-simple-mu-type? %ebx 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $check-mu-compute-offset-stmt:error-base-array-atom-type/disp32
+      0f 84/jump-if-= $check-mu-compute-offset-stmt:error-base-non-array-type/disp32
+    }
+$check-mu-compute-offset-stmt:base-is-compound:
+    # if type->left not addr or array, abort
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-compute-offset-stmt:error-base-non-array-type/disp32
+    }
+    # if (type->left == addr) ensure type->right->left == array and type->register exists
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$check-mu-compute-offset-stmt:base-is-addr:
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= $check-mu-compute-offset-stmt:error-base-non-array-type/disp32
+    }
+    # if (base-type->left == addr) base-type = base-type->right
+    {
+      (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      89/<- %ebx 0/r32/eax
+    }
+    # - check for 1 inout
+    # var index/ecx: (addr stmt-var) = stmt->inouts->next->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+$check-mu-compute-offset-stmt:check-single-inout:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-compute-offset-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # - check index is either a literal or register
+    # var index-type/edx: (addr type-tree)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    # index type must be a literal or int
+    81 7/subop/compare *edx 0/imm32/false  # Type-tree-is-atom
+    0f 84/jump-if-= $check-mu-compute-offset-stmt:error-invalid-index-type/disp32
+    {
+$check-mu-compute-offset-stmt:index-type-is-atom:
+      (is-simple-mu-type? %edx 0)  # literal => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      (is-simple-mu-type? %edx 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-compute-offset-stmt:error-invalid-index-type/disp32
+    }
+    # - check for too many inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-compute-offset-stmt:error-too-many-inouts/disp32
+    # - check for 0 outputs
+    # var output/edi: (addr var) = stmt->outputs->value
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-compute-offset-stmt:error-too-few-outputs/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %edi 0/r32/eax
+    # - check output type
+    # must have a non-atomic type
+    (lookup *(edi+8) *(edi+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    81 7/subop/compare *edx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-compute-offset-stmt:error-output-type-not-offset/disp32
+    # type must start with (offset ...)
+    (lookup *(edx+4) *(edx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 7)  # offset => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-compute-offset-stmt:error-output-type-not-offset/disp32
+    # if tail(base-type) != tail(output-type) abort
+    (type-tail %ebx)  # => eax
+    89/<- %ebx 0/r32/eax
+    (type-tail %edx)  # => eax
+    (type-equal? %ebx %eax)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-compute-offset-stmt:error-bad-output-type/disp32
+    # - check for too many outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-compute-offset-stmt:error-too-many-outputs/disp32
+$check-mu-compute-offset-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-compute-offset-stmt:error-base-non-array-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is not an array\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-base-array-atom-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: array '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must specify the type of its elements\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-too-few-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: too few inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-invalid-index-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: second argument '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an int\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-index-offset-atom-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: offset '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must specify the type of array elements\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-index-on-stack:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: second argument '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: too many inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-too-few-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: must have an output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: too many outputs (1 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-output-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' is not in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-output-type-not-offset:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an offset\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-compute-offset-stmt:error-bad-output-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt compute-offset: output '")
+    (lookup *edi *(edi+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' does not have the right type\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-copy-object-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+$check-mu-copy-object-stmt:check-for-output:
+    # if stmt->outputs abort
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-object-stmt:error-too-many-outputs/disp32
+$check-mu-copy-object-stmt:get-left:
+    # var dest/edi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-object-stmt:error-incorrect-inouts/disp32
+$check-mu-copy-object-stmt:get-src:
+    # var src/esi: (addr stmt-var) = dest->next
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %esi 0/r32/eax
+    # 1 inout
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-object-stmt:error-incorrect-inouts/disp32
+    # > 2 inouts
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-copy-object-stmt:error-incorrect-inouts/disp32
+$check-mu-copy-object-stmt:types:
+    # var src-type/ecx: (addr type-tree) = src->value->type
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if (src->is-deref?) src-type = src-type->payload
+    8b/-> *(esi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if src-type->right is null, src-type = src-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ecx 0/r32/eax
+    }
+    # if src-type is not addr, abort
+    (is-mu-addr-type? %ecx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-copy-object-stmt:error-invalid-types/disp32
+    # var dest-type/ebx: (addr type-tree) = dest->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # if (dest->is-deref?) dest-type = dest-type->payload
+    8b/-> *(edi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if dest-type->right is null, dest-type = dest-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ebx 0/r32/eax
+    }
+    # if (dest-type != src-type) abort
+    (type-equal? %ecx %ebx)  # => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-copy-object-stmt:error-invalid-types/disp32
+$check-mu-copy-object-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-copy-object-stmt:error-incorrect-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-object' must have two inouts\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-object-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'copy-object' must not have any outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-copy-object-stmt:error-invalid-types:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt copy-object: two inouts with identical addr types expected\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-clear-object-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+$check-mu-clear-object-stmt:check-for-output:
+    # if stmt->outputs abort
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-clear-object-stmt:error-too-many-outputs/disp32
+$check-mu-clear-object-stmt:get-left:
+    # var dest/edi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-clear-object-stmt:error-incorrect-inouts/disp32
+$check-mu-clear-object-stmt:get-src:
+    # > 1 inout
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-clear-object-stmt:error-incorrect-inouts/disp32
+$check-mu-clear-object-stmt:types:
+    # var src-type/ecx: (addr type-tree) = src->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if (src->is-deref?) src-type = src-type->payload
+    8b/-> *(edi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if src-type->right is null, src-type = src-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ecx 0/r32/eax
+    }
+    # if src-type is not addr, abort
+    (is-mu-addr-type? %ecx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-clear-object-stmt:error-invalid-type/disp32
+$check-mu-clear-object-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-clear-object-stmt:error-incorrect-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'clear-object' must have a single inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-clear-object-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'clear-object' must not have any outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-clear-object-stmt:error-invalid-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt clear-object: inout must have an addr type\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-allocate-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+$check-mu-allocate-stmt:check-for-output:
+    # if stmt->outputs abort
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-allocate-stmt:error-too-many-outputs/disp32
+$check-mu-allocate-stmt:get-target:
+    # var target/edi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-allocate-stmt:error-incorrect-inouts/disp32
+    # > 1 inouts
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-allocate-stmt:error-incorrect-inouts/disp32
+$check-mu-allocate-stmt:check-type:
+    # var target-type/ebx: (addr type-tree) = target->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # if (target->is-deref?) target-type = target-type->payload
+    8b/-> *(edi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if target-type->right is null, target-type = target-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ebx 0/r32/eax
+    }
+    # if target-type is not addr, abort
+    (is-mu-addr-type? %ebx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-allocate-stmt:error-invalid-type/disp32
+    # if target-type->right is an atom, abort
+    (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-allocate-stmt:error-invalid-type/disp32
+    # if target-type->right->left is not handle, abort
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 4)  # handle => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-allocate-stmt:error-invalid-type/disp32
+$check-mu-allocate-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-allocate-stmt:error-incorrect-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'allocate' must have a single inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-allocate-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'allocate' must not have any outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-allocate-stmt:error-invalid-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt allocate: inout '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must have type (addr handle ...)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-populate-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+$check-mu-populate-stmt:check-for-output:
+    # if stmt->outputs abort
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-populate-stmt:error-too-many-outputs/disp32
+$check-mu-populate-stmt:get-target:
+    # var target/edi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-populate-stmt:error-incorrect-inouts/disp32
+$check-mu-populate-stmt:get-length:
+    # var length/esi: (addr stmt-var) = dest->next
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %esi 0/r32/eax
+    # 1 inout
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-populate-stmt:error-incorrect-inouts/disp32
+    # > 2 inouts
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-populate-stmt:error-incorrect-inouts/disp32
+$check-mu-populate-stmt:check-target-type:
+    # var target-type/ebx: (addr type-tree) = target->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+$check-mu-populate-stmt:check-target-type-deref:
+    # if (target->is-deref?) target-type = target-type->payload
+    8b/-> *(edi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if target-type->right is null, target-type = target-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ebx 0/r32/eax
+    }
+$check-mu-populate-stmt:check-target-type-addr:
+    # if target-type is not addr, abort
+    (is-mu-addr-type? %ebx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-populate-stmt:error-invalid-target-type/disp32
+    # if target-type->right is an atom, abort
+    (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ebx 0/r32/eax
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-populate-stmt:error-invalid-target-type/disp32
+$check-mu-populate-stmt:check-target-type-handle:
+    # if target-type->right->left is not handle, abort
+    (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 4)  # handle => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-populate-stmt:error-invalid-target-type/disp32
+    # if target-type->right->right is an atom, abort
+    (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ebx 0/r32/eax
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-populate-stmt:error-invalid-target-type/disp32
+$check-mu-populate-stmt:check-target-type-array:
+    # if target-type->right->right->left is not array, abort
+    (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 3)  # array => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-populate-stmt:error-invalid-target-type/disp32
+$check-mu-populate-stmt:check-length-type:
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    (is-simple-mu-type? %ebx 0)  # literal => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $check-mu-populate-stmt:end/disp8
+    (is-simple-mu-type? %ebx 1)  # int => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-populate-stmt:error-invalid-length-type/disp32
+$check-mu-populate-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-populate-stmt:error-incorrect-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'populate' must have two inouts\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-populate-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'populate' must not have any outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-populate-stmt:error-invalid-target-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt populate: first inout '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must have type (addr handle array ...)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-populate-stmt:error-invalid-length-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt populate: second inout '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an int\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-populate-stream-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+$check-mu-populate-stream-stmt:check-for-output:
+    # if stmt->outputs abort
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-populate-stream-stmt:error-too-many-outputs/disp32
+$check-mu-populate-stream-stmt:get-target:
+    # var target/edi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-populate-stream-stmt:error-incorrect-inouts/disp32
+$check-mu-populate-stream-stmt:get-length:
+    # var length/esi: (addr stmt-var) = dest->next
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %esi 0/r32/eax
+    # 1 inout
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-populate-stream-stmt:error-incorrect-inouts/disp32
+    # > 2 inouts
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-populate-stream-stmt:error-incorrect-inouts/disp32
+$check-mu-populate-stream-stmt:check-target-type:
+    # var target-type/ebx: (addr type-tree) = target->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+$check-mu-populate-stream-stmt:check-target-type-deref:
+    # if (target->is-deref?) target-type = target-type->payload
+    8b/-> *(edi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if target-type->right is null, target-type = target-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ebx 0/r32/eax
+    }
+$check-mu-populate-stream-stmt:check-target-type-addr:
+    # if target-type is not addr, abort
+    (is-mu-addr-type? %ebx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-populate-stream-stmt:error-invalid-target-type/disp32
+    # if target-type->right is an atom, abort
+    (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ebx 0/r32/eax
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-populate-stream-stmt:error-invalid-target-type/disp32
+$check-mu-populate-stream-stmt:check-target-type-handle:
+    # if target-type->right->left is not handle, abort
+    (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 4)  # handle => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-populate-stream-stmt:error-invalid-target-type/disp32
+    # if target-type->right->right is an atom, abort
+    (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ebx 0/r32/eax
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-populate-stream-stmt:error-invalid-target-type/disp32
+$check-mu-populate-stream-stmt:check-target-type-stream:
+    # if target-type->right->right->left is not stream, abort
+    (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 0xb)  # stream => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-populate-stream-stmt:error-invalid-target-type/disp32
+$check-mu-populate-stream-stmt:check-length-type:
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    (is-simple-mu-type? %ebx 0)  # literal => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $check-mu-populate-stream-stmt:end/disp8
+    (is-simple-mu-type? %ebx 1)  # int => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-populate-stream-stmt:error-invalid-length-type/disp32
+$check-mu-populate-stream-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-populate-stream-stmt:error-incorrect-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'populate-stream' must have two inouts\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-populate-stream-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'populate-stream' must not have any outputs\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-populate-stream-stmt:error-invalid-target-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt populate-stream: first inout '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must have type (addr handle stream ...)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-populate-stream-stmt:error-invalid-length-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt populate-stream: second inout '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an int\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-read-from-stream-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # - check for 0 inouts
+    # var base/ecx: (addr var) = stmt->inouts->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+$check-mu-read-from-stream-stmt:check-no-inouts:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-read-from-stream-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # - check base type is (addr stream T)
+    # var base-type/ebx: (addr type-tree) = lookup(base->type)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+$check-mu-read-from-stream-stmt:check-base-is-compound:
+    # if base-type is an atom, abort
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-read-from-stream-stmt:error-invalid-base-type/disp32
+$check-mu-read-from-stream-stmt:check-base-is-addr:
+    # if type->left not addr, abort
+    (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 2)  # addr => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-read-from-stream-stmt:error-invalid-base-type/disp32
+$check-mu-read-from-stream-stmt:check-base-is-addr-to-stream:
+    # base-type = base-type->right
+    (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ebx 0/r32/eax
+    # ensure base-type->left == stream
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 0xb)  # stream => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-read-from-stream-stmt:error-invalid-base-type/disp32
+    # - check target type is (addr T)
+    # var target/ecx: (addr stmt-var) = stmt->inouts->next->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+$check-mu-read-from-stream-stmt:check-single-inout:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-read-from-stream-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # var target-type/edx: (addr type-tree)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    # if target-type is an atom, it must be a literal or int
+$check-mu-read-from-stream-stmt:check-target-is-compound:
+    81 7/subop/compare *edx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-read-from-stream-stmt:error-target-type-not-address/disp32
+$check-mu-read-from-stream-stmt:check-target-type:
+    # target type must start with (addr ...)
+    (lookup *(edx+4) *(edx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 2)  # addr => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-read-from-stream-stmt:error-target-type-not-address/disp32
+    # if tail(base-type) != tail(target-type) abort
+    (type-tail %ebx)  # => eax
+    89/<- %ebx 0/r32/eax
+    (type-tail %edx)  # => eax
+    (type-equal? %ebx %eax)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-read-from-stream-stmt:error-invalid-target-type/disp32
+$check-mu-read-from-stream-stmt:check-too-many-inouts:
+    # - check for too many inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-read-from-stream-stmt:error-too-many-inouts/disp32
+$check-mu-read-from-stream-stmt:check-unexpected-output:
+    # - check for any output
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-read-from-stream-stmt:error-unexpected-output/disp32
+$check-mu-read-from-stream-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-read-from-stream-stmt:error-invalid-base-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt read-from-stream: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an addr to a stream\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-read-from-stream-stmt:error-too-few-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt read-from-stream: too few inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-read-from-stream-stmt:error-target-type-not-address:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt read-from-stream: target '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an addr\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-read-from-stream-stmt:error-invalid-target-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt read-from-stream: second inout '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' does not have the right type\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-read-from-stream-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt read-from-stream: too many inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-read-from-stream-stmt:error-unexpected-output:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt read-from-stream: unexpected output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-write-to-stream-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # - check for 0 inouts
+    # var base/ecx: (addr var) = stmt->inouts->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+$check-mu-write-to-stream-stmt:check-no-inouts:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-write-to-stream-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # - check base type is (addr stream T)
+    # var base-type/ebx: (addr type-tree) = lookup(base->type)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+$check-mu-write-to-stream-stmt:check-base-is-compound:
+    # if base-type is an atom, abort
+    81 7/subop/compare *ebx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-write-to-stream-stmt:error-invalid-base-type/disp32
+$check-mu-write-to-stream-stmt:check-base-is-addr:
+    # if type->left not addr, abort
+    (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 2)  # addr => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-write-to-stream-stmt:error-invalid-base-type/disp32
+$check-mu-write-to-stream-stmt:check-base-is-addr-to-stream:
+    # base-type = base-type->right
+    (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ebx 0/r32/eax
+    # ensure base-type->left == stream
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 0xb)  # stream => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-write-to-stream-stmt:error-invalid-base-type/disp32
+    # - check target type is (addr T)
+    # var target/ecx: (addr stmt-var) = stmt->inouts->next->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+$check-mu-write-to-stream-stmt:check-single-inout:
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-write-to-stream-stmt:error-too-few-inouts/disp32
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # var target-type/edx: (addr type-tree)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    # if target-type is an atom, it must be a literal or int
+$check-mu-write-to-stream-stmt:check-target-is-compound:
+    81 7/subop/compare *edx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $check-mu-write-to-stream-stmt:error-target-type-not-address/disp32
+$check-mu-write-to-stream-stmt:check-target-type:
+    # target type must start with (addr ...)
+    (lookup *(edx+4) *(edx+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 2)  # addr => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-write-to-stream-stmt:error-target-type-not-address/disp32
+    # if tail(base-type) != tail(target-type) abort
+    (type-tail %ebx)  # => eax
+    89/<- %ebx 0/r32/eax
+    (type-tail %edx)  # => eax
+    (type-equal? %ebx %eax)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $check-mu-write-to-stream-stmt:error-invalid-target-type/disp32
+$check-mu-write-to-stream-stmt:check-too-many-inouts:
+    # - check for too many inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-write-to-stream-stmt:error-too-many-inouts/disp32
+$check-mu-write-to-stream-stmt:check-unexpected-output:
+    # - check for any output
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 85/jump-if-!= $check-mu-write-to-stream-stmt:error-unexpected-output/disp32
+$check-mu-write-to-stream-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-write-to-stream-stmt:error-invalid-base-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt write-to-stream: var '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an addr to a stream\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-write-to-stream-stmt:error-too-few-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt write-to-stream: too few inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-write-to-stream-stmt:error-target-type-not-address:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt write-to-stream: target '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an addr\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-write-to-stream-stmt:error-invalid-target-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt write-to-stream: second inout '")
+    (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' does not have the right type\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-write-to-stream-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt write-to-stream: too many inouts (2 required)\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-write-to-stream-stmt:error-unexpected-output:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt write-to-stream: unexpected output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-convert-stmt:  # stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    57/push-edi
+$check-mu-convert-stmt:get-output:
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # var output/edi: (addr stmt-var) = stmt->outputs
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    89/<- %edi 0/r32/eax
+    # zero outputs
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-convert-stmt:error-no-output/disp32
+    # > 1 output
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-convert-stmt:error-too-many-outputs/disp32
+$check-mu-convert-stmt:get-inout:
+    # var inout/esi: (addr stmt-var) = stmt->inouts
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %esi 0/r32/eax
+    # zero inouts
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-convert-stmt:error-no-inout/disp32
+    # > 1 inout
+    (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    3d/compare-eax-and 0/imm32
+    0f 85/jump-if-!= $check-mu-convert-stmt:error-too-many-inouts/disp32
+$check-mu-convert-stmt:types:
+    # var inout-type/ecx: (addr type-tree) = inout->value->type
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if (inout->is-deref?) inout-type = inout-type->payload
+    8b/-> *(esi+0x10) 0/r32/eax  # Stmt-var-is-deref
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      # if inout-type->right is null, t = inout-type->left
+      81 7/subop/compare *(eax+0xc) 0/imm32  # Type-tree-right
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      89/<- %ecx 0/r32/eax
+    }
+    # if input is not int or float, abort
+    {
+      (is-simple-mu-type? %ecx 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      (is-simple-mu-type? %ecx 0xf)  # float => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-convert-stmt:error-invalid-inout-type/disp32
+    }
+    # if output not in register, abort
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $check-mu-convert-stmt:error-output-not-in-register/disp32
+    # var output-type/edx: (addr type-tree) = output->value->type
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    89/<- %edx 0/r32/eax
+    # if output is not int or float, abort
+    {
+      (is-simple-mu-type? %edx 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      (is-simple-mu-type? %edx 0xf)  # float => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      e9/jump $check-mu-convert-stmt:error-invalid-output-type/disp32
+    }
+    # if both are ints, abort
+    {
+      (is-simple-mu-type? %edx 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (is-simple-mu-type? %ecx 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      e9/jump $check-mu-convert-stmt:error-int-to-int/disp32
+    }
+    # if both are floats, abort
+    {
+      (is-simple-mu-type? %edx 0xf)  # float => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (is-simple-mu-type? %ecx 0xf)  # float => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      e9/jump $check-mu-convert-stmt:error-float-to-float/disp32
+    }
+$check-mu-convert-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$check-mu-convert-stmt:error-no-inout:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'convert' expects an inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-convert-stmt:error-too-many-inouts:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'convert' must have just one inout\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-convert-stmt:error-no-output:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'convert' expects an output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-convert-stmt:error-output-not-in-register:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt convert: output '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' not in a register\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-convert-stmt:error-too-many-outputs:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt 'convert' must have just one output\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-convert-stmt:error-invalid-inout-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt convert: inout '")
+    (lookup *esi *(esi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an int or float\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-convert-stmt:error-invalid-output-type:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt convert: output '")
+    (lookup *edi *(edi+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) "' must be an int or float\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-convert-stmt:error-int-to-int:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt convert: no need to convert int to int\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+$check-mu-convert-stmt:error-float-to-float:
+    (write-buffered *(ebp+0x10) "fn ")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) ": stmt convert: no need to convert float to float\n")
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+check-mu-call:  # stmt: (addr stmt), callee: (addr function), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var type-parameters: (addr table (handle array byte) (addr type-tree) 8)
+    68/push 0/imm32
+    # var type-parameters-storage: (table (handle array byte) (addr type-tree) 8)
+    81 5/subop/subtract %esp 0x60/imm32
+    68/push 0x60/imm32/size
+    68/push 0/imm32/read
+    68/push 0/imm32/write
+    # save a pointer to type-parameters-storage at type-parameters
+    89/<- *(ebp-4) 4/r32/esp
+    (clear-stream *(ebp-4))
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # edi = callee
+    8b/-> *(ebp+0xc) 7/r32/edi
+    # var inouts/ecx: (addr stmt-var) = lookup(stmt->inouts)
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %ecx 0/r32/eax
+    # var expected/edx: (addr list var) = lookup(f->inouts)
+    (lookup *(edi+8) *(edi+0xc))  # Function-inouts Function-inouts => eax
+    89/<- %edx 0/r32/eax
+    {
+$check-mu-call:check-for-inouts:
+      # if (inouts == 0) break
+      81 7/subop/compare %ecx 0/imm32
+      0f 84/jump-if-= break/disp32
+      # if (expected == 0) error
+      81 7/subop/compare %edx 0/imm32
+      0f 84/jump-if-= break/disp32
+$check-mu-call:check-null-addr:
+      # if (inouts->value->name == "0") continue
+      (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *eax *(eax+4))  # Var-name Var-name => eax
+      (string-equal? %eax "0")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= $check-mu-call:continue-to-next-inout/disp32
+$check-mu-call:check-inout-type:
+      # var t/ebx: (addr type-tree) = inouts->value->type
+      (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      89/<- %ebx 0/r32/eax
+      # if (inouts->is-deref?) t = t->right
+      81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+      {
+        74/jump-if-= break/disp8
+        (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+        89/<- %ebx 0/r32/eax
+        # if t->right is null, t = t->left
+        81 7/subop/compare *(ebx+0xc) 0/imm32  # Type-tree-right
+        75/jump-if-!= break/disp8
+        (lookup *(ebx+4) *(ebx+8))  # Type-tree-left Type-tree-left => eax
+        89/<- %ebx 0/r32/eax
+      }
+      # var v2/eax: (addr v) = lookup(expected->value)
+      (lookup *edx *(edx+4))  # List-value List-value => eax
+      # var t2/eax: (addr type-tree) = lookup(v2->type)
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      # if (t != t2) error
+      (type-match? %eax %ebx *(ebp-4))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        0f 85/jump-if-!= break/disp32
+        (write-buffered *(ebp+0x14) "fn ")
+        8b/-> *(ebp+0x10) 0/r32/eax
+        (lookup *eax *(eax+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": call ")
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": type for inout '")
+        (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+        (lookup *eax *(eax+4))  # Var-name Var-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) "' is not right\n")
+        (flush *(ebp+0x14))
+        (stop *(ebp+0x18) 1)
+      }
+$check-mu-call:continue-to-next-inout:
+      # inouts = lookup(inouts->next)
+      (lookup *(ecx+8) *(ecx+0xc))  # Stmt-var-next Stmt-var-next => eax
+      89/<- %ecx 0/r32/eax
+      # expected = lookup(expected->next)
+      (lookup *(edx+8) *(edx+0xc))  # List-next List-next => eax
+      89/<- %edx 0/r32/eax
+      #
+      e9/jump loop/disp32
+    }
+$check-mu-call:check-inout-count:
+    # if (inouts == expected) proceed
+    39/compare %ecx 2/r32/edx
+    {
+      0f 84/jump-if-= break/disp32
+      # exactly one of the two is null
+      # if (inouts == 0) error("too many inouts")
+      {
+        81 7/subop/compare %ecx 0/imm32
+        0f 84/jump-if-= break/disp32
+        (write-buffered *(ebp+0x14) "fn ")
+        8b/-> *(ebp+0x10) 0/r32/eax
+        (lookup *eax *(eax+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": call ")
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": too many inouts\n")
+        (flush *(ebp+0x14))
+        (stop *(ebp+0x18) 1)
+      }
+      # if (expected == 0) error("too few inouts")
+      {
+        81 7/subop/compare %edx 0/imm32
+        0f 84/jump-if-= break/disp32
+        (write-buffered *(ebp+0x14) "fn ")
+        8b/-> *(ebp+0x10) 0/r32/eax
+        (lookup *eax *(eax+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": call ")
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": too few inouts\n")
+        (flush *(ebp+0x14))
+        (stop *(ebp+0x18) 1)
+      }
+    }
+$check-mu-call:check-outputs:
+    # var outputs/ecx: (addr stmt-var) = lookup(stmt->outputs)
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    89/<- %ecx 0/r32/eax
+    # var expected/edx: (addr list var) = lookup(f->outputs)
+    (lookup *(edi+0x10) *(edi+0x14))  # Function-outputs Function-outputs => eax
+    89/<- %edx 0/r32/eax
+    {
+$check-mu-call:check-for-outputs:
+      # if (outputs == 0) break
+      81 7/subop/compare %ecx 0/imm32
+      0f 84/jump-if-= break/disp32
+      # if (expected == 0) error
+      81 7/subop/compare %edx 0/imm32
+      0f 84/jump-if-= break/disp32
+$check-mu-call:check-output-type:
+      # var v/eax: (addr v) = lookup(outputs->value)
+      (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+      # var t/ebx: (addr type-tree) = lookup(v->type)
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      89/<- %ebx 0/r32/eax
+      # if (outputs->is-deref?) t = t->right  # TODO: check that t->left is an addr
+      81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+      {
+        74/jump-if-= break/disp8
+        (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+        89/<- %ebx 0/r32/eax
+      }
+      # var v2/eax: (addr v) = lookup(expected->value)
+      (lookup *edx *(edx+4))  # List-value List-value => eax
+      # var t2/eax: (addr type-tree) = lookup(v2->type)
+      (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+      # if (t != t2) error
+      (type-match? %eax %ebx *(ebp-4))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        0f 85/jump-if-!= break/disp32
+        (write-buffered *(ebp+0x14) "fn ")
+        8b/-> *(ebp+0x10) 0/r32/eax
+        (lookup *eax *(eax+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": call ")
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": type for output '")
+        (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+        (lookup *eax *(eax+4))  # Var-name Var-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) "' is not right\n")
+        (flush *(ebp+0x14))
+        (stop *(ebp+0x18) 1)
+      }
+$check-mu-call:check-output-register:
+      # var v/eax: (addr v) = lookup(outputs->value)
+      (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+      # var r/ebx: (addr array byte) = lookup(v->register)
+      (lookup *(eax+18) *(eax+0x1c))  # Var-register Var-register => eax
+      89/<- %ebx 0/r32/eax
+      # if (r == 0) error
+      3d/compare-eax-and 0/imm32
+      {
+        0f 85/jump-if-!= break/disp32
+        (write-buffered *(ebp+0x14) "fn ")
+        8b/-> *(ebp+0x10) 0/r32/eax
+        (lookup *eax *(eax+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": call ")
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": output '")
+        (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+        (lookup *eax *(eax+4))  # Var-name Var-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) "' is not in a register\n")
+        (flush *(ebp+0x14))
+        (stop *(ebp+0x18) 1)
+      }
+      # var v2/eax: (addr v) = lookup(expected->value)
+      (lookup *edx *(edx+4))  # Stmt-var-value Stmt-var-value => eax
+      # var r2/eax: (addr array byte) = lookup(v2->register)
+      (lookup *(eax+18) *(eax+0x1c))  # Var-register Var-register => eax
+      # if (r != r2) error
+      (string-equal? %eax %ebx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        0f 85/jump-if-!= break/disp32
+        (write-buffered *(ebp+0x14) "fn ")
+        8b/-> *(ebp+0x10) 0/r32/eax
+        (lookup *eax *(eax+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": call ")
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": register for output '")
+        (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+        (lookup *eax *(eax+4))  # Var-name Var-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) "' is not right\n")
+        (flush *(ebp+0x14))
+        (stop *(ebp+0x18) 1)
+      }
+$check-mu-call:continue-to-next-output:
+      # outputs = lookup(outputs->next)
+      (lookup *(ecx+8) *(ecx+0xc))  # Stmt-var-next Stmt-var-next => eax
+      89/<- %ecx 0/r32/eax
+      # expected = lookup(expected->next)
+      (lookup *(edx+8) *(edx+0xc))  # List-next List-next => eax
+      89/<- %edx 0/r32/eax
+      #
+      e9/jump loop/disp32
+    }
+$check-mu-call:check-output-count:
+    # if (outputs == expected) proceed
+    39/compare %ecx 2/r32/edx
+    {
+      0f 84/jump-if-= break/disp32
+      # exactly one of the two is null
+      # if (outputs == 0) error("too many outputs")
+      {
+        81 7/subop/compare %ecx 0/imm32
+        0f 84/jump-if-= break/disp32
+        (write-buffered *(ebp+0x14) "fn ")
+        8b/-> *(ebp+0x10) 0/r32/eax
+        (lookup *eax *(eax+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": call ")
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": too many outputs\n")
+        (flush *(ebp+0x14))
+        (stop *(ebp+0x18) 1)
+      }
+      # if (expected == 0) error("too few outputs")
+      {
+        81 7/subop/compare %edx 0/imm32
+        0f 84/jump-if-= break/disp32
+        (write-buffered *(ebp+0x14) "fn ")
+        8b/-> *(ebp+0x10) 0/r32/eax
+        (lookup *eax *(eax+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": call ")
+        (lookup *edi *(edi+4))  # Function-name Function-name => eax
+        (write-buffered *(ebp+0x14) %eax)
+        (write-buffered *(ebp+0x14) ": too few outputs\n")
+        (flush *(ebp+0x14))
+        (stop *(ebp+0x18) 1)
+      }
+    }
+$check-mu-call:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . reclaim locals exclusively on the stack
+    81 0/subop/add %esp 0x70/imm32
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# like type-equal? but takes literals type parameters into account
+type-match?:  # def: (addr type-tree), call: (addr type-tree), type-parameters: (addr table (handle array byte) (addr type-tree)) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # if (call is literal and def is numberlike) return true
+    {
+$type-match?:check-literal-int:
+      (is-simple-mu-type? *(ebp+0xc) 0)  # literal => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (is-mu-numberlike-output? *(ebp+8))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      b8/copy-to-eax 1/imm32/true
+      e9/jump $type-match?:end/disp32
+    }
+    # if (call is literal-string and def is string) return true
+    {
+$type-match?:check-literal-string:
+      (is-simple-mu-type? *(ebp+0xc) 0x10)  # literal-string => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (is-mu-string-type? *(ebp+8))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      b8/copy-to-eax 1/imm32/true
+      e9/jump $type-match?:end/disp32
+    }
+$type-match?:baseline:
+    # otherwise fall back
+    (type-component-match? *(ebp+8) *(ebp+0xc) *(ebp+0x10))  # => eax
+$type-match?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+type-component-match?:  # def: (addr type-tree), call: (addr type-tree), type-parameters: (addr table (handle array byte) (addr type-tree)) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = def
+    8b/-> *(ebp+8) 1/r32/ecx
+    # edx = call
+    8b/-> *(ebp+0xc) 2/r32/edx
+$type-component-match?:compare-addr:
+    # if (def == call) return true
+    8b/-> %ecx 0/r32/eax  # Var-type
+    39/compare %edx 0/r32/eax  # Var-type
+    b8/copy-to-eax 1/imm32/true
+    0f 84/jump-if-= $type-component-match?:end/disp32
+    # if (def == 0) return false
+    b8/copy-to-eax 0/imm32/false
+    81 7/subop/compare %ecx 0/imm32  # Type-tree-is-atom
+    0f 84/jump-if-= $type-component-match?:end/disp32
+    # if (call == 0) return false
+    81 7/subop/compare %edx 0/imm32  # Type-tree-is-atom
+    0f 84/jump-if-= $type-component-match?:end/disp32
+    # if def is a type parameter, just check in type-parameters
+    {
+$type-component-match?:check-type-parameter:
+      81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+      74/jump-if-= break/disp8
+      81 7/subop/compare *(ecx+4) 0xa/imm32/type-parameter  # Type-tree-value
+      75/jump-if-!= break/disp8
+$type-component-match?:type-parameter:
+      (type-parameter-match? *(ecx+8) *(ecx+0xc)  %edx  *(ebp+0x10))  # => eax
+      e9/jump $type-component-match?:end/disp32
+    }
+    # if def is a list containing just a type parameter, just check in type-parameters
+    {
+$type-component-match?:check-list-type-parameter:
+      # if def is a list..
+      81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+      75/jump-if-!= break/disp8
+      #   ..that's a singleton
+      81 7/subop/compare *(ecx+0xc) 0/imm32  # Type-tree-left
+      75/jump-if-!= break/disp8
+      #   ..and whose head is a type parameter
+      (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+      81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+      74/jump-if-= break/disp8
+      81 7/subop/compare *(eax+4) 0xa/imm32/type-parameter  # Type-tree-value
+      75/jump-if-!= break/disp8
+$type-component-match?:list-type-parameter:
+      (type-parameter-match? *(eax+8) *(eax+0xc)  %edx  *(ebp+0x10))  # => eax
+      e9/jump $type-component-match?:end/disp32
+    }
+$type-component-match?:compare-atom-state:
+    # if (def->is-atom? != call->is-atom?) return false
+    8b/-> *ecx 3/r32/ebx  # Type-tree-is-atom
+    39/compare *edx 3/r32/ebx  # Type-tree-is-atom
+    b8/copy-to-eax 0/imm32/false
+    0f 85/jump-if-!= $type-component-match?:end/disp32
+    # if def->is-atom? return (def->value == call->value)
+    {
+$type-component-match?:check-atom:
+      81 7/subop/compare %ebx 0/imm32/false
+      74/jump-if-= break/disp8
+$type-component-match?:is-atom:
+      8b/-> *(ecx+4) 0/r32/eax  # Type-tree-value
+      39/compare *(edx+4) 0/r32/eax  # Type-tree-value
+      0f 94/set-if-= %al
+      81 4/subop/and %eax 0xff/imm32
+      e9/jump $type-component-match?:end/disp32
+    }
+$type-component-match?:check-left:
+    # if (!type-component-match?(def->left, call->left)) return false
+    (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+    89/<- %ebx 0/r32/eax
+    (lookup *(edx+4) *(edx+8))  # Type-tree-left Type-tree-left => eax
+    (type-component-match? %ebx %eax *(ebp+0x10))  # => eax
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $type-component-match?:end/disp8
+$type-component-match?:check-right:
+    # return type-component-match?(def->right, call->right)
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ebx 0/r32/eax
+    (lookup *(edx+0xc) *(edx+0x10))  # Type-tree-right Type-tree-right => eax
+    (type-component-match? %ebx %eax *(ebp+0x10))  # => eax
+$type-component-match?:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+type-parameter-match?:  # type-parameter-name: (handle array byte), type: (addr type-tree), type-parameters: (addr table (handle array byte) (addr type-tree)) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    #
+    (get-or-insert-handle *(ebp+0x14)  *(ebp+8) *(ebp+0xc)  0xc)  # => eax
+    # if parameter wasn't saved, save it
+    {
+      81 7/subop/compare *eax 0/imm32
+      75/jump-if-!= break/disp8
+      8b/-> *(ebp+0x10) 1/r32/ecx
+      89/<- *eax 1/r32/ecx
+    }
+    #
+    (type-equal? *(ebp+0x10) *eax)  # => eax
+$type-parameter-match?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+size-of:  # v: (addr var) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var t/ecx: (addr type-tree) = lookup(v->type)
+    8b/-> *(ebp+8) 1/r32/ecx
+#?     (write-buffered Stderr "size-of ")
+#?     (write-int32-hex-buffered Stderr %ecx)
+#?     (write-buffered Stderr Newline)
+#?     (write-buffered Stderr "type allocid: ")
+#?     (write-int32-hex-buffered Stderr *(ecx+8))
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # if is-mu-array?(t) return size-of-array(t)
+    {
+      (is-mu-array? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (size-of-array %ecx)  # => eax
+      eb/jump $size-of:end/disp8
+    }
+    # if is-mu-stream?(t) return size-of-stream(t)
+    {
+      (is-mu-stream? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (size-of-stream %ecx)  # => eax
+      eb/jump $size-of:end/disp8
+    }
+    # if (!t->is-atom?) t = lookup(t->left)
+    {
+      81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+      75/jump-if-!= break/disp8
+      (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ecx 0/r32/eax
+    }
+    # TODO: assert t->is-atom?
+    (size-of-type-id *(ecx+4))  # Type-tree-value => eax
+$size-of:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+size-of-deref:  # v: (addr var) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var t/ecx: (addr type-tree) = lookup(v->type)
+    8b/-> *(ebp+8) 1/r32/ecx
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    89/<- %ecx 0/r32/eax
+    # TODO: assert(t is an addr)
+    # t = lookup(t->right)
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ecx 0/r32/eax
+    # if is-mu-array?(t) return size-of-array(t)
+    {
+      (is-mu-array? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (size-of-array %ecx)  # => eax
+      eb/jump $size-of-deref:end/disp8
+    }
+    # if is-mu-stream?(t) return size-of-stream(t)
+    {
+      (is-mu-stream? %ecx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (size-of-stream %ecx)  # => eax
+      eb/jump $size-of-deref:end/disp8
+    }
+    # if (!t->is-atom?) t = lookup(t->left)
+    {
+      81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+      75/jump-if-!= break/disp8
+      (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+      89/<- %ecx 0/r32/eax
+    }
+    # TODO: assert t->is-atom?
+    (size-of-type-id *(ecx+4))  # Type-tree-value => eax
+$size-of-deref:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-mu-array?:  # t: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # ecx = t
+    8b/-> *(ebp+8) 1/r32/ecx
+    # if t->is-atom?, return false
+    81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+    75/jump-if-!= $is-mu-array?:return-false/disp8
+    # if !t->left->is-atom?, return false
+    (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    74/jump-if-= $is-mu-array?:return-false/disp8
+    # return t->left->value == array
+    81 7/subop/compare *(eax+4) 3/imm32/array-type-id  # Type-tree-value
+    0f 94/set-if-= %al
+    81 4/subop/and %eax 0xff/imm32
+    eb/jump $is-mu-array?:end/disp8
+$is-mu-array?:return-false:
+    b8/copy-to-eax 0/imm32/false
+$is-mu-array?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# size of a statically allocated array where the size is part of the type expression
+size-of-array:  # a: (addr type-tree) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    #
+    8b/-> *(ebp+8) 1/r32/ecx
+    # TODO: assert that a->left is 'array'
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ecx 0/r32/eax
+    # var elem-type/edx: type-id = a->right->left->value
+    (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+    8b/-> *(eax+4) 2/r32/edx  # Type-tree-value
+    # TODO: assert that a->right->right->left->value == size
+    # var array-size/ecx: int = a->right->right->left->value-size
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    8b/-> *(eax+8) 1/r32/ecx  # Type-tree-value-size
+    # return 4 + array-size * size-of(elem-type)
+    (size-of-type-id-as-array-element %edx)  # => eax
+    f7 4/subop/multiply-into-edx-eax %ecx
+    05/add-to-eax 4/imm32  # for array size
+    # TODO: check edx for overflow
+$size-of-array:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-mu-stream?:  # t: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # ecx = t
+    8b/-> *(ebp+8) 1/r32/ecx
+    # if t->is-atom?, return false
+    81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+    75/jump-if-!= $is-mu-stream?:return-false/disp8
+    # if !t->left->is-atom?, return false
+    (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    74/jump-if-= $is-mu-stream?:return-false/disp8
+    # return t->left->value == stream
+    81 7/subop/compare *(eax+4) 0xb/imm32/stream-type-id  # Type-tree-value
+    0f 94/set-if-= %al
+    81 4/subop/and %eax 0xff/imm32
+    eb/jump $is-mu-stream?:end/disp8
+$is-mu-stream?:return-false:
+    b8/copy-to-eax 0/imm32/false
+$is-mu-stream?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# size of a statically allocated stream where the size is part of the type expression
+size-of-stream:  # a: (addr type-tree) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (size-of-array *(ebp+8))  # assumes we ignore the actual type name 'array' in the type
+    05/add-to-eax 8/imm32  # for read/write pointers
+$size-of-stream:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+size-of-type-id:  # t: type-id -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var out/ecx: (handle typeinfo)
+    68/push 0/imm32
+    68/push 0/imm32
+    89/<- %ecx 4/r32/esp
+    # eax = t
+    8b/-> *(ebp+8) 0/r32/eax
+    # if t is a literal, return 0
+    3d/compare-eax-and 0/imm32
+    0f 84/jump-if-= $size-of-type-id:end/disp32  # eax changes type from type-id to int
+    # if t is a byte, return 4 (because we don't really support non-multiples of 4)
+    3d/compare-eax-and 8/imm32/byte
+    {
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 4/imm32
+      eb/jump $size-of-type-id:end/disp8
+    }
+    # if t is a handle, return 8
+    3d/compare-eax-and 4/imm32/handle
+    {
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 8/imm32
+      eb/jump $size-of-type-id:end/disp8  # eax changes type from type-id to int
+    }
+    # if t is a slice, return 8
+    3d/compare-eax-and 0xc/imm32/slice
+    {
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 8/imm32
+      eb/jump $size-of-type-id:end/disp8  # eax changes type from type-id to int
+    }
+    # if t is a user-defined type, return its size
+    # TODO: support non-atom type
+    (find-typeinfo %eax %ecx)
+    {
+      81 7/subop/compare *ecx 0/imm32
+      74/jump-if-= break/disp8
+$size-of-type-id:user-defined:
+      (lookup *ecx *(ecx+4))  # => eax
+      8b/-> *(eax+0xc) 0/r32/eax  # Typeinfo-total-size-in-bytes
+      eb/jump $size-of-type-id:end/disp8
+    }
+    # otherwise return the word size
+    b8/copy-to-eax 4/imm32
+$size-of-type-id:end:
+    # . reclaim locals
+    81 0/subop/add %esp 8/imm32
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# Minor violation of our type system since it returns an addr. But we could
+# replace it with a handle some time.
+# Returns null if t is an atom.
+type-tail:  # t: (addr type-tree) -> out/eax: (addr type-tree)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # eax = 0
+    b8/copy-to-eax 0/imm32
+    # ecx = t
+    8b/-> *(ebp+8) 1/r32/ecx
+$type-tail:check-atom:
+    # if t->is-atom? return 0
+    81 7/subop/compare *ecx 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $type-tail:end/disp32
+    # var tail = t->right
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ecx 0/r32/eax
+$type-tail:check-singleton:
+    # if (tail->right == 0) return tail->left
+    {
+      81 7/subop/compare *(ecx+0xc) 0/imm32  # Type-tree-right
+      75/jump-if-!= break/disp8
+      (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+      e9/jump $type-tail:end/disp32
+    }
+    # if tail->right->left is an array-capacity, return tail->left
+    {
+$type-tail:check-array-capacity:
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+      81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+      75/jump-if-!= break/disp8
+$type-tail:check-array-capacity-1:
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+$type-tail:check-array-capacity-2:
+      (is-simple-mu-type? %eax 9)  # array-capacity => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+$type-tail:array-capacity:
+      (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+      eb/jump $type-tail:end/disp8
+    }
+$type-tail:check-compound-left:
+    # if !tail->left->is-atom? return tail->left
+    (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    74/jump-if-= $type-tail:end/disp8
+$type-tail:return-tail:
+    # return tail
+    89/<- %eax 1/r32/ecx
+$type-tail:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+type-equal?:  # a: (addr type-tree), b: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = a
+    8b/-> *(ebp+8) 1/r32/ecx
+    # edx = b
+    8b/-> *(ebp+0xc) 2/r32/edx
+$type-equal?:compare-addr:
+    # if (a == b) return true
+    8b/-> %ecx 0/r32/eax  # Var-type
+    39/compare %edx 0/r32/eax  # Var-type
+    b8/copy-to-eax 1/imm32/true
+    0f 84/jump-if-= $type-equal?:end/disp32
+$type-equal?:compare-null-a:
+    # if (a == 0) return false
+    b8/copy-to-eax 0/imm32/false
+    81 7/subop/compare %ecx 0/imm32
+    0f 84/jump-if-= $type-equal?:end/disp32
+$type-equal?:compare-null-b:
+    # if (b == 0) return false
+    81 7/subop/compare %edx 0/imm32
+    0f 84/jump-if-= $type-equal?:end/disp32
+$type-equal?:compare-atom-state:
+    # if (a->is-atom? != b->is-atom?) return false
+    8b/-> *ecx 3/r32/ebx  # Type-tree-is-atom
+    39/compare *edx 3/r32/ebx  # Type-tree-is-atom
+    b8/copy-to-eax 0/imm32/false
+    0f 85/jump-if-!= $type-equal?:end/disp32
+    # if a->is-atom? return (a->value == b->value)
+    {
+$type-equal?:check-atom:
+      81 7/subop/compare %ebx 0/imm32/false
+      74/jump-if-= break/disp8
+$type-equal?:is-atom:
+      8b/-> *(ecx+4) 0/r32/eax  # Type-tree-value
+      39/compare *(edx+4) 0/r32/eax  # Type-tree-value
+      0f 94/set-if-= %al
+      81 4/subop/and %eax 0xff/imm32
+      e9/jump $type-equal?:end/disp32
+    }
+$type-equal?:check-left:
+    # if (!type-equal?(a->left, b->left)) return false
+    (lookup *(ecx+4) *(ecx+8))  # Type-tree-left Type-tree-left => eax
+    89/<- %ebx 0/r32/eax
+    (lookup *(edx+4) *(edx+8))  # Type-tree-left Type-tree-left => eax
+    (type-equal? %eax %ebx)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    74/jump-if-= $type-equal?:end/disp8
+$type-equal?:check-right:
+    # return type-equal?(a->right, b->right)
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Type-tree-right Type-tree-right => eax
+    89/<- %ebx 0/r32/eax
+    (lookup *(edx+0xc) *(edx+0x10))  # Type-tree-right Type-tree-right => eax
+    (type-equal? %eax %ebx)  # => eax
+$type-equal?:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+#######################################################
+# Code-generation
+#######################################################
+
+== data
+
+# Global state added to each var record when performing code-generation.
+Curr-local-stack-offset:  # (addr int)
+    0/imm32
+
+== code
+
+# We may not need to pass err/ed everywhere here. I think they're relics of Mu
+# getting type checks later in life.
+# But we do need them for runtime checks, particularly array index bounds checks.
+# So perhaps it's not worth taking them out. They're a safety net.
+
+emit-subx:  # out: (addr buffered-file), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # var curr/eax: (addr function) = *Program->functions
+    (lookup *_Program-functions *_Program-functions->payload)  # => eax
+    {
+      # if (curr == null) break
+      3d/compare-eax-and 0/imm32
+      0f 84/jump-if-= break/disp32
+      (emit-subx-function *(ebp+8) %eax *(ebp+0xc) *(ebp+0x10))
+      # curr = lookup(curr->next)
+      (lookup *(eax+0x20) *(eax+0x24))  # Function-next Function-next => eax
+      e9/jump loop/disp32
+    }
+$emit-subx:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-function:  # out: (addr buffered-file), f: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # some preprocessing
+    (populate-mu-type-offsets-in-inouts *(ebp+0xc))
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # initialize some global state
+    c7 0/subop/copy *Curr-block-depth 1/imm32  # Important: keep this in sync with the parse phase
+    c7 0/subop/copy *Curr-local-stack-offset 0/imm32
+    # ecx = f
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var vars/edx: (stack (addr var) 256)
+    81 5/subop/subtract %esp 0xc00/imm32
+    68/push 0xc00/imm32/size
+    68/push 0/imm32/top
+    89/<- %edx 4/r32/esp
+    # var name/eax: (addr array byte) = lookup(f->name)
+    (lookup *ecx *(ecx+4))  # Function-name Function-name => eax
+    #
+    (write-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) ":\n")
+    (emit-subx-prologue *(ebp+8))
+    # var body/eax: (addr block) = lookup(f->body)
+    (lookup *(ecx+0x18) *(ecx+0x1c))  # Function-body Function-body => eax
+    #
+    (emit-subx-block *(ebp+8) %eax %edx *(ebp+0xc) *(ebp+0x10) *(ebp+0x14))
+    (emit-subx-epilogue *(ebp+8))
+    # TODO: validate that *Curr-block-depth and *Curr-local-stack-offset have
+    # been cleaned up
+$emit-subx-function:end:
+    # . reclaim locals
+    81 0/subop/add %esp 0xc08/imm32
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+populate-mu-type-offsets-in-inouts:  # f: (addr function)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    57/push-edi
+    # var next-offset/edx: int = 8
+    ba/copy-to-edx 8/imm32
+    # var curr/ecx: (addr list var) = lookup(f->inouts)
+    8b/-> *(ebp+8) 1/r32/ecx
+    (lookup *(ecx+8) *(ecx+0xc))  # Function-inouts Function-inouts => eax
+    89/<- %ecx 0/r32/eax
+    {
+$populate-mu-type-offsets-in-inouts:loop:
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # var v/ebx: (addr var) = lookup(curr->value)
+      (lookup *ecx *(ecx+4))  # List-value List-value => eax
+      89/<- %ebx 0/r32/eax
+#?       (lookup *ebx *(ebx+4))
+#?       (write-buffered Stderr "setting offset of fn inout ")
+#?       (write-buffered Stderr %eax)
+#?       (write-buffered Stderr "@")
+#?       (write-int32-hex-buffered Stderr %ebx)
+#?       (write-buffered Stderr " to ")
+#?       (write-int32-hex-buffered Stderr %edx)
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      # v->offset = next-offset
+      89/<- *(ebx+0x14) 2/r32/edx  # Var-offset
+      # next-offset += size-of(v)
+      (size-of %ebx)  # => eax
+      01/add-to %edx 0/r32/eax
+      # curr = lookup(curr->next)
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      eb/jump loop/disp8
+    }
+$populate-mu-type-offsets-in-inouts:end:
+    # . restore registers
+    5f/pop-to-edi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-stmt-list:  # out: (addr buffered-file), stmts: (addr list stmt), vars: (addr stack live-var), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    53/push-ebx
+    56/push-esi
+    # esi = stmts
+    8b/-> *(ebp+0xc) 6/r32/esi
+    #
+    {
+$emit-subx-stmt-list:loop:
+      81 7/subop/compare %esi 0/imm32
+      0f 84/jump-if-= break/disp32
+      # var curr-stmt/ecx: (addr stmt) = lookup(stmts->value)
+      (lookup *esi *(esi+4))  # List-value List-value => eax
+      89/<- %ecx 0/r32/eax
+      {
+$emit-subx-stmt-list:check-for-block:
+        81 7/subop/compare *ecx 0/imm32/block  # Stmt-tag
+        75/jump-if-!= break/disp8
+$emit-subx-stmt-list:block:
+        (emit-subx-block *(ebp+8) %ecx *(ebp+0x10) *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+      }
+      {
+$emit-subx-stmt-list:check-for-stmt:
+        81 7/subop/compare *ecx 1/imm32/stmt1  # Stmt-tag
+        0f 85/jump-if-!= break/disp32
+$emit-subx-stmt-list:stmt1:
+        {
+          (is-mu-branch? %ecx)  # => eax
+          3d/compare-eax-and 0/imm32/false
+          0f 84/jump-if-= break/disp32
+$emit-subx-stmt-list:branch-stmt:
+          # unconditional return {{{
+          {
+$emit-subx-stmt-list:return:
+            # if (!string-equal?(curr-stmt->operation, "return")) break
+            (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+            (string-equal? %eax "return")  # => eax
+            3d/compare-eax-and 0/imm32/false
+            0f 84/jump-if-= break/disp32
+            #
+            (emit-outputs *(ebp+8) %ecx *(ebp+0x14))
+            (emit-cleanup-code-for-non-outputs *(ebp+8) *(ebp+0x10) *(ebp+0x14))
+            # emit jump to end of function
+            # getting at the name of the label is challenging
+            (emit-indent *(ebp+8) *Curr-block-depth)
+            (write-buffered *(ebp+8) "e9/jump ")
+            # var b/eax: (addr array byte) = fn->body->var->name
+            8b/-> *(ebp+0x14) 0/r32/eax
+            (lookup *(eax+0x18) *(eax+0x1c))  # Function-body Function-body => eax
+            (lookup *(eax+0xc) *(eax+0x10))  # Block-var Block-var => eax
+            (lookup *eax *(eax+4))  # Var-name Var-name => eax
+            (write-buffered *(ebp+8) %eax)
+            (write-buffered *(ebp+8) ":break/disp32\n")
+            e9/jump $emit-subx-stmt-list:clean-up/disp32
+          }
+          # }}}
+          # unconditional loops {{{
+          {
+            # if (!string-equal?(var->operation, "loop")) break
+            (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+            (string-equal? %eax "loop")  # => eax
+            3d/compare-eax-and 0/imm32/false
+            0f 84/jump-if-= break/disp32
+$emit-subx-stmt-list:unconditional-loop:
+            81 7/subop/compare *(ecx+0xc) 0/imm32  # Stmt1-inouts
+            # simple unconditional loops without a target
+            {
+              0f 85/jump-if-!= break/disp32
+$emit-subx-stmt-list:zero-arg-unconditional-loop:
+              (emit-cleanup-code-until-depth *(ebp+8) *(ebp+0x10) *Curr-block-depth)
+              (emit-indent *(ebp+8) *Curr-block-depth)
+              (write-buffered *(ebp+8) "e9/jump loop/disp32")
+              (write-buffered *(ebp+8) Newline)
+              e9/jump $emit-subx-stmt-list:clean-up/disp32  # skip remaining statements; they're dead code
+            }
+            # unconditional loops with a target
+            {
+              0f 84/jump-if-= break/disp32
+              (emit-subx-cleanup-and-unconditional-nonlocal-branch *(ebp+8) %ecx *(ebp+0x10))
+              e9/jump $emit-subx-stmt-list:clean-up/disp32
+            }
+          }
+          # }}}
+          # unconditional breaks {{{
+          {
+            # if (!string-equal?(curr-stmt->operation, "break")) break
+            (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+            (string-equal? %eax "break")  # => eax
+            3d/compare-eax-and 0/imm32/false
+            0f 84/jump-if-= break/disp32
+$emit-subx-stmt-list:unconditional-break:
+            81 7/subop/compare *(ecx+0xc) 0/imm32  # Stmt1-inouts
+            # simple unconditional breaks without a target
+            0f 84/jump-if-= $emit-subx-stmt-list:emit-cleanup/disp32  # easy: just skip remaining statements
+            # unconditional breaks with a target
+            (emit-subx-cleanup-and-unconditional-nonlocal-branch *(ebp+8) %ecx *(ebp+0x10))
+            e9/jump $emit-subx-stmt-list:clean-up/disp32
+          }
+          # }}}
+          # simple conditional branches without a target {{{
+          81 7/subop/compare *(ecx+0xc) 0/imm32  # Stmt1-inouts
+          {
+            0f 85/jump-if-!= break/disp32
+$emit-subx-stmt-list:zero-arg-conditional-branch:
+            # var old-block-depth/ebx: int = Curr-block-depth - 1
+            8b/-> *Curr-block-depth 3/r32/ebx
+            # cleanup prologue
+            (emit-indent *(ebp+8) *Curr-block-depth)
+            (write-buffered *(ebp+8) "{\n")
+            ff 0/subop/increment *Curr-block-depth
+            #
+            (emit-reverse-break *(ebp+8) %ecx)
+            # clean up until old block depth
+            (emit-cleanup-code-until-depth *(ebp+8) *(ebp+0x10) %ebx)
+            # var target-block-depth/ebx: int = Curr-block-depth - 1
+            4b/decrement-ebx
+            # emit jump to target block
+            (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+            (string-starts-with? %eax "break")  # => eax
+            3d/compare-eax-and 0/imm32/false
+            {
+              74/jump-if-= break/disp8
+              (emit-unconditional-jump-to-depth *(ebp+8) *(ebp+0x10) %ebx "break")
+            }
+            3d/compare-eax-and 0/imm32/false  # just in case the function call modified flags
+            {
+              75/jump-if-!= break/disp8
+              (emit-unconditional-jump-to-depth *(ebp+8) *(ebp+0x10) %ebx "loop")
+            }
+            # cleanup epilogue
+            ff 1/subop/decrement *Curr-block-depth
+            (emit-indent *(ebp+8) *Curr-block-depth)
+            (write-buffered *(ebp+8) "}\n")
+            # continue
+            e9/jump $emit-subx-stmt-list:continue/disp32
+          }
+          # }}}
+          # conditional branches with an explicit target {{{
+          {
+            0f 84/jump-if-= break/disp32
+$emit-subx-stmt-list:conditional-branch-with-target:
+            # cleanup prologue
+            (emit-indent *(ebp+8) *Curr-block-depth)
+            (write-buffered *(ebp+8) "{\n")
+            ff 0/subop/increment *Curr-block-depth
+            #
+            (emit-reverse-break *(ebp+8) %ecx)
+            (emit-subx-cleanup-and-unconditional-nonlocal-branch *(ebp+8) %ecx *(ebp+0x10))
+            # cleanup epilogue
+            ff 1/subop/decrement *Curr-block-depth
+            (emit-indent *(ebp+8) *Curr-block-depth)
+            (write-buffered *(ebp+8) "}\n")
+            # continue
+            e9/jump $emit-subx-stmt-list:continue/disp32
+          }
+          # }}}
+        }
+$emit-subx-stmt-list:1-to-1:
+        (emit-subx-stmt *(ebp+8) %ecx Primitives *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+        e9/jump $emit-subx-stmt-list:continue/disp32
+      }
+      {
+$emit-subx-stmt-list:check-for-var-def:
+        81 7/subop/compare *ecx 2/imm32/var-def  # Stmt-tag
+        75/jump-if-!= break/disp8
+$emit-subx-stmt-list:var-def:
+        (emit-subx-var-def *(ebp+8) %ecx)
+        (push *(ebp+0x10) *(ecx+4))  # Vardef-var
+        (push *(ebp+0x10) *(ecx+8))  # Vardef-var
+        (push *(ebp+0x10) 0)  # Live-var-register-spilled = 0 for vars on the stack
+        #
+        eb/jump $emit-subx-stmt-list:continue/disp8
+      }
+      {
+$emit-subx-stmt-list:check-for-reg-var-def:
+        81 7/subop/compare *ecx 3/imm32/reg-var-def  # Stmt-tag
+        0f 85/jump-if-!= break/disp32
+$emit-subx-stmt-list:reg-var-def:
+        # TODO: ensure that there's exactly one output
+        (push-output-and-maybe-emit-spill *(ebp+8) %ecx *(ebp+0x10) %esi *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+        # emit the instruction as usual
+        (emit-subx-stmt *(ebp+8) %ecx Primitives *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+        #
+        eb/jump $emit-subx-stmt-list:continue/disp8
+      }
+$emit-subx-stmt-list:continue:
+      # TODO: raise an error on unrecognized Stmt-tag
+      (lookup *(esi+8) *(esi+0xc))  # List-next List-next => eax
+      89/<- %esi 0/r32/eax
+      e9/jump loop/disp32
+    }
+$emit-subx-stmt-list:emit-cleanup:
+    (emit-cleanup-code-until-depth *(ebp+8) *(ebp+0x10) *Curr-block-depth)
+$emit-subx-stmt-list:clean-up:
+    (clean-up-stack-offset-state *(ebp+0x10) *Curr-block-depth)
+    (clean-up-blocks *(ebp+0x10) *Curr-block-depth *(ebp+0x14))
+$emit-subx-stmt-list:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# 'later-stmts' includes 'stmt', but will behave the same even without it; reg-var-def stmts are guaranteed not to write to function outputs.
+push-output-and-maybe-emit-spill:  # out: (addr buffered-file), stmt: (addr reg-var-def), vars: (addr stack (handle var)), later-stmts: (addr list stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # ecx = stmt
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var sv/eax: (addr stmt-var) = lookup(curr-stmt->outputs)
+    (lookup *(ecx+0x14) *(ecx+0x18))  # Regvardef-outputs Regvardef-outputs => eax
+    # TODO: assert !sv->is-deref?
+    # var v/ecx: (addr var) = lookup(sv->value)
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # v->block-depth = *Curr-block-depth
+    8b/-> *Curr-block-depth 0/r32/eax
+    89/<- *(ecx+0x10) 0/r32/eax  # Var-block-depth
+#?     (write-buffered Stderr "var ")
+#?     (lookup *ecx *(ecx+4))
+#?     (write-buffered Stderr %eax)
+#?     (write-buffered Stderr " at depth ")
+#?     (write-int32-hex-buffered Stderr *(ecx+0x10))
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    # ensure that v is in a register
+    81 7/subop/compare *(ecx+0x18) 0/imm32  # Var-register
+    0f 84/jump-if-= $push-output-and-maybe-emit-spill:abort/disp32
+    # var emit-spill?/edx: boolean = not-yet-spilled-this-block? && will-not-write-some-register?(fn)
+    (not-yet-spilled-this-block? %ecx *(ebp+0x10))  # => eax
+    89/<- %edx 0/r32/eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $push-output-and-maybe-emit-spill:push/disp32
+    (will-not-write-some-register? %ecx *(ebp+0x14) *(ebp+0x18))  # => eax
+    89/<- %edx 0/r32/eax
+    # check emit-spill?
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $push-output-and-maybe-emit-spill:push/disp32
+    # TODO: assert(size-of(output) == 4)
+    # *Curr-local-stack-offset -= 4
+    81 5/subop/subtract *Curr-local-stack-offset 4/imm32
+    # emit spill
+    (lookup *(ecx+0x18) *(ecx+0x1c))  # Var-register Var-register => eax
+    (emit-push-register *(ebp+8) %eax)
+$push-output-and-maybe-emit-spill:push:
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    (lookup *(ecx+0x14) *(ecx+0x18))  # Regvardef-outputs Regvardef-outputs => eax
+    # push(vars, {sv->value, emit-spill?})
+    (push *(ebp+0x10) *eax)  # Stmt-var-value
+    (push *(ebp+0x10) *(eax+4))  # Stmt-var-value
+    (push *(ebp+0x10) %edx)
+$push-output-and-maybe-emit-spill:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$push-output-and-maybe-emit-spill:abort:
+    # error("var '" var->name "' initialized from an instruction must live in a register\n")
+    (write-buffered *(ebp+0x1c) "var '")
+    (write-buffered *(ebp+0x1c) *eax)  # Var-name
+    (write-buffered *(ebp+0x1c) "' initialized from an instruction must live in a register\n")
+    (flush *(ebp+0x1c))
+    (stop *(ebp+0x20) 1)
+    # never gets here
+
+emit-subx-cleanup-and-unconditional-nonlocal-branch:  # out: (addr buffered-file), stmt: (addr stmt1), vars: (addr stack live-var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # ecx = stmt
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var target/eax: (addr array byte) = curr-stmt->inouts->value->name
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    # clean up until target block
+    (emit-cleanup-code-until-target *(ebp+8) *(ebp+0x10) %eax)
+    # emit jump to target block
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "e9/jump ")
+    (write-buffered *(ebp+8) %eax)
+    (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+    (string-starts-with? %eax "break")
+    3d/compare-eax-and 0/imm32/false
+    {
+      74/jump-if-= break/disp8
+      (write-buffered *(ebp+8) ":break/disp32\n")
+      eb/jump $emit-subx-cleanup-and-unconditional-nonlocal-branch:end/disp8
+    }
+    (write-buffered *(ebp+8) ":loop/disp32\n")
+$emit-subx-cleanup-and-unconditional-nonlocal-branch:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-outputs:  # out: (addr buffered-file), return-stmt: (addr stmt1), fn: (addr function)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # var curr-inout/esi: (addr stmt-var) = return-stmt->inouts
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *(eax+0xc) *(eax+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %esi 0/r32/eax
+    # var curr-output/edi: (addr list var) = fn->outputs
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *(eax+0x10) *(eax+0x14))  # Function-outputs Function-outputs => eax
+    89/<- %edi 0/r32/eax
+    {
+$emit-outputs:loop:
+      81 7/subop/compare %esi 0/imm32
+      0f 84/jump-if-= break/disp32
+      # emit copy to output register
+      # var curr-output-register/ecx: (addr array byte) = curr-output->value->register
+      (lookup *edi *(edi+4))  # List-value List-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      89/<- %ecx 0/r32/eax
+      # if curr-output-register starts with "x", emit a floating-point copy
+      8a/copy-byte *(ecx+4) 0/r32/AL
+      81 4/subop/and %eax 0xff/imm32
+      3d/compare-eax-and 0x78/imm32/x
+      {
+        75/jump-if-!= break/disp8
+        (emit-float-output *(ebp+8) %esi %ecx)
+        eb/jump $emit-outputs:continue/disp8
+      }
+      # otherwise emit an int copy
+      (emit-int-output *(ebp+8) %esi %ecx)
+$emit-outputs:continue:
+      # curr-inout = curr-inout->next
+      (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+      89/<- %esi 0/r32/eax
+      # curr-output = curr-output->next
+      (lookup *(edi+8) *(edi+0xc))  # List-next List-next => eax
+      89/<- %edi 0/r32/eax
+      #
+      e9/jump loop/disp32
+    }
+$emit-outputs:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-int-output:  # out: (addr buffered-file), return-var: (addr stmt-var), dest-reg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # ecx = return-var->value
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # if curr-var is a literal, emit copy of a literal to the output
+    (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+    (is-simple-mu-type? %eax 0)  # literal => eax
+    {
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "c7 0/subop/copy %")
+      (write-buffered *(ebp+8) *(ebp+0x10))
+      (write-buffered *(ebp+8) " ")
+      (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+      (write-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) "/imm32\n")
+      e9/jump $emit-int-output:end/disp32
+    }
+    # otherwise emit an integer copy
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "8b/->")
+    (emit-subx-var-as-rm32 *(ebp+8) *(ebp+0xc))
+    (write-buffered *(ebp+8) " ")
+    (get Mu-registers *(ebp+0x10) 0xc "Mu-registers")  # => eax
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/r32\n")
+$emit-int-output:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-float-output:  # out: (addr buffered-file), return-var: (addr stmt-var), dest-reg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "f3 0f 10/->")
+    (emit-subx-var-as-rm32 *(ebp+8) *(ebp+0xc))
+    (write-buffered *(ebp+8) " ")
+    (get Mu-registers *(ebp+0x10) 0xc "Mu-registers")  # => eax
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/x32\n")
+$emit-float-output:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-mu-branch?:  # stmt: (addr stmt1) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # ecx = lookup(stmt->operation)
+    8b/-> *(ebp+8) 1/r32/ecx
+    (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+    89/<- %ecx 0/r32/eax
+    # if (stmt->operation starts with "loop") return true
+    (string-starts-with? %ecx "loop")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-not-equal $is-mu-branch?:end/disp8
+    # if (stmt->operation starts with "break") return true
+    (string-starts-with? %ecx "break")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-not-equal $is-mu-branch?:end/disp8
+    # otherwise return (stmt->operation starts with "return")
+    (string-starts-with? %ecx "return")  # => eax
+$is-mu-branch?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-reverse-break:  # out: (addr buffered-file), stmt: (addr stmt1)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # eax = stmt
+    8b/-> *(ebp+0xc) 0/r32/eax
+    #
+    (lookup *(eax+4) *(eax+8))  # Stmt1-operation Stmt1-operation => eax
+    (get Reverse-branch %eax 0x10 "reverse-branch: ")  # => eax: (addr handle array byte)
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (lookup *eax *(eax+4))  # => eax
+    (write-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) " break/disp32\n")
+$emit-reverse-break:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+# Table from Mu branch instructions to the reverse SubX opcodes for them.
+Reverse-branch:  # (table (handle array byte) (handle array byte))
+  # a table is a stream
+  0x1c0/imm32/write
+  0/imm32/read
+  0x1c0/imm32/size
+  # data
+  0x11/imm32/alloc-id   _string-break-if-=/imm32                0x11/imm32/alloc-id   _string_0f_85_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-=/imm32                 0x11/imm32/alloc-id   _string_0f_85_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-!=/imm32               0x11/imm32/alloc-id   _string_0f_84_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-!=/imm32                0x11/imm32/alloc-id   _string_0f_84_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-</imm32                0x11/imm32/alloc-id   _string_0f_8d_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-</imm32                 0x11/imm32/alloc-id   _string_0f_8d_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if->/imm32                0x11/imm32/alloc-id   _string_0f_8e_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if->/imm32                 0x11/imm32/alloc-id   _string_0f_8e_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-<=/imm32               0x11/imm32/alloc-id   _string_0f_8f_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-<=/imm32                0x11/imm32/alloc-id   _string_0f_8f_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if->=/imm32               0x11/imm32/alloc-id   _string_0f_8c_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if->=/imm32                0x11/imm32/alloc-id   _string_0f_8c_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-addr</imm32            0x11/imm32/alloc-id   _string_0f_83_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-addr</imm32             0x11/imm32/alloc-id   _string_0f_83_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-addr>/imm32            0x11/imm32/alloc-id   _string_0f_86_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-addr>/imm32             0x11/imm32/alloc-id   _string_0f_86_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-addr<=/imm32           0x11/imm32/alloc-id   _string_0f_87_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-addr<=/imm32            0x11/imm32/alloc-id   _string_0f_87_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-addr>=/imm32           0x11/imm32/alloc-id   _string_0f_82_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-addr>=/imm32            0x11/imm32/alloc-id   _string_0f_82_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-float</imm32           0x11/imm32/alloc-id   _string_0f_83_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-float</imm32            0x11/imm32/alloc-id   _string_0f_83_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-float>/imm32           0x11/imm32/alloc-id   _string_0f_86_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-float>/imm32            0x11/imm32/alloc-id   _string_0f_86_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-float<=/imm32          0x11/imm32/alloc-id   _string_0f_87_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-float<=/imm32           0x11/imm32/alloc-id   _string_0f_87_jump_label/imm32
+  0x11/imm32/alloc-id   _string-break-if-float>=/imm32          0x11/imm32/alloc-id   _string_0f_82_jump_label/imm32
+  0x11/imm32/alloc-id   _string-loop-if-float>=/imm32           0x11/imm32/alloc-id   _string_0f_82_jump_label/imm32
+
+== code
+
+emit-unconditional-jump-to-depth:  # out: (addr buffered-file), vars: (addr stack live-var), depth: int, label-suffix: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # ecx = vars
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var eax: int = vars->top
+    8b/-> *ecx 0/r32/eax
+    # var curr/esi: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(ecx+eax-4) 6/r32/esi  # vars + 8 + vars->top - 12/Live-var-size
+    # var min/ecx: (addr handle var) = vars->data
+    8d/copy-address *(ecx+8) 1/r32/ecx
+    # edx = depth
+    8b/-> *(ebp+0x10) 2/r32/edx
+    {
+$emit-unconditional-jump-to-depth:loop:
+      # if (curr < min) break
+      39/compare %esi 1/r32/ecx
+      0f 82/jump-if-addr< break/disp32
+      # var v/ebx: (addr var) = lookup(*curr)
+      (lookup *esi *(esi+4))  # => eax
+      89/<- %ebx 0/r32/eax
+      # if (v->block-depth < until-block-depth) break
+      39/compare *(ebx+0x10) 2/r32/edx  # Var-block-depth
+      0f 8c/jump-if-< break/disp32
+      {
+$emit-unconditional-jump-to-depth:check:
+        # if v->block-depth != until-block-depth, continue
+        39/compare *(ebx+0x10) 2/r32/edx  # Var-block-depth
+        0f 85/jump-if-!= break/disp32
+$emit-unconditional-jump-to-depth:depth-found:
+        # if v is not a literal, continue
+        (size-of %ebx)  # => eax
+        3d/compare-eax-and 0/imm32
+        0f 85/jump-if-!= break/disp32
+$emit-unconditional-jump-to-depth:label-found:
+        # emit unconditional jump, then return
+        (emit-indent *(ebp+8) *Curr-block-depth)
+        (write-buffered *(ebp+8) "e9/jump ")
+        (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+        (write-buffered *(ebp+8) %eax)
+        (write-buffered *(ebp+8) ":")
+        (write-buffered *(ebp+8) *(ebp+0x14))
+        (write-buffered *(ebp+8) "/disp32\n")
+        eb/jump $emit-unconditional-jump-to-depth:end/disp8
+      }
+      # curr -= 12
+      81 5/subop/subtract %esi 0xc/imm32
+      e9/jump loop/disp32
+    }
+    # TODO: error if no label at 'depth' was found
+$emit-unconditional-jump-to-depth:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# emit clean-up code for 'vars' until some block depth
+# doesn't actually modify 'vars' so we need traverse manually inside the stack
+emit-cleanup-code-until-depth:  # out: (addr buffered-file), vars: (addr stack live-var), until-block-depth: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+#?     (write-buffered Stderr "--- cleanup\n")
+#?     (flush Stderr)
+    # ecx = vars
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var esi: int = vars->top
+    8b/-> *ecx 6/r32/esi
+    # var curr/esi: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(ecx+esi-4) 6/r32/esi  # vars + 8 + vars->top - 12/Live-var-size
+    # var min/ecx: (addr handle var) = vars->data
+    81 0/subop/add %ecx 8/imm32
+    # edx = until-block-depth
+    8b/-> *(ebp+0x10) 2/r32/edx
+    {
+$emit-cleanup-code-until-depth:loop:
+      # if (curr < min) break
+      39/compare %esi 1/r32/ecx
+      0f 82/jump-if-addr< break/disp32
+      # var v/ebx: (addr var) = lookup(*curr)
+      (lookup *esi *(esi+4))  # => eax
+      89/<- %ebx 0/r32/eax
+#?       (lookup *ebx *(ebx+4))  # Var-name
+#?       (write-buffered Stderr "var ")
+#?       (write-buffered Stderr %eax)
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      # if (v->block-depth < until-block-depth) break
+      39/compare *(ebx+0x10) 2/r32/edx  # Var-block-depth
+      0f 8c/jump-if-< break/disp32
+      # if v is in a register
+      81 7/subop/compare *(ebx+0x18) 0/imm32  # Var-register
+      {
+        0f 84/jump-if-= break/disp32
+        {
+$emit-cleanup-code-until-depth:check-for-previous-spill:
+          8b/-> *(esi+8) 0/r32/eax  # Live-var-register-spilled
+          3d/compare-eax-and 0/imm32/false
+          74/jump-if-= break/disp8
+$emit-cleanup-code-until-depth:reclaim-var-in-register:
+          (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register Var-register => eax
+          (emit-pop-register *(ebp+8) %eax)
+        }
+        eb/jump $emit-cleanup-code-until-depth:continue/disp8
+      }
+      # otherwise v is on the stack
+      {
+        75/jump-if-!= break/disp8
+$emit-cleanup-code-until-depth:var-on-stack:
+        (size-of %ebx)  # => eax
+        # don't emit code for labels
+        3d/compare-eax-and 0/imm32
+        74/jump-if-= break/disp8
+$emit-cleanup-code-until-depth:reclaim-var-on-stack:
+        (emit-indent *(ebp+8) *Curr-block-depth)
+        (write-buffered *(ebp+8) "81 0/subop/add %esp ")
+        (write-int32-hex-buffered *(ebp+8) %eax)
+        (write-buffered *(ebp+8) "/imm32\n")
+      }
+$emit-cleanup-code-until-depth:continue:
+      # curr -= 12
+      81 5/subop/subtract %esi 0xc/imm32
+      e9/jump loop/disp32
+    }
+$emit-cleanup-code-until-depth:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# emit clean-up code for 'vars' that don't conflict with output registers
+# doesn't actually modify 'vars' so we need traverse manually inside the stack
+emit-cleanup-code-for-non-outputs:  # out: (addr buffered-file), vars: (addr stack live-var), fn: (addr function)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # ecx = vars
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var esi: int = vars->top
+    8b/-> *ecx 6/r32/esi
+    # var curr/esi: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(ecx+esi-4) 6/r32/esi  # vars + 8 + vars->top - 12/Live-var-size
+    # var min/ecx: (addr handle var) = vars->data
+    81 0/subop/add %ecx 8/imm32
+    {
+$emit-cleanup-code-for-non-outputs:loop:
+      # if (curr < min) break
+      39/compare %esi 1/r32/ecx
+      0f 82/jump-if-addr< break/disp32
+      # var v/ebx: (addr var) = lookup(*curr)
+      (lookup *esi *(esi+4))  # => eax
+      89/<- %ebx 0/r32/eax
+      # if v is in a register
+      81 7/subop/compare *(ebx+0x18) 0/imm32  # Var-register
+      {
+        0f 84/jump-if-= break/disp32
+        {
+$emit-cleanup-code-for-non-outputs:check-for-previous-spill:
+          8b/-> *(esi+8) 0/r32/eax  # Live-var-register-spilled
+          3d/compare-eax-and 0/imm32/false
+          0f 84/jump-if-= break/disp32
+$emit-cleanup-code-for-non-outputs:reclaim-var-in-register:
+          # var reg/edi: (addr array name) = v->register
+          (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register Var-register => eax
+          89/<- %edi 0/r32/eax
+          # if reg is not in function outputs, emit a pop
+          (reg-in-function-outputs? *(ebp+0x10) %edi)  # => eax
+          3d/compare-eax-and 0/imm32/false
+          {
+            75/jump-if-!= break/disp8
+            (emit-pop-register *(ebp+8) %edi)
+            eb/jump $emit-cleanup-code-for-non-outputs:reclaim-var-in-register-done/disp8
+          }
+          # otherwise just drop it from the stack
+          (emit-indent *(ebp+8) *Curr-block-depth)
+          (write-buffered *(ebp+8) "81 0/subop/add %esp 4/imm32\n")
+        }
+$emit-cleanup-code-for-non-outputs:reclaim-var-in-register-done:
+        eb/jump $emit-cleanup-code-for-non-outputs:continue/disp8
+      }
+      # otherwise v is on the stack
+      {
+        75/jump-if-!= break/disp8
+$emit-cleanup-code-for-non-outputs:var-on-stack:
+        (size-of %ebx)  # => eax
+        # don't emit code for labels
+        3d/compare-eax-and 0/imm32
+        74/jump-if-= break/disp8
+$emit-cleanup-code-for-non-outputs:reclaim-var-on-stack:
+        (emit-indent *(ebp+8) *Curr-block-depth)
+        (write-buffered *(ebp+8) "81 0/subop/add %esp ")
+        (write-int32-hex-buffered *(ebp+8) %eax)
+        (write-buffered *(ebp+8) "/imm32\n")
+      }
+$emit-cleanup-code-for-non-outputs:continue:
+      # curr -= 12
+      81 5/subop/subtract %esi 0xc/imm32
+      e9/jump loop/disp32
+    }
+$emit-cleanup-code-for-non-outputs:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-push-register:  # out: (addr buffered-file), reg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = reg
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # var prefix/eax: byte = reg->data[0]
+    8a/copy-byte *(eax+4) 0/r32/AL
+    81 4/subop/and %eax 0xff/imm32
+    # if (prefix == 'x') push xmm register
+    {
+      3d/compare-eax-and 0x78/imm32/x
+      0f 85/jump-if-!= break/disp32
+      # TODO validate register
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "81 5/subop/subtract %esp 4/imm32\n")
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "f3 0f 11/<- *esp ")
+      # var prefix/eax: byte = reg->data[3]
+      8b/-> *(ebp+0xc) 0/r32/eax
+      8a/copy-byte *(eax+7) 0/r32/AL
+      81 4/subop/and %eax 0xff/imm32
+      (write-byte-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) "/x32\n")
+      e9/jump $emit-push-register:end/disp32
+    }
+    # otherwise push gp register
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "ff 6/subop/push %")
+    (write-buffered *(ebp+8) *(ebp+0xc))
+    (write-buffered *(ebp+8) Newline)
+$emit-push-register:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-pop-register:  # out: (addr buffered-file), reg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # eax = reg
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # var prefix/eax: byte = reg->data[0]
+    8a/copy-byte *(eax+4) 0/r32/AL
+    81 4/subop/and %eax 0xff/imm32
+    # if (prefix == 'x') pop to xmm register
+    {
+      3d/compare-eax-and 0x78/imm32/x
+      0f 85/jump-if-!= break/disp32
+      # TODO validate register
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "f3 0f 10/-> *esp ")
+      # var prefix/eax: byte = reg->data[3]
+      8b/-> *(ebp+0xc) 0/r32/eax
+      8a/copy-byte *(eax+7) 0/r32/AL
+      81 4/subop/and %eax 0xff/imm32
+      (write-byte-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) "/x32\n")
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "81 0/subop/add %esp 4/imm32\n")
+      e9/jump $emit-pop-register:end/disp32
+    }
+    # otherwise pop to gp register
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "8f 0/subop/pop %")
+    (write-buffered *(ebp+8) *(ebp+0xc))
+    (write-buffered *(ebp+8) Newline)
+$emit-pop-register:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# emit clean-up code for 'vars' until a given label is encountered
+# doesn't actually modify 'vars' so we need traverse manually inside the stack
+emit-cleanup-code-until-target:  # out: (addr buffered-file), vars: (addr stack live-var), until-block-label: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = vars
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var eax: int = vars->top
+    8b/-> *ecx 0/r32/eax
+    # var curr/edx: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(ecx+eax-4) 2/r32/edx  # vars + 8 + vars->top - 12/Live-var-size
+    # var min/ecx: (addr handle var) = vars->data
+    81 0/subop/add %ecx 8/imm32
+    {
+$emit-cleanup-code-until-target:loop:
+      # if (curr < min) break
+      39/compare %edx 1/r32/ecx
+      0f 82/jump-if-addr< break/disp32
+      # var v/ebx: (handle var) = lookup(*curr)
+      (lookup *edx *(edx+4))  # => eax
+      89/<- %ebx 0/r32/eax
+      # if (v->name == until-block-label) break
+      (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+      (string-equal? %eax *(ebp+0x10))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 85/jump-if-!= break/disp32
+      # if v is in a register
+      81 7/subop/compare *(ebx+0x18) 0/imm32  # Var-register
+      {
+        0f 84/jump-if-= break/disp32
+        {
+$emit-cleanup-code-until-target:check-for-previous-spill:
+          8b/-> *(edx+8) 0/r32/eax  # Live-var-register-spilled
+          3d/compare-eax-and 0/imm32/false
+          74/jump-if-= break/disp8
+$emit-cleanup-code-until-target:reclaim-var-in-register:
+          (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register Var-register => eax
+          (emit-pop-register *(ebp+8) %eax)
+        }
+        eb/jump $emit-cleanup-code-until-target:continue/disp8
+      }
+      # otherwise v is on the stack
+      {
+        75/jump-if-!= break/disp8
+$emit-cleanup-code-until-target:reclaim-var-on-stack:
+        (size-of %ebx)  # => eax
+        # don't emit code for labels
+        3d/compare-eax-and 0/imm32
+        74/jump-if-= break/disp8
+        #
+        (emit-indent *(ebp+8) *Curr-block-depth)
+        (write-buffered *(ebp+8) "81 0/subop/add %esp ")
+        (write-int32-hex-buffered *(ebp+8) %eax)
+        (write-buffered *(ebp+8) "/imm32\n")
+      }
+$emit-cleanup-code-until-target:continue:
+      # curr -= 12
+      81 5/subop/subtract %edx 0xc/imm32
+      e9/jump loop/disp32
+    }
+$emit-cleanup-code-until-target:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# update Curr-local-stack-offset assuming vars until some block depth are popped
+# doesn't actually modify 'vars', so we need traverse manually inside the stack
+clean-up-stack-offset-state:  # vars: (addr stack live-var), until-block-depth: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # ecx = vars
+    8b/-> *(ebp+8) 1/r32/ecx
+    # var esi: int = vars->top
+    8b/-> *ecx 6/r32/esi
+    # var curr/esi: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(ecx+esi-4) 6/r32/esi  # vars + 8 + vars->top - 12/Live-var-size
+    # var min/ecx: (addr handle var) = vars->data
+    81 0/subop/add %ecx 8/imm32
+    # edx = until-block-depth
+    8b/-> *(ebp+0xc) 2/r32/edx
+    {
+$clean-up-stack-offset-state:loop:
+      # if (curr < min) break
+      39/compare %esi 1/r32/ecx
+      0f 82/jump-if-addr< break/disp32
+      # var v/ebx: (addr var) = lookup(*curr)
+      (lookup *esi *(esi+4))  # => eax
+      89/<- %ebx 0/r32/eax
+      # if (v->block-depth < until-block-depth) break
+      39/compare *(ebx+0x10) 2/r32/edx  # Var-block-depth
+      0f 8c/jump-if-< break/disp32
+      # if v is in a register
+      81 7/subop/compare *(ebx+0x18) 0/imm32  # Var-register
+      {
+        0f 84/jump-if-= break/disp32
+        {
+$clean-up-stack-offset-state:check-for-previous-spill:
+          8b/-> *(esi+8) 0/r32/eax  # Live-var-register-spilled
+          3d/compare-eax-and 0/imm32/false
+          74/jump-if-= break/disp8
+$clean-up-stack-offset-state:reclaim-var-in-register:
+          81 0/subop/add *Curr-local-stack-offset 4/imm32
+        }
+        eb/jump $clean-up-stack-offset-state:continue/disp8
+      }
+      # otherwise v is on the stack
+      {
+        75/jump-if-!= break/disp8
+$clean-up-stack-offset-state:var-on-stack:
+        (size-of %ebx)  # => eax
+        01/add-to *Curr-local-stack-offset 0/r32/eax
+      }
+$clean-up-stack-offset-state:continue:
+      # curr -= 12
+      81 5/subop/subtract %esi 0xc/imm32
+      e9/jump loop/disp32
+    }
+$clean-up-stack-offset-state:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# Return true if there isn't a variable in 'vars' with the same block-depth
+# and register as 'v'.
+# 'v' is guaranteed not to be within 'vars'.
+not-yet-spilled-this-block?:  # v: (addr var), vars: (addr stack live-var) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # ecx = vars
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var eax: int = vars->top
+    8b/-> *ecx 0/r32/eax
+    # var curr/edx: (addr handle var) = &vars->data[vars->top - 12]
+    8d/copy-address *(ecx+eax-4) 2/r32/edx  # vars + 8 + vars->top - 12/Live-var-size
+    # var min/ecx: (addr handle var) = vars->data
+    8d/copy-address *(ecx+8) 1/r32/ecx
+    # var depth/ebx: int = v->block-depth
+    8b/-> *(ebp+8) 3/r32/ebx
+    8b/-> *(ebx+0x10) 3/r32/ebx  # Var-block-depth
+    # var needle/esi: (addr array byte) = v->register
+    8b/-> *(ebp+8) 6/r32/esi
+    (lookup *(esi+0x18) *(esi+0x1c))  # Var-register Var-register => eax
+    89/<- %esi 0/r32/eax
+    {
+$not-yet-spilled-this-block?:loop:
+      # if (curr < min) break
+      39/compare %edx 1/r32/ecx
+      0f 82/jump-if-addr< break/disp32
+      # var cand/edi: (addr var) = lookup(*curr)
+      (lookup *edx *(edx+4))  # => eax
+      89/<- %edi 0/r32/eax
+      # if (cand->block-depth < depth) break
+      39/compare *(edi+0x10) 3/r32/ebx  # Var-block-depth
+      0f 8c/jump-if-< break/disp32
+      # var cand-reg/edi: (array array byte) = cand->reg
+      (lookup *(edi+0x18) *(edi+0x1c))  # Var-register Var-register => eax
+      89/<- %edi 0/r32/eax
+      # if (cand-reg == null) continue
+      {
+$not-yet-spilled-this-block?:check-reg:
+        81 7/subop/compare %edi 0/imm32
+        0f 84/jump-if-= break/disp32
+        # if (cand-reg == needle) return true
+        (string-equal? %esi %edi)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+$not-yet-spilled-this-block?:return-false:
+        b8/copy-to-eax 0/imm32/false
+        eb/jump $not-yet-spilled-this-block?:end/disp8
+      }
+$not-yet-spilled-this-block?:continue:
+      # curr -= 12
+      81 5/subop/subtract %edx 0xc/imm32
+      e9/jump loop/disp32
+    }
+$not-yet-spilled-this-block?:return-true:
+    # return true
+    b8/copy-to-eax 1/imm32/true
+$not-yet-spilled-this-block?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# could the register of 'v' ever be written to by one of the vars in fn-outputs?
+will-not-write-some-register?:  # v: (addr var), stmts: (addr list stmt), fn: (addr function) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = v
+    8b/-> *(ebp+8) 0/r32/eax
+    # var reg/eax: (addr array byte) = lookup(v->register)
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    # var target/eax: (addr var) = find-register(fn-outputs, reg)
+    (find-register *(ebp+0x10) %eax)  # => eax
+    # if (target == 0) return true
+    {
+      3d/compare-eax-and 0/imm32
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 1/imm32/true
+      eb/jump $will-not-write-some-register?:end/disp8
+    }
+    # return !assigns-in-stmts?(stmts, target)
+    (assigns-in-stmts? *(ebp+0xc) %eax)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    # assume: true = 1, so no need to mask with 0x000000ff
+    0f 94/set-if-= %al
+$will-not-write-some-register?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# return fn output with matching register
+# always returns false if 'reg' is null
+find-register:  # fn: (addr function), reg: (addr array byte) -> result/eax: (addr var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var curr/ecx: (addr list var) = lookup(fn->outputs)
+    8b/-> *(ebp+8) 1/r32/ecx
+    (lookup *(ecx+0x10) *(ecx+0x14))  # Function-outputs Function-outputs => eax
+    89/<- %ecx 0/r32/eax
+    {
+$find-register:loop:
+      # if (curr == 0) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # eax = curr->value->register
+      (lookup *ecx *(ecx+4))  # List-value List-value => eax
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      # if (eax == reg) return curr->value
+$find-register:compare:
+      (string-equal? *(ebp+0xc) %eax)  # => eax
+      {
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+$find-register:found:
+        (lookup *ecx *(ecx+4))  # List-value List-value => eax
+        eb/jump $find-register:end/disp8
+      }
+      # curr = lookup(curr->next)
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      eb/jump loop/disp8
+    }
+$find-register:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+assigns-in-stmts?:  # stmts: (addr list stmt), v: (addr var) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var curr/ecx: (addr list stmt) = stmts
+    8b/-> *(ebp+8) 1/r32/ecx
+    {
+      # if (curr == 0) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # if assigns-in-stmt?(curr->value, v) return true
+      (lookup *ecx *(ecx+4))  # List-value List-value => eax
+      (assigns-in-stmt? %eax *(ebp+0xc))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      # curr = lookup(curr->next)
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      eb/jump loop/disp8
+    }
+$assigns-in-stmts?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+assigns-in-stmt?:  # stmt: (addr stmt), v: (addr var) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # ecx = stmt
+    8b/-> *(ebp+8) 1/r32/ecx
+    # if stmt is a stmt1, return assigns-in-stmt-vars?(stmt->outputs, v)
+    {
+      81 7/subop/compare *ecx 1/imm32/stmt1  # Stmt-tag
+      75/jump-if-!= break/disp8
+      (lookup *(ecx+0x14) *(ecx+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+      (assigns-in-stmt-vars? %eax *(ebp+0xc))  # => eax
+      eb/jump $assigns-in-stmt?:end/disp8
+    }
+    # if stmt is a block, return assigns-in-stmts?(stmt->stmts, v)
+    {
+      81 7/subop/compare *ecx 0/imm32/block  # Stmt-tag
+      75/jump-if-!= break/disp8
+      (lookup *(ecx+4) *(ecx+8))  # Block-stmts Block-stmts => eax
+      (assigns-in-stmts? %eax *(ebp+0xc))  # => eax
+      eb/jump $assigns-in-stmt?:end/disp8
+    }
+    # otherwise return false
+    b8/copy 0/imm32/false
+$assigns-in-stmt?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+assigns-in-stmt-vars?:  # stmt-var: (addr stmt-var), v: (addr var) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var curr/ecx: (addr stmt-var) = stmt-var
+    8b/-> *(ebp+8) 1/r32/ecx
+    {
+      # if (curr == 0) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # eax = lookup(curr->value)
+      (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+      # if (eax == v  &&  curr->is-deref? == false) return true
+      {
+        39/compare *(ebp+0xc) 0/r32/eax
+        75/jump-if-!= break/disp8
+        81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+        75/jump-if-!= break/disp8
+        b8/copy-to-eax 1/imm32/true
+        eb/jump $assigns-in-stmt-vars?:end/disp8
+      }
+      # curr = lookup(curr->next)
+      (lookup *(ecx+8) *(ecx+0xc))  # Stmt-var-next Stmt-var-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      eb/jump loop/disp8
+    }
+$assigns-in-stmt-vars?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# is there a var before 'v' with the same block-depth and register on the 'vars' stack?
+# v is guaranteed to be within vars
+# 'start' is provided as an optimization, a pointer within vars
+# *start == v
+same-register-spilled-before?:  # v: (addr var), vars: (addr stack (handle var)), start: (addr var) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # ecx = v
+    8b/-> *(ebp+8) 1/r32/ecx
+    # var reg/edx: (addr array byte) = lookup(v->register)
+    (lookup *(ecx+0x18) *(ecx+0x1c))  # Var-register Var-register => eax
+    89/<- %edx 0/r32/eax
+    # var depth/ebx: int = v->block-depth
+    8b/-> *(ecx+0x10) 3/r32/ebx  # Var-block-depth
+    # var min/ecx: (addr handle var) = vars->data
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    81 0/subop/add %ecx 8/imm32
+    # TODO: check that start >= min and start < &vars->data[top]
+    # TODO: check that *start == v
+    # var curr/esi: (addr handle var) = start
+    8b/-> *(ebp+0x10) 6/r32/esi
+    # curr -= 8
+    81 5/subop/subtract %esi 8/imm32
+    {
+$same-register-spilled-before?:loop:
+      # if (curr < min) break
+      39/compare %esi 1/r32/ecx
+      0f 82/jump-if-addr< break/disp32
+      # var x/eax: (addr var) = lookup(*curr)
+      (lookup *esi *(esi+4))  # => eax
+      # if (x->block-depth < depth) break
+      39/compare *(eax+0x10) 3/r32/ebx  # Var-block-depth
+      0f 8c/jump-if-< break/disp32
+      # if (x->register == 0) continue
+      81 7/subop/compare *(eax+0x18) 0/imm32  # Var-register
+      74/jump-if-= $same-register-spilled-before?:continue/disp8
+      # if (x->register == reg) return true
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      (string-equal? %eax %edx)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      b8/copy-to-eax 1/imm32/true
+      75/jump-if-!= $same-register-spilled-before?:end/disp8
+$same-register-spilled-before?:continue:
+      # curr -= 8
+      81 5/subop/subtract %esi 8/imm32
+      e9/jump loop/disp32
+    }
+$same-register-spilled-before?:false:
+    b8/copy-to-eax 0/imm32/false
+$same-register-spilled-before?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# clean up global state for 'vars' until some block depth (inclusive)
+clean-up-blocks:  # vars: (addr stack live-var), until-block-depth: int, fn: (addr function)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # esi = vars
+    8b/-> *(ebp+8) 6/r32/esi
+    # ecx = until-block-depth
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    {
+$clean-up-blocks:reclaim-loop:
+      # if (vars->top <= 0) break
+      8b/-> *esi 0/r32/eax  # Stack-top
+      3d/compare-eax-and 0/imm32
+      0f 8e/jump-if-<= break/disp32
+      # var v/eax: (addr var) = lookup(vars[vars->top-12])
+      (lookup *(esi+eax-4) *(esi+eax))  # vars + 8 + vars->top - 12 => eax
+      # if (v->block-depth < until-block-depth) break
+      39/compare *(eax+0x10) 1/r32/ecx  # Var-block-depth
+      0f 8c/jump-if-< break/disp32
+      (pop %esi)  # => eax
+      (pop %esi)  # => eax
+      (pop %esi)  # => eax
+      e9/jump loop/disp32
+    }
+$clean-up-blocks:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+reg-in-function-outputs?:  # fn: (addr function), target: (addr array byte) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var curr/ecx: (addr list var) = lookup(fn->outputs)
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+0x10) *(eax+0x14))  # Function-outputs Function-outputs => eax
+    89/<- %ecx 0/r32/eax
+    # while curr != null
+    {
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # var v/eax: (addr var) = lookup(curr->value)
+      (lookup *ecx *(ecx+4))  # List-value List-value => eax
+      # var reg/eax: (addr array byte) = lookup(v->register)
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      # if (reg == target) return true
+      (string-equal? %eax *(ebp+0xc))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= $reg-in-function-outputs?:end/disp8
+      # curr = curr->next
+      (lookup *(ecx+8) *(ecx+0xc))  # List-next List-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      eb/jump loop/disp8
+    }
+    # return false
+    b8/copy-to-eax 0/imm32
+$reg-in-function-outputs?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-var-def:  # out: (addr buffered-file), stmt: (addr stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # eax = stmt
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # var v/ecx: (addr var)
+    (lookup *(eax+4) *(eax+8))  # Vardef-var Vardef-var => eax
+    89/<- %ecx 0/r32/eax
+    # v->block-depth = *Curr-block-depth
+    8b/-> *Curr-block-depth 0/r32/eax
+    89/<- *(ecx+0x10) 0/r32/eax  # Var-block-depth
+    # var n/edx: int = size-of(stmt->var)
+    (size-of %ecx)  # => eax
+    89/<- %edx 0/r32/eax
+    # *Curr-local-stack-offset -= n
+    29/subtract-from *Curr-local-stack-offset 2/r32/edx
+    # v->offset = *Curr-local-stack-offset
+    8b/-> *Curr-local-stack-offset 0/r32/eax
+    89/<- *(ecx+0x14) 0/r32/eax  # Var-offset
+    # if v is an array, do something special to initialize it
+    {
+      (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+      (is-mu-array? %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      # var array-size-without-size/edx: int = n-4
+      81 5/subop/subtract %edx 4/imm32
+      #
+      (emit-array-data-initialization *(ebp+8) %edx)
+      e9/jump $emit-subx-var-def:end/disp32
+    }
+    # another special-case for initializing streams
+    # a stream is an array with 2 extra pointers
+    {
+      (lookup *(ecx+8) *(ecx+0xc))  # Var-type Var-type => eax
+      (is-mu-stream? %eax)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      # var array-size-without-size/edx: int = n-12
+      81 5/subop/subtract %edx 0xc/imm32
+      (emit-array-data-initialization *(ebp+8) %edx)
+      # emit read and write pointers
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "68/push 0/imm32\n")
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "68/push 0/imm32\n")
+      #
+      eb/jump $emit-subx-var-def:end/disp8
+    }
+    # while n > 0
+    {
+      81 7/subop/compare %edx 0/imm32
+      7e/jump-if-<= break/disp8
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "68/push 0/imm32\n")
+      # n -= 4
+      81 5/subop/subtract %edx 4/imm32
+      #
+      eb/jump loop/disp8
+    }
+$emit-subx-var-def:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-array-data-initialization:  # out: (addr buffered-file), n: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(push-n-zero-bytes ")
+    (write-int32-hex-buffered *(ebp+8) *(ebp+0xc))
+    (write-buffered *(ebp+8) ")\n")
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "68/push ")
+    (write-int32-hex-buffered *(ebp+8) *(ebp+0xc))
+    (write-buffered *(ebp+8) "/imm32\n")
+$emit-array-data-initialization:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-stmt:  # out: (addr buffered-file), stmt: (addr stmt), primitives: (addr primitive), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # - some special-case primitives that don't actually use the 'primitives' data structure
+    # var op/ecx: (addr array byte) = lookup(stmt->operation)
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+    89/<- %ecx 0/r32/eax
+    # copy byte (can be a primitive except we need to emit a second instruction)
+    {
+      # if (!string-equal?(stmt->operation, "copy-byte")) break
+      (string-equal? %ecx "copy-byte")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-copy-byte-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # copy-byte-to can be a primitive; writes to memory don't need to clear surrounding bytes
+    # array size
+    {
+      # if (!string-equal?(stmt->operation, "length")) break
+      (string-equal? %ecx "length")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-length-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # index into array
+    {
+      # if (!string-equal?(stmt->operation, "index")) break
+      (string-equal? %ecx "index")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-index-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # compute-offset for index into array
+    {
+      # if (!string-equal?(stmt->operation, "compute-offset")) break
+      (string-equal? %ecx "compute-offset")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-compute-index-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # get field from record
+    {
+      # if (!string-equal?(stmt->operation, "get")) break
+      (string-equal? %ecx "get")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-get-stmt *(ebp+8) *(ebp+0xc))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # allocate scalar
+    {
+      # if (!string-equal?(stmt->operation, "allocate")) break
+      (string-equal? %ecx "allocate")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-allocate-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # copy-object
+    {
+      # if (!string-equal?(stmt->operation, "copy-object")) break
+      (string-equal? %ecx "copy-object")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-copy-object-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # clear-object
+    {
+      # if (!string-equal?(stmt->operation, "clear-object")) break
+      (string-equal? %ecx "clear-object")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-clear-object-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # allocate array
+    {
+      # if (!string-equal?(stmt->operation, "populate")) break
+      (string-equal? %ecx "populate")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-populate-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # allocate stream
+    {
+      # if (!string-equal?(stmt->operation, "populate-stream")) break
+      (string-equal? %ecx "populate-stream")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-populate-stream-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # read from stream
+    {
+      # if (!string-equal?(stmt->operation, "read-from-stream")) break
+      (string-equal? %ecx "read-from-stream")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-read-from-stream-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # write to stream
+    {
+      # if (!string-equal?(stmt->operation, "write-to-stream")) break
+      (string-equal? %ecx "write-to-stream")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      0f 84/jump-if-= break/disp32
+      (translate-mu-write-to-stream-stmt *(ebp+8) *(ebp+0xc) *(ebp+0x18) *(ebp+0x1c))
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # - optimizations
+    # if copy instruction has same register in source and destination, emit nothing
+    (is-redundant-copy? *(ebp+0xc))  # => eax
+    3d/compare-eax-and 0/imm32/false
+    75/jump-if-!= $emit-subx-stmt:end/disp8
+    # - if stmt matches a primitive, emit it
+    {
+$emit-subx-stmt:check-for-primitive:
+      # var curr/eax: (addr primitive)
+      (find-matching-primitive *(ebp+0x10) *(ebp+0xc))  # primitives, stmt => eax
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+$emit-subx-stmt:primitive:
+      (emit-subx-primitive *(ebp+8) *(ebp+0xc) %eax)  # out, stmt, curr
+      e9/jump $emit-subx-stmt:end/disp32
+    }
+    # - otherwise emit a call
+    # TODO: type-checking
+$emit-subx-stmt:call:
+    (emit-call *(ebp+8) *(ebp+0xc))
+$emit-subx-stmt:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-redundant-copy?:  # stmt: (addr stmt) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+8) 6/r32/esi
+    # if stmt->operation != "copy" return false
+    (lookup *(esi+4) *(esi+8))  # Stmt1-operation Stmt1-operation => eax
+    (string-equal? %eax "copy")  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $is-redundant-copy?:end/disp32
+    # var output-reg/edi: (addr stmt-var) = stmt->outputs->value->register
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    # . if output-reg == null, return false
+    3d/compare-eax-and 0/imm32
+    74/jump-if-= $is-redundant-copy?:end/disp8
+    89/<- %edi 0/r32/eax
+    # return (inout->value->register == output->value->register)
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    # . if inout->is-deref return false
+    81 7/subop/compare *(eax+0x10) 0/imm32/false  # Stmt-var-is-deref
+    {
+      74/jump-if-= break/disp8
+      b8/copy-to-eax 0/imm32/false
+      e9/jump $is-redundant-copy?:end/disp32
+    }
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    # . if inout-reg == null, return false
+    3d/compare-eax-and 0/imm32
+    74/jump-if-= $is-redundant-copy?:end/disp8
+    (string-equal? %eax %edi)  # => eax
+$is-redundant-copy?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-length-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    # esi = stmt
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var base/ebx: (addr var) = stmt->inouts[0]->value
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ebx 0/r32/eax
+    # var elemsize/ecx: int = array-element-size(base)
+    (array-element-size %ebx *(ebp+0x10) *(ebp+0x14))  # => eax
+    89/<- %ecx 0/r32/eax
+    # var outreg/edx: (addr array byte) = stmt->outputs[0]->value->register
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    89/<- %edx 0/r32/eax
+    # if elemsize == 1
+    {
+      81 7/subop/compare %ecx 1/imm32
+      75/jump-if-!= break/disp8
+$translate-mu-length-stmt:size-1:
+      (emit-save-size-to *(ebp+8) %ebx %edx)
+      e9/jump $translate-mu-length-stmt:end/disp32
+    }
+    # if elemsize is a power of 2 less than 256
+    {
+      (power-of-2? %ecx *(ebp+0x10) *(ebp+0x14))  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      81 7/subop/compare %ecx 0xff/imm32
+      7f/jump-if-> break/disp8
+$translate-mu-length-stmt:size-power-of-2:
+      (emit-save-size-to *(ebp+8) %ebx %edx)
+      (emit-divide-by-shift-right *(ebp+8) %edx %ecx)
+      e9/jump $translate-mu-length-stmt:end/disp32
+    }
+    # otherwise, the complex case
+    # . emit register spills
+    {
+$translate-mu-length-stmt:complex:
+      (string-equal? %edx "eax")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/break-if-!= break/disp8
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "50/push-eax\n")
+    }
+    {
+      (string-equal? %edx "ecx")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/break-if-!= break/disp8
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "51/push-ecx\n")
+    }
+    {
+      (string-equal? %edx "edx")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/break-if-!= break/disp8
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "52/push-edx\n")
+    }
+    # .
+    (emit-save-size-to *(ebp+8) %ebx "eax")
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "31/xor %edx 2/r32/edx\n")
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "b9/copy-to-ecx ")
+    (write-int32-hex-buffered *(ebp+8) %ecx)
+    (write-buffered *(ebp+8) "/imm32\n")
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "f7 7/subop/idiv-eax-edx-by %ecx\n")
+    {
+      (string-equal? %edx "eax")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/break-if-!= break/disp8
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "89/<- %")
+      (write-buffered *(ebp+8) %edx)
+      (write-buffered *(ebp+8) " 0/r32/eax\n")
+    }
+    # . emit register restores
+    {
+      (string-equal? %edx "edx")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/break-if-!= break/disp8
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "5a/pop-to-edx\n")
+    }
+    {
+      (string-equal? %edx "ecx")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/break-if-!= break/disp8
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "59/pop-to-ecx\n")
+    }
+    {
+      (string-equal? %edx "eax")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/break-if-!= break/disp8
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "58/pop-to-eax\n")
+    }
+$translate-mu-length-stmt:end:
+    # . restore registers
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+array-element-size:  # arr: (addr var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (array-element-type-id *(ebp+8) *(ebp+0xc) *(ebp+0x10))  # => eax
+    (size-of-type-id-as-array-element %eax)  # => eax
+$array-element-size:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+array-element-type-id:  # v: (addr var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: type-id
+    # precondition: n is positive
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    8b/-> *(ebp+8) 0/r32/eax
+    # var t/eax: (addr type-tree)
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # if t == 0 abort
+    3d/compare-eax-with 0/imm32
+    0f 84/jump-if-== $array-element-type-id:error0/disp32
+    # if t->is-atom? abort
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $array-element-type-id:error1/disp32
+    # if (t->left == addr) t = t->right
+    {
+      50/push-eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 2)  # addr => eax
+      3d/compare-eax-with 0/imm32/false
+      58/pop-to-eax
+      74/jump-if-= break/disp8
+$array-element-type-id:skip-addr:
+      (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    }
+    # if t == 0 abort
+    3d/compare-eax-with 0/imm32
+    0f 84/jump-if-= $array-element-type-id:error2/disp32
+    # if t->is-atom? abort
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $array-element-type-id:error2/disp32
+    # if t->left != array abort
+    {
+      50/push-eax
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 3)  # array => eax
+      3d/compare-eax-with 0/imm32/false
+      58/pop-to-eax
+$array-element-type-id:no-array:
+      0f 84/jump-if-= $array-element-type-id:error2/disp32
+    }
+$array-element-type-id:skip-array:
+    # t = t->right
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # if t == 0 abort
+    3d/compare-eax-with 0/imm32
+    0f 84/jump-if-= $array-element-type-id:error2/disp32
+    # if t->is-atom? abort
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $array-element-type-id:error2/disp32
+    # t = t->left
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    # if (!t->is-atom?) t = t->left     # TODO: assumes array element size can be determined from just first word of array element type
+    # if (t->is-atom == false) t = lookup(t->left)
+    {
+      81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    # return t->value
+    8b/-> *(eax+4) 0/r32/eax  # Type-tree-value
+$array-element-type-id:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$array-element-type-id:error0:
+    (write-buffered *(ebp+0xc) "array-element-type-id: var '")
+    50/push-eax
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0xc) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0xc) "' has no type\n")
+    (flush *(ebp+0xc))
+    (stop *(ebp+0x10) 1)
+    # never gets here
+
+$array-element-type-id:error1:
+    (write-buffered *(ebp+0xc) "array-element-type-id: var '")
+    50/push-eax
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0xc) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0xc) "' has atomic type ")
+    (write-int32-hex-buffered *(ebp+0xc) *(eax+4))  # Type-tree-value
+    (write-buffered *(ebp+0xc) Newline)
+    (flush *(ebp+0xc))
+    (stop *(ebp+0x10) 1)
+    # never gets here
+
+$array-element-type-id:error2:
+    (write-buffered *(ebp+0xc) "array-element-type-id: var '")
+    50/push-eax
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+0xc) %eax)
+    58/pop-to-eax
+    (write-buffered *(ebp+0xc) "' has non-array type\n")
+    (flush *(ebp+0xc))
+    (stop *(ebp+0x10) 1)
+    # never gets here
+
+size-of-type-id-as-array-element:  # t: type-id -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = t
+    8b/-> *(ebp+8) 0/r32/eax
+    # if t is 'byte', size is 1
+    3d/compare-eax-and 8/imm32/byte
+    {
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 1/imm32
+      eb/jump $size-of-type-id-as-array-element:end/disp8
+    }
+    # otherwise proceed as usual
+    (size-of-type-id %eax)  # => eax
+$size-of-type-id-as-array-element:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-save-size-to:  # out: (addr buffered-file), base: (addr var), outreg: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    53/push-ebx
+    # ebx = base
+    8b/-> *(ebp+0xc) 3/r32/ebx
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "8b/-> *")
+    # if base is an (addr array ...) in a register
+    {
+      81 7/subop/compare *(ebx+0x18)) 0/imm32  # Var-register
+      74/jump-if-= break/disp8
+$emit-save-size-to:emit-base-from-register:
+      (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register Var-register => eax
+      (write-buffered *(ebp+8) %eax)
+      eb/jump $emit-save-size-to:emit-output/disp8
+    }
+    # otherwise if base is an (array ...) on the stack
+    {
+      81 7/subop/compare *(ebx+0x14)) 0/imm32  # Var-offset
+      74/jump-if-= break/disp8
+$emit-save-size-to:emit-base-from-stack:
+      (write-buffered *(ebp+8) "(ebp+")
+      (write-int32-hex-buffered *(ebp+8) *(ebx+0x14))  # Var-offset
+      (write-buffered *(ebp+8) ")")
+    }
+$emit-save-size-to:emit-output:
+    (write-buffered *(ebp+8) " ")
+    (get Mu-registers *(ebp+0x10) 0xc "Mu-registers")  # => eax
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/r32\n")
+$emit-save-size-to:end:
+    # . restore registers
+    5b/pop-to-ebx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-divide-by-shift-right:  # out: (addr buffered-file), reg: (addr array byte), size: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "c1/shift 5/subop/>> %")
+    (write-buffered *(ebp+8) *(ebp+0xc))
+    (write-buffered *(ebp+8) Space)
+    (num-shift-rights *(ebp+0x10))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) "/imm8\n")
+$emit-divide-by-shift-right:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-copy-byte-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # esi = stmt
+    8b/-> *(ebp+0xc) 6/r32/esi
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "8a/byte->")
+    # emit stmt->inouts[0]
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (emit-subx-var-as-rm32 *(ebp+8) %eax)
+    # emit /r32 for stmt->outputs[0]->register
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    (maybe-get Mu-registers %eax 0xc)  # => eax: (addr register-index)
+    (write-buffered *(ebp+8) Space)
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/r32\n")
+    # clear rest of register
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "81 4/subop/and %")
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *(esi+0x14) *(esi+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    (write-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) " 0xff/imm32\n")
+$translate-mu-copy-byte-stmt:end:
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# a little different from other translate- functions; notice the extra 'fn' argument
+translate-mu-index-stmt:  # out: (addr buffered-file), stmt: (addr stmt), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    53/push-ebx
+    # ebx = stmt
+    8b/-> *(ebp+0xc) 3/r32/ebx
+    # var base/ebx: (addr var) = stmt->inouts[0]
+    (lookup *(ebx+0xc) *(ebx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ebx 0/r32/eax
+    # emit bounds-check
+    (emit-mu-index-bounds-check *(ebp+8) *(ebp+0xc) *(ebp+0x10) *(ebp+0x14) *(ebp+0x18))
+    # if (var->register) do one thing
+    {
+      81 7/subop/compare *(ebx+0x18) 0/imm32  # Var-register
+      74/jump-if-= break/disp8
+      # TODO: ensure there's no dereference
+      (translate-mu-index-stmt-with-array-in-register *(ebp+8) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18))
+      eb/jump $translate-mu-index-stmt:end/disp8
+    }
+    # if (var->offset) do a different thing
+    {
+      81 7/subop/compare *(ebx+0x14) 0/imm32  # Var-offset
+      74/jump-if-= break/disp8
+      # TODO: ensure there's no dereference
+      (translate-mu-index-stmt-with-array-on-stack *(ebp+8) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18))
+      eb/jump $translate-mu-index-stmt:end/disp8
+    }
+$translate-mu-index-stmt:end:
+    # . restore registers
+    5b/pop-to-ebx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$translate-mu-index-stmt:error1:
+    (write-buffered *(ebp+0x14) "couldn't translate an index instruction. second (index) input must either lie in a register or be a literal\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+$translate-mu-index-stmt:error2:
+    (write-buffered *(ebp+0x14) "couldn't translate an index instruction. second (index) input when in a register must be an int or offset\n")
+    (flush *(ebp+0x14))
+    (stop *(ebp+0x18) 1)
+    # never gets here
+
+emit-mu-index-bounds-check:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = stmt
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(__check-mu-array-bounds ")
+$emit-mu-index-bounds-check:compute-base:
+    # var base/ebx: (addr var) = inouts[0]
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ebx 0/r32/eax
+$emit-mu-index-bounds-check:emit-index:
+    # var index/edx: (addr var) = inouts[1]
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %edx 0/r32/eax
+    # if index->register, print its code
+    81 7/subop/compare *(edx+0x18) 0/imm32  # Var-register
+    {
+      0f 84/jump-if-= break/disp32
+$emit-mu-index-bounds-check:emit-register-index:
+      (write-buffered *(ebp+8) "%")
+      (lookup *(edx+0x18) *(edx+0x1c))  # Var-register Var-register => eax
+      (write-buffered *(ebp+8) %eax)
+      eb/jump $emit-mu-index-bounds-check:index-done/disp8
+    }
+    # otherwise if index is a literal, print it
+$emit-mu-index-bounds-check:emit-literal-index:
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    (is-simple-mu-type? %eax 0)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    {
+      0f 84/jump-if-= break/disp32
+      (lookup *edx *(edx+4))  # Var-name Var-name => eax
+      (write-buffered *(ebp+8) %eax)
+    }
+$emit-mu-index-bounds-check:index-done:
+    (write-buffered *(ebp+8) " ")
+$emit-mu-index-bounds-check:emit-element-size:
+    # if index is a literal or int, print size of array element
+    {
+      {
+        (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+        (is-simple-mu-type? %eax 0)  # literal => eax
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+        (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+        (is-simple-mu-type? %eax 1)  # int => eax
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+        eb/jump $emit-mu-index-bounds-check:emit-element-size-offset/disp8
+      }
+$emit-mu-index-bounds-check:emit-int-register-index:
+      (array-element-size %ebx *(ebp+0x14) *(ebp+0x18))  # => eax
+      (write-int32-hex-buffered *(ebp+8) %eax)
+      e9/jump $emit-mu-index-bounds-check:emit-base/disp32
+    }
+$emit-mu-index-bounds-check:emit-element-size-offset:
+    # if index has type (offset ...), print "1"
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 7)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        0f 84/jump-if-= break/disp32
+$emit-mu-index-bounds-check:emit-offset-register-index:
+        (write-buffered *(ebp+8) "1")
+      }
+    }
+$emit-mu-index-bounds-check:emit-base:
+    # if base is in a register, print " *" base->register
+    81 7/subop/compare *(ebx+0x18) 0/imm32  # Var-register
+    {
+      74/jump-if-= break/disp8
+      (write-buffered *(ebp+8) " *")
+      (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register Var-register => eax
+      (write-buffered *(ebp+8) %eax)
+      e9/jump $emit-mu-index-bounds-check:emit-function-name/disp32
+    }
+    # otherwise print " *(ebp+" base->offset ")"
+    (write-buffered *(ebp+8) " *(ebp+")
+    (write-int32-hex-buffered *(ebp+8) *(ebx+0x14))  # Var-offset
+    (write-buffered *(ebp+8) ")")
+$emit-mu-index-bounds-check:emit-function-name:
+    # " \"" function-name "\""
+    (write-buffered *(ebp+8) " \"")
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    (lookup *ecx *(ecx+4))  # Function-name Function-name => eax
+    (write-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) "\"")
+$emit-mu-index-bounds-check:emit-array-name:
+    # " \"" base->name "\""
+    (write-buffered *(ebp+8) " \"")
+    (lookup *ebx *(ebx+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) "\")\n")
+$emit-mu-index-bounds-check:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-index-stmt-with-array-in-register:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "8d/copy-address *(")
+    # TODO: ensure inouts[0] is in a register and not dereferenced
+$translate-mu-index-stmt-with-array-in-register:emit-base:
+    # ecx = stmt
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var base/ebx: (addr var) = inouts[0]
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ebx 0/r32/eax
+    # print base->register " + "
+    (lookup *(ebx+0x18) *(ebx+0x1c))  # Var-register Var-register => eax
+    (write-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) " + ")
+    # var index/edx: (addr var) = inouts[1]
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %edx 0/r32/eax
+    # if index->register
+    81 7/subop/compare *(edx+0x18) 0/imm32  # Var-register
+    {
+      0f 84/jump-if-= break/disp32
+$translate-mu-index-stmt-with-array-in-register:emit-register-index:
+      # if index is an int
+      (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        0f 84/jump-if-= break/disp32
+$translate-mu-index-stmt-with-array-in-register:emit-int-register-index:
+        # print index->register "<<" log2(array-element-size(base)) " + 4) "
+        # . index->register "<<"
+        (lookup *(edx+0x18) *(edx+0x1c))  # Var-register Var-register => eax
+        (write-buffered *(ebp+8) %eax)
+        (write-buffered *(ebp+8) "<<")
+        # . log2(array-element-size(base->type))
+        # we know size is a power of 2
+        (array-element-size %ebx *(ebp+0x10) *(ebp+0x14))  # => eax
+        (num-shift-rights %eax)  # => eax
+        (write-int32-hex-buffered *(ebp+8) %eax)
+        e9/jump $translate-mu-index-stmt-with-array-in-register:emit-register-index-done/disp32
+      }
+      # if index->type is any other atom, abort
+      (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+      81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+      0f 85/jump-if-!= $translate-mu-index-stmt:error2/disp32
+      # if index has type (offset ...)
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 7)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        0f 84/jump-if-= break/disp32
+        # print index->register
+$translate-mu-index-stmt-with-array-in-register:emit-offset-register-index:
+        (lookup *(edx+0x18) *(edx+0x1c))  # Var-register Var-register => eax
+        (write-buffered *(ebp+8) %eax)
+      }
+$translate-mu-index-stmt-with-array-in-register:emit-register-index-done:
+      (write-buffered *(ebp+8) " + 4) ")
+      e9/jump $translate-mu-index-stmt-with-array-in-register:emit-output/disp32
+    }
+    # otherwise if index is a literal
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    (is-simple-mu-type? %eax 0)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    {
+      0f 84/jump-if-= break/disp32
+$translate-mu-index-stmt-with-array-in-register:emit-literal-index:
+      # var index-value/edx: int = parse-hex-int(index->name)
+      (lookup *edx *(edx+4))  # Var-name Var-name => eax
+      (parse-hex-int %eax)  # => eax
+      89/<- %edx 0/r32/eax
+      # offset = idx-value * array-element-size(base->type)
+      (array-element-size %ebx *(ebp+0x10) *(ebp+0x14))  # => eax
+      f7 4/subop/multiply-into-edx-eax %edx  # clobbers edx
+      # offset += 4 for array size
+      05/add-to-eax 4/imm32
+      # TODO: check edx for overflow
+      # print offset
+      (write-int32-hex-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) ") ")
+      e9/jump $translate-mu-index-stmt-with-array-in-register:emit-output/disp32
+    }
+    # otherwise abort
+    e9/jump $translate-mu-index-stmt:error1/disp32
+$translate-mu-index-stmt-with-array-in-register:emit-output:
+    # outputs[0] "/r32"
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    (lookup *(ecx+0x14) *(ecx+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    (get Mu-registers %eax 0xc "Mu-registers")  # => eax: (addr int)
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/r32\n")
+$translate-mu-index-stmt-with-array-in-register:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-index-stmt-with-array-on-stack:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "8d/copy-address *(ebp + ")
+    # var curr/edx: (addr stmt-var) = lookup(stmt->inouts)
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *(eax+0xc) *(eax+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edx 0/r32/eax
+    # var base/ecx: (addr var) = lookup(curr->value)
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ecx 0/r32/eax
+    # var curr2/eax: (addr stmt-var) = lookup(curr->next)
+    (lookup *(edx+8) *(edx+0xc))  # Stmt-var-next Stmt-var-next => eax
+    # var index/edx: (handle var) = curr2->value
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %edx 0/r32/eax
+    # if index->register
+    81 7/subop/compare *(edx+0x18) 0/imm32  # Var-register
+    {
+      0f 84/jump-if-= break/disp32
+$translate-mu-index-stmt-with-array-on-stack:emit-register-index:
+      # if index is an int
+      (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+      (is-simple-mu-type? %eax 1)  # int => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        0f 84/jump-if-= break/disp32
+$translate-mu-index-stmt-with-array-on-stack:emit-int-register-index:
+        # print index->register "<<" log2(array-element-size(base)) " + " base->offset+4
+        # . inouts[1]->register "<<"
+        (lookup *(edx+0x18) *(edx+0x1c))  # Var-register Var-register => eax
+        (write-buffered *(ebp+8) %eax)
+        (write-buffered *(ebp+8) "<<")
+        # . log2(array-element-size(base))
+        # TODO: ensure size is a power of 2
+        (array-element-size %ecx *(ebp+0x10) *(ebp+0x14))  # => eax
+        (num-shift-rights %eax)  # => eax
+        (write-int32-hex-buffered *(ebp+8) %eax)
+        #
+        (write-buffered *(ebp+8) " + ")
+        #
+        8b/-> *(ecx+0x14) 0/r32/eax  # Var-offset
+        05/add-to-eax 4/imm32  # for array length
+        (write-int32-hex-buffered *(ebp+8) %eax)
+        e9/jump $translate-mu-index-stmt-with-array-on-stack:emit-register-index-done/disp32
+      }
+      # if index->type is any other atom, abort
+      (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+      81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+      0f 85/jump-if-!= $translate-mu-index-stmt:error2/disp32
+      # if index has type (offset ...)
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      (is-simple-mu-type? %eax 7)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      {
+        0f 84/jump-if-= break/disp32
+        # print index->register
+$translate-mu-index-stmt-with-array-on-stack:emit-offset-register-index:
+        (lookup *(edx+0x18) *(edx+0x1c))  # Var-register Var-register => eax
+        (write-buffered *(ebp+8) %eax)
+      }
+$translate-mu-index-stmt-with-array-on-stack:emit-register-index-done:
+      (write-buffered *(ebp+8) ") ")
+      e9/jump $translate-mu-index-stmt-with-array-on-stack:emit-output/disp32
+    }
+    # otherwise if index is a literal
+    (lookup *(edx+8) *(edx+0xc))  # Var-type Var-type => eax
+    (is-simple-mu-type? %eax 0)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    {
+      0f 84/jump-if-= break/disp32
+$translate-mu-index-stmt-with-array-on-stack:emit-literal-index:
+      # var idx-value/edx: int = parse-hex-int(index->name)
+      (lookup *edx *(edx+4))  # Var-name Var-name => eax
+      (parse-hex-int %eax)  # Var-name => eax
+      89/<- %edx 0/r32/eax
+      # offset = idx-value * array-element-size(base)
+      (array-element-size %ecx *(ebp+0x10) *(ebp+0x14))  # => eax
+      f7 4/subop/multiply-into-edx-eax %edx  # clobbers edx
+      # offset += base->offset
+      03/add *(ecx+0x14) 0/r32/eax  # Var-offset
+      # offset += 4 for array size
+      05/add-to-eax 4/imm32
+      # TODO: check edx for overflow
+      # print offset
+      (write-int32-hex-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) ") ")
+      e9/jump $translate-mu-index-stmt-with-array-on-stack:emit-output/disp32
+    }
+    # otherwise abort
+    e9/jump $translate-mu-index-stmt:error1/disp32
+$translate-mu-index-stmt-with-array-on-stack:emit-output:
+    # outputs[0] "/r32"
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *(eax+0x14) *(eax+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    (get Mu-registers %eax 0xc "Mu-registers")  # => eax: (addr int)
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/r32\n")
+$translate-mu-index-stmt-with-array-on-stack:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-compute-index-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "69/multiply")
+    # ecx = stmt
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var first-inout/ebx: (addr stmt-var) = stmt->inouts[0]
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %ebx 0/r32/eax
+$translate-mu-compute-index-stmt:emit-index:
+    (lookup *(ebx+8) *(ebx+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (emit-subx-var-as-rm32 *(ebp+8) %eax)
+    (write-buffered *(ebp+8) Space)
+$translate-mu-compute-index-stmt:emit-elem-size:
+    # var base/ebx: (addr var)
+    (lookup *ebx *(ebx+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %ebx 0/r32/eax
+    # print array-element-size(base)
+    (array-element-size %ebx *(ebp+0x10) *(ebp+0x14))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) "/imm32 ")
+$translate-mu-compute-index-stmt:emit-output:
+    # outputs[0] "/r32"
+    (lookup *(ecx+0x14) *(ecx+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    (get Mu-registers %eax 0xc "Mu-registers")  # => eax: (addr int)
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/r32\n")
+$translate-mu-compute-index-stmt:end:
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-get-stmt:  # out: (addr buffered-file), stmt: (addr stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "8d/copy-address ")
+    # ecx = stmt
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var offset/edx: int = get offset of stmt
+    (mu-get-offset %ecx)  # => eax
+    89/<- %edx 0/r32/eax
+    # var base/eax: (addr var) = stmt->inouts->value
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    # if base is in a register
+    81 7/subop/compare *(eax+0x18) 0/imm32  # Var-register
+    {
+      0f 84/jump-if-= break/disp32
+$translate-mu-get-stmt:emit-register-input:
+      # emit "*(" base->register " + " offset ") "
+      (write-buffered *(ebp+8) "*(")
+      (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+      (write-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) " + ")
+      (write-int32-hex-buffered *(ebp+8) %edx)
+      (write-buffered *(ebp+8) ") ")
+      e9/jump $translate-mu-get-stmt:emit-output/disp32
+    }
+    # otherwise base is on the stack
+    {
+$translate-mu-get-stmt:emit-stack-input:
+      # emit "*(ebp + " inouts[0]->stack-offset + offset ") "
+      (write-buffered *(ebp+8) "*(ebp+")
+      03/add *(eax+0x14) 2/r32/edx  # Var-offset
+      (write-int32-hex-buffered *(ebp+8) %edx)
+      (write-buffered *(ebp+8) ") ")
+      eb/jump $translate-mu-get-stmt:emit-output/disp8
+    }
+$translate-mu-get-stmt:emit-output:
+    # var output/eax: (addr var) = stmt->outputs->value
+    (lookup *(ecx+0x14) *(ecx+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    # emit offset->register "/r32"
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+    (get Mu-registers %eax 0xc "Mu-registers")  # => eax: (addr int)
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/r32\n")
+$translate-mu-get-stmt:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-copy-object-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(copy-bytes")
+    # eax = stmt
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # var first-inout/eax: (addr stmt-var) = stmt->inouts[0]
+    (lookup *(eax+0xc) *(eax+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (emit-subx-call-operand *(ebp+8) %eax)
+    # var second-inout/eax: (addr stmt-var) = stmt->inouts[1]
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    (emit-subx-call-operand *(ebp+8) %eax)
+    # emit size of inouts
+    (write-buffered *(ebp+8) Space)
+    (addr-payload-size %eax *(ebp+0x10) *(ebp+0x14))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) ")\n")
+$translate-mu-copy-object-stmt:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-clear-object-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(zero-out")
+    # eax = stmt
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # var dest/eax: (addr stmt-var) = stmt->inouts[0]
+    (lookup *(eax+0xc) *(eax+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    #
+    (emit-subx-call-operand *(ebp+8) %eax)
+    (write-buffered *(ebp+8) Space)
+    (addr-payload-size %eax *(ebp+0x10) *(ebp+0x14))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) ")\n")
+$translate-mu-clear-object-stmt:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-allocate-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var target/edi: (addr stmt-var) = stmt->inouts[0]
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(allocate Heap ")
+    (addr-handle-payload-size %edi *(ebp+0x10) *(ebp+0x14))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (emit-subx-call-operand *(ebp+8) %edi)
+    (write-buffered *(ebp+8) ")\n")
+$translate-mu-allocate-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+addr-handle-payload-size:  # s: (addr stmt-var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var t/eax: (addr type-tree) = s->value->type
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == addr
+    # t = t->right
+$addr-handle-payload-size:skip-addr:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == handle
+    # t = t->right
+$addr-handle-payload-size:skip-handle:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # if !t->is-atom? t = t->left
+    81 7/subop/compare *eax 0/imm32/false
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    # TODO: check t->is-atom?
+    # return size(t->value)
+    (size-of-type-id *(eax+4))  # Type-tree-value => eax
+$addr-handle-payload-size:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+addr-payload-size:  # s: (addr stmt-var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var t/eax: (addr type-tree) = s->value->type
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == addr
+    # t = t->right
+$addr-payload-size:skip-addr:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # if !t->is-atom? t = t->left
+    81 7/subop/compare *eax 0/imm32/false
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    # TODO: check t->is-atom?
+    # return size(t->value)
+    (size-of-type-id *(eax+4))  # Type-tree-value => eax
+$addr-payload-size:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-populate-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var target/edi: (addr stmt-var) = stmt->inouts[0]
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # var len/ecx: (addr stmt-var) = stmt->inouts[1]
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %ecx 0/r32/eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(allocate-array2 Heap ")
+    (addr-handle-array-payload-size %edi *(ebp+0x10) *(ebp+0x14))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (emit-subx-call-operand *(ebp+8) %ecx)
+    (emit-subx-call-operand *(ebp+8) %edi)
+    (write-buffered *(ebp+8) ")\n")
+$translate-mu-populate-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-populate-stream-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var target/edi: (addr stmt-var) = stmt->inouts[0]
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %edi 0/r32/eax
+    # var len/ecx: (addr stmt-var) = stmt->inouts[1]
+    (lookup *(edi+8) *(edi+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %ecx 0/r32/eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(new-stream Heap ")
+    (addr-handle-stream-payload-size %edi *(ebp+0x10) *(ebp+0x14))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (emit-subx-call-operand *(ebp+8) %ecx)
+    (emit-subx-call-operand *(ebp+8) %edi)
+    (write-buffered *(ebp+8) ")\n")
+$translate-mu-populate-stream-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-read-from-stream-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var stream/ecx: (addr stmt-var) = stmt->inouts[0]
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %ecx 0/r32/eax
+    # var target/edi: (addr stmt-var) = stmt->inouts[1]
+    (lookup *(ecx+8) *(ecx+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %edi 0/r32/eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(read-from-stream")
+    (emit-subx-call-operand *(ebp+8) %ecx)
+    (emit-subx-call-operand *(ebp+8) %edi)
+    (write-buffered *(ebp+8) Space)
+    (addr-payload-size %edi *(ebp+0x10) *(ebp+0x14))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) ")\n")
+$translate-mu-read-from-stream-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+translate-mu-write-to-stream-stmt:  # out: (addr buffered-file), stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = stmt
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var stream/ecx: (addr stmt-var) = stmt->inouts[0]
+    (lookup *(esi+0xc) *(esi+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %ecx 0/r32/eax
+    # var target/edi: (addr stmt-var) = stmt->inouts[1]
+    (lookup *(ecx+8) *(ecx+0xc))  # Stmt-var-next Stmt-var-next => eax
+    89/<- %edi 0/r32/eax
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(write-to-stream")
+    (emit-subx-call-operand *(ebp+8) %ecx)
+    (flush *(ebp+8))
+    (emit-subx-call-operand *(ebp+8) %edi)
+    (flush *(ebp+8))
+    (write-buffered *(ebp+8) Space)
+    (flush *(ebp+8))
+    (addr-payload-size %edi *(ebp+0x10) *(ebp+0x14))  # => eax
+    (write-int32-hex-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) ")\n")
+$translate-mu-write-to-stream-stmt:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+addr-handle-array-payload-size:  # s: (addr stmt-var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var t/eax: (addr type-tree) = s->value->type
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == addr
+    # t = t->right
+$addr-handle-array-payload-size:skip-addr:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == handle
+    # t = t->right
+$addr-handle-array-payload-size:skip-handle:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == array
+    # t = t->right
+$addr-handle-array-payload-size:skip-array:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # if !t->is-atom? t = t->left
+    81 7/subop/compare *eax 0/imm32/false
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+$addr-handle-array-payload-size:compute-size:
+    # TODO: check t->is-atom?
+    # return size(t->value)
+    (size-of-type-id-as-array-element *(eax+4))  # Type-tree-value => eax
+$addr-handle-array-payload-size:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+addr-handle-stream-payload-size:  # s: (addr stmt-var), err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var t/eax: (addr type-tree) = s->value->type
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+8) *(eax+0xc))  # Var-type Var-type => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == addr
+    # t = t->right
+$addr-handle-stream-payload-size:skip-addr:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == handle
+    # t = t->right
+$addr-handle-stream-payload-size:skip-handle:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # TODO: check !t->is-atom?
+    # TODO: check t->left == stream
+    # t = t->right
+$addr-handle-stream-payload-size:skip-stream:
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # TODO: check eax != 0
+    # if !t->is-atom? t = t->left
+    81 7/subop/compare *eax 0/imm32/false
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+$addr-handle-stream-payload-size:compute-size:
+    # TODO: check t->is-atom?
+    # return size(t->value)
+    (size-of-type-id-as-array-element *(eax+4))  # Type-tree-value => eax
+$addr-handle-stream-payload-size:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+power-of-2?:  # n: int, err: (addr buffered-file), ed: (addr exit-descriptor) -> result/eax: boolean
+    # precondition: n is positive
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = n
+    8b/-> *(ebp+8) 0/r32/eax
+    # if (n < 0) abort
+    3d/compare-eax-with 0/imm32
+    0f 8c/jump-if-< $power-of-2?:abort/disp32
+    # var tmp/eax: int = n-1
+    48/decrement-eax
+    # var tmp2/eax: int = n & tmp
+    23/and-> *(ebp+8) 0/r32/eax
+    # return (tmp2 == 0)
+    3d/compare-eax-and 0/imm32
+    0f 94/set-byte-if-= %al
+    81 4/subop/and %eax 0xff/imm32
+$power-of-2?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$power-of-2?:abort:
+    (write-buffered *(ebp+0xc) "power-of-2?: negative number\n")
+    (flush *(ebp+0xc))
+    (stop *(ebp+0x10) 1)
+    # never gets here
+
+num-shift-rights:  # n: int -> result/eax: int
+    # precondition: n is a positive power of 2
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var curr/ecx: int = n
+    8b/-> *(ebp+8) 1/r32/ecx
+    # result = 0
+    b8/copy-to-eax 0/imm32
+    {
+      # if (curr <= 1) break
+      81 7/subop/compare %ecx 1/imm32
+      7e/jump-if-<= break/disp8
+      40/increment-eax
+      c1/shift 5/subop/arithmetic-right %ecx 1/imm8
+      eb/jump loop/disp8
+    }
+$num-shift-rights:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+mu-get-offset:  # stmt: (addr stmt) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # var second-inout/eax: (addr stmt-var) = stmt->inouts->next
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+0xc) *(eax+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+    # var output-var/eax: (addr var) = second-inout->value
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+#?     (write-buffered Stderr "mu-get-offset: ")
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (write-buffered Stderr " name: ")
+#?     50/push-eax
+#?     (lookup *eax *(eax+4))  # Var-name
+#?     (write-buffered Stderr %eax)
+#?     58/pop-to-eax
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    # return output-var->stack-offset
+    8b/-> *(eax+0x14) 0/r32/eax  # Var-offset
+#?     (write-buffered Stderr "=> ")
+#?     (write-int32-hex-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+$emit-get-offset:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-block:  # out: (addr buffered-file), block: (addr block), vars: (addr stack live-var), fn: (addr function), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # esi = block
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # block->var->block-depth = *Curr-block-depth
+    (lookup *(esi+0xc) *(esi+0x10))  # Block-var Block-var => eax
+    8b/-> *Curr-block-depth 1/r32/ecx
+    89/<- *(eax+0x10) 1/r32/ecx  # Var-block-depth
+    # var stmts/eax: (addr list stmt) = lookup(block->statements)
+    (lookup *(esi+4) *(esi+8))  # Block-stmts Block-stmts => eax
+    #
+    {
+$emit-subx-block:check-empty:
+      3d/compare-eax-and 0/imm32
+      0f 84/jump-if-= break/disp32
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "{\n")
+      # var v/ecx: (addr var) = lookup(block->var)
+      (lookup *(esi+0xc) *(esi+0x10))  # Block-var Block-var => eax
+      89/<- %ecx 0/r32/eax
+      #
+      (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+      (write-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) ":loop:\n")
+      ff 0/subop/increment *Curr-block-depth
+      (push *(ebp+0x10) *(esi+0xc))  # Block-var
+      (push *(ebp+0x10) *(esi+0x10))  # Block-var
+      (push *(ebp+0x10) 0)  # false
+      # emit block->statements
+      (lookup *(esi+4) *(esi+8))  # Block-stmts Block-stmts => eax
+      (emit-subx-stmt-list *(ebp+8) %eax *(ebp+0x10) *(ebp+0x14) *(ebp+0x18) *(ebp+0x1c))
+      (pop *(ebp+0x10))  # => eax
+      (pop *(ebp+0x10))  # => eax
+      (pop *(ebp+0x10))  # => eax
+      ff 1/subop/decrement *Curr-block-depth
+      (emit-indent *(ebp+8) *Curr-block-depth)
+      (write-buffered *(ebp+8) "}\n")
+      (lookup *ecx *(ecx+4))  # Var-name Var-name => eax
+      (write-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) ":break:\n")
+    }
+$emit-subx-block:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# Primitives supported
+# See mu_instructions for a summary of this linked-list data structure.
+#
+# For each operation, put variants with hard-coded registers before flexible ones.
+#
+# Unfortunately, our restrictions on addresses require that various fields in
+# primitives be handles, which complicates these definitions.
+#   - we need to insert dummy fields all over the place for fake alloc-ids
+#   - we can't use our syntax sugar of quoted literals for string fields
+#
+# Fake alloc-ids are needed because our type definitions up top require
+# handles but it's clearer to statically allocate these long-lived objects.
+# Fake alloc-ids are perfectly safe, but they can't be reclaimed.
+#
+# Every 'object' below starts with a fake alloc-id. It may also contain other
+# fake alloc-ids for various handle fields.
+#
+# I think of objects starting with a fake alloc-id as having type 'payload'.
+# It's not really intended to be created dynamically; for that use `allocate`
+# as usual.
+#
+# Idea for a notation to simplify such definitions:
+#   _Primitive-increment-eax:  # (payload primitive)
+#     0x11/alloc-id:fake:payload
+#     0x11 @(0x11 "increment")  # name
+#     0 0                       # inouts
+#     0x11 @(0x11/payload
+#            0x11 @(0x11/payload  # List-value
+#                   0 0             # Var-name
+#                   0x11 @(0x11     # Var-type
+#                          1/is-atom
+#                          1/value 0/unused   # Type-tree-left
+#                          0 0                # Type-tree-right
+#                         )
+#                   1               # block-depth
+#                   0               # stack-offset
+#                   0x11 @(0x11 "eax")  # Var-register
+#                  )
+#            0 0)                 # List-next
+#     ...
+#     _Primitive-increment-ecx/imm32/next
+#   ...
+# Awfully complex and non-obvious. But also clearly signals there's something
+# to learn here, so may be worth trying.
+#
+# '@' is just an initial thought. Punctuation used so far in Mu: () * % # / "
+#
+# For now we'll continue to just use comments and manually ensure they stay up
+# to date.
+== data
+Primitives:  # (addr primitive)
+# - increment/decrement
+_Primitive-increment-eax:  # (addr primitive)
+    # var/eax <- increment => 40/increment-eax
+    0x11/imm32/alloc-id:fake
+    _string-increment/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-eax/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_40_increment_eax/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-increment-ecx/imm32/next
+_Primitive-increment-ecx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/ecx <- increment => 41/increment-ecx
+    0x11/imm32/alloc-id:fake
+    _string-increment/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-ecx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_41_increment_ecx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-increment-edx/imm32/next
+_Primitive-increment-edx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/edx <- increment => 42/increment-edx
+    0x11/imm32/alloc-id:fake
+    _string-increment/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-edx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_42_increment_edx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-increment-ebx/imm32/next
+_Primitive-increment-ebx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/ebx <- increment => 43/increment-ebx
+    0x11/imm32/alloc-id:fake
+    _string-increment/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-ebx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_43_increment_ebx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-increment-esi/imm32/next
+_Primitive-increment-esi:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/esi <- increment => 46/increment-esi
+    0x11/imm32/alloc-id:fake
+    _string-increment/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-esi/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_46_increment_esi/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-increment-edi/imm32/next
+_Primitive-increment-edi:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/edi <- increment => 47/increment-edi
+    0x11/imm32/alloc-id:fake
+    _string-increment/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-edi/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_47_increment_edi/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-decrement-eax/imm32/next
+_Primitive-decrement-eax:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/eax <- decrement => 48/decrement-eax
+    0x11/imm32/alloc-id:fake
+    _string-decrement/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-eax/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_48_decrement_eax/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-decrement-ecx/imm32/next
+_Primitive-decrement-ecx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/ecx <- decrement => 49/decrement-ecx
+    0x11/imm32/alloc-id:fake
+    _string-decrement/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-ecx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_49_decrement_ecx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-decrement-edx/imm32/next
+_Primitive-decrement-edx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/edx <- decrement => 4a/decrement-edx
+    0x11/imm32/alloc-id:fake
+    _string-decrement/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-edx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_4a_decrement_edx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-decrement-ebx/imm32/next
+_Primitive-decrement-ebx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/ebx <- decrement => 4b/decrement-ebx
+    0x11/imm32/alloc-id:fake
+    _string-decrement/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-ebx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_4b_decrement_ebx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-decrement-esi/imm32/next
+_Primitive-decrement-esi:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/esi <- decrement => 4e/decrement-esi
+    0x11/imm32/alloc-id:fake
+    _string-decrement/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-esi/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_4e_decrement_esi/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-decrement-edi/imm32/next
+_Primitive-decrement-edi:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/edi <- decrement => 4f/decrement-edi
+    0x11/imm32/alloc-id:fake
+    _string-decrement/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-edi/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_4f_decrement_edi/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-increment-mem/imm32/next
+_Primitive-increment-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # increment var => ff 0/subop/increment *(ebp+__)
+    0x11/imm32/alloc-id:fake
+    _string-increment/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_ff_subop_increment/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-increment-reg/imm32/next
+_Primitive-increment-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/reg <- increment => ff 0/subop/increment %__
+    0x11/imm32/alloc-id:fake
+    _string-increment/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_ff_subop_increment/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-decrement-mem/imm32/next
+_Primitive-decrement-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # decrement var => ff 1/subop/decrement *(ebp+__)
+    0x11/imm32/alloc-id:fake
+    _string-decrement/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_ff_subop_decrement/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-decrement-reg/imm32/next
+_Primitive-decrement-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/reg <- decrement => ff 1/subop/decrement %__
+    0x11/imm32/alloc-id:fake
+    _string-decrement/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_ff_subop_decrement/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-add-to-eax/imm32/next
+# - add
+_Primitive-add-to-eax:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/eax <- add lit => 05/add-to-eax lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-add/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-eax/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_05_add_to_eax/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-add-reg-to-reg/imm32/next
+_Primitive-add-reg-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- add var2/reg => 01/add-to var1/rm32 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-add/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_01_add_to/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    1/imm32/r32-is-first-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-add-reg-to-mem/imm32/next
+_Primitive-add-reg-to-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # add-to var1 var2/reg => 01/add-to var1 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-add-to/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-stack-int-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_01_add_to/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-add-mem-to-reg/imm32/next
+_Primitive-add-mem-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- add var2 => 03/add var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-add/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_03_add/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-add-lit-to-reg/imm32/next
+_Primitive-add-lit-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- add lit => 81 0/subop/add var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-add/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_add/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-add-lit-to-mem/imm32/next
+_Primitive-add-lit-to-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # add-to var1, lit => 81 0/subop/add var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-add-to/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_add/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-subtract-from-eax/imm32/next
+# - subtract
+_Primitive-subtract-from-eax:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/eax <- subtract lit => 2d/subtract-from-eax lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-subtract/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-eax/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_2d_subtract_from_eax/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-subtract-reg-from-reg/imm32/next
+_Primitive-subtract-reg-from-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- subtract var2/reg => 29/subtract-from var1/rm32 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-subtract/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_29_subtract_from/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    1/imm32/r32-is-first-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-subtract-reg-from-mem/imm32/next
+_Primitive-subtract-reg-from-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # subtract-from var1 var2/reg => 29/subtract-from var1 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-subtract-from/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-stack-int-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_29_subtract_from/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-subtract-mem-from-reg/imm32/next
+_Primitive-subtract-mem-from-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- subtract var2 => 2b/subtract var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-subtract/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_2b_subtract/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-subtract-lit-from-reg/imm32/next
+_Primitive-subtract-lit-from-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- subtract lit => 81 5/subop/subtract var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-subtract/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_subtract/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-subtract-lit-from-mem/imm32/next
+_Primitive-subtract-lit-from-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # subtract-from var1, lit => 81 5/subop/subtract var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-subtract-from/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_subtract/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-and-with-eax/imm32/next
+# - and
+_Primitive-and-with-eax:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/eax <- and lit => 25/and-with-eax lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-and/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-eax/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_25_and_with_eax/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-and-reg-with-reg/imm32/next
+_Primitive-and-reg-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- and var2/reg => 21/and-with var1/rm32 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-and/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_21_and_with/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    1/imm32/r32-is-first-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-and-reg-with-mem/imm32/next
+_Primitive-and-reg-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # and-with var1 var2/reg => 21/and-with var1 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-and-with/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-stack-int-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_21_and_with/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-and-mem-with-reg/imm32/next
+_Primitive-and-mem-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- and var2 => 23/and var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-and/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_23_and/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-and-lit-with-reg/imm32/next
+_Primitive-and-lit-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- and lit => 81 4/subop/and var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-and/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_and/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-and-lit-with-mem/imm32/next
+_Primitive-and-lit-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # and-with var1, lit => 81 4/subop/and var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-and-with/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_and/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-or-with-eax/imm32/next
+# - or
+_Primitive-or-with-eax:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/eax <- or lit => 0d/or-with-eax lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-or/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-eax/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_0d_or_with_eax/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-or-reg-with-reg/imm32/next
+_Primitive-or-reg-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- or var2/reg => 09/or-with var1/rm32 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-or/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_09_or_with/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    1/imm32/r32-is-first-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-or-reg-with-mem/imm32/next
+_Primitive-or-reg-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # or-with var1 var2/reg => 09/or-with var1 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-or-with/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-stack-int-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_09_or_with/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-or-mem-with-reg/imm32/next
+_Primitive-or-mem-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- or var2 => 0b/or var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-or/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_0b_or/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-or-lit-with-reg/imm32/next
+_Primitive-or-lit-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- or lit => 81 1/subop/or var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-or/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_or/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-or-lit-with-mem/imm32/next
+_Primitive-or-lit-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # or-with var1, lit => 81 1/subop/or var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-or-with/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_or/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-xor-with-eax/imm32/next
+# - xor
+_Primitive-xor-with-eax:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/eax <- xor lit => 35/xor-with-eax lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-xor/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-eax/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_35_xor_with_eax/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-xor-reg-with-reg/imm32/next
+_Primitive-xor-reg-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- xor var2/reg => 31/xor-with var1/rm32 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-xor/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_31_xor_with/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    1/imm32/r32-is-first-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-xor-reg-with-mem/imm32/next
+_Primitive-xor-reg-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # xor-with var1 var2/reg => 31/xor-with var1 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-xor-with/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-stack-int-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_31_xor_with/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-xor-mem-with-reg/imm32/next
+_Primitive-xor-mem-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- xor var2 => 33/xor var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-xor/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_33_xor/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-xor-lit-with-reg/imm32/next
+_Primitive-xor-lit-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- xor lit => 81 6/subop/xor var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-xor/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_xor/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-xor-lit-with-mem/imm32/next
+_Primitive-xor-lit-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # xor-with var1, lit => 81 6/subop/xor var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-xor-with/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_xor/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-shift-reg-left-by-lit/imm32/next
+_Primitive-shift-reg-left-by-lit:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- shift-left lit => c1/shift 4/subop/left var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-shift-left/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_c1_subop_shift_left/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    1/imm32/imm8-is-first-inout
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-shift-reg-right-by-lit/imm32/next
+_Primitive-shift-reg-right-by-lit:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- shift-right lit => c1/shift 5/subop/right var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-shift-right/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_c1_subop_shift_right_padding_zeroes/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    1/imm32/imm8-is-first-inout
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-shift-reg-right-signed-by-lit/imm32/next
+_Primitive-shift-reg-right-signed-by-lit:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- shift-right-signed lit => c1/shift 7/subop/right-preserving-sign var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-shift-right-signed/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_c1_subop_shift_right_preserving_sign/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    1/imm32/imm8-is-first-inout
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-shift-mem-left-by-lit/imm32/next
+_Primitive-shift-mem-left-by-lit:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # shift-left var1, lit => c1/shift 4/subop/left var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-shift-left/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_c1_subop_shift_left/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    2/imm32/imm8-is-second-inout
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-shift-mem-right-by-lit/imm32/next
+_Primitive-shift-mem-right-by-lit:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # shift-right var1, lit => c1/shift 5/subop/right var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-shift-right/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_c1_subop_shift_right_padding_zeroes/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    2/imm32/imm8-is-second-inout
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-shift-mem-right-signed-by-lit/imm32/next
+_Primitive-shift-mem-right-signed-by-lit:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # shift-right-signed var1, lit => c1/shift 7/subop/right-preserving-sign var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-shift-right-signed/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_c1_subop_shift_right_preserving_sign/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    2/imm32/imm8-is-second-inout
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-to-eax/imm32/next
+# - copy
+_Primitive-copy-to-eax:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/eax <- copy lit => b8/copy-to-eax lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-eax/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_b8_copy_to_eax/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-to-ecx/imm32/next
+_Primitive-copy-to-ecx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/ecx <- copy lit => b9/copy-to-ecx lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-ecx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_b9_copy_to_ecx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-to-edx/imm32/next
+_Primitive-copy-to-edx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/edx <- copy lit => ba/copy-to-edx lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-edx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_ba_copy_to_edx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-to-ebx/imm32/next
+_Primitive-copy-to-ebx:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/ebx <- copy lit => bb/copy-to-ebx lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-ebx/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_bb_copy_to_ebx/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-to-esi/imm32/next
+_Primitive-copy-to-esi:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/esi <- copy lit => be/copy-to-esi lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-esi/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_be_copy_to_esi/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-to-edi/imm32/next
+_Primitive-copy-to-edi:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var/edi <- copy lit => bf/copy-to-edi lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-edi/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_bf_copy_to_edi/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-reg-to-reg/imm32/next
+_Primitive-copy-reg-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- copy var2/reg => 89/<- var1/rm32 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_89_<-/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    1/imm32/r32-is-first-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-reg-to-mem/imm32/next
+_Primitive-copy-reg-to-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # copy-to var1 var2/reg => 89/<- var1 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-copy-to/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-stack-int-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_89_<-/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-mem-to-reg/imm32/next
+_Primitive-copy-mem-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- copy var2 => 8b/-> var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_8b_->/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-lit-to-reg/imm32/next
+_Primitive-copy-lit-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- copy lit => c7 0/subop/copy var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_c7_subop_copy/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    1/imm32/imm32-is-first-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-lit-to-mem/imm32/next
+_Primitive-copy-lit-to-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # copy-to var1, lit => c7 0/subop/copy var1/rm32 lit/imm32
+    0x11/imm32/alloc-id:fake
+    _string-copy-to/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_c7_subop_copy/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-byte-from-reg/imm32/next
+# - copy byte
+_Primitive-copy-byte-from-reg:
+    0x11/imm32/alloc-id:fake:payload
+    # var/reg <- copy-byte var2/reg2 => 8a/byte-> %var2 var/r32
+    0x11/imm32/alloc-id:fake
+    _string-copy-byte/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-byte-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-byte-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_8a_copy_byte/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-byte-from-mem/imm32/next
+_Primitive-copy-byte-from-mem:
+    0x11/imm32/alloc-id:fake:payload
+    # var/reg <- copy-byte *var2/reg2 => 8a/byte-> *var2 var/r32
+    0x11/imm32/alloc-id:fake
+    _string-copy-byte/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-byte-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-byte-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_8a_copy_byte/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-byte-to-mem/imm32/next
+_Primitive-copy-byte-to-mem:
+    0x11/imm32/alloc-id:fake:payload
+    # copy-byte-to *var1/reg1, var2/reg2 => 88/byte<- *reg1 reg2/r32
+    0x11/imm32/alloc-id:fake
+    _string-copy-byte-to/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-byte-stack-byte-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_88_copy_byte/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-address/imm32/next
+# - address
+_Primitive-address:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- address var2 => 8d/copy-address var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-address/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-addr-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_8d_copy_address/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-compare-reg-with-reg/imm32/next
+# - compare
+_Primitive-compare-reg-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # compare var1/reg1 var2/reg2 => 39/compare var1/rm32 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-compare/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-int-args-in-regs/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_39_compare->/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-compare-mem-with-reg/imm32/next
+_Primitive-compare-mem-with-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # compare var1 var2/reg => 39/compare var1/rm32 var2/r32
+    0x11/imm32/alloc-id:fake
+    _string-compare/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-stack-int-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_39_compare->/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    2/imm32/r32-is-second-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-compare-reg-with-mem/imm32/next
+_Primitive-compare-reg-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # compare var1/reg var2 => 3b/compare<- var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-compare/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-reg-int-stack/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_3b_compare<-/imm32/subx-name
+    2/imm32/rm32-is-second-inout
+    1/imm32/r32-is-first-inout
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-compare-eax-with-literal/imm32/next
+_Primitive-compare-eax-with-literal:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # compare var1/eax n => 3d/compare-eax-with n/imm32
+    0x11/imm32/alloc-id:fake
+    _string-compare/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-int-eax-int-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_3d_compare_eax_with/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-compare-reg-with-literal/imm32/next
+_Primitive-compare-reg-with-literal:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # compare var1/reg n => 81 7/subop/compare %reg n/imm32
+    0x11/imm32/alloc-id:fake
+    _string-compare/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-in-register-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_compare/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-compare-mem-with-literal/imm32/next
+_Primitive-compare-mem-with-literal:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # compare var1 n => 81 7/subop/compare *(ebp+___) n/imm32
+    0x11/imm32/alloc-id:fake
+    _string-compare/imm32/name
+    0x11/imm32/alloc-id:fake
+    Int-var-and-literal/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_81_subop_compare/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    2/imm32/imm32-is-second-inout
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-negate-reg/imm32/next
+# - negate
+_Primitive-negate-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- negate => f7 3/subop/negate var1/rm32
+    0x11/imm32/alloc-id:fake
+    _string-negate/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f7_subop_negate/imm32/subx-name
+    3/imm32/rm32-is-first-output
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-negate-mem/imm32/next
+_Primitive-negate-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # negate var1 => f7 3/subop/negate var1/rm32
+    0x11/imm32/alloc-id:fake
+    _string-negate/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_f7_subop_negate/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-multiply-reg-by-reg/imm32/next
+# - multiply
+_Primitive-multiply-reg-by-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- multiply var2 => 0f af/multiply var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-multiply/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_af_multiply/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-multiply-reg-by-mem/imm32/next
+_Primitive-multiply-reg-by-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- multiply var2 => 0f af/multiply var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-multiply/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_af_multiply/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-convert-mem-to-xreg/imm32/next
+# - convert int to floating point
+_Primitive-convert-mem-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- convert var2 => f3 0f 2a/convert-to-float var2/rm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-convert/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_2a_convert_to_float/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-convert-reg-to-xreg/imm32/next
+_Primitive-convert-reg-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- convert var2/reg => f3 0f 2a/convert-to-float var2/rm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-convert/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_2a_convert_to_float/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-convert-xmem-to-reg/imm32/next
+# - convert floating point to int
+_Primitive-convert-xmem-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- convert var2 => f3 0f 2d/convert-to-int var2/xm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-convert/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_2d_convert_to_int/imm32/subx-name
+    0/imm32/no-rm32
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-convert-xreg-to-reg/imm32/next
+_Primitive-convert-xreg-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- convert var2/xreg => f3 0f 2d/convert-to-int var2/xm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-convert/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_2d_convert_to_int/imm32/subx-name
+    0/imm32/no-rm32
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-truncate-xmem-to-reg/imm32/next
+_Primitive-truncate-xmem-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- truncate var2 => f3 0f 2c/truncate-to-int var2/xm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-truncate/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_2c_truncate_to_int/imm32/subx-name
+    0/imm32/no-rm32
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-truncate-xreg-to-reg/imm32/next
+_Primitive-truncate-xreg-to-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- truncate var2/xreg => f3 0f 2c/truncate-to-int var2/xm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-truncate/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_2c_truncate_to_int/imm32/subx-name
+    0/imm32/no-rm32
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-reinterpret-xmem-as-reg/imm32/next
+# - reinterpret bytes (just for debugging)
+_Primitive-reinterpret-xmem-as-reg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- reinterpret var2 => 8b/-> var2/xm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-reinterpret/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_8b_->/imm32/subx-name
+    0/imm32/no-rm32
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-reinterpret-mem-as-xreg/imm32/next
+_Primitive-reinterpret-mem-as-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- reinterpret var2 => f3 0f 10/-> var2/rm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-reinterpret/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_10_copy/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-xreg-to-xreg/imm32/next
+# - floating-point copy
+_Primitive-copy-xreg-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- copy var2/xreg => f3 0f 11/<- var1/xm32 var2/x32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_11_copy/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    3/imm32/xm32-is-first-output
+    1/imm32/x32-is-first-inout
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-xreg-to-mem/imm32/next
+_Primitive-copy-xreg-to-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # copy-to var1 var2/xreg => f3 0f 11/<- var1 var2/x32
+    0x11/imm32/alloc-id:fake
+    _string-copy-to/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-float-stack-float-reg/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_11_copy/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    2/imm32/x32-is-second-inout
+    0x11/imm32/alloc-id:fake
+    _Primitive-copy-mem-to-xreg/imm32/next
+_Primitive-copy-mem-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- copy var2 => f3 0f 10/-> var2/rm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-copy/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_10_copy/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-address-of-xmem/imm32/next
+# - floating-point-address
+_Primitive-address-of-xmem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/reg <- address var2 => 8d/copy-address var2/rm32 var1/r32
+    0x11/imm32/alloc-id:fake
+    _string-address/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-addr-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_8d_copy_address/imm32/subx-name
+    1/imm32/rm32-is-first-inout
+    3/imm32/r32-is-first-output
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-add-xreg-to-xreg/imm32/next
+# - floating-point add
+_Primitive-add-xreg-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- add var2/xreg => f3 0f 58/add var1/xm32 var2/x32
+    0x11/imm32/alloc-id:fake
+    _string-add/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_58_add/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-add-mem-to-xreg/imm32/next
+_Primitive-add-mem-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- add var2 => f3 0f 58/add var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-add/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_58_add/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-subtract-xreg-from-xreg/imm32/next
+# - floating-point subtract
+_Primitive-subtract-xreg-from-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- subtract var2/xreg => f3 0f 5c/subtract var1/xm32 var2/x32
+    0x11/imm32/alloc-id:fake
+    _string-subtract/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_5c_subtract/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-subtract-mem-from-xreg/imm32/next
+_Primitive-subtract-mem-from-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- subtract var2 => f3 0f 5c/subtract var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-subtract/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_5c_subtract/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-multiply-xreg-by-xreg/imm32/next
+# - floating-point multiply
+_Primitive-multiply-xreg-by-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- multiply var2 => f3 0f 59/multiply var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-multiply/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_59_multiply/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-multiply-xreg-by-mem/imm32/next
+_Primitive-multiply-xreg-by-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- multiply var2 => 53 0f 59/multiply var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-multiply/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_59_multiply/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-divide-xreg-by-xreg/imm32/next
+# - floating-point divide
+_Primitive-divide-xreg-by-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- divide var2 => f3 0f 5e/divide var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-divide/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_5e_divide/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-divide-xreg-by-mem/imm32/next
+_Primitive-divide-xreg-by-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- divide var2 => f3 0f 5e/divide var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-divide/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_5e_divide/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-max-xreg-with-xreg/imm32/next
+# - floating-point maximum
+_Primitive-max-xreg-with-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- max var2 => f3 0f 5f/max var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-max/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_5f_max/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-max-xreg-with-mem/imm32/next
+_Primitive-max-xreg-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- divide var2 => f3 0f 5f/max var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-max/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_5f_max/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-min-xreg-with-xreg/imm32/next
+# - floating-point minimum
+_Primitive-min-xreg-with-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- divide var2 => f3 0f 5d/min var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-min/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_5d_min/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-min-xreg-with-mem/imm32/next
+_Primitive-min-xreg-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- divide var2 => f3 0f 5d/min var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-min/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_5d_min/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-reciprocal-xreg-to-xreg/imm32/next
+# - floating-point reciprocal
+_Primitive-reciprocal-xreg-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- reciprocal var2 => f3 0f 53/reciprocal var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-reciprocal/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_53_reciprocal/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-reciprocal-mem-to-xreg/imm32/next
+_Primitive-reciprocal-mem-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- divide var2 => f3 0f 53/reciprocal var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-reciprocal/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_53_reciprocal/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-square-root-xreg-to-xreg/imm32/next
+# - floating-point square root
+_Primitive-square-root-xreg-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- square-root var2 => f3 0f 51/square-root var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-square-root/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_51_square_root/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-square-root-mem-to-xreg/imm32/next
+_Primitive-square-root-mem-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- divide var2 => f3 0f 51/square-root var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-square-root/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_51_square_root/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-inverse-square-root-xreg-to-xreg/imm32/next
+# - floating-point inverse square root 1/sqrt(x)
+_Primitive-inverse-square-root-xreg-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- reciprocal var2 => f3 0f 52/inverse-square-root var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-inverse-square-root/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_52_inverse_square_root/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-inverse-square-root-mem-to-xreg/imm32/next
+_Primitive-inverse-square-root-mem-to-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # var1/xreg <- divide var2 => f3 0f 52/inverse-square-root var2/xm32 var1/x32
+    0x11/imm32/alloc-id:fake
+    _string-inverse-square-root/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/inouts
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/outputs
+    0x11/imm32/alloc-id:fake
+    _string_f3_0f_52_inverse_square_root/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    1/imm32/xm32-is-first-inout
+    3/imm32/x32-is-first-output
+    0x11/imm32/alloc-id:fake
+    _Primitive-compare-xreg-with-xreg/imm32/next
+# - floating-point compare
+_Primitive-compare-xreg-with-xreg:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # compare var1/reg1 var2/reg2 => 0f 2f/compare var2/x32 var1/xm32
+    0x11/imm32/alloc-id:fake
+    _string-compare/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-float-args-in-regs/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_2f_compare/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    2/imm32/xm32-is-second-inout
+    1/imm32/x32-is-first-inout
+    0x11/imm32/alloc-id:fake
+    _Primitive-compare-xreg-with-mem/imm32/next
+_Primitive-compare-xreg-with-mem:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    # compare var1/xreg var2 => 0f 2f/compare var1/x32 var2/xm32
+    0x11/imm32/alloc-id:fake
+    _string-compare/imm32/name
+    0x11/imm32/alloc-id:fake
+    Two-args-float-reg-float-stack/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_2f_compare/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    2/imm32/xm32-is-second-inout
+    1/imm32/x32-is-first-inout
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-addr</imm32/next
+# - branches
+_Primitive-break-if-addr<:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-addr</imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_82_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-addr>=/imm32/next
+_Primitive-break-if-addr>=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-addr>=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_83_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-=/imm32/next
+_Primitive-break-if-=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_84_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-!=/imm32/next
+_Primitive-break-if-!=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-!=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_85_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-addr<=/imm32/next
+_Primitive-break-if-addr<=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-addr<=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_86_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-addr>/imm32/next
+_Primitive-break-if-addr>:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-addr>/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_87_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-</imm32/next
+_Primitive-break-if-<:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-</imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8c_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if->=/imm32/next
+_Primitive-break-if->=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if->=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8d_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-<=/imm32/next
+_Primitive-break-if-<=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-<=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8e_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if->/imm32/next
+_Primitive-break-if->:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if->/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8f_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break/imm32/next
+_Primitive-break:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_e9_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-addr</imm32/next
+_Primitive-loop-if-addr<:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-addr</imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_82_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-addr>=/imm32/next
+_Primitive-loop-if-addr>=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-addr>=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_83_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-=/imm32/next
+_Primitive-loop-if-=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_84_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-!=/imm32/next
+_Primitive-loop-if-!=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-!=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_85_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-addr<=/imm32/next
+_Primitive-loop-if-addr<=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-addr<=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_86_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-addr>/imm32/next
+_Primitive-loop-if-addr>:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-addr>/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_87_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-</imm32/next
+_Primitive-loop-if-<:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-</imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8c_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if->=/imm32/next
+_Primitive-loop-if->=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if->=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8d_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-<=/imm32/next
+_Primitive-loop-if-<=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-<=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8e_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if->/imm32/next
+_Primitive-loop-if->:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if->/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8f_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop/imm32/next  # we probably don't need an unconditional break
+_Primitive-loop:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_e9_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-addr<-named/imm32/next
+# - branches to named blocks
+_Primitive-break-if-addr<-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-addr</imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_82_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-addr>=-named/imm32/next
+_Primitive-break-if-addr>=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-addr>=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_83_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-=-named/imm32/next
+_Primitive-break-if-=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_84_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-!=-named/imm32/next
+_Primitive-break-if-!=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-!=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_85_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-addr<=-named/imm32/next
+_Primitive-break-if-addr<=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-addr<=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_86_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-addr>-named/imm32/next
+_Primitive-break-if-addr>-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-addr>/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_87_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-<-named/imm32/next
+_Primitive-break-if-<-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-</imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8c_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if->=-named/imm32/next
+_Primitive-break-if->=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if->=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8d_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-<=-named/imm32/next
+_Primitive-break-if-<=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-<=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8e_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if->-named/imm32/next
+_Primitive-break-if->-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if->/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8f_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-named/imm32/next
+_Primitive-break-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_e9_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-addr<-named/imm32/next
+_Primitive-loop-if-addr<-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-addr</imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_82_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-addr>=-named/imm32/next
+_Primitive-loop-if-addr>=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-addr>=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_83_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-=-named/imm32/next
+_Primitive-loop-if-=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_84_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-!=-named/imm32/next
+_Primitive-loop-if-!=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-!=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_85_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-addr<=-named/imm32/next
+_Primitive-loop-if-addr<=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-addr<=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_86_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-addr>-named/imm32/next
+_Primitive-loop-if-addr>-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-addr>/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_87_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-<-named/imm32/next
+_Primitive-loop-if-<-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-</imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8c_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if->=-named/imm32/next
+_Primitive-loop-if->=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if->=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8d_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-<=-named/imm32/next
+_Primitive-loop-if-<=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-<=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8e_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if->-named/imm32/next
+_Primitive-loop-if->-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if->/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_8f_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-named/imm32/next  # we probably don't need an unconditional break
+_Primitive-loop-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_e9_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-float</imm32/next
+# - branches based on floating-point comparisons
+_Primitive-break-if-float<:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-float</imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_82_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-float>=/imm32/next
+_Primitive-break-if-float>=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-float>=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_83_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-float<=/imm32/next
+_Primitive-break-if-float<=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-float<=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_86_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-float>/imm32/next
+_Primitive-break-if-float>:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-float>/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_87_jump_break/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-float</imm32/next
+_Primitive-loop-if-float<:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-float</imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_82_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-float>=/imm32/next
+_Primitive-loop-if-float>=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-float>=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_83_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-float<=/imm32/next
+_Primitive-loop-if-float<=:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-float<=/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_86_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-float>/imm32/next
+_Primitive-loop-if-float>:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-float>/imm32/name
+    0/imm32/no-inouts
+    0/imm32/no-inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_87_jump_loop/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    0/imm32/no-disp32
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-float<-named/imm32/next
+_Primitive-break-if-float<-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-float</imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_82_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-float>=-named/imm32/next
+_Primitive-break-if-float>=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-float>=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_83_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-float<=-named/imm32/next
+_Primitive-break-if-float<=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-float<=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_86_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-break-if-float>-named/imm32/next
+_Primitive-break-if-float>-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-break-if-float>/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_87_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-float<-named/imm32/next
+_Primitive-loop-if-float<-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-float</imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_82_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-float>=-named/imm32/next
+_Primitive-loop-if-float>=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-float>=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_83_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-float<=-named/imm32/next
+_Primitive-loop-if-float<=-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-float<=/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_86_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0x11/imm32/alloc-id:fake
+    _Primitive-loop-if-float>-named/imm32/next
+_Primitive-loop-if-float>-named:  # (payload primitive)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    _string-loop-if-float>/imm32/name
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/inouts
+    0/imm32/no-outputs
+    0/imm32/no-outputs
+    0x11/imm32/alloc-id:fake
+    _string_0f_87_jump_label/imm32/subx-name
+    0/imm32/no-rm32
+    0/imm32/no-r32
+    0/imm32/no-imm32
+    0/imm32/no-imm8
+    1/imm32/disp32-is-first-inout
+    0/imm32/no-xm32
+    0/imm32/no-x32
+    0/imm32/next
+    0/imm32/next
+
+# string literals for Mu instructions
+_string-add:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "add"
+    0x3/imm32/size
+    0x61/a 0x64/d 0x64/d
+_string-address:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "address"
+    0x7/imm32/size
+    0x61/a 0x64/d 0x64/d 0x72/r 0x65/e 0x73/s 0x73/s
+_string-add-to:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "add-to"
+    0x6/imm32/size
+    0x61/a 0x64/d 0x64/d 0x2d/dash 0x74/t 0x6f/o
+_string-and:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "and"
+    0x3/imm32/size
+    0x61/a 0x6e/n 0x64/d
+_string-and-with:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "and-with"
+    0x8/imm32/size
+    0x61/a 0x6e/n 0x64/d 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h
+_string-break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break"
+    0x5/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k
+_string-break-if-<:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-<"
+    0xa/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/<
+_string-break-if-<=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-<="
+    0xb/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/< 0x3d/=
+_string-break-if-=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-="
+    0xa/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3d/=
+_string-break-if->:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if->"
+    0xa/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/>
+_string-break-if->=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if->="
+    0xb/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/> 0x3d/=
+_string-break-if-!=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-!="
+    0xb/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x21/! 0x3d/=
+_string-break-if-addr<:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-addr<"
+    0xe/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/<
+_string-break-if-addr<=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-addr<="
+    0xf/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/< 0x3d/=
+_string-break-if-addr>:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-addr>"
+    0xe/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/>
+_string-break-if-addr>=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-addr>="
+    0xf/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/> 0x3d/=
+_string-break-if-float<:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-float<"
+    0xf/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t 0x3c/<
+_string-break-if-float<=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-float<="
+    0x10/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t 0x3c/< 0x3d/=
+_string-break-if-float>:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-float>"
+    0xf/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t 0x3e/>
+_string-break-if-float>=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "break-if-float>="
+    0x10/imm32/size
+    0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t 0x3e/> 0x3d/=
+_string-compare:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "compare"
+    0x7/imm32/size
+    0x63/c 0x6f/o 0x6d/m 0x70/p 0x61/a 0x72/r 0x65/e
+_string-copy:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "copy"
+    0x4/imm32/size
+    0x63/c 0x6f/o 0x70/p 0x79/y
+_string-copy-to:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "copy-to"
+    0x7/imm32/size
+    0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x74/t 0x6f/o
+_string-copy-byte:
+    0x11/imm32/alloc-id:fake:payload
+    # "copy-byte"
+    0x9/imm32/size
+    0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/- 0x62/b 0x79/y 0x74/t 0x65/e
+_string-copy-byte-to:
+    0x11/imm32/alloc-id:fake:payload
+    # "copy-byte-to"
+    0xc/imm32/size
+    0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/- 0x62/b 0x79/y 0x74/t 0x65/e 0x2d/- 0x74/t 0x6f/o
+_string-decrement:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "decrement"
+    0x9/imm32/size
+    0x64/d 0x65/e 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t
+_string-increment:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "increment"
+    0x9/imm32/size
+    0x69/i 0x6e/n 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t
+_string-loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop"
+    0x4/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p
+_string-loop-if-<:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-<"
+    0x9/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/<
+_string-loop-if-<=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-<="
+    0xa/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/< 0x3d/=
+_string-loop-if-=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-="
+    0x9/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3d/=
+_string-loop-if->:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if->"
+    0x9/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/>
+_string-loop-if->=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if->="
+    0xa/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/> 0x3d/=
+_string-loop-if-!=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-!="
+    0xa/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x21/! 0x3d/=
+_string-loop-if-addr<:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-addr<"
+    0xd/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/<
+_string-loop-if-addr<=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-addr<="
+    0xe/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/< 0x3d/=
+_string-loop-if-addr>:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-addr>"
+    0xd/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/>
+_string-loop-if-addr>=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-addr>="
+    0xe/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/> 0x3d/=
+_string-loop-if-float<:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-float<"
+    0xe/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t 0x3c/<
+_string-loop-if-float<=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-float<="
+    0xf/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t 0x3c/< 0x3d/=
+_string-loop-if-float>:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-float>"
+    0xe/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t 0x3e/>
+_string-loop-if-float>=:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "loop-if-float>="
+    0xf/imm32/size
+    0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t 0x3e/> 0x3d/=
+_string-multiply:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "multiply"
+    0x8/imm32/size
+    0x6d/m 0x75/u 0x6c/l 0x74/t 0x69/i 0x70/p 0x6c/l 0x79/y
+_string-convert:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "convert"
+    0x7/imm32/size
+    0x63/c 0x6f/o 0x6e/n 0x76/v 0x65/e 0x72/r 0x74/t
+_string-truncate:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "truncate"
+    0x8/imm32/size
+    0x74/t 0x72/r 0x75/u 0x6e/n 0x63/c 0x61/a 0x74/t 0x65/e
+_string-reinterpret:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "reinterpret"
+    0xb/imm32/size
+    0x72/r 0x65/e 0x69/i 0x6e/n 0x74/t 0x65/e 0x72/r 0x70/p 0x72/r 0x65/e 0x74/t
+_string-divide:
+    0x11/imm32/alloc-id:fake:payload
+    # "divide"
+    0x6/imm32/size
+    0x64/d 0x69/i 0x76/v 0x69/i 0x64/d 0x65/e
+_string-max:
+    0x11/imm32/alloc-id:fake:payload
+    # "max"
+    0x3/imm32/size
+    0x6d/m 0x61/a 0x78/x
+_string-min:
+    0x11/imm32/alloc-id:fake:payload
+    # "min"
+    0x3/imm32/size
+    0x6d/m 0x69/i 0x6e/n
+_string-reciprocal:
+    0x11/imm32/alloc-id:fake:payload
+    # "reciprocal"
+    0xa/imm32/size
+    0x72/r 0x65/e 0x63/c 0x69/i 0x70/p 0x72/r 0x6f/o 0x63/c 0x61/a 0x6c/l
+_string-square-root:
+    0x11/imm32/alloc-id:fake:payload
+    # "square-root"
+    0xb/imm32/size
+    0x73/s 0x71/q 0x75/u 0x61/a 0x72/r 0x65/e 0x2d/- 0x72/r 0x6f/o 0x6f/o 0x74/t
+_string-inverse-square-root:
+    0x11/imm32/alloc-id:fake:payload
+    # "inverse-square-root"
+    0x13/imm32/size
+    0x69/i 0x6e/n 0x76/v 0x65/e 0x72/r 0x73/s 0x65/e 0x2d/- 0x73/s 0x71/q 0x75/u 0x61/a 0x72/r 0x65/e 0x2d/- 0x72/r 0x6f/o 0x6f/o 0x74/t
+_string-negate:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "negate"
+    0x6/imm32/size
+    0x6e/n 0x65/e 0x67/g 0x61/a 0x74/t 0x65/e
+_string-or:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "or"
+    0x2/imm32/size
+    0x6f/o 0x72/r
+_string-or-with:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "or-with"
+    0x7/imm32/size
+    0x6f/o 0x72/r 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h
+_string-subtract:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "subtract"
+    0x8/imm32/size
+    0x73/s 0x75/u 0x62/b 0x74/t 0x72/r 0x61/a 0x63/c 0x74/t
+_string-subtract-from:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "subtract-from"
+    0xd/imm32/size
+    0x73/s 0x75/u 0x62/b 0x74/t 0x72/r 0x61/a 0x63/c 0x74/t 0x2d/dash 0x66/f 0x72/r 0x6f/o 0x6d/m
+_string-xor:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "xor"
+    0x3/imm32/size
+    0x78/x 0x6f/o 0x72/r
+_string-xor-with:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "xor-with"
+    0x8/imm32/size
+    0x78/x 0x6f/o 0x72/r 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h
+_string-shift-left:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "shift-left"
+    0xa/imm32/size
+    0x73/s 0x68/h 0x69/i 0x66/f 0x74/t 0x2d/dash 0x6c/l 0x65/e 0x66/f 0x74/t
+_string-shift-right:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "shift-right"
+    0xb/imm32/size
+    0x73/s 0x68/h 0x69/i 0x66/f 0x74/t 0x2d/dash 0x72/r 0x69/i 0x67/g 0x68/h 0x74/t
+_string-shift-right-signed:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "shift-right-signed"
+    0x12/imm32/size
+    0x73/s 0x68/h 0x69/i 0x66/f 0x74/t 0x2d/dash 0x72/r 0x69/i 0x67/g 0x68/h 0x74/t 0x2d/dash 0x73/s 0x69/i 0x67/g 0x6e/n 0x65/e 0x64/d
+
+# string literals for SubX instructions
+_string_01_add_to:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "01/add-to"
+    0x9/imm32/size
+    0x30/0 0x31/1 0x2f/slash 0x61/a 0x64/d 0x64/d 0x2d/dash 0x74/t 0x6f/o
+_string_03_add:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "03/add"
+    0x6/imm32/size
+    0x30/0 0x33/3 0x2f/slash 0x61/a 0x64/d 0x64/d
+_string_05_add_to_eax:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "05/add-to-eax"
+    0xd/imm32/size
+    0x30/0 0x35/5 0x2f/slash 0x61/a 0x64/d 0x64/d 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x65/e 0x61/a 0x78/x
+_string_09_or_with:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "09/or-with"
+    0xa/imm32/size
+    0x30/0 0x39/9 0x2f/slash 0x6f/o 0x72/r 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h
+_string_0b_or:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0b/or"
+    0x5/imm32/size
+    0x30/0 0x62/b 0x2f/slash 0x6f/o 0x72/r
+_string_0d_or_with_eax:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0d/or-with-eax"
+    0xe/imm32/size
+    0x30/0 0x64/d 0x2f/slash 0x6f/o 0x72/r 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h 0x2d/dash 0x65/e 0x61/a 0x78/x
+_string_0f_82_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 82/jump-if-addr<"
+    0x13/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x32/2 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/<
+_string_0f_82_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 82/jump-if-addr< break/disp32"
+    0x20/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x32/2 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/< 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_82_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 82/jump-if-addr< loop/disp32"
+    0x1f/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x32/2 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/< 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_83_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 83/jump-if-addr>="
+    0x14/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x33/3 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/> 0x3d/=
+_string_0f_83_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 83/jump-if-addr>= break/disp32"
+    0x21/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x33/3 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/> 0x3d/= 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_83_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 83/jump-if-addr>= loop/disp32"
+    0x20/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x33/3 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/> 0x3d/= 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_84_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 84/jump-if-="
+    0xf/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x34/4 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3d/=
+_string_0f_84_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 84/jump-if-= break/disp32"
+    0x1c/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x34/4 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3d/= 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_84_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 84/jump-if-= loop/disp32"
+    0x1b/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x34/4 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3d/= 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_85_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 85/jump-if-!="
+    0x10/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x35/5 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x21/! 0x3d/=
+_string_0f_85_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 85/jump-if-!= break/disp32"
+    0x1d/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x35/5 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x21/! 0x3d/= 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_85_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 85/jump-if-!= loop/disp32"
+    0x1c/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x35/5 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x21/! 0x3d/= 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_86_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 86/jump-if-addr<="
+    0x14/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x36/6 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/< 0x3d/=
+_string_0f_86_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 86/jump-if-addr<= break/disp32"
+    0x21/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x36/6 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/< 0x3d/= 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_86_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 86/jump-if-addr<= loop/disp32"
+    0x20/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x36/6 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3c/< 0x3d/= 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_87_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 87/jump-if-addr>"
+    0x13/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x37/7 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/>
+_string_0f_87_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 87/jump-if-addr> break/disp32"
+    0x20/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x37/7 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/> 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_87_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 87/jump-if-addr> loop/disp32"
+    0x1f/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x37/7 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x3e/> 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_8c_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8c/jump-if-<"
+    0xf/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x63/c 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/<
+_string_0f_8c_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8c/jump-if-< break/disp32"
+    0x1c/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x63/c 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/< 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_8c_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8c/jump-if-< loop/disp32"
+    0x1b/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x63/c 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/< 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_8d_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8d/jump-if->="
+    0x10/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x64/d 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/> 0x3d/=
+_string_0f_8d_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8d/jump-if->= break/disp32"
+    0x1d/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x64/d 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/> 0x3d/= 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_8d_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8d/jump-if->= loop/disp32"
+    0x1c/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x64/d 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/> 0x3d/= 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_8e_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8e/jump-if-<="
+    0x10/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x65/e 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/< 0x3d/=
+_string_0f_8e_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8e/jump-if-<= break/disp32"
+    0x1d/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x65/e 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/< 0x3d/= 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_8e_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8e/jump-if-<= loop/disp32"
+    0x1c/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x65/e 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3c/< 0x3d/= 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_8f_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8f/jump-if->"
+    0xf/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x66/f 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/>
+_string_0f_8f_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8f/jump-if-> break/disp32"
+    0x1c/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x66/f 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/> 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_8f_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 8f/jump-if-> loop/disp32"
+    0x1b/imm32/size
+    0x30/0 0x66/f 0x20/space 0x38/8 0x66/f 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x2d/dash 0x69/i 0x66/f 0x2d/dash 0x3e/> 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_0f_af_multiply:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "0f af/multiply"
+    0xe/imm32/size
+    0x30/0 0x66/f 0x20/space 0x61/a 0x66/f 0x2f/slash 0x6d/m 0x75/u 0x6c/l 0x74/t 0x69/i 0x70/p 0x6c/l 0x79/y
+_string_f3_0f_2a_convert_to_float:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 2a/convert-to-float"
+    0x19/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x32/2 0x61/a 0x2f/slash 0x63/c 0x6f/o 0x6e/n 0x76/v 0x65/e 0x72/r 0x74/t 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x66/f 0x6c/l 0x6f/o 0x61/a 0x74/t
+_string_f3_0f_2d_convert_to_int:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 2d/convert-to-int"
+    0x17/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x32/2 0x64/d 0x2f/slash 0x63/c 0x6f/o 0x6e/n 0x76/v 0x65/e 0x72/r 0x74/t 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x69/i 0x6e/n 0x74/t
+_string_f3_0f_2c_truncate_to_int:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 2c/truncate-to-int"
+    0x18/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x32/2 0x63/c 0x2f/slash 0x74/t 0x72/r 0x75/u 0x6e/n 0x63/c 0x61/a 0x74/t 0x65/e 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x69/i 0x6e/n 0x74/t
+_string_f3_0f_58_add:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 58/add"
+    0xc/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x38/8 0x2f/slash 0x61/a 0x64/d 0x64/d
+_string_f3_0f_5c_subtract:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 5c/subtract"
+    0x11/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x63/c 0x2f/slash 0x73/s 0x75/u 0x62/b 0x74/t 0x72/r 0x61/a 0x63/c 0x74/t
+_string_f3_0f_59_multiply:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 59/multiply"
+    0x11/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x39/9 0x2f/slash 0x6d/m 0x75/u 0x6c/l 0x74/t 0x69/i 0x70/p 0x6c/l 0x79/y
+_string_f3_0f_5e_divide:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 5e/divide"
+    0xf/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x65/e 0x2f/slash 0x64/d 0x69/i 0x76/v 0x69/i 0x64/d 0x65/e
+_string_f3_0f_53_reciprocal:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 53/reciprocal"
+    0x13/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x33/3 0x2f/slash 0x72/r 0x65/e 0x63/c 0x69/i 0x70/p 0x72/r 0x6f/o 0x63/c 0x61/a 0x6c/l
+_string_f3_0f_51_square_root:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 51/square-root"
+    0x14/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x31/1 0x2f/slash 0x73/s 0x71/q 0x75/u 0x61/a 0x72/r 0x65/e 0x2d/dash 0x72/r 0x6f/o 0x6f/o 0x74/t
+_string_f3_0f_52_inverse_square_root:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 52/inverse-square-root"
+    0x1c/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x32/2 0x2f/slash 0x69/i 0x6e/n 0x76/v 0x65/e 0x72/r 0x73/s 0x65/e 0x2d/dash 0x73/s 0x71/q 0x75/u 0x61/a 0x72/r 0x65/e 0x2d/dash 0x72/r 0x6f/o 0x6f/o 0x74/t
+_string_f3_0f_5d_min:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 5d/min"
+    0xc/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x64/d 0x2f/slash 0x6d/m 0x69/i 0x6e/n
+_string_f3_0f_5f_max:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 5f/max"
+    0xc/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x35/5 0x66/f 0x2f/slash 0x6d/m 0x61/a 0x78/x
+_string_f3_0f_10_copy:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 10/copy"
+    0xd/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x31/1 0x30/0 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y
+_string_f3_0f_11_copy:
+    0x11/imm32/alloc-id:fake:payload
+    # "f3 0f 11/copy"
+    0xd/imm32/size
+    0x66/f 0x33/3 0x20/space 0x30/0 0x66/f 0x20/space 0x31/1 0x31/1 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y
+_string_0f_2f_compare:
+    0x11/imm32/alloc-id:fake:payload
+    # "0f 2f/compare"
+    0xd/imm32/size
+    0x30/0 0x66/f 0x20/space 0x32/2 0x66/f 0x2f/slash 0x63/c 0x6f/o 0x6d/m 0x70/p 0x61/a 0x72/r 0x65/e
+_string_21_and_with:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "21/and-with"
+    0xb/imm32/size
+    0x32/2 0x31/1 0x2f/slash 0x61/a 0x6e/n 0x64/d 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h
+_string_23_and:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "23/and"
+    0x6/imm32/size
+    0x32/2 0x33/3 0x2f/slash 0x61/a 0x6e/n 0x64/d
+_string_25_and_with_eax:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "25/and-with-eax"
+    0xf/imm32/size
+    0x32/2 0x35/5 0x2f/slash 0x61/a 0x6e/n 0x64/d 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h 0x2d/dash 0x65/e 0x61/a 0x78/x
+_string_29_subtract_from:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "29/subtract-from"
+    0x10/imm32/size
+    0x32/2 0x39/9 0x2f/slash 0x73/s 0x75/u 0x62/b 0x74/t 0x72/r 0x61/a 0x63/c 0x74/t 0x2d/dash 0x66/f 0x72/r 0x6f/o 0x6d/m
+_string_2b_subtract:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "2b/subtract"
+    0xb/imm32/size
+    0x32/2 0x62/b 0x2f/slash 0x73/s 0x75/u 0x62/b 0x74/t 0x72/r 0x61/a 0x63/c 0x74/t
+_string_2d_subtract_from_eax:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "2d/subtract-from-eax"
+    0x14/imm32/size
+    0x32/2 0x64/d 0x2f/slash 0x73/s 0x75/u 0x62/b 0x74/t 0x72/r 0x61/a 0x63/c 0x74/t 0x2d/dash 0x66/f 0x72/r 0x6f/o 0x6d/m 0x2d/dash 0x65/e 0x61/a 0x78/x
+_string_31_xor_with:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "31/xor-with"
+    0xb/imm32/size
+    0x33/3 0x31/1 0x2f/slash 0x78/x 0x6f/o 0x72/r 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h
+_string_33_xor:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "33/xor"
+    0x6/imm32/size
+    0x33/3 0x33/3 0x2f/slash 0x78/x 0x6f/o 0x72/r
+_string_35_xor_with_eax:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "35/xor-with-eax"
+    0xf/imm32/size
+    0x33/3 0x35/5 0x2f/slash 0x78/x 0x6f/o 0x72/r 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h 0x2d/dash 0x65/e 0x61/a 0x78/x
+_string_39_compare->:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "39/compare->"
+    0xc/imm32/size
+    0x33/3 0x39/9 0x2f/slash 0x63/c 0x6f/o 0x6d/m 0x70/p 0x61/a 0x72/r 0x65/e 0x2d/dash 0x3e/>
+_string_3b_compare<-:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "3b/compare<-"
+    0xc/imm32/size
+    0x33/3 0x62/b 0x2f/slash 0x63/c 0x6f/o 0x6d/m 0x70/p 0x61/a 0x72/r 0x65/e 0x3c/< 0x2d/dash
+_string_3d_compare_eax_with:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "3d/compare-eax-with"
+    0x13/imm32/size
+    0x33/3 0x64/d 0x2f/slash 0x63/c 0x6f/o 0x6d/m 0x70/p 0x61/a 0x72/r 0x65/e 0x2d/dash 0x65/e 0x61/a 0x78/x 0x2d/dash 0x77/w 0x69/i 0x74/t 0x68/h
+_string_40_increment_eax:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "40/increment-eax"
+    0x10/imm32/size
+    0x34/4 0x30/0 0x2f/slash 0x69/i 0x6e/n 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x61/a 0x78/x
+_string_41_increment_ecx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "41/increment-ecx"
+    0x10/imm32/size
+    0x34/4 0x31/1 0x2f/slash 0x69/i 0x6e/n 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x63/c 0x78/x
+_string_42_increment_edx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "42/increment-edx"
+    0x10/imm32/size
+    0x34/4 0x32/2 0x2f/slash 0x69/i 0x6e/n 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x64/d 0x78/x
+_string_43_increment_ebx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "43/increment-ebx"
+    0x10/imm32/size
+    0x34/4 0x33/3 0x2f/slash 0x69/i 0x6e/n 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x62/b 0x78/x
+_string_46_increment_esi:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "46/increment-esi"
+    0x10/imm32/size
+    0x34/4 0x36/6 0x2f/slash 0x69/i 0x6e/n 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x73/s 0x69/i
+_string_47_increment_edi:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "47/increment-edi"
+    0x10/imm32/size
+    0x34/4 0x37/7 0x2f/slash 0x69/i 0x6e/n 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x64/d 0x69/i
+_string_48_decrement_eax:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "48/decrement-eax"
+    0x10/imm32/size
+    0x34/4 0x38/8 0x2f/slash 0x64/d 0x65/e 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x61/a 0x78/x
+_string_49_decrement_ecx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "49/decrement-ecx"
+    0x10/imm32/size
+    0x34/4 0x39/9 0x2f/slash 0x64/d 0x65/e 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x63/c 0x78/x
+_string_4a_decrement_edx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "4a/decrement-edx"
+    0x10/imm32/size
+    0x34/4 0x61/a 0x2f/slash 0x64/d 0x65/e 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x64/d 0x78/x
+_string_4b_decrement_ebx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "4b/decrement-ebx"
+    0x10/imm32/size
+    0x34/4 0x62/b 0x2f/slash 0x64/d 0x65/e 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x62/b 0x78/x
+_string_4e_decrement_esi:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "4e/decrement-esi"
+    0x10/imm32/size
+    0x34/4 0x65/e 0x2f/slash 0x64/d 0x65/e 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x73/s 0x69/i
+_string_4f_decrement_edi:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "4f/decrement-edi"
+    0x10/imm32/size
+    0x34/4 0x66/f 0x2f/slash 0x64/d 0x65/e 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t 0x2d/dash 0x65/e 0x64/d 0x69/i
+_string_81_subop_add:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "81 0/subop/add"
+    0xe/imm32/size
+    0x38/8 0x31/1 0x20/space 0x30/0 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x61/a 0x64/d 0x64/d
+_string_81_subop_or:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "81 1/subop/or"
+    0xd/imm32/size
+    0x38/8 0x31/1 0x20/space 0x31/1 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x6f/o 0x72/r
+_string_81_subop_and:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "81 4/subop/and"
+    0xe/imm32/size
+    0x38/8 0x31/1 0x20/space 0x34/4 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x61/a 0x6e/n 0x64/d
+_string_81_subop_subtract:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "81 5/subop/subtract"
+    0x13/imm32/size
+    0x38/8 0x31/1 0x20/space 0x35/5 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x73/s 0x75/u 0x62/b 0x74/t 0x72/r 0x61/a 0x63/c 0x74/t
+_string_81_subop_xor:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "81 6/subop/xor"
+    0xe/imm32/size
+    0x38/8 0x31/1 0x20/space 0x36/6 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x78/x 0x6f/o 0x72/r
+_string_81_subop_compare:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "81 7/subop/compare"
+    0x12/imm32/size
+    0x38/8 0x31/1 0x20/space 0x37/7 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x63/c 0x6f/o 0x6d/m 0x70/p 0x61/a 0x72/r 0x65/e
+_string_89_<-:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "89/<-"
+    0x5/imm32/size
+    0x38/8 0x39/9 0x2f/slash 0x3c/< 0x2d/dash
+_string_8b_->:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "8b/->"
+    0x5/imm32/size
+    0x38/8 0x62/b 0x2f/slash 0x2d/dash 0x3e/>
+_string_8a_copy_byte:
+    0x11/imm32/alloc-id:fake:payload
+    # "8a/byte->"
+    0x9/imm32/size
+    0x38/8 0x61/a 0x2f// 0x62/b 0x79/y 0x74/t 0x65/e 0x2d/- 0x3e/>
+_string_88_copy_byte:
+    0x11/imm32/alloc-id:fake:payload
+    # "88/byte<-"
+    0x9/imm32/size
+    0x38/8 0x38/8 0x2f// 0x62/b 0x79/y 0x74/t 0x65/e 0x3c/< 0x2d/-
+_string_8d_copy_address:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "8d/copy-address"
+    0xf/imm32/size
+    0x38/8 0x64/d 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x61/a 0x64/d 0x64/d 0x72/r 0x65/e 0x73/s 0x73/s
+_string_b8_copy_to_eax:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "b8/copy-to-eax"
+    0xe/imm32/size
+    0x62/b 0x38/8 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x65/e 0x61/a 0x78/x
+_string_b9_copy_to_ecx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "b9/copy-to-ecx"
+    0xe/imm32/size
+    0x62/b 0x39/9 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x65/e 0x63/c 0x78/x
+_string_ba_copy_to_edx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "ba/copy-to-edx"
+    0xe/imm32/size
+    0x62/b 0x61/a 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x65/e 0x64/d 0x78/x
+_string_bb_copy_to_ebx:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "bb/copy-to-ebx"
+    0xe/imm32/size
+    0x62/b 0x62/b 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x65/e 0x62/b 0x78/x
+_string_be_copy_to_esi:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "be/copy-to-esi"
+    0xe/imm32/size
+    0x62/b 0x65/e 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x65/e 0x73/s 0x69/i
+_string_bf_copy_to_edi:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "bf/copy-to-edi"
+    0xe/imm32/size
+    0x62/b 0x66/f 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y 0x2d/dash 0x74/t 0x6f/o 0x2d/dash 0x65/e 0x64/d 0x69/i
+_string_c7_subop_copy:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "c7 0/subop/copy"
+    0xf/imm32/size
+    0x63/c 0x37/7 0x20/space 0x30/0 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x63/c 0x6f/o 0x70/p 0x79/y
+_string_e9_jump_label:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "e9/jump"
+    0x7/imm32/size
+    0x65/e 0x39/9 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p
+_string_e9_jump_break:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "e9/jump break/disp32"
+    0x14/imm32/size
+    0x65/e 0x39/9 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x20/space 0x62/b 0x72/r 0x65/e 0x61/a 0x6b/k 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_e9_jump_loop:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "e9/jump loop/disp32"
+    0x13/imm32/size
+    0x65/e 0x39/9 0x2f/slash 0x6a/j 0x75/u 0x6d/m 0x70/p 0x20/space 0x6c/l 0x6f/o 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x69/i 0x73/s 0x70/p 0x33/3 0x32/2
+_string_f7_subop_negate:
+    0x11/imm32/alloc-id:fake:payload
+    # "f7 3/subop/negate"
+    0x11/imm32/size
+    0x66/f 0x37/7 0x20/space 0x33/3 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x6e/n 0x65/e 0x67/g 0x61/a 0x74/t 0x65/e
+_string_ff_subop_increment:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "ff 0/subop/increment"
+    0x14/imm32/size
+    0x66/f 0x66/f 0x20/space 0x30/0 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x69/i 0x6e/n 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t
+_string_ff_subop_decrement:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "ff 1/subop/decrement"
+    0x14/imm32/size
+    0x66/f 0x66/f 0x20/space 0x31/1 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x64/d 0x65/e 0x63/c 0x72/r 0x65/e 0x6d/m 0x65/e 0x6e/n 0x74/t
+_string_c1_subop_shift_left:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "c1/shift 4/subop/left"
+    0x15/imm32/size
+    0x63/c 0x31/1 0x2f/slash 0x73/s 0x68/h 0x69/i 0x66/f 0x74/t 0x20/space 0x34/4 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x6c/l 0x65/e 0x66/f 0x74/t
+_string_c1_subop_shift_right_padding_zeroes:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "c1/shift 5/subop/right-padding-zeroes"
+    0x25/imm32/size
+    0x63/c 0x31/1 0x2f/slash 0x73/s 0x68/h 0x69/i 0x66/f 0x74/t 0x20/space 0x35/5 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x72/r 0x69/i 0x67/g 0x68/h 0x74/t 0x2d/dash 0x70/p 0x61/a 0x64/d 0x64/d 0x69/i 0x6e/n 0x67/g 0x2d/dash 0x7a/z 0x65/e 0x72/r 0x6f/o 0x65/e 0x73/s
+_string_c1_subop_shift_right_preserving_sign:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    # "c1/shift 7/subop/right-preserving-sign"
+    0x26/imm32/size
+    0x63/c 0x31/1 0x2f/slash 0x73/s 0x68/h 0x69/i 0x66/f 0x74/t 0x20/space 0x37/7 0x2f/slash 0x73/s 0x75/u 0x62/b 0x6f/o 0x70/p 0x2f/slash 0x72/r 0x69/i 0x67/g 0x68/h 0x74/t 0x2d/dash 0x70/p 0x72/r 0x65/e 0x73/s 0x65/e 0x72/r 0x76/v 0x69/i 0x6e/n 0x67/g 0x2d/dash 0x73/s 0x69/i 0x67/g 0x6e/n
+
+Single-int-var-in-mem:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-mem/imm32
+    0/imm32/next
+    0/imm32/next
+
+Int-var-in-mem:  # (payload var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-int/imm32
+    1/imm32/some-block-depth
+    1/imm32/some-stack-offset
+    0/imm32/no-register
+    0/imm32/no-register
+
+# Not really legal, but closest we can currently represent a dereference of an (addr byte)
+Single-byte-var-in-mem:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Byte-var-in-mem/imm32
+    0/imm32/next
+    0/imm32/next
+
+# Not really legal, but closest we can currently represent a dereference of an (addr byte)
+Byte-var-in-mem:  # (payload var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-byte/imm32
+    1/imm32/some-block-depth
+    1/imm32/some-stack-offset
+    0/imm32/no-register
+    0/imm32/no-register
+
+Two-args-int-stack-int-reg:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-mem/imm32
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/next
+
+Two-int-args-in-regs:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-some-register/imm32
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-some-register/imm32/next
+
+# Not really legal, but closest we can currently represent a dereference of an (addr byte)
+Two-args-byte-stack-byte-reg:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Byte-var-in-mem/imm32
+    0x11/imm32/alloc-id:fake
+    Single-byte-var-in-some-register/imm32/next
+
+Two-args-int-reg-int-stack:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-some-register/imm32
+    0x11/imm32/alloc-id:fake
+    Single-int-var-in-mem/imm32/next
+
+Two-args-int-eax-int-literal:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-eax/imm32
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/next
+
+Int-var-and-literal:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-mem/imm32
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/next
+
+Int-var-in-register-and-literal:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-some-register/imm32
+    0x11/imm32/alloc-id:fake
+    Single-lit-var/imm32/next
+
+Two-float-args-in-regs:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Float-var-in-some-register/imm32
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/next
+
+Two-args-float-reg-float-stack:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Float-var-in-some-register/imm32
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-mem/imm32/next
+
+Two-args-float-stack-float-reg:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Float-var-in-mem/imm32
+    0x11/imm32/alloc-id:fake
+    Single-float-var-in-some-register/imm32/next
+
+Single-int-var-in-some-register:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-some-register/imm32
+    0/imm32/next
+    0/imm32/next
+
+Single-addr-var-in-some-register:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Addr-var-in-some-register/imm32
+    0/imm32/next
+    0/imm32/next
+
+Single-byte-var-in-some-register:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Byte-var-in-some-register/imm32
+    0/imm32/next
+    0/imm32/next
+
+Int-var-in-some-register:  # (payload var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-int/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    Any-register/imm32
+
+Any-register:  # (payload array byte)
+    0x11/imm32/alloc-id:fake:payload
+    1/imm32/size
+    # data
+    2a/asterisk
+
+Addr-var-in-some-register:  # (payload var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-addr/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    Any-register/imm32
+
+Byte-var-in-some-register:  # (payload var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-byte/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    Any-register/imm32
+
+Single-int-var-in-eax:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-eax/imm32
+    0/imm32/next
+    0/imm32/next
+
+Int-var-in-eax:
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-int/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    $Mu-register-eax/imm32  # can't use Register-eax only to keep our buggy tools/treeshake.cc happy (TODO)
+
+Single-int-var-in-ecx:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-ecx/imm32
+    0/imm32/next
+    0/imm32/next
+
+Int-var-in-ecx:
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-int/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    $Register-ecx/imm32/register
+
+Single-int-var-in-edx:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-edx/imm32
+    0/imm32/next
+    0/imm32/next
+
+Int-var-in-edx:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-int/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    $Register-edx/imm32/register
+
+Single-int-var-in-ebx:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-ebx/imm32
+    0/imm32/next
+    0/imm32/next
+
+Int-var-in-ebx:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-int/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    $Register-ebx/imm32/register
+
+Single-int-var-in-esi:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-esi/imm32
+    0/imm32/next
+    0/imm32/next
+
+Int-var-in-esi:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-int/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    $Register-esi/imm32/register
+
+Single-int-var-in-edi:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Int-var-in-edi/imm32
+    0/imm32/next
+    0/imm32/next
+
+Int-var-in-edi:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-int/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    $Register-edi/imm32/register
+
+Single-lit-var:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Lit-var/imm32
+    0/imm32/next
+    0/imm32/next
+
+Lit-var:  # (payload var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-literal/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0/imm32/no-register
+    0/imm32/no-register
+
+Single-float-var-in-mem:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Float-var-in-mem/imm32
+    0/imm32/next
+    0/imm32/next
+
+Float-var-in-mem:  # (payload var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-float/imm32
+    1/imm32/some-block-depth
+    1/imm32/some-stack-offset
+    0/imm32/no-register
+    0/imm32/no-register
+
+Single-float-var-in-some-register:  # (payload list var)
+    0x11/imm32/alloc-id:fake:payload
+    0x11/imm32/alloc-id:fake
+    Float-var-in-some-register/imm32
+    0/imm32/next
+    0/imm32/next
+
+Float-var-in-some-register:  # (payload var)
+    0x11/imm32/alloc-id:fake:payload
+    0/imm32/name
+    0/imm32/name
+    0x11/imm32/alloc-id:fake
+    Type-float/imm32
+    1/imm32/some-block-depth
+    0/imm32/no-stack-offset
+    0x11/imm32/alloc-id:fake
+    Any-register/imm32
+
+Type-int:  # (payload type-tree)
+    0x11/imm32/alloc-id:fake:payload
+    1/imm32/is-atom
+    1/imm32/value:int
+    0/imm32/left:unused
+    0/imm32/right:null
+    0/imm32/right:null
+
+Type-literal:  # (payload type-tree)
+    0x11/imm32/alloc-id:fake:payload
+    1/imm32/is-atom
+    0/imm32/value:literal
+    0/imm32/left:unused
+    0/imm32/right:null
+    0/imm32/right:null
+
+Type-addr:  # (payload type-tree)
+    0x11/imm32/alloc-id:fake:payload
+    1/imm32/is-atom
+    2/imm32/value:addr
+    0/imm32/left:unused
+    0/imm32/right:null
+    0/imm32/right:null
+
+Type-byte:  # (payload type-tree)
+    0x11/imm32/alloc-id:fake:payload
+    1/imm32/is-atom
+    8/imm32/value:byte
+    0/imm32/left:unused
+    0/imm32/right:null
+    0/imm32/right:null
+
+Type-float:  # (payload type-tree)
+    0x11/imm32/alloc-id:fake:payload
+    1/imm32/is-atom
+    0xf/imm32/value:float
+    0/imm32/left:unused
+    0/imm32/right:null
+    0/imm32/right:null
+
+== code
+emit-subx-primitive:  # out: (addr buffered-file), stmt: (addr stmt), primitive: (addr primitive), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # ecx = primitive
+    8b/-> *(ebp+0x10) 1/r32/ecx
+    # emit primitive name
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (lookup *(ecx+0x18) *(ecx+0x1c))  # Primitive-subx-name Primitive-subx-name => eax
+    (write-buffered *(ebp+8) %eax)
+    # emit rm32 if necessary
+    (emit-subx-rm32 *(ebp+8) *(ecx+0x20) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18))  # Primitive-subx-rm32
+    # emit xm32 if necessary
+    (emit-subx-rm32 *(ebp+8) *(ecx+0x34) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18))  # Primitive-subx-xm32
+    # emit r32 if necessary
+    (emit-subx-r32 *(ebp+8) *(ecx+0x24) *(ebp+0xc))  # Primitive-subx-r32
+    # emit x32 if necessary
+    (emit-subx-x32 *(ebp+8) *(ecx+0x38) *(ebp+0xc))  # Primitive-subx-x32
+    # emit imm32 if necessary
+    (emit-subx-imm32 *(ebp+8) *(ecx+0x28) *(ebp+0xc))  # Primitive-subx-imm32
+    # emit imm8 if necessary
+    (emit-subx-imm8 *(ebp+8) *(ecx+0x2c) *(ebp+0xc))  # Primitive-subx-imm8
+    # emit disp32 if necessary
+    (emit-subx-disp32 *(ebp+8) *(ecx+0x30) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18))  # Primitive-subx-disp32
+    (write-buffered *(ebp+8) Newline)
+$emit-subx-primitive:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-rm32:  # out: (addr buffered-file), l: arg-location, stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # if (l == 0) return
+    81 7/subop/compare *(ebp+0xc) 0/imm32
+    74/jump-if-= $emit-subx-rm32:end/disp8
+    # var v/eax: (addr stmt-var)
+    (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18))  # => eax
+    (emit-subx-var-as-rm32 *(ebp+8) %eax)
+$emit-subx-rm32:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+get-stmt-operand-from-arg-location:  # stmt: (addr stmt), l: arg-location, err: (addr buffered-file), ed: (addr exit-descriptor) -> var/eax: (addr stmt-var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # eax = l
+    8b/-> *(ebp+0xc) 0/r32/eax
+    # ecx = stmt
+    8b/-> *(ebp+8) 1/r32/ecx
+    # if (l == 1) return stmt->inouts
+    {
+      3d/compare-eax-and 1/imm32
+      75/jump-if-!= break/disp8
+$get-stmt-operand-from-arg-location:1:
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+      eb/jump $get-stmt-operand-from-arg-location:end/disp8
+    }
+    # if (l == 2) return stmt->inouts->next
+    {
+      3d/compare-eax-and 2/imm32
+      75/jump-if-!= break/disp8
+$get-stmt-operand-from-arg-location:2:
+      (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+      (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+      eb/jump $get-stmt-operand-from-arg-location:end/disp8
+    }
+    # if (l == 3) return stmt->outputs
+    {
+      3d/compare-eax-and 3/imm32
+      75/jump-if-!= break/disp8
+$get-stmt-operand-from-arg-location:3:
+      (lookup *(ecx+0x14) *(ecx+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+      eb/jump $get-stmt-operand-from-arg-location:end/disp8
+    }
+    # abort
+    e9/jump $get-stmt-operand-from-arg-location:abort/disp32
+$get-stmt-operand-from-arg-location:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+$get-stmt-operand-from-arg-location:abort:
+    # error("invalid arg-location " eax)
+    (write-buffered *(ebp+0x10) "invalid arg-location ")
+    (write-int32-hex-buffered *(ebp+0x10) %eax)
+    (write-buffered *(ebp+0x10) Newline)
+    (flush *(ebp+0x10))
+    (stop *(ebp+0x14) 1)
+    # never gets here
+
+emit-subx-r32:  # out: (addr buffered-file), l: arg-location, stmt: (addr stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # if (l == 0) return
+    81 7/subop/compare *(ebp+0xc) 0/imm32
+    0f 84/jump-if-= $emit-subx-r32:end/disp32
+    # var v/eax: (addr stmt-var)
+    (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))  # => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+#?     (write-buffered Stderr "looking up ")
+#?     (write-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    (maybe-get Mu-registers %eax 0xc)  # => eax: (addr register-index)
+    (write-buffered *(ebp+8) Space)
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/r32")
+$emit-subx-r32:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-x32:  # out: (addr buffered-file), l: arg-location, stmt: (addr stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # if (l == 0) return
+    81 7/subop/compare *(ebp+0xc) 0/imm32
+    0f 84/jump-if-= $emit-subx-x32:end/disp32
+    # var v/eax: (addr stmt-var)
+    (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))  # => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *(eax+0x18) *(eax+0x1c))  # Var-register Var-register => eax
+#?     (write-buffered Stderr "looking up ")
+#?     (write-buffered Stderr %eax)
+#?     (write-buffered Stderr Newline)
+#?     (flush Stderr)
+    (maybe-get Mu-registers %eax 0xc)  # => eax: (addr register-index)
+    (write-buffered *(ebp+8) Space)
+    (write-int32-hex-buffered *(ebp+8) *eax)
+    (write-buffered *(ebp+8) "/x32")
+$emit-subx-x32:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-imm32:  # out: (addr buffered-file), l: arg-location, stmt: (addr stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # if (l == 0) return
+    81 7/subop/compare *(ebp+0xc) 0/imm32
+    0f 84/jump-if-= $emit-subx-imm32:end/disp32
+    # var v/eax: (handle var)
+    (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))  # => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+8) Space)
+    (write-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) "/imm32")
+$emit-subx-imm32:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-imm8:  # out: (addr buffered-file), l: arg-location, stmt: (addr stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # if (l == 0) return
+    81 7/subop/compare *(ebp+0xc) 0/imm32
+    0f 84/jump-if-= $emit-subx-imm32:end/disp32
+    # var v/eax: (handle var)
+    (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc))  # => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+8) Space)
+    (write-buffered *(ebp+8) %eax)
+    (write-buffered *(ebp+8) "/imm8")
+$emit-subx-imm8:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-disp32:  # out: (addr buffered-file), l: arg-location, stmt: (addr stmt), err: (addr buffered-file), ed: (addr exit-descriptor)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # if (location == 0) return
+    81 7/subop/compare *(ebp+0xc) 0/imm32
+    0f 84/jump-if-= $emit-subx-disp32:end/disp32
+    # var v/eax: (addr stmt-var)
+    (get-stmt-operand-from-arg-location *(ebp+0x10) *(ebp+0xc) *(ebp+0x14) *(ebp+0x18))  # => eax
+    (lookup *eax *(eax+4))  # Stmt-var-value Stmt-var-value => eax
+    (lookup *eax *(eax+4))  # Var-name Var-name => eax
+    (write-buffered *(ebp+8) Space)
+    (write-buffered *(ebp+8) %eax)
+    # hack: if instruction operation starts with "break", emit ":break"
+    # var name/ecx: (addr array byte) = lookup(stmt->operation)
+    8b/-> *(ebp+0x10) 0/r32/eax
+    (lookup *(eax+4) *(eax+8))  # Stmt1-operation Stmt1-operation => eax
+    89/<- %ecx 0/r32/eax
+    {
+      (string-starts-with? %ecx "break")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (write-buffered *(ebp+8) ":break")
+    }
+    # hack: if instruction operation starts with "loop", emit ":loop"
+    {
+      (string-starts-with? %ecx "loop")  # => eax
+      3d/compare-eax-and 0/imm32/false
+      74/jump-if-= break/disp8
+      (write-buffered *(ebp+8) ":loop")
+    }
+    (write-buffered *(ebp+8) "/disp32")
+$emit-subx-disp32:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-call:  # out: (addr buffered-file), stmt: (addr stmt)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    #
+    (emit-indent *(ebp+8) *Curr-block-depth)
+    (write-buffered *(ebp+8) "(")
+    # ecx = stmt
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # - emit function name
+    (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+    (write-buffered *(ebp+8) %eax)
+    # - emit arguments
+    # var curr/eax: (addr stmt-var) = lookup(stmt->inouts)
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    {
+      # if (curr == null) break
+      3d/compare-eax-and 0/imm32
+      74/jump-if-= break/disp8
+      #
+      (emit-subx-call-operand *(ebp+8) %eax)
+      # curr = lookup(curr->next)
+      (lookup *(eax+8) *(eax+0xc))  # Stmt-var-next Stmt-var-next => eax
+      eb/jump loop/disp8
+    }
+    #
+    (write-buffered *(ebp+8) ")\n")
+$emit-call:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-call-operand:  # out: (addr buffered-file), s: (addr stmt-var)
+    # shares code with emit-subx-var-as-rm32
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # ecx = s
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var operand/esi: (addr var) = lookup(s->value)
+    (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %esi 0/r32/eax
+    # if (operand->register && !s->is-deref?) emit "%__"
+    {
+$emit-subx-call-operand:check-for-register-direct:
+      81 7/subop/compare *(esi+0x18) 0/imm32  # Var-register
+      74/jump-if-= break/disp8
+      81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+      75/jump-if-!= break/disp8
+$emit-subx-call-operand:register-direct:
+      (write-buffered *(ebp+8) " %")
+      (lookup *(esi+0x18) *(esi+0x1c))  # Var-register Var-register => eax
+      (write-buffered *(ebp+8) %eax)
+      e9/jump $emit-subx-call-operand:end/disp32
+    }
+    # else if (operand->register && s->is-deref?) emit "*__"
+    {
+$emit-subx-call-operand:check-for-register-indirect:
+      81 7/subop/compare *(esi+0x18) 0/imm32  # Var-register
+      74/jump-if-= break/disp8
+      81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+      74/jump-if-= break/disp8
+$emit-subx-call-operand:register-indirect:
+      (emit-subx-call-operand-register-indirect *(ebp+8) %esi)
+      e9/jump $emit-subx-call-operand:end/disp32
+    }
+    # else if (operand->stack-offset) emit "*(ebp+__)"
+    {
+      81 7/subop/compare *(esi+0x14) 0/imm32  # Var-offset
+      74/jump-if-= break/disp8
+$emit-subx-call-operand:stack:
+      (emit-subx-call-operand-stack *(ebp+8) %esi)
+      e9/jump $emit-subx-call-operand:end/disp32
+    }
+    # else if (operand->type == literal) emit "__"
+    {
+      (lookup *(esi+8) *(esi+0xc))  # Var-type Var-type => eax
+      81 7/subop/compare *(eax+4) 0/imm32  # Type-tree-value
+      75/jump-if-!= break/disp8
+$emit-subx-call-operand:literal:
+      (write-buffered *(ebp+8) Space)
+      (lookup *esi *(esi+4))  # Var-name Var-name => eax
+      (write-buffered *(ebp+8) %eax)
+      e9/jump $emit-subx-call-operand:end/disp32
+    }
+    # else if (operand->type == literal-string) emit "__"
+    {
+      (lookup *(esi+8) *(esi+0xc))  # Var-type Var-type => eax
+      81 7/subop/compare *(eax+4) 0x10/imm32  # Type-tree-value
+      75/jump-if-!= break/disp8
+$emit-subx-call-operand:literal-string:
+      (write-buffered *(ebp+8) Space)
+      (lookup *esi *(esi+4))  # Var-name Var-name => eax
+      (write-buffered *(ebp+8) %eax)
+    }
+$emit-subx-call-operand:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-call-operand-register-indirect:  # out: (addr buffered-file), v: (addr var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # esi = v
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var size/ecx: int = size-of-deref(v)
+    (size-of-deref %esi)  # => eax
+    89/<- %ecx 0/r32/eax
+    # var reg-name/esi: (addr array byte) = lookup(v->register)
+    (lookup *(esi+0x18) *(esi+0x1c))  # Var-register Var-register => eax
+    89/<- %esi 0/r32/eax
+    # TODO: assert size is a multiple of 4
+    # var i/eax: int = 0
+    b8/copy-to-eax 0/imm32
+    {
+$emit-subx-call-operand-register-indirect:loop:
+      # if (i >= size) break
+      39/compare %eax 1/r32/ecx
+      7d/jump-if->= break/disp8
+      # emit " *(" v->register "+" i ")"
+      (write-buffered *(ebp+8) " *(")
+      (write-buffered *(ebp+8) %esi)
+      (write-buffered *(ebp+8) "+")
+      (write-int32-hex-buffered *(ebp+8) %eax)
+      (write-buffered *(ebp+8) ")")
+      # i += 4
+      05/add-to-eax 4/imm32
+      #
+      eb/jump loop/disp8
+    }
+$emit-subx-call-operand-register-indirect:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-call-operand-stack:  # out: (addr buffered-file), v: (addr var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # esi = v
+    8b/-> *(ebp+0xc) 6/r32/esi
+    # var curr/ecx: int = v->offset
+    8b/-> *(esi+0x14) 1/r32/ecx  # Var-offset
+    # var max/eax: int = v->offset + size-of(v)
+    (size-of %esi)  # => eax
+    # TODO: assert size is a multiple of 4
+    01/add-to %eax 1/r32/ecx
+    {
+$emit-subx-call-operand-stack:loop:
+      # if (curr >= max) break
+      39/compare %ecx 0/r32/eax
+      7d/jump-if->= break/disp8
+      # emit " *(ebp+" curr ")"
+      (write-buffered *(ebp+8) " *(ebp+")
+      (write-int32-hex-buffered *(ebp+8) %ecx)
+      (write-buffered *(ebp+8) ")")
+      # i += 4
+      81 0/subop/add %ecx 4/imm32
+      #
+      eb/jump loop/disp8
+    }
+$emit-subx-call-operand-stack:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-var-as-rm32:  # out: (addr buffered-file), s: (addr stmt-var)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    # ecx = s
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # var operand/esi: (addr var) = lookup(s->value)
+    (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %esi 0/r32/eax
+    # if (operand->register && s->is-deref?) emit "*__"
+    {
+$emit-subx-var-as-rm32:check-for-register-indirect:
+      81 7/subop/compare *(esi+0x18) 0/imm32  # Var-register
+      74/jump-if-= break/disp8
+      81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+      74/jump-if-= break/disp8
+$emit-subx-var-as-rm32:register-indirect:
+      (write-buffered *(ebp+8) " *")
+      (lookup *(esi+0x18) *(esi+0x1c))  # Var-register Var-register => eax
+      (write-buffered *(ebp+8) %eax)
+      e9/jump $emit-subx-var-as-rm32:end/disp32
+    }
+    # if (operand->register && !s->is-deref?) emit "%__"
+    {
+$emit-subx-var-as-rm32:check-for-register-direct:
+      81 7/subop/compare *(esi+0x18) 0/imm32  # Var-register
+      74/jump-if-= break/disp8
+      81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+      75/jump-if-!= break/disp8
+$emit-subx-var-as-rm32:register-direct:
+      (write-buffered *(ebp+8) " %")
+      (lookup *(esi+0x18) *(esi+0x1c))  # Var-register Var-register => eax
+      (write-buffered *(ebp+8) %eax)
+      e9/jump $emit-subx-var-as-rm32:end/disp32
+    }
+    # else if (operand->stack-offset) emit "*(ebp+__)"
+    {
+      81 7/subop/compare *(esi+0x14) 0/imm32  # Var-offset
+      74/jump-if-= break/disp8
+$emit-subx-var-as-rm32:stack:
+      (write-buffered *(ebp+8) Space)
+      (write-buffered *(ebp+8) "*(ebp+")
+      (write-int32-hex-buffered *(ebp+8) *(esi+0x14))  # Var-offset
+      (write-buffered *(ebp+8) ")")
+    }
+$emit-subx-var-as-rm32:end:
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+find-matching-primitive:  # primitives: (addr primitive), stmt: (addr stmt) -> result/eax: (addr primitive)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var curr/ecx: (addr primitive) = primitives
+    8b/-> *(ebp+8) 1/r32/ecx
+    {
+$find-matching-primitive:loop:
+      # if (curr == null) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+      # if match(curr, stmt) return curr
+      {
+        (mu-stmt-matches-primitive? *(ebp+0xc) %ecx)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+        89/<- %eax 1/r32/ecx
+        eb/jump $find-matching-primitive:end/disp8
+      }
+$find-matching-primitive:next-primitive:
+      # curr = curr->next
+      (lookup *(ecx+0x3c) *(ecx+0x40))  # Primitive-next Primitive-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      e9/jump loop/disp32
+    }
+    # return null
+    b8/copy-to-eax 0/imm32
+$find-matching-primitive:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+mu-stmt-matches-primitive?:  # stmt: (addr stmt), primitive: (addr primitive) -> result/eax: boolean
+    # A mu stmt matches a primitive if the name matches, all the inout vars
+    # match, and all the output vars match.
+    # Vars match if types match and registers match.
+    # In addition, a stmt output matches a primitive's output if types match
+    # and the primitive has a wildcard register.
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # ecx = stmt
+    8b/-> *(ebp+8) 1/r32/ecx
+    # edx = primitive
+    8b/-> *(ebp+0xc) 2/r32/edx
+    {
+$mu-stmt-matches-primitive?:check-name:
+      # if (primitive->name != stmt->operation) return false
+      # . var esi: (addr array byte) = lookup(stmt->operation)
+      (lookup *(ecx+4) *(ecx+8))  # Stmt1-operation Stmt1-operation => eax
+      89/<- %esi 0/r32/eax
+      # . var edi: (addr array byte) = lookup(primitive->name)
+      (lookup *edx *(edx+4))  # Primitive-name Primitive-name => eax
+#?       (write-buffered Stderr %eax)
+#?       (write-buffered Stderr Newline)
+#?       (flush Stderr)
+      89/<- %edi 0/r32/eax
+      (string-equal? %esi %edi)  # => eax
+      3d/compare-eax-and 0/imm32/false
+      75/jump-if-!= break/disp8
+      b8/copy-to-eax 0/imm32
+      e9/jump $mu-stmt-matches-primitive?:end/disp32
+    }
+    # var curr/esi: (addr stmt-var) = lookup(stmt->inouts)
+    (lookup *(ecx+0xc) *(ecx+0x10))  # Stmt1-inouts Stmt1-inouts => eax
+    89/<- %esi 0/r32/eax
+    # var curr2/edi: (addr list var) = lookup(primitive->inouts)
+    (lookup *(edx+8) *(edx+0xc))  # Primitive-inouts Primitive-inouts => eax
+    89/<- %edi 0/r32/eax
+    {
+$mu-stmt-matches-primitive?:inouts-loop:
+      # if (curr == 0 && curr2 == 0) move on to check outputs
+      {
+$mu-stmt-matches-primitive?:check-both-inouts-null:
+        81 7/subop/compare %esi 0/imm32
+        75/jump-if-!= break/disp8
+$mu-stmt-matches-primitive?:stmt-inout-null:
+        81 7/subop/compare %edi 0/imm32
+        0f 84/jump-if-= $mu-stmt-matches-primitive?:check-outputs/disp32
+$mu-stmt-matches-primitive?:stmt-inout-null-and-prim-inout-not-null:
+        # return false
+        b8/copy-to-eax 0/imm32/false
+        e9/jump $mu-stmt-matches-primitive?:end/disp32
+      }
+      # if (curr2 == 0) return false
+      {
+$mu-stmt-matches-primitive?:check-prim-inout-null:
+        81 7/subop/compare %edi 0/imm32
+        75/jump-if-!= break/disp8
+$mu-stmt-matches-primitive?:prim-inout-null:
+        b8/copy-to-eax 0/imm32/false
+        e9/jump $mu-stmt-matches-primitive?:end/disp32
+      }
+      # if (curr != curr2) return false
+      {
+$mu-stmt-matches-primitive?:check-inouts-match:
+        (lookup *edi *(edi+4))  # List-value List-value => eax
+        (operand-matches-primitive? %esi %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+$mu-stmt-matches-primitive?:inouts-match:
+        b8/copy-to-eax 0/imm32/false
+        e9/jump $mu-stmt-matches-primitive?:end/disp32
+      }
+$mu-stmt-matches-primitive?:next-inout:
+      # curr = lookup(curr->next)
+      (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+      89/<- %esi 0/r32/eax
+      # curr2 = lookup(curr2->next)
+      (lookup *(edi+8) *(edi+0xc))  # List-next List-next => eax
+      89/<- %edi 0/r32/eax
+      #
+      e9/jump loop/disp32
+    }
+$mu-stmt-matches-primitive?:check-outputs:
+    # var curr/esi: (addr stmt-var) = lookup(stmt->outputs)
+    (lookup *(ecx+0x14) *(ecx+0x18))  # Stmt1-outputs Stmt1-outputs => eax
+    89/<- %esi 0/r32/eax
+    # var curr2/edi: (addr list var) = lookup(primitive->outputs)
+    (lookup *(edx+0x10) *(edx+0x14))  # Primitive-outputs Primitive-outputs => eax
+    89/<- %edi 0/r32/eax
+    {
+$mu-stmt-matches-primitive?:outputs-loop:
+      # if (curr == 0) return (curr2 == 0)
+      {
+$mu-stmt-matches-primitive?:check-both-outputs-null:
+        81 7/subop/compare %esi 0/imm32
+        75/jump-if-!= break/disp8
+        {
+$mu-stmt-matches-primitive?:stmt-output-null:
+          81 7/subop/compare %edi 0/imm32
+          75/jump-if-!= break/disp8
+$mu-stmt-matches-primitive?:both-outputs-null:
+          # return true
+          b8/copy-to-eax 1/imm32
+          e9/jump $mu-stmt-matches-primitive?:end/disp32
+        }
+$mu-stmt-matches-primitive?:stmt-output-null-and-prim-output-not-null:
+        # return false
+        b8/copy-to-eax 0/imm32
+        e9/jump $mu-stmt-matches-primitive?:end/disp32
+      }
+      # if (curr2 == 0) return false
+      {
+$mu-stmt-matches-primitive?:check-prim-output-null:
+        81 7/subop/compare %edi 0/imm32
+        75/jump-if-!= break/disp8
+$mu-stmt-matches-primitive?:prim-output-is-null:
+        b8/copy-to-eax 0/imm32
+        e9/jump $mu-stmt-matches-primitive?:end/disp32
+      }
+      # if (curr != curr2) return false
+      {
+$mu-stmt-matches-primitive?:check-outputs-match:
+        (lookup *edi *(edi+4))  # List-value List-value => eax
+        (operand-matches-primitive? %esi %eax)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+$mu-stmt-matches-primitive?:outputs-match:
+        b8/copy-to-eax 0/imm32
+        e9/jump $mu-stmt-matches-primitive?:end/disp32
+      }
+$mu-stmt-matches-primitive?:next-output:
+      # curr = lookup(curr->next)
+      (lookup *(esi+8) *(esi+0xc))  # Stmt-var-next Stmt-var-next => eax
+      89/<- %esi 0/r32/eax
+      # curr2 = lookup(curr2->next)
+      (lookup *(edi+8) *(edi+0xc))  # List-next List-next => eax
+      89/<- %edi 0/r32/eax
+      #
+      e9/jump loop/disp32
+    }
+$mu-stmt-matches-primitive?:return-true:
+    b8/copy-to-eax 1/imm32
+$mu-stmt-matches-primitive?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+operand-matches-primitive?:  # s: (addr stmt-var), prim-var: (addr var) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # ecx = s
+    8b/-> *(ebp+8) 1/r32/ecx
+    # var var/esi: (addr var) = lookup(s->value)
+    (lookup *ecx *(ecx+4))  # Stmt-var-value Stmt-var-value => eax
+    89/<- %esi 0/r32/eax
+    # edi = prim-var
+    8b/-> *(ebp+0xc) 7/r32/edi
+$operand-matches-primitive?:check-type:
+    # if !category-match?(var->type, prim-var->type) return false
+    # . var vtype/ebx: (addr type-tree) = lookup(var->type)
+    (lookup *(esi+8) *(esi+0xc))  # Var-type Var-type => eax
+    89/<- %ebx 0/r32/eax
+    # . if s is deref, vtype = vtype->right
+    {
+      81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+      74/jump-if-= break/disp8
+$operand-matches-primitive?:is-deref:
+      # . var t/eax: (addr type)
+      (lookup *(ebx+0xc) *(ebx+0x10))  # Type-tree-right Type-tree-right => eax
+      # . if !t->is-atom? t = t->left
+      81 7/subop/compare *eax 0/imm32/false
+      {
+        75/jump-if-!= break/disp8
+        (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+      }
+      # .
+      89/<- %ebx 0/r32/eax
+    }
+    # . var ptype/eax: (addr type-tree) = lookup(prim-var->type)
+    (lookup *(edi+8) *(edi+0xc))  # Var-type Var-type => eax
+    (subx-type-category-match? %ebx %eax)  # => eax
+    3d/compare-eax-and 0/imm32/false
+    0f 84/jump-if-= $operand-matches-primitive?:return-false/disp32
+    {
+$operand-matches-primitive?:check-register:
+      # if prim-var is in memory and var is in register but dereference, match
+      {
+        81 7/subop/compare *(edi+0x18) 0/imm32  # Var-register
+        0f 85/jump-if-!= break/disp32
+        81 7/subop/compare *(esi+0x18) 0/imm32  # Var-register
+        74/jump-if-= break/disp8
+        81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+        74/jump-if-= break/disp8
+$operand-matches-primitive?:var-deref-match:
+        e9/jump $operand-matches-primitive?:return-true/disp32
+      }
+      # if prim-var is in register and var is in register but dereference, no match
+      {
+        81 7/subop/compare *(edi+0x18) 0/imm32  # Var-register
+        0f 84/jump-if-= break/disp32
+        81 7/subop/compare *(esi+0x18) 0/imm32  # Var-register
+        0f 84/jump-if-= break/disp32
+        81 7/subop/compare *(ecx+0x10) 0/imm32/false  # Stmt-var-is-deref
+        74/jump-if-= break/disp8
+$operand-matches-primitive?:var-deref-no-match:
+        e9/jump $operand-matches-primitive?:return-false/disp32
+      }
+      # return false if var->register doesn't match prim-var->register
+      {
+        # if register addresses are equal, it's a match
+        # var vreg/ebx: (addr array byte) = lookup(var->register)
+        (lookup *(esi+0x18) *(esi+0x1c))  # Var-register Var-register => eax
+        89/<- %ebx 0/r32/eax
+        # var preg/ecx: (addr array byte) = lookup(prim-var->register)
+        (lookup *(edi+0x18) *(edi+0x1c))  # Var-register Var-register => eax
+        89/<- %ecx 0/r32/eax
+        # if (vreg == preg) break
+        39/compare %ecx 3/r32/ebx
+        74/jump-if-= break/disp8
+$operand-matches-primitive?:var-register-no-match:
+        # if either address is 0, return false
+        81 7/subop/compare %ebx 0/imm32
+        74/jump-if-=  $operand-matches-primitive?:return-false/disp8
+        81 7/subop/compare %ecx 0/imm32
+        74/jump-if-=  $operand-matches-primitive?:return-false/disp8
+        # if prim-var->register is wildcard, it's a match
+        (string-equal? %ecx "*")  # Any-register => eax
+        3d/compare-eax-and 0/imm32/false
+        75/jump-if-!= break/disp8
+$operand-matches-primitive?:wildcard-no-match:
+        # if string contents aren't equal, return false
+        (string-equal? %ecx %ebx)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= $operand-matches-primitive?:return-false/disp8
+      }
+    }
+$operand-matches-primitive?:return-true:
+    b8/copy-to-eax 1/imm32/true
+    eb/jump $operand-matches-primitive?:end/disp8
+$operand-matches-primitive?:return-false:
+    b8/copy-to-eax 0/imm32/false
+$operand-matches-primitive?:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+find-matching-function:  # functions: (addr function), stmt: (addr stmt) -> result/eax: (addr function)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var curr/ecx: (handle function) = functions
+    8b/-> *(ebp+8) 1/r32/ecx
+    {
+      # if (curr == null) break
+      81 7/subop/compare %ecx 0/imm32
+      74/jump-if-= break/disp8
+#?       (write-buffered Stderr "iter\n")
+#?       (flush Stderr)
+      # if match(stmt, curr) return curr
+      {
+        (mu-stmt-matches-function? *(ebp+0xc) %ecx)  # => eax
+        3d/compare-eax-and 0/imm32/false
+        74/jump-if-= break/disp8
+        89/<- %eax 1/r32/ecx
+        eb/jump $find-matching-function:end/disp8
+      }
+      # curr = curr->next
+      (lookup *(ecx+0x20) *(ecx+0x24))  # Function-next Function-next => eax
+      89/<- %ecx 0/r32/eax
+      #
+      eb/jump loop/disp8
+    }
+    # return null
+    b8/copy-to-eax 0/imm32
+$find-matching-function:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# Just compare names; user-defined functions don't support overloading yet.
+mu-stmt-matches-function?:  # stmt: (addr stmt1), function: (addr function) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # return function->name == stmt->operation
+    # ecx = lookup(stmt->operation)
+    8b/-> *(ebp+8) 0/r32/eax
+    (lookup *(eax+4) *(eax+8))  # Stmt1-operation Stmt1-operation => eax
+    89/<- %ecx 0/r32/eax
+    # eax = lookup(function->name)
+    8b/-> *(ebp+0xc) 0/r32/eax
+    (lookup *eax *(eax+4))  # Function-name Function-name => eax
+    (string-equal? %eax %ecx)  # => eax
+$mu-stmt-matches-function?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+# Type-checking happens elsewhere. This method is for selecting between
+# primitives.
+subx-type-category-match?:  # a: (addr type-tree), b: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var cata/ecx: int = type-category(a)
+    (type-category *(ebp+8))  # => eax
+    89/<- %ecx 0/r32/eax
+    # var catb/eax: int = type-category(b)
+    (type-category *(ebp+0xc))  # => eax
+    # return cata == catb
+    39/compare %eax 1/r32/ecx
+    0f 94/set-byte-if-= %al
+    81 4/subop/and %eax 0xff/imm32
+$subx-type-category-match?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+type-category:  # a: (addr type-tree) -> result/eax: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # var lit?/ecx: boolean = is-literal-type?(a)
+    (is-simple-mu-type? *(ebp+8) 0)  # literal => eax
+    89/<- %ecx 0/r32/eax
+    # var float?/eax: int = is-float?(a)
+    (is-simple-mu-type? *(ebp+8) 0xf)  # => eax
+    # set bits for lit? and float?
+    c1/shift 4/subop/left %ecx 1/imm8
+    09/or %eax 1/r32/ecx
+$type-category:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-simple-mu-type?:  # a: (addr type-tree), n: type-id -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    51/push-ecx
+    # ecx = n
+    8b/-> *(ebp+0xc) 1/r32/ecx
+    # return (a->value == n)
+    8b/-> *(ebp+8) 0/r32/eax
+    39/compare *(eax+4) 1/r32/ecx  # Type-tree-value
+    0f 94/set-byte-if-= %al
+    81 4/subop/and %eax 0xff/imm32
+$is-simple-mu-type?:end:
+    # . restore registers
+    59/pop-to-ecx
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-mu-addr-type?:  # a: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = a
+    8b/-> *(ebp+8) 0/r32/eax
+    # if (!a->is-atom?) a = a->left
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    # return (a->value == addr)
+    81 7/subop/compare *(eax+4) 2/imm32/addr  # Type-tree-value
+    0f 94/set-byte-if-= %al
+    81 4/subop/and %eax 0xff/imm32
+$is-mu-addr-type?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-mu-array-type?:  # a: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = a
+    8b/-> *(ebp+8) 0/r32/eax
+    # if (!a->is-atom?) a = a->left
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    # return (a->value == array)
+    81 7/subop/compare *(eax+4) 3/imm32/array  # Type-tree-value
+    0f 94/set-byte-if-= %al
+    81 4/subop/and %eax 0xff/imm32
+$is-mu-array-type?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-mu-string-type?:  # a: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    56/push-esi
+    # esi = a
+    8b/-> *(ebp+8) 6/r32/esi
+    # if (a->is-atom?) return false
+    81 7/subop/compare *esi 0/imm32/false  # Type-tree-is-atom
+    0f 85/jump-if-!= $is-mu-string-type?:return-false/disp32
+    # if a is not an addr, return false
+    (is-mu-addr-type? %esi)  # => eax
+    3d/compare-eax-with 0/imm32/false
+    0f 84/jump-if-= $is-mu-string-type?:end/disp32  # eax changes var
+    # if a is not an array, return false
+    (lookup *(esi+0xc) *(esi+0x10))  # Type-tree-right Type-tree-right => eax
+    (is-mu-array-type? %eax)  # => eax
+    3d/compare-eax-with 0/imm32/false
+    74/jump-if-= $is-mu-string-type?:end/disp8  # eax changes var
+    # var p/eax: (addr type-tree) = payload of a
+    (lookup *(esi+0xc) *(esi+0x10))  # Type-tree-right Type-tree-right => eax
+    (lookup *(eax+0xc) *(eax+0x10))  # Type-tree-right Type-tree-right => eax
+    # if p is an atom, return false
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    75/jump-if-!= $is-mu-string-type?:return-false/disp8
+    # return (p == byte)
+    (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    (is-simple-mu-type? %eax 8)  # byte => eax
+    eb/jump $is-mu-string-type?:end/disp8
+$is-mu-string-type?:return-false:
+    b8/copy-to-eax 0/imm32/false
+$is-mu-string-type?:end:
+    # . restore registers
+    5e/pop-to-esi
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+is-mu-stream-type?:  # a: (addr type-tree) -> result/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # eax = a
+    8b/-> *(ebp+8) 0/r32/eax
+    # if (!a->is-atom?) a = a->left
+    81 7/subop/compare *eax 0/imm32/false  # Type-tree-is-atom
+    {
+      75/jump-if-!= break/disp8
+      (lookup *(eax+4) *(eax+8))  # Type-tree-left Type-tree-left => eax
+    }
+    # return (a->value == stream)
+    81 7/subop/compare *(eax+4) 0xb/imm32/stream  # Type-tree-value
+    0f 94/set-byte-if-= %al
+    81 4/subop/and %eax 0xff/imm32
+$is-mu-stream-type?:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-subx-stmt-primitive:
+    # Primitive operation on a variable on the stack.
+    #   increment foo
+    # =>
+    #   ff 0/subop/increment *(ebp-8)
+    #
+    # There's a variable on the var stack as follows:
+    #   name: 'foo'
+    #   type: int
+    #   stack-offset: -8
+    #
+    # There's a primitive with this info:
+    #   name: 'increment'
+    #   inouts: int/mem
+    #   value: 'ff 0/subop/increment'
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+    # simulate allocated payloads starting with an initial fake alloc-id (0x11)
+$test-emit-subx-stmt-primitive:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-stmt-primitive:initialize-var:
+    # var var-foo/ecx: (payload var) = var(type)
+    68/push 0/imm32/no-register
+    68/push 0/imm32/no-register
+    68/push -8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx/type
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-stmt-primitive:initialize-var-name:
+    # var-foo->name = "foo"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "foo" %eax)
+$test-emit-subx-stmt-primitive:initialize-stmt-var:
+    # var operand/ebx: (payload stmt-var) = stmt-var(var-foo)
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var-foo
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-primitive:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/no-outputs
+    68/push 0/imm32/no-outputs
+    53/push-ebx/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag
+    89/<- %esi 4/r32/esp
+$test-emit-subx-stmt-primitive:initialize-stmt-operation:
+    # stmt->operation = "increment"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "increment" %eax)
+$test-emit-subx-stmt-primitive:initialize-primitive:
+    # var primitives/ebx: (addr primitive)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/no-x32
+    68/push 0/imm32/no-xm32
+    68/push 0/imm32/no-disp32
+    68/push 0/imm32/no-imm8
+    68/push 0/imm32/no-imm32
+    68/push 0/imm32/no-r32
+    68/push 1/imm32/rm32-is-first-inout
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/no-outputs
+    68/push 0/imm32/no-outputs
+    53/push-ebx/inouts  # hack: reuse stmt-var from call stmt as (list var) in function declaration
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-primitive:initialize-primitive-name:
+    # primitives->name = "increment"
+    (copy-array Heap "increment" %ebx)  # Primitive-name
+$test-emit-subx-stmt-primitive:initialize-primitive-subx-name:
+    # primitives->subx-name = "ff 0/subop/increment"
+    8d/copy-address *(ebx+0x18) 0/r32/eax  # Primitive-subx-name
+    (copy-array Heap "ff 0/subop/increment" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi %ebx 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment *(ebp+0xfffffff8)" "F - test-emit-subx-stmt-primitive")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-subx-stmt-primitive-register:
+    # Primitive operation on a variable in a register.
+    #   foo <- increment
+    # =>
+    #   ff 0/subop/increment %eax  # sub-optimal, but should suffice
+    #
+    # There's a variable on the var stack as follows:
+    #   name: 'foo'
+    #   type: int
+    #   register: 'eax'
+    #
+    # There's a primitive with this info:
+    #   name: 'increment'
+    #   out: int/reg
+    #   value: 'ff 0/subop/increment'
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-emit-subx-stmt-primitive-register:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-stmt-primitive-register:initialize-var:
+    # var var-foo/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-stmt-primitive-register:initialize-var-name:
+    # var-foo->name = "foo"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "foo" %eax)
+$test-emit-subx-stmt-primitive-register:initialize-var-register:
+    # var-foo->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-emit-subx-stmt-primitive-register:initialize-stmt-var:
+    # var operand/ebx: (payload stmt-var)
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var-foo
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-primitive-register:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    53/push-ebx/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32
+    89/<- %esi 4/r32/esp
+$test-emit-subx-stmt-primitive-register:initialize-stmt-operation:
+    # stmt->operation = "increment"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "increment" %eax)
+$test-emit-subx-stmt-primitive-register:initialize-formal-var:
+    # var formal-var/ebx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)  # Var-type + payload alloc id + handle alloc id
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-primitive-register:initialize-formal-var-name:
+    # formal-var->name = "dummy"
+    8d/copy-address *(ebx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "dummy" %eax)
+$test-emit-subx-stmt-primitive-register:initialize-formal-register:
+    # formal-var->register = "*"
+    8d/copy-address *(ebx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "*" %eax)  # Any-register
+$test-emit-subx-stmt-primitive-register:initialize-var-list:
+    # var formal-outputs/ebx: (payload list var)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    53/push-ebx/formal-var
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-primitive-register:initialize-primitive:
+    # var primitives/ebx: (addr primitive)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/no-x32
+    68/push 0/imm32/no-xm32
+    68/push 0/imm32/no-disp32
+    68/push 0/imm32/no-imm8
+    68/push 0/imm32/no-imm32
+    68/push 0/imm32/no-r32
+    68/push 3/imm32/rm32-is-first-output
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/subx-name
+    53/push-ebx/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-primitive-register:initialize-primitive-name:
+    # primitives->name = "increment"
+    (copy-array Heap "increment" %ebx)  # Primitive-name
+$test-emit-subx-stmt-primitive-register:initialize-primitive-subx-name:
+    # primitives->subx-name = "ff 0/subop/increment"
+    8d/copy-address *(ebx+0x18) 0/r32/eax  # Primitive-subx-name
+    (copy-array Heap "ff 0/subop/increment" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi %ebx 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-stmt-primitive-register")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-subx-stmt-select-primitive:
+    # Select the right primitive between overloads.
+    #   foo <- increment
+    # =>
+    #   ff 0/subop/increment %eax  # sub-optimal, but should suffice
+    #
+    # There's a variable on the var stack as follows:
+    #   name: 'foo'
+    #   type: int
+    #   register: 'eax'
+    #
+    # There's two primitives, as follows:
+    #   - name: 'increment'
+    #     out: int/reg
+    #     value: 'ff 0/subop/increment'
+    #   - name: 'increment'
+    #     inout: int/mem
+    #     value: 'ff 0/subop/increment'
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-emit-subx-stmt-select-primitive:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-stmt-select-primitive:initialize-var:
+    # var var-foo/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-stmt-select-primitive:initialize-var-name:
+    # var-foo->name = "foo"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "foo" %eax)
+$test-emit-subx-stmt-select-primitive:initialize-var-register:
+    # var-foo->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-emit-subx-stmt-select-primitive:initialize-stmt-var:
+    # var operand/ebx: (payload stmt-var)
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var-foo
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-select-primitive:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    53/push-ebx/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32
+    89/<- %esi 4/r32/esp
+$test-emit-subx-stmt-select-primitive:initialize-stmt-operation:
+    # stmt->operation = "increment"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "increment" %eax)
+$test-emit-subx-stmt-select-primitive:initialize-formal-var:
+    # var formal-var/ebx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)  # Var-type + payload alloc id + handle alloc id
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-select-primitive:initialize-formal-var-name:
+    # formal-var->name = "dummy"
+    8d/copy-address *(ebx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "dummy" %eax)
+$test-emit-subx-stmt-select-primitive:initialize-formal-register:
+    # formal-var->register = "*"
+    8d/copy-address *(ebx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "*" %eax)  # Any-register
+$test-emit-subx-stmt-select-primitive:initialize-var-list:
+    # var formal-outputs/ebx: (payload list var)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    53/push-ebx/formal-var
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-select-primitive:initialize-primitive2:
+    # var primitive2/edi: (payload primitive)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/no-x32
+    68/push 0/imm32/no-xm32
+    68/push 0/imm32/no-disp32
+    68/push 0/imm32/no-imm8
+    68/push 0/imm32/no-imm32
+    68/push 0/imm32/no-r32
+    68/push 3/imm32/rm32-is-first-output
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/subx-name
+    53/push-ebx/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edi 4/r32/esp
+$test-emit-subx-stmt-select-primitive:initialize-primitive2-name:
+    # primitives->name = "increment"
+    8d/copy-address *(edi+4) 0/r32/eax  # Primitive-name + 4
+    (copy-array Heap "increment" %eax)
+$test-emit-subx-stmt-select-primitive:initialize-primitive2-subx-name:
+    # primitives->subx-name = "ff 0/subop/increment"
+    8d/copy-address *(edi+0x1c) 0/r32/eax  # Primitive-subx-name + 4
+    (copy-array Heap "ff 0/subop/increment" %eax)
+$test-emit-subx-stmt-select-primitive:initialize-primitive:
+    # var primitives/ebx: (addr primitive)
+    57/push-edi
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/no-x32
+    68/push 0/imm32/no-xm32
+    68/push 0/imm32/no-disp32
+    68/push 0/imm32/no-imm8
+    68/push 0/imm32/no-imm32
+    68/push 0/imm32/no-r32
+    68/push 1/imm32/rm32-is-first-inout
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/no-outputs
+    68/push 0/imm32/no-outputs
+    53/push-ebx/inouts  # hack: reuse stmt-var from call stmt as (list var) in function declaration
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-select-primitive:initialize-primitive-name:
+    # primitives->name = "increment"
+    (copy-array Heap "increment" %ebx)  # Primitive-name
+$test-emit-subx-stmt-select-primitive:initialize-primitive-subx-name:
+    # primitives->subx-name = "ff 0/subop/increment"
+    8d/copy-address *(ebx+0x18) 0/r32/eax  # Primitive-subx-name
+    (copy-array Heap "ff 0/subop/increment" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi %ebx 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-stmt-select-primitive")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-subx-stmt-select-primitive-2:
+    # Select the right primitive between overloads.
+    #   increment foo
+    # =>
+    #   ff 0/subop/increment %eax  # sub-optimal, but should suffice
+    #
+    # There's a variable on the var stack as follows:
+    #   name: 'foo'
+    #   type: int
+    #   register: 'eax'
+    #
+    # There's two primitives, as follows:
+    #   - name: 'increment'
+    #     out: int/reg
+    #     value: 'ff 0/subop/increment'
+    #   - name: 'increment'
+    #     inout: int/mem
+    #     value: 'ff 0/subop/increment'
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-emit-subx-stmt-select-primitive-2:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-stmt-select-primitive-2:initialize-var:
+    # var var-foo/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-stmt-select-primitive-2:initialize-var-name:
+    # var-foo->name = "foo"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "foo" %eax)
+$test-emit-subx-stmt-select-primitive-2:initialize-var-register:
+    # var-foo->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-emit-subx-stmt-select-primitive-2:initialize-stmt-var:
+    # var operand/ebx: (payload stmt-var)
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var-foo
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-select-primitive-2:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/no-outputs
+    68/push 0/imm32/no-outputs
+    53/push-ebx/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32
+    89/<- %esi 4/r32/esp
+$test-emit-subx-stmt-select-primitive-2:initialize-stmt-operation:
+    # stmt->operation = "increment"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "increment" %eax)
+$test-emit-subx-stmt-select-primitive-2:initialize-formal-var:
+    # var formal-var/ebx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)  # Var-type + payload alloc id + handle alloc id
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-select-primitive-2:initialize-formal-var-name:
+    # formal-var->name = "dummy"
+    8d/copy-address *(ebx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "dummy" %eax)
+$test-emit-subx-stmt-select-primitive-2:initialize-formal-register:
+    # formal-var->register = "*"
+    8d/copy-address *(ebx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "*" %eax)  # Any-register
+$test-emit-subx-stmt-select-primitive-2:initialize-var-list:
+    # var formal-outputs/ebx: (payload list stmt-var)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    53/push-ebx/formal-var
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-select-primitive-2:initialize-primitive2:
+    # var primitive2/edi: (payload primitive)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/no-x32
+    68/push 0/imm32/no-xm32
+    68/push 0/imm32/no-disp32
+    68/push 0/imm32/no-imm8
+    68/push 0/imm32/no-imm32
+    68/push 0/imm32/no-r32
+    68/push 3/imm32/rm32-is-first-output
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/subx-name
+    53/push-ebx/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edi 4/r32/esp
+$test-emit-subx-stmt-select-primitive-2:initialize-primitive2-name:
+    # primitives->name = "increment"
+    8d/copy-address *(edi+4) 0/r32/eax  # Primitive-name + 4
+    (copy-array Heap "increment" %eax)
+$test-emit-subx-stmt-select-primitive-2:initialize-primitive2-subx-name:
+    # primitives->subx-name = "ff 0/subop/increment"
+    8d/copy-address *(edi+0x1c) 0/r32/eax  # Primitive-subx-name + 4
+    (copy-array Heap "ff 0/subop/increment" %eax)
+$test-emit-subx-stmt-select-primitive-2:initialize-primitive:
+    # var primitives/ebx: (addr primitive)
+    57/push-edi
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/no-x32
+    68/push 0/imm32/no-xm32
+    68/push 0/imm32/no-disp32
+    68/push 0/imm32/no-imm8
+    68/push 0/imm32/no-imm32
+    68/push 0/imm32/no-r32
+    68/push 1/imm32/rm32-is-first-inout
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/subx-name
+    68/push 0/imm32/no-outputs
+    68/push 0/imm32/no-outputs
+    53/push-ebx/inouts  # hack: reuse stmt-var from call stmt as (list var) in function declaration
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-stmt-select-primitive-2:initialize-primitive-name:
+    # primitives->name = "increment"
+    (copy-array Heap "increment" %ebx)  # Primitive-name
+$test-emit-subx-stmt-select-primitive-2:initialize-primitive-subx-name:
+    # primitives->subx-name = "ff 0/subop/increment"
+    8d/copy-address *(ebx+0x18) 0/r32/eax  # Primitive-subx-name
+    (copy-array Heap "ff 0/subop/increment" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi %ebx 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "ff 0/subop/increment %eax" "F - test-emit-subx-stmt-select-primitive-2")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-increment-register:
+    # Select the right register between overloads.
+    #   foo <- increment
+    # =>
+    #   50/increment-eax
+    #
+    # There's a variable on the var stack as follows:
+    #   name: 'foo'
+    #   type: int
+    #   register: 'eax'
+    #
+    # Primitives are the global definitions.
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-increment-register:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-increment-register:initialize-var:
+    # var var-foo/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-increment-register:initialize-var-name:
+    # var-foo->name = "foo"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "foo" %eax)
+$test-increment-register:initialize-var-register:
+    # var-foo->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-increment-register:initialize-stmt-var:
+    # var operand/ebx: (payload stmt-var)
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var-foo
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-increment-register:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    53/push-ebx/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/no-inouts
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32
+    89/<- %esi 4/r32/esp
+$test-increment-register:initialize-stmt-operation:
+    # stmt->operation = "increment"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "increment" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "40/increment-eax" "F - test-increment-register")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-add-reg-to-reg:
+    #   var1/reg <- add var2/reg
+    # =>
+    #   01/add-to %var1 var2
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-add-reg-to-reg:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-reg-to-reg:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-reg-to-reg:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-add-reg-to-reg:initialize-var1-register:
+    # var1->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-add-reg-to-reg:initialize-var2:
+    # var var2/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-reg-to-reg:initialize-var2-name:
+    # var2->name = "var2"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var2" %eax)
+$test-add-reg-to-reg:initialize-var2-register:
+    # var2->register = "ecx"
+    8d/copy-address *(edx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "ecx" %eax)
+$test-add-reg-to-reg:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [var2]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/var2
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-add-reg-to-reg:initialize-outputs:
+    # var outputs/edi: (payload stmt-var) = [var1]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edi 4/r32/esp
+$test-add-reg-to-reg:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    57/push-edi/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-add-reg-to-reg:initialize-stmt-operation:
+    # stmt->operation = "add"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "add" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "01/add-to %eax 0x00000001/r32" "F - test-add-reg-to-reg")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-add-reg-to-mem:
+    #   add-to var1 var2/reg
+    # =>
+    #   01/add-to *(ebp+__) var2
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-add-reg-to-mem:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-reg-to-mem:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-reg-to-mem:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-add-reg-to-mem:initialize-var2:
+    # var var2/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-reg-to-mem:initialize-var2-name:
+    # var2->name = "var2"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var2" %eax)
+$test-add-reg-to-mem:initialize-var2-register:
+    # var2->register = "ecx"
+    8d/copy-address *(edx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "ecx" %eax)
+$test-add-reg-to-mem:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [var2]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/var2
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # inouts = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-add-reg-to-mem:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-add-reg-to-mem:initialize-stmt-operation:
+    # stmt->operation = "add-to"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "add-to" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "01/add-to *(ebp+0x00000008) 0x00000001/r32" "F - test-add-reg-to-mem")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-add-mem-to-reg:
+    #   var1/reg <- add var2
+    # =>
+    #   03/add *(ebp+__) var1
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-add-mem-to-reg:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-mem-to-reg:initialize-var:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-mem-to-reg:initialize-var-name:
+    # var1->name = "foo"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-add-mem-to-reg:initialize-var-register:
+    # var1->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-add-mem-to-reg:initialize-var2:
+    # var var2/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-mem-to-reg:initialize-var2-name:
+    # var2->name = "var2"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var2" %eax)
+$test-add-mem-to-reg:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [var2]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/var2
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-add-mem-to-reg:initialize-outputs:
+    # var outputs/edi: (payload stmt-var) = [var1]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edi 4/r32/esp
+$test-add-mem-to-reg:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    57/push-edi/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-add-mem-to-reg:initialize-stmt-operation:
+    # stmt->operation = "add"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "add" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "03/add *(ebp+0x00000008) 0x00000000/r32" "F - test-add-mem-to-reg")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-add-literal-to-eax:
+    #   var1/eax <- add 0x34
+    # =>
+    #   05/add-to-eax 0x34/imm32
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-add-literal-to-eax:initialize-var-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-literal-to-eax:initialize-var:
+    # var v/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-literal-to-eax:initialize-var-name:
+    # v->name = "v"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "v" %eax)
+$test-add-literal-to-eax:initialize-var-register:
+    # v->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-add-literal-to-eax:initialize-literal-type:
+    # var type/edx: (payload type-tree) = literal
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-literal-to-eax:initialize-literal:
+    # var l/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    52/push-edx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-literal-to-eax:initialize-literal-value:
+    # l->name = "0x34"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "0x34" %eax)
+$test-add-literal-to-eax:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [l]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/l
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-add-literal-to-eax:initialize-outputs:
+    # var outputs/edi: (payload stmt-var) = [v]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/v
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edi 4/r32/esp
+$test-add-literal-to-eax:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    57/push-edi/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-add-literal-to-eax:initialize-stmt-operation:
+    # stmt->operation = "add"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "add" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "05/add-to-eax 0x34/imm32" "F - test-add-literal-to-eax")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-add-literal-to-reg:
+    #   var1/ecx <- add 0x34
+    # =>
+    #   81 0/subop/add %ecx 0x34/imm32
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-add-literal-to-reg:initialize-var-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-literal-to-reg:initialize-var:
+    # var v/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-literal-to-reg:initialize-var-name:
+    # v->name = "v"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "v" %eax)
+$test-add-literal-to-reg:initialize-var-register:
+    # v->register = "ecx"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "ecx" %eax)
+$test-add-literal-to-reg:initialize-literal-type:
+    # var type/edx: (payload type-tree) = literal
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-literal-to-reg:initialize-literal:
+    # var l/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    52/push-edx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-literal-to-reg:initialize-literal-value:
+    # l->name = "0x34"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "0x34" %eax)
+$test-add-literal-to-reg:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [l]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/l
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-add-literal-to-reg:initialize-outputs:
+    # var outputs/edi: (payload stmt-var) = [v]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/v
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edi 4/r32/esp
+$test-add-literal-to-reg:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    57/push-edi/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-add-literal-to-reg:initialize-stmt-operation:
+    # stmt->operation = "add"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "add" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "81 0/subop/add %ecx 0x34/imm32" "F - test-add-literal-to-reg")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-add-literal-to-mem:
+    #   add-to var1, 0x34
+    # =>
+    #   81 0/subop/add %eax 0x34/imm32
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-add-literal-to-mem:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-literal-to-mem:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-add-literal-to-mem:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-add-literal-to-mem:initialize-literal-type:
+    # var type/edx: (payload type-tree) = literal
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-literal-to-mem:initialize-literal:
+    # var l/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    52/push-edx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-add-literal-to-mem:initialize-literal-value:
+    # l->name = "0x34"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "0x34" %eax)
+$test-add-literal-to-mem:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [l]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/l
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # var inouts = (handle stmt-var) = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-add-literal-to-mem:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-add-literal-to-mem:initialize-stmt-operation:
+    # stmt->operation = "add-to"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "add-to" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "81 0/subop/add *(ebp+0x00000008) 0x34/imm32" "F - test-add-literal-to-mem")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-shift-reg-by-literal:
+    #   var1/ecx <- shift-left 2
+    # =>
+    #   c1/shift 4/subop/left %ecx 2/imm8
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-shift-reg-by-literal:initialize-var-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-shift-reg-by-literal:initialize-var:
+    # var v/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-shift-reg-by-literal:initialize-var-name:
+    # v->name = "v"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "v" %eax)
+$test-shift-reg-by-literal:initialize-var-register:
+    # v->register = "ecx"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "ecx" %eax)
+$test-shift-reg-by-literal:initialize-literal-type:
+    # var type/edx: (payload type-tree) = literal
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-shift-reg-by-literal:initialize-literal:
+    # var l/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    52/push-edx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-shift-reg-by-literal:initialize-literal-value:
+    # l->name = "2"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "2" %eax)
+$test-shift-reg-by-literal:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [l]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/l
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-shift-reg-by-literal:initialize-outputs:
+    # var outputs/edi: (payload stmt-var) = [v]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/v
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edi 4/r32/esp
+$test-shift-reg-by-literal:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    57/push-edi/outputs
+    68/push 0x11/imm32/alloc-id:fake
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-shift-reg-by-literal:initialize-stmt-operation:
+    # stmt->operation = "shift-left"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "shift-left" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "c1/shift 4/subop/left %ecx 2/imm8" "F - test-shift-reg-by-literal")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-shift-mem-by-literal:
+    #   shift-left var 3
+    # =>
+    #   c1/shift 4/subop/left *(ebp+8) 3/imm8
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-shift-mem-by-literal:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-shift-mem-by-literal:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-shift-mem-by-literal:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-shift-mem-by-literal:initialize-literal-type:
+    # var type/edx: (payload type-tree) = literal
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-shift-mem-by-literal:initialize-literal:
+    # var l/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    52/push-edx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-shift-mem-by-literal:initialize-literal-value:
+    # l->name = "3"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "3" %eax)
+$test-shift-mem-by-literal:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [l]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/l
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # var inouts = (handle stmt-var) = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-shift-mem-by-literal:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-shift-mem-by-literal:initialize-stmt-operation:
+    # stmt->operation = "shift-left"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "shift-left" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "c1/shift 4/subop/left *(ebp+0x00000008) 3/imm8" "F - test-shift-mem-by-literal")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-reg-with-reg:
+    #   compare var1/ecx, var2/eax
+    # =>
+    #   39/compare %ecx 0/r32/eax
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-compare-reg-with-reg:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-reg-with-reg:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-reg-with-reg:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-compare-reg-with-reg:initialize-var1-register:
+    # var1->register = "ecx"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "ecx" %eax)
+$test-compare-reg-with-reg:initialize-var2:
+    # var var2/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-reg-with-reg:initialize-var2-name:
+    # var2->name = "var2"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var2" %eax)
+$test-compare-reg-with-reg:initialize-var2-register:
+    # var2->register = "eax"
+    8d/copy-address *(edx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-compare-reg-with-reg:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [var2]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/var2
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # inouts = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-compare-reg-with-reg:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-compare-reg-with-reg:initialize-stmt-operation:
+    # stmt->operation = "compare"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "compare" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "39/compare-> %ecx 0x00000000/r32" "F - test-compare-reg-with-reg")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-mem-with-reg:
+    #   compare var1, var2/eax
+    # =>
+    #   39/compare *(ebp+___) 0/r32/eax
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-compare-mem-with-reg:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-mem-with-reg:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-mem-with-reg:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-compare-mem-with-reg:initialize-var2:
+    # var var2/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-mem-with-reg:initialize-var2-name:
+    # var2->name = "var2"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var2" %eax)
+$test-compare-mem-with-reg:initialize-var2-register:
+    # var2->register = "eax"
+    8d/copy-address *(edx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-compare-mem-with-reg:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [var2]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/var2
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # inouts = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-compare-mem-with-reg:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-compare-mem-with-reg:initialize-stmt-operation:
+    # stmt->operation = "compare"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "compare" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "39/compare-> *(ebp+0x00000008) 0x00000000/r32" "F - test-compare-mem-with-reg")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-reg-with-mem:
+    #   compare var1/eax, var2
+    # =>
+    #   3b/compare<- *(ebp+___) 0/r32/eax
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-compare-reg-with-mem:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-reg-with-mem:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-reg-with-mem:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-compare-reg-with-mem:initialize-var1-register:
+    # var1->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-compare-reg-with-mem:initialize-var2:
+    # var var2/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    ff 6/subop/push *(ecx+0x10)
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-reg-with-mem:initialize-var2-name:
+    # var2->name = "var2"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var2" %eax)
+$test-compare-reg-with-mem:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [var2]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/var2
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # inouts = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-compare-reg-with-mem:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-compare-reg-with-mem:initialize-stmt-operation:
+    # stmt->operation = "compare"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "compare" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "3b/compare<- *(ebp+0x00000008) 0x00000000/r32" "F - test-compare-reg-with-mem")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-mem-with-literal:
+    #   compare var1, 0x34
+    # =>
+    #   81 7/subop/compare *(ebp+___) 0x34/imm32
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-compare-mem-with-literal:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-mem-with-literal:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-mem-with-literal:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-compare-mem-with-literal:initialize-literal-type:
+    # var type/edx: (payload type-tree) = literal
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-mem-with-literal:initialize-literal:
+    # var l/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    52/push-edx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-mem-with-literal:initialize-literal-value:
+    # l->name = "0x34"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "0x34" %eax)
+$test-compare-mem-with-literal:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [l]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/l
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # var inouts = (handle stmt-var) = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-compare-mem-with-literal:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-compare-mem-with-literal:initialize-stmt-operation:
+    # stmt->operation = "compare"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "compare" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "81 7/subop/compare *(ebp+0x00000008) 0x34/imm32" "F - test-compare-mem-with-literal")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-eax-with-literal:
+    #   compare var1/eax 0x34
+    # =>
+    #   3d/compare-eax-with 0x34/imm32
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-compare-eax-with-literal:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-eax-with-literal:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-eax-with-literal:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-compare-eax-with-literal:initialize-var1-register:
+    # v->register = "eax"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "eax" %eax)
+$test-compare-eax-with-literal:initialize-literal-type:
+    # var type/edx: (payload type-tree) = literal
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-eax-with-literal:initialize-literal:
+    # var l/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    52/push-edx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-eax-with-literal:initialize-literal-value:
+    # l->name = "0x34"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "0x34" %eax)
+$test-compare-eax-with-literal:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [l]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/l
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # var inouts = (handle stmt-var) = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-compare-eax-with-literal:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-compare-eax-with-literal:initialize-stmt-operation:
+    # stmt->operation = "compare"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "compare" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "3d/compare-eax-with 0x34/imm32" "F - test-compare-eax-with-literal")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-compare-reg-with-literal:
+    #   compare var1/ecx 0x34
+    # =>
+    #   81 7/subop/compare %ecx 0x34/imm32
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-compare-reg-with-literal:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-reg-with-literal:initialize-var1:
+    # var var1/ecx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-compare-reg-with-literal:initialize-var1-name:
+    # var1->name = "var1"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "var1" %eax)
+$test-compare-reg-with-literal:initialize-var1-register:
+    # v->register = "ecx"
+    8d/copy-address *(ecx+0x1c) 0/r32/eax  # Var-register + 4
+    (copy-array Heap "ecx" %eax)
+$test-compare-reg-with-literal:initialize-literal-type:
+    # var type/edx: (payload type-tree) = literal
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-reg-with-literal:initialize-literal:
+    # var l/edx: (payload var)
+    68/push 0/imm32/register
+    68/push 0/imm32/register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    52/push-edx
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %edx 4/r32/esp
+$test-compare-reg-with-literal:initialize-literal-value:
+    # l->name = "0x34"
+    8d/copy-address *(edx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "0x34" %eax)
+$test-compare-reg-with-literal:initialize-inouts:
+    # var inouts/esi: (payload stmt-var) = [l]
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    52/push-edx/l
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+    # var inouts = (handle stmt-var) = [var1, var2]
+    68/push 0/imm32/is-deref:false
+    56/push-esi/next
+    68/push 0x11/imm32/alloc-id:fake
+    51/push-ecx/var1
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %esi 4/r32/esp
+$test-compare-reg-with-literal:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    68/push 0/imm32/outputs
+    68/push 0/imm32/outputs
+    56/push-esi/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag:stmt1
+    89/<- %esi 4/r32/esp
+$test-compare-reg-with-literal:initialize-stmt-operation:
+    # stmt->operation = "compare"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "compare" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi Primitives 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "81 7/subop/compare %ecx 0x34/imm32" "F - test-compare-reg-with-literal")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-subx-stmt-function-call:
+    # Call a function on a variable on the stack.
+    #   f foo
+    # =>
+    #   (f *(ebp-8))
+    # (Changing the function name supports overloading in general, but here it
+    # just serves to help disambiguate things.)
+    #
+    # There's a variable on the var stack as follows:
+    #   name: 'foo'
+    #   type: int
+    #   stack-offset: -8
+    #
+    # There's nothing in primitives.
+    #
+    # We don't perform any checking here on the type of 'f'.
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-emit-subx-function-call:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 1/imm32/value:int
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-function-call:initialize-var:
+    # var var-foo/ecx: (payload var) = var(type)
+    68/push 0/imm32/no-register
+    68/push 0/imm32/no-register
+    68/push -8/imm32/stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx/type
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-function-call:initialize-var-name:
+    # var-foo->name = "foo"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "foo" %eax)
+$test-emit-subx-function-call:initialize-stmt-var:
+    # var operand/ebx: (payload stmt-var) = stmt-var(var-foo)
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var-foo
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-function-call:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/no-outputs
+    68/push 0/imm32/no-outputs
+    53/push-ebx/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag
+    89/<- %esi 4/r32/esp
+$test-emit-subx-function-call:initialize-stmt-operation:
+    # stmt->operation = "f"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "f" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi 0 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "(f *(ebp+0xfffffff8))" "F - test-emit-subx-stmt-function-call")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-subx-stmt-function-call-with-literal-arg:
+    # Call a function on a literal.
+    #   f 0x34
+    # =>
+    #   (f2 0x34)
+    #
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # setup
+    (clear-stream _test-output-stream)
+    (clear-stream $_test-output-buffered-file->buffer)
+$test-emit-subx-function-call-with-literal-arg:initialize-type:
+    # var type/ecx: (payload type-tree) = int
+    68/push 0/imm32/right:null
+    68/push 0/imm32/right:null
+    68/push 0/imm32/left:unused
+    68/push 0/imm32/value:literal
+    68/push 1/imm32/is-atom?:true
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-function-call-with-literal-arg:initialize-var:
+    # var var-foo/ecx: (payload var) = var(lit)
+    68/push 0/imm32/no-register
+    68/push 0/imm32/no-register
+    68/push 0/imm32/no-stack-offset
+    68/push 1/imm32/block-depth
+    51/push-ecx/type
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/name
+    68/push 0/imm32/name
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ecx 4/r32/esp
+$test-emit-subx-function-call-with-literal-arg:initialize-var-name:
+    # var-foo->name = "0x34"
+    8d/copy-address *(ecx+4) 0/r32/eax  # Var-name + 4
+    (copy-array Heap "0x34" %eax)
+$test-emit-subx-function-call-with-literal-arg:initialize-stmt-var:
+    # var operand/ebx: (payload stmt-var) = stmt-var(var-foo)
+    68/push 0/imm32/is-deref:false
+    68/push 0/imm32/next
+    68/push 0/imm32/next
+    51/push-ecx/var-foo
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0x11/imm32/alloc-id:fake:payload
+    89/<- %ebx 4/r32/esp
+$test-emit-subx-function-call-with-literal-arg:initialize-stmt:
+    # var stmt/esi: (addr statement)
+    68/push 0/imm32/no-outputs
+    68/push 0/imm32/no-outputs
+    53/push-ebx/inouts
+    68/push 0x11/imm32/alloc-id:fake
+    68/push 0/imm32/operation
+    68/push 0/imm32/operation
+    68/push 1/imm32/tag
+    89/<- %esi 4/r32/esp
+$test-emit-subx-function-call-with-literal-arg:initialize-stmt-operation:
+    # stmt->operation = "f"
+    8d/copy-address *(esi+4) 0/r32/eax  # Stmt1-operation
+    (copy-array Heap "f" %eax)
+    # convert
+    c7 0/subop/copy *Curr-block-depth 0/imm32
+    (emit-subx-stmt _test-output-buffered-file %esi 0 %ebx 0 Stderr 0)
+    (flush _test-output-buffered-file)
+#?     # dump _test-output-stream {{{
+#?     (write 2 "^")
+#?     (write-stream 2 _test-output-stream)
+#?     (write 2 "$\n")
+#?     (rewind-stream _test-output-stream)
+#?     # }}}
+    # check output
+    (check-next-stream-line-equal _test-output-stream "(f 0x34)" "F - test-emit-subx-stmt-function-call-with-literal-arg")
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-indent:  # out: (addr buffered-file), n: int
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    # . save registers
+    50/push-eax
+    # var i/eax: int = n
+    8b/-> *(ebp+0xc) 0/r32/eax
+    {
+      # if (i <= 0) break
+      3d/compare-eax-with 0/imm32
+      7e/jump-if-<= break/disp8
+      (write-buffered *(ebp+8) "  ")
+      48/decrement-eax
+      eb/jump loop/disp8
+    }
+$emit-indent:end:
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-prologue:  # out: (addr buffered-file)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write-buffered *(ebp+8) "  # . prologue\n")
+    (write-buffered *(ebp+8) "  55/push-ebp\n")
+    (write-buffered *(ebp+8) "  89/<- %ebp 4/r32/esp\n")
+$emit-subx-prologue:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
+
+emit-subx-epilogue:  # out: (addr buffered-file)
+    # . prologue
+    55/push-ebp
+    89/<- %ebp 4/r32/esp
+    #
+    (write-buffered *(ebp+8) "  # . epilogue\n")
+    (write-buffered *(ebp+8) "  89/<- %esp 5/r32/ebp\n")
+    (write-buffered *(ebp+8) "  5d/pop-to-ebp\n")
+    (write-buffered *(ebp+8) "  c3/return\n")
+$emit-subx-epilogue:end:
+    # . epilogue
+    89/<- %esp 5/r32/ebp
+    5d/pop-to-ebp
+    c3/return
diff --git a/linux/pack b/linux/pack
new file mode 100755
index 00000000..8e025a8f
--- /dev/null
+++ b/linux/pack
Binary files differdiff --git a/linux/pack.subx b/linux/pack.subx
new file mode 100644
index 00000000..39848f25
--- /dev/null
+++ b/linux/pack.subx
@@ -0,0 +1,6020 @@
+# Read a text file of SubX instructions from stdin, and convert it into a list
+# of whitespace-separated ascii hex bytes on stdout. Label definitions and
+# uses are left untouched.
+#
+# To run:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/subx-params.subx apps/pack.subx  -o apps/pack
+#   $ echo '05/add-to-eax 0x20/imm32'  |./bootstrap run apps/pack
+# Expected output:
+#   05 20 00 00 00  # 05/add-to-eax 0x20/imm32
+# The original instruction gets included as a comment at the end of each
+# converted line.
+#
+# There's zero error-checking. For now we assume the input program is valid.
+# We'll continue to rely on the C++ version for error messages.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto interactive
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $subx-pack-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto interactive
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto interactive
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-pack-main:interactive/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $subx-pack-main:end/disp8
+$subx-pack-main:interactive:
+    # - otherwise convert stdin
+    # subx-pack(Stdin, Stdout)
+    # . . push args
+    68/push  Stdout/imm32
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  subx-pack/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x8/imm32         # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$subx-pack-main:end:
+    e8/call  syscall_exit/disp32
+
+# - big picture
+# We'll operate on each line/instruction in isolation. That way we only need to
+# allocate memory for converting a single instruction.
+#
+# To pack an entire file, convert every segment in it
+# To convert a code segment, convert every instruction (line) until the next segment header
+# To convert a non-data segment, convert every word until the next segment header
+#
+# primary state: line
+#   stream of 512 bytes; abort if it ever overflows
+
+# conceptual hierarchy within a line:
+#   line = words separated by ' ', maybe followed by comment starting with '#'
+#   word = datum until '/', then 0 or more metadata separated by '/'
+#
+# we won't bother saving the internal structure of lines; reparsing should be cheap using three primitives:
+#   next-token(stream, delim char) -> slice (start, end pointers)
+#   next-token-from-slice(start, end, delim char) -> slice
+#   slice-equal?(slice, string)
+
+subx-pack:  # in: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode:
+    #   var line: (stream byte 512)
+    #   var in-code? = false
+    #   while true
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break             # end of file
+    #     var word-slice = next-word(line)
+    #     if slice-empty?(word-slice)             # whitespace
+    #       write-stream-data(out, line)
+    #     else if (slice-equal?(word-slice, "=="))
+    #       word-slice = next-word(line)
+    #       in-code? = slice-equal?(word-slice, "code")
+    #       write-stream-data(out, line)
+    #     else if (in-code?)
+    #       rewind-stream(line)
+    #       convert-instruction(line, out)
+    #     else
+    #       rewind-stream(line)
+    #       convert-data(line, out)
+    #   flush(out)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/length
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # var in-code?/ebx: boolean = false
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$subx-pack:loop:
+    # clear-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line-buffered(in, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-line-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-pack:check0:
+    # if (line->write == 0) break
+    81          7/subop/compare     0/mod/indirect  1/rm32/ecx    .           .             .           .           .               0/imm32           # compare *ecx
+    0f 84/jump-if-=  $subx-pack:break/disp32
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, line)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # next-word(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-pack:check1:
+    # if (slice-empty?(word-slice)) write-stream-data(out, line)
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) write-stream-data(out, line)
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $subx-pack:pass-through/disp32
+$subx-pack:check2:
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     52/push-edx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # if (!slice-equal?(word-slice, "==")) goto next check
+    # . eax = slice-equal?(word-slice, "==")
+    # . . push args
+    68/push  "=="/imm32
+    52/push-edx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto check3
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $subx-pack:check3/disp32
+    # word-slice = next-word(line)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump segment name {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     52/push-edx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # in-code? = slice-equal?(word-slice, "code")
+    # . . push args
+    68/push  "code"/imm32
+    52/push-edx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . . in-code? = eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    # write-stream-data(out, line)
+    eb/jump  $subx-pack:pass-through/disp8
+$subx-pack:check3:
+    # else rewind-stream(line)
+    # . rewind-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # if (in-code? != false) convert-instruction(line, out)
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0/imm32/false     # compare ebx
+    74/jump-if-=  $subx-pack:data/disp8
+$subx-pack:code:
+    # . convert-instruction(line, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    51/push-ecx
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . loop
+    e9/jump  $subx-pack:loop/disp32
+$subx-pack:data:
+    # else convert-data(line, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    51/push-ecx
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . loop
+    e9/jump  $subx-pack:loop/disp32
+$subx-pack:pass-through:
+    # write-stream-data(out, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . loop
+    e9/jump  $subx-pack:loop/disp32
+$subx-pack:break:
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$subx-pack:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x214/imm32       # add to esp
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-pack-passes-empty-lines-through:
+    # if a line is empty, pass it along unchanged
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write nothing to input
+    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-pack/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-passes-empty-lines-through"/imm32
+    68/push  ""/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-pack-passes-lines-with-just-whitespace-through:
+    # if a line is empty, pass it along unchanged
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "    ")
+    # . . push args
+    68/push  "    "/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-pack/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "    ", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-passes-with-just-whitespace-through"/imm32
+    68/push  "    "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-pack-passes-segment-headers-through:
+    # if a line starts with '==', pass it along unchanged
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "== abcd 0x1")
+    # . . push args
+    68/push  "== abcd 0x1"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-pack/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "== abcd 0x1", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-passes-segment-headers-through"/imm32
+    68/push  "== abcd 0x1"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-pack-in-data-segment:
+    # correctly process lines in the data segment
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    #   == code 0x1
+    #   == data 0x2
+    #   3 4/imm32
+    # . write(_test-input-stream, "== code 0x1")
+    # . . push args
+    68/push  "== code 0x1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data 0x2\n")
+    # . . push args
+    68/push  "== data 0x2\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "3 4/imm32\n")
+    # . . push args
+    68/push  "3 4/imm32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-pack/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+#?     # debug print {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "== code 0x1", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-in-data-segment/0"/imm32
+    68/push  "== code 0x1"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "== data 0x2", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-in-data-segment/1"/imm32
+    68/push  "== data 0x2"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "03 04 00 00 00 ", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-in-data-segment/2"/imm32
+    68/push  "03 04 00 00 00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-pack-code-and-data-segments:
+    # correctly process lines in both code and data segments
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    #   == code 0x1
+    #   e8/call 20/disp32
+    #   68/push 0x20/imm8
+    #   == data 0x2
+    #   3 4/imm32
+    # . write(_test-input-stream, "== code 0x1\n")
+    # . . push args
+    68/push  "== code 0x1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "e8/call 20/disp32\n")
+    # . . push args
+    68/push  "e8/call 20/disp32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "68/push 0x20/imm8\n")
+    # . . push args
+    68/push  "68/push 0x20/imm8\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data 0x2\n")
+    # . . push args
+    68/push  "== data 0x2\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "3 4/imm32\n")
+    # . . push args
+    68/push  "3 4/imm32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-pack(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-pack/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    #   == code 0x1
+    #   e8 20 00 00 00  # e8/call 20/disp32
+    #   68 20  # 68/push 0x20/imm8
+    #   == data 0x2
+    #   03 04 00 00 00
+#?     # debug print {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "== code 0x1", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-code-and-data-segments/0"/imm32
+    68/push  "== code 0x1"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "e8 20 00 00 00  # e8/call 20/disp32", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-code-and-data-segments/1"/imm32
+    68/push  "e8 20 00 00 00  # e8/call 20/disp32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "68 20  # 68/push 0x20/imm8", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-code-and-data-segments/2"/imm32
+    68/push  "68 20  # 68/push 0x20/imm8"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "== data 0x2", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-code-and-data-segments/3"/imm32
+    68/push  "== data 0x2"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "03 04 00 00 00 ", msg)
+    # . . push args
+    68/push  "F - test-subx-pack-code-and-data-segments/4"/imm32
+    68/push  "03 04 00 00 00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+convert-data:  # line: (addr stream byte), out: (addr buffered-file)
+    # pseudocode:
+    #   var word-slice: slice
+    #   while true
+    #     word-slice = next-word(line)
+    #     if slice-empty?(word-slice)                 # end of file (maybe including trailing whitespace)
+    #       break  # skip emitting some whitespace
+    #     if slice-starts-with?(word-slice, "#")      # comment
+    #       write-slice-buffered(out, word-slice)
+    #       return
+    #     if slice-ends-with?(word-slice, ":")        # label
+    #       write-stream-data(out, line)
+    #       return
+    #     if has-metadata?(word-slice, "imm32")
+    #       emit(out, word-slice, 4)
+    #     # disp32 is not permitted in data segments, and anything else is only a byte long
+    #     else
+    #       emit(out, word-slice, 1)
+    #   write-buffered(out, "\n")
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # var word-slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # write-stream(2/stderr, line)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$convert-data:loop:
+    # next-word(line, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$convert-data:check0:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $convert-data:break/disp32
+$convert-data:check-for-comment:
+    # if (slice-starts-with?(word-slice, "#"))
+    # . var start/edx: (addr byte) = word-slice->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
+    # . if (c != '#') goto next check
+    3d/compare-eax-and  0x23/imm32/hash
+    75/jump-if-!=  $convert-data:check-for-label/disp8
+$convert-data:comment:
+    # write-slice-buffered(out, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # return
+    0f 85/jump-if-!=  $convert-data:end/disp32
+$convert-data:check-for-label:
+    # if (slice-ends-with?(word-slice, ":"))
+    # . var end/edx: (addr byte) = word-slice->end
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
+    # . var c/eax: byte = *(end-1)
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   2/rm32/edx    .           .             .           0/r32/AL    -1/disp8        .                 # copy byte at *ecx to AL
+    # . if (c != ':') goto next check
+    3d/compare-eax-and  0x3a/imm32/colon
+    75/jump-if-!=  $convert-data:check-for-imm32/disp8
+$convert-data:label:
+    # write-stream-data(out, line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # return
+    75/jump-if-!=  $convert-data:end/disp8
+$convert-data:check-for-imm32:
+    # if (has-metadata?(word-slice, "imm32"))
+    # . eax = has-metadata?(ecx, "imm32")
+    # . . push args
+    68/push  "imm32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) process as a single byte
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $convert-data:single-byte/disp8
+$convert-data:imm32:
+    # emit(out, word-slice, 4)
+    # . . push args
+    68/push  4/imm32
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    e9/jump  $convert-data:loop/disp32
+$convert-data:single-byte:
+    # emit(out, word-slice, 1)
+    # . . push args
+    68/push  1/imm32
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    e9/jump  $convert-data:loop/disp32
+$convert-data:break:
+    # write-buffered(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$convert-data:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-passes-comments-through:
+    # if a line starts with '#', pass it along unchanged
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "# abcd")
+    # . . push args
+    68/push  "# abcd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "# abcd", msg)
+    # . . push args
+    68/push  "F - test-convert-data-passes-comments-through"/imm32
+    68/push  "# abcd"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-passes-labels-through:
+    # if the first word ends with ':', pass along the entire line unchanged
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab: # cd")
+    # . . push args
+    68/push  "ab: # cd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "ab: # cd", msg)
+    # . . push args
+    68/push  "F - test-convert-data-passes-labels-through"/imm32
+    68/push  "ab: # cd"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-passes-names-through:
+    # If a word is a valid name, just emit it unchanged.
+    # Later phases will deal with it.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "abcd/imm32")
+    # . . push args
+    68/push  "abcd/imm32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "abcd/imm32 \n", msg)
+    # . . push args
+    68/push  "F - test-convert-data-passes-names-through"/imm32
+    68/push  "abcd/imm32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-handles-imm32:
+    # If a word has the /imm32 metadata, emit it in 4 bytes.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "30/imm32")
+    # . . push args
+    68/push  "30/imm32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that 4 bytes were written
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "30 00 00 00 \n", msg)
+    # . . push args
+    68/push  "F - test-convert-data-handles-imm32"/imm32
+    68/push  "30 00 00 00 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-handles-single-byte:
+    # Any metadata but /imm32 will emit a single byte.
+    # Data segments can't have /disp32, and SubX doesn't support 16-bit operands.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "30/imm16")
+    # . . push args
+    68/push  "30/imm16"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that a single byte was written (imm16 is not a valid operand type)
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "30 \n", msg)
+    # . . push args
+    68/push  "F - test-convert-data-handles-single-byte"/imm32
+    68/push  "30 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-multiple-bytes:
+    # Multiple single-byte words in input stream get processed one by one.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "1 2")
+    # . . push args
+    68/push  "1 2"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "01 02 \n", msg)
+    # . . push args
+    68/push  "F - test-convert-data-multiple-bytes"/imm32
+    68/push  "01 02 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-byte-then-name:
+    # Single-byte word followed by valid name get processed one by one.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "30 abcd/o")
+    # . . push args
+    68/push  "30 abcd/o"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "30 abcd/o \n", msg)
+    # . . push args
+    68/push  "F - test-convert-data-byte-then-name"/imm32
+    68/push  "30 abcd/o \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-multiple-words:
+    # Multiple words in input stream get processed one by one.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "30 abcd/o 42e1/imm32")
+    # . . push args
+    68/push  "30 abcd/o 42e1/imm32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "30 abcd/o 42 e1 00 00 \n", msg)
+    # . . push args
+    68/push  "F - test-convert-data-multiple-words"/imm32
+    68/push  "30 abcd/o e1 42 00 00 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-data-trailing-comment:
+    # Trailing comments in data segment get appropriately ignored.
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "30/imm32 # comment")
+    # . . push args
+    68/push  "30/imm32 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-data(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "30 00 00 00 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-data-trailing-comment"/imm32
+    68/push  "30 00 00 00 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# pack an instruction, following the C++ version
+#
+# zero error handling at the moment (continuing to rely on the C++ version for that):
+#   missing fields are always 0-filled
+#   bytes never mentioned are silently dropped; if you don't provide /mod, /rm32 or /r32 you don't get a 0 ModR/M byte. You get *no* ModR/M byte.
+#   may pick up any of duplicate operands in an instruction
+#   silently drop extraneous operands
+#   unceremoniously abort on non-numeric operands except disp or imm
+#   opcodes must be lowercase and zero padded
+#   opcodes with misleading operand metadata may get duplicated as operands as well. don't rely on this.
+convert-instruction:  # line: (addr stream byte), out: (addr buffered-file)
+    # pseudocode:
+    #   # some early exits
+    #   var word-slice = next-word(line)
+    #   if slice-empty?(word-slice)
+    #     write-stream-data(out, line)
+    #     return
+    #   if slice-starts-with?(word-slice, "#")
+    #     write-stream-data(out, line)
+    #     return
+    #   if slice-ends-with?(word-slice, ":")
+    #     write-stream-data(out, line)
+    #     return
+    #   # really convert
+    #   emit-opcodes(line, out)
+    #   emit-modrm(line, out)
+    #   emit-sib(line, out)
+    #   emit-disp(line, out)
+    #   emit-imm(line, out)
+    #   emit-line-in-comment(line, out)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # var word-slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # next-word(line, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$convert-instruction:check0:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) pass through
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $convert-instruction:pass-through/disp8
+$convert-instruction:check1:
+    # if (slice-starts-with?(word-slice, "#")) write-stream-data(out, line)
+    # . var start/edx: (addr byte) = word-slice->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
+    # . if (c == '#') pass through
+    3d/compare-eax-and  0x23/imm32/hash
+    74/jump-if-=  $convert-instruction:pass-through/disp8
+$convert-instruction:check2:
+    # if (slice-ends-with?(word-slice, ":")) write-stream-data(out, line)
+    # . var end/edx: (addr byte) = word-slice->end
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
+    # . var c/eax: byte = *(end-1)
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   2/rm32/edx    .           .             .           0/r32/AL    -1/disp8        .                 # copy byte at *ecx to AL
+    # . if (c == ':') pass through
+    3d/compare-eax-and  0x3a/imm32/colon
+    75/jump-if-!=  $convert-instruction:really-convert/disp8
+$convert-instruction:pass-through:
+    # write-stream-data(out, line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # return
+    eb/jump  $convert-instruction:end/disp8
+$convert-instruction:really-convert:
+    # emit-opcodes(line, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-opcodes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # emit-modrm(line, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-modrm/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # emit-sib(line, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-sib/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # emit-disp(line, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-disp/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # emit-imm(line, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-imm/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # emit-line-in-comment(line, out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-line-in-comment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$convert-instruction:end:
+    # . restore locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-opcodes:  # line: (addr stream byte), out: (addr buffered-file)
+    # opcodes occupy 1-3 bytes:
+    #   xx
+    #   0f xx
+    #   f2 xx
+    #   f3 xx
+    #   f2 0f xx
+    #   f3 0f xx
+    #
+    # pseudocode:
+    #   rewind-stream(line)
+    #
+    #   var op1 = next-word(line)
+    #   if (slice-empty?(op1) || slice-starts-with?(op1, "#")) return
+    #   op1 = next-token-from-slice(op1->start, op1->end, "/")
+    #   write-slice-buffered(out, op1)
+    #   if !slice-equal?(op1, "0f") && !slice-equal?(op1, "f2") && !slice-equal?(op1, "f3")
+    #     return
+    #
+    #   var op2 = next-word(line)
+    #   if (slice-empty?(op2) || slice-starts-with?(op2, "#")) return
+    #   op2 = next-token-from-slice(op2->start, op2->end, "/")
+    #   write-slice-buffered(out, op2)
+    #   if slice-equal?(op1, "0f")
+    #     return
+    #   if !slice-equal?(op2, "0f")
+    #     return
+    #
+    #   var op3 = next-word(line)
+    #   if (slice-empty?(op3) || slice-starts-with?(op3, "#")) return
+    #   op3 = next-token-from-slice(op3->start, op3->end, "/")
+    #   write-slice-buffered(out, op3)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # var op1/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var op2/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$emit-opcodes:op1:
+    # next-word(line, op1)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-empty?(op1)) return
+    # . eax = slice-empty?(op1)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) return
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-opcodes:end/disp32
+    # if (slice-starts-with?(op1, "#")) return
+    # . var start/ebx: (addr byte) = op1->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           3/r32/ebx   .               .                 # copy *ecx to ebx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at *ebx to AL
+    # . if (c == '#') return
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-opcodes:end/disp32
+    # op1 = next-token-from-slice(op1->start, op1->end, '/')
+    # . . push args
+    51/push-ecx
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   1/rm32/ecx    .           .             .           .           4/disp8         .                 # push *(ecx+4)
+    ff          6/subop/push        0/mod/indirect  1/rm32/ecx    .           .             .           .           .               .                 # push *ecx
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # write-slice-buffered(out, op1)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-equal?(op1, "0f")) goto op2
+    # . eax = slice-equal?(op1, "0f")
+    # . . push args
+    68/push  "0f"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) goto op2
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $emit-opcodes:op2/disp8
+    # if (slice-equal?(op1, "f2")) goto op2
+    # . eax = slice-equal?(op1, "f2")
+    # . . push args
+    68/push  "f2"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) goto op2
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $emit-opcodes:op2/disp8
+    # if (slice-equal?(op1, "f3")) goto op2
+    # . eax = slice-equal?(op1, "f3")
+    # . . push args
+    68/push  "f3"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) goto op2
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $emit-opcodes:op2/disp8
+    # otherwise return
+    e9/jump  $emit-opcodes:end/disp32
+$emit-opcodes:op2:
+    # next-word(line, op2)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-empty?(op2)) return
+    # . eax = slice-empty?(op2)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) return
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-opcodes:end/disp32
+    # if (slice-starts-with?(op2, "#")) return
+    # . var start/ebx: (addr byte) = op2->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           3/r32/ebx   .               .                 # copy *edx to ebx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at *ebx to AL
+    # . if (c == '#') return
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-opcodes:end/disp32
+    # op2 = next-token-from-slice(op2->start, op2->end, '/')
+    # . . push args
+    52/push-edx
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # write-slice-buffered(out, op2)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-equal?(op1, "0f")) return
+    # . eax = slice-equal?(op1, "0f")
+    # . . push args
+    68/push  "0f"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-opcodes:end/disp32
+    # if (!slice-equal?(op2, "0f")) return
+    # . eax = slice-equal?(op2, "0f")
+    # . . push args
+    68/push  "0f"/imm32
+    52/push-edx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) return
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $emit-opcodes:end/disp32
+$emit-opcodes:op3:
+    # next-word(line, op3)  # reuse op2/edx
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-empty?(op3)) return
+    # . eax = slice-empty?(op3)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) return
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-opcodes:end/disp32
+    # if (slice-starts-with?(op3, "#")) return
+    # . var start/ebx: (addr byte) = op2->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           3/r32/ebx   .               .                 # copy *edx to ebx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at *ebx to AL
+    # . if (c == '#') return
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-opcodes:end/disp32
+    # op3 = next-token-from-slice(op3->start, op3->end, '/')
+    # . . push args
+    52/push-edx
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # write-slice-buffered(out, op3)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-opcodes:end:
+    # . restore locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-modrm:  # line: (addr stream byte), out: (addr buffered-file)
+    # pseudocode:
+    #   rewind-stream(line)
+    #   var has-modrm? = false, mod = 0, rm32 = 0, r32 = 0
+    #   var word-slice: slice
+    #   while true
+    #     word-slice = next-word(line)
+    #     if (slice-empty?(word-slice)) break
+    #     if (slice-starts-with?(word-slice, "#")) break
+    #     if (has-metadata?(word-slice, "mod"))
+    #       mod = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
+    #       has-modrm? = true
+    #     else if has-metadata?(word-slice, "rm32") or has-metadata?(word-slice, "xm32")
+    #       rm32 = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
+    #       has-modrm? = true
+    #     else if has-metadata?(word-slice, "r32") or has-metadata?(word-slice, "x32") or has-metadata?(word-slice, "subop")
+    #       r32 = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
+    #       has-modrm? = true
+    #   if has-modrm?
+    #     var modrm = mod & 0b11
+    #     modrm <<= 3
+    #     modrm |= r32 & 0b111
+    #     modrm <<= 3
+    #     modrm |= rm32 & 0b111
+    #     emit-hex(out, modrm, 1)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var word-slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var has-modrm?/edx: boolean = false
+    31/xor                          3/mod/direct    2/rm32/edx    .           .             .           2/r32/edx   .               .                 # clear edx
+    # var mod/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # var rm32/esi: byte = 0
+    31/xor                          3/mod/direct    6/rm32/esi    .           .             .           6/r32/esi   .               .                 # clear esi
+    # var r32/edi: byte = 0
+    31/xor                          3/mod/direct    7/rm32/edi    .           .             .           7/r32/edi   .               .                 # clear edi
+    # rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, line)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(line)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+$emit-modrm:loop:
+    # next-word(line, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-modrm:check0:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) pass through
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-modrm:break/disp32
+$emit-modrm:check1:
+    # if (slice-starts-with?(word-slice, "#")) break
+    # . spill edx
+    52/push-edx
+    # . var start/edx: (addr byte) = word-slice->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
+    # . restore edx
+    5a/pop-to-edx
+    # . if (c == '#') pass through
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-modrm:break/disp32
+$emit-modrm:check-for-mod:
+    # if (has-metadata?(word-slice, "mod"))
+    # . eax = has-metadata?(ecx, "mod")
+    # . . push args
+    68/push  "mod"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-modrm:check-for-rm32/disp8
+$emit-modrm:mod:
+    # mod = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . mod = eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    # has-modrm? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-modrm:loop/disp32
+$emit-modrm:check-for-rm32:
+    # if (has-metadata?(word-slice, "rm32"))
+    # . eax = has-metadata?(ecx, "rm32")
+    # . . push args
+    68/push  "rm32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-modrm:check-for-xm32/disp8
+$emit-modrm:rm32:
+    # rm32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . rm32 = eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
+    # has-modrm? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-modrm:loop/disp32
+$emit-modrm:check-for-xm32:
+    # if (has-metadata?(word-slice, "xm32"))
+    # . eax = has-metadata?(ecx, "xm32")
+    # . . push args
+    68/push  "xm32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-modrm:check-for-r32/disp8
+$emit-modrm:xm32:
+    # rm32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . rm32 = eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
+    # has-modrm? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-modrm:loop/disp32
+$emit-modrm:check-for-r32:
+    # if (has-metadata?(word-slice, "r32"))
+    # . eax = has-metadata?(ecx, "r32")
+    # . . push args
+    68/push  "r32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-modrm:check-for-x32/disp8
+$emit-modrm:r32:
+    # r32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . r32 = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # has-modrm? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-modrm:loop/disp32
+$emit-modrm:check-for-x32:
+    # if (has-metadata?(word-slice, "x32"))
+    # . eax = has-metadata?(ecx, "x32")
+    # . . push args
+    68/push  "x32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-modrm:check-for-subop/disp8
+$emit-modrm:x32:
+    # r32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . r32 = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # has-modrm? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-modrm:loop/disp32
+$emit-modrm:check-for-subop:
+    # if (has-metadata?(word-slice, "subop"))
+    # . eax = has-metadata?(ecx, "subop")
+    # . . push args
+    68/push  "subop"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) loop
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $emit-modrm:loop/disp32
+$emit-modrm:subop:
+    # r32 = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . r32 = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # has-modrm? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-modrm:loop/disp32
+$emit-modrm:break:
+    # if (!has-modrm?) return
+    81          7/subop/compare     3/mod/direct    2/rm32/edx    .           .             .           .           .               0/imm32/false     # compare edx
+    74/jump-if-=  $emit-modrm:end/disp8
+$emit-modrm:calculate:
+    # var modrm/ebx: byte = mod & 0b11
+    81          4/subop/and         3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm32/0b11      # bitwise and of ebx
+    # modrm <<= 3
+    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm8            # shift ebx left by 3 bits
+    # modrm |= r32 & 0b111
+    81          4/subop/and         3/mod/direct    7/rm32/edi    .           .             .           .           .               7/imm32/0b111     # bitwise and of edi
+    09/or                           3/mod/direct    3/rm32/ebx    .           .             .           7/r32/edi   .               .                 # ebx = bitwise OR with edi
+    # modrm <<= 3
+    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm8            # shift ebx left by 3 bits
+    # modrm |= rm32 & 0b111
+    81          4/subop/and         3/mod/direct    6/rm32/esi    .           .             .           .           .               7/imm32/0b111     # bitwise and of esi
+    09/or                           3/mod/direct    3/rm32/ebx    .           .             .           6/r32/esi   .               .                 # ebx = bitwise OR with esi
+$emit-modrm:emit:
+    # emit-hex(out, modrm, 1)
+    # . . push args
+    68/push  1/imm32
+    53/push-ebx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$emit-modrm:end:
+    # . restore locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-sib:  # line: (addr stream byte), out: (addr buffered-file)
+    # pseudocode:
+    #   var has-sib? = false, base = 0, index = 0, scale = 0
+    #   var word-slice: slice
+    #   while true
+    #     word-slice = next-word(line)
+    #     if (slice-empty?(word-slice)) break
+    #     if (slice-starts-with?(word-slice, "#")) break
+    #     if (has-metadata?(word-slice, "base")
+    #       base = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
+    #       has-sib? = true
+    #     else if (has-metadata?(word-slice, "index")
+    #       index = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
+    #       has-sib? = true
+    #     else if (has-metadata?(word-slice, "scale")
+    #       scale = parse-hex-int-from-slice(next-token-from-slice(word-slice, "/"))
+    #       has-sib? = true
+    #   if has-sib?
+    #     var sib = scale & 0b11
+    #     sib <<= 3
+    #     sib |= index & 0b111
+    #     sib <<= 3
+    #     sib |= base & 0b111
+    #     emit-hex(out, sib, 1)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var word-slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var has-sib?/edx: boolean = false
+    31/xor                          3/mod/direct    2/rm32/edx    .           .             .           2/r32/edx   .               .                 # clear edx
+    # var scale/ebx: byte = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # var base/esi: byte = 0
+    31/xor                          3/mod/direct    6/rm32/esi    .           .             .           6/r32/esi   .               .                 # clear esi
+    # var index/edi: byte = 0
+    31/xor                          3/mod/direct    7/rm32/edi    .           .             .           7/r32/edi   .               .                 # clear edi
+    # rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$emit-sib:loop:
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, line)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # next-word(line, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-sib:check0:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) pass through
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-sib:break/disp32
+$emit-sib:check1:
+    # if (slice-starts-with?(word-slice, "#")) break
+    # . spill edx
+    52/push-edx
+    # . var start/edx: (addr byte) = word-slice->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
+    # . restore edx
+    5a/pop-to-edx
+    # . if (c == '#') pass through
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-sib:break/disp32
+$emit-sib:check-for-scale:
+    # if (has-metadata?(word-slice, "scale"))
+    # . eax = has-metadata?(ecx, "scale")
+    # . . push args
+    68/push  "scale"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-sib:check-for-base/disp8
+$emit-sib:scale:
+    # scale = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . scale = eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    # has-sib? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-sib:loop/disp32
+$emit-sib:check-for-base:
+    # if (has-metadata?(word-slice, "base"))
+    # . eax = has-metadata?(ecx, "base")
+    # . . push args
+    68/push  "base"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-sib:check-for-index/disp8
+$emit-sib:base:
+    # base = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . base = eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
+    # has-sib? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-sib:loop/disp32
+$emit-sib:check-for-index:
+    # if (has-metadata?(word-slice, "index"))
+    # . eax = has-metadata?(ecx, "index")
+    # . . push args
+    68/push  "index"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) loop
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $emit-sib:loop/disp32
+$emit-sib:index:
+    # index = parse-hex-int-from-slice(next-token-from-slice(word-slice->start, word-slice->end, '/'))
+    # . eax = parse-datum-of-word(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-datum-of-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . index = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # has-sib? = true
+    ba/copy-to-edx  1/imm32/true
+    # continue
+    e9/jump  $emit-sib:loop/disp32
+$emit-sib:break:
+    # if (!has-sib?) return
+    81          7/subop/compare     3/mod/direct    2/rm32/edx    .           .             .           .           .               0/imm32/false     # compare edx
+    74/jump-if-=  $emit-sib:end/disp8
+$emit-sib:calculate:
+    # var sib/ebx: byte = scale & 0b11
+    81          4/subop/and         3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm32/0b11      # bitwise and of ebx
+    # sib <<= 2
+    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm8            # shift ebx left by 3 bits
+    # sib |= index & 0b111
+    81          4/subop/and         3/mod/direct    7/rm32/edi    .           .             .           .           .               7/imm32/0b111     # bitwise and of edi
+    09/or                           3/mod/direct    3/rm32/ebx    .           .             .           7/r32/edi   .               .                 # ebx = bitwise OR with edi
+    # sib <<= 3
+    c1/shift    4/subop/left        3/mod/direct    3/rm32/ebx    .           .             .           .           .               3/imm8            # shift ebx left by 3 bits
+    # sib |= base & 0b111
+    81          4/subop/and         3/mod/direct    6/rm32/esi    .           .             .           .           .               7/imm32/0b111     # bitwise and of esi
+    09/or                           3/mod/direct    3/rm32/ebx    .           .             .           6/r32/esi   .               .                 # ebx = bitwise OR with esi
+$emit-sib:emit:
+    # emit-hex(out, sib, 1)
+    # . . push args
+    68/push  1/imm32
+    53/push-ebx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$emit-sib:end:
+    # . restore locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-disp:  # line: (addr stream byte), out: (addr buffered-file)
+    # pseudocode:
+    #   rewind-stream(line)
+    #   var word-slice: slice
+    #   while true
+    #     word-slice = next-word(line)
+    #     if (slice-empty?(word-slice)) break
+    #     if (slice-starts-with?(word-slice, "#")) break
+    #     if has-metadata?(word-slice, "disp32")
+    #       emit(out, word-slice, 4)
+    #       break
+    #     if has-metadata?(word-slice, "disp16")
+    #       emit(out, word-slice, 2)
+    #       break
+    #     if has-metadata?(word-slice, "disp8")
+    #       emit(out, word-slice, 1)
+    #       break
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # var word-slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, line)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-disp:loop:
+    # next-word(line, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-disp:check0:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) pass through
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-disp:break/disp32
+$emit-disp:check1:
+    # if (slice-starts-with?(word-slice, "#")) break
+    # . var start/edx: (addr byte) = word-slice->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
+    # . if (c == '#') break
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-disp:break/disp32
+$emit-disp:check-for-disp32:
+    # if (has-metadata?(word-slice, "disp32"))
+    # . eax = has-metadata?(ecx, "disp32")
+    # . . push args
+    68/push  "disp32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-disp:check-for-disp16/disp8
+$emit-disp:disp32:
+    # emit(out, word-slice, 4)
+    # . . push args
+    68/push  4/imm32
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # break
+    e9/jump  $emit-disp:break/disp32
+$emit-disp:check-for-disp16:
+    # else if (has-metadata?(word-slice, "disp16"))
+    # . eax = has-metadata?(ecx, "disp16")
+    # . . push args
+    68/push  "disp16"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-disp:check-for-disp8/disp8
+$emit-disp:disp16:
+    # emit(out, word-slice, 2)
+    # . . push args
+    68/push  2/imm32
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # break
+    e9/jump  $emit-disp:break/disp32
+$emit-disp:check-for-disp8:
+    # if (has-metadata?(word-slice, "disp8"))
+    # . eax = has-metadata?(ecx, "disp8")
+    # . . push args
+    68/push  "disp8"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) loop
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $emit-disp:loop/disp32
+$emit-disp:disp8:
+    # emit(out, word-slice, 1)
+    # . . push args
+    68/push  1/imm32
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # break
+$emit-disp:break:
+    # . restore locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-imm:  # line: (addr stream byte), out: (addr buffered-file)
+    # pseudocode:
+    #   rewind-stream(line)
+    #   var word-slice: slice
+    #   while true
+    #     word-slice = next-word(line)
+    #     if (slice-empty?(word-slice)) break
+    #     if (slice-starts-with?(word-slice, "#")) break
+    #     if has-metadata?(word-slice, "imm32")
+    #       emit(out, word-slice, 4)
+    #       break
+    #     if has-metadata?(word-slice, "imm16")
+    #       emit(out, word-slice, 2)
+    #       break
+    #     if has-metadata?(word-slice, "imm8")
+    #       emit(out, word-slice, 1)
+    #       break
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    # var word-slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, line)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-imm:loop:
+    # next-word(line, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-imm:check0:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) pass through
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-imm:break/disp32
+$emit-imm:check1:
+    # if (slice-starts-with?(word-slice, "#")) break
+    # . var start/edx: (addr byte) = slice->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # . var c/eax: byte = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           0/r32/AL    .               .                 # copy byte at *edx to AL
+    # . if (c == '#') break
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-imm:break/disp32
+$emit-imm:check-for-imm32:
+    # if (has-metadata?(word-slice, "imm32"))
+    # . eax = has-metadata?(ecx, "imm32")
+    # . . push args
+    68/push  "imm32"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-imm:check-for-imm16/disp8
+$emit-imm:imm32:
+    # emit(out, word-slice, 4)
+    # . . push args
+    68/push  4/imm32
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # break
+    e9/jump  $emit-imm:break/disp32
+$emit-imm:check-for-imm16:
+    # if (has-metadata?(word-slice, "imm16"))
+    # . eax = has-metadata?(ecx, "imm16")
+    # . . push args
+    68/push  "imm16"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-imm:check-for-imm8/disp8
+$emit-imm:imm16:
+    # emit(out, word-slice, 2)
+    # . . push args
+    68/push  2/imm32
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # break
+    e9/jump  $emit-imm:break/disp32
+$emit-imm:check-for-imm8:
+    # if (has-metadata?(word-slice, "imm8"))
+    # . eax = has-metadata?(ecx, "imm8")
+    # . . push args
+    68/push  "imm8"/imm32
+    51/push-ecx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) loop
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $emit-imm:loop/disp32
+$emit-imm:imm8:
+    # emit(out, word-slice, 1)
+    # . . push args
+    68/push  1/imm32
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # break
+$emit-imm:break:
+    # . restore locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-line-in-comment:  # line: (addr stream byte), out: (addr buffered-file)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write-buffered(out, " # ")
+    # . . push args
+    68/push  " # "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-stream-data(out, line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-line-in-comment:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-passes-comments-through:
+    # if a line starts with '#', pass it along unchanged
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "# abcd")
+    # . . push args
+    68/push  "# abcd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "# abcd", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-passes-comments-through"/imm32
+    68/push  "# abcd"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-passes-labels-through:
+    # if the first word ends with ':', pass along the entire line unchanged
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab: # cd")
+    # . . push args
+    68/push  "ab: # cd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "ab: # cd", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-passes-labels-through"/imm32
+    68/push  "ab: # cd"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-single-opcode:
+    # if the instruction consists of a single opcode, strip its metadata and pass it along
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab/cd # comment")
+    # . . push args
+    68/push  "ab/cd # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab  # ab/cd # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-single-opcode"/imm32
+    68/push  "ab  # ab/cd # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-0f-opcode:
+    # if the instruction starts with 0f opcode, include a second opcode
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "0f/m1 ab/m2 # comment")
+    # . . push args
+    68/push  "0f/m1 ab/m2 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "0f ab  # 0f/m1 ab/m2 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-0f-opcode"/imm32
+    68/push  "0f ab  # 0f/m1 ab/m2 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-f2-opcode:
+    # if the instruction starts with f2 opcode, include a second opcode
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "f2/m1 ab/m2 # comment")
+    # . . push args
+    68/push  "f2/m1 ab/m2 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "f2 ab  # f2/m1 ab/m2 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-f2-opcode"/imm32
+    68/push  "f2 ab  # f2/m1 ab/m2 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-f3-opcode:
+    # if the instruction starts with f3 opcode, include a second opcode
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "f3/m1 ab/m2 # comment")
+    # . . push args
+    68/push  "f3/m1 ab/m2 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "f3 ab  # f3/m1 ab/m2 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-f3-opcode"/imm32
+    68/push  "f3 ab  # f3/m1 ab/m2 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-f2-0f-opcode:
+    # if the instruction starts with f2 0f opcode, include a second opcode
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "f2/m1 0f/m2 ab/m3 # comment")
+    # . . push args
+    68/push  "f2/m1 0f/m2 ab/m3 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "f2 0f ab  # f2/m1 0f/m2 ab/m3 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-f2-0f-opcode"/imm32
+    68/push  "f2 0f ab  # f2/m1 0f/m2 ab/m3 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-f3-0f-opcode:
+    # if the instruction starts with f3 0f opcode, include a second opcode
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "f3/m1 0f/m2 ab/m3 # comment")
+    # . . push args
+    68/push  "f3/m1 0f/m2 ab/m3 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "f3 0f ab  # f3/m1 0f/m2 ab/m3 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-f3-0f-opcode"/imm32
+    68/push  "f3 0f ab  # f3/m1 0f/m2 ab/m3 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-unused-opcodes:
+    # if the instruction doesn't start with f2, f3 or 0f, don't include other opcodes
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab/m1 cd/m2 # comment")
+    # . . push args
+    68/push  "ab/m1 cd/m2 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab  # f3/m1 0f/m2 ab/m3 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-unused-opcodes"/imm32
+    68/push  "ab  # ab/m1 cd/m2 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-unused-second-opcodes:
+    # if the second opcode isn't 0f, don't include further opcodes
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "f2/m1 ab/m2 cd/m3 # comment")
+    # . . push args
+    68/push  "f2/m1 ab/m2 cd/m3 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "f2 ab  # f2/m1 ab/m2 cd/m3 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-unused-second-opcodes"/imm32
+    68/push  "f2 ab  # f2/m1 ab/m2 cd/m3 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-unused-second-opcodes-2:
+    # if the second opcode isn't 0f, don't include further opcodes
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "f3/m1 ab/m2 cd/m3 # comment")
+    # . . push args
+    68/push  "f3/m1 ab/m2 cd/m3 # comment"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "f3 ab  # f3/m1 ab/m2 cd/m3 # comment", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-unused-second-opcodes"/imm32
+    68/push  "f3 ab  # f3/m1 ab/m2 cd/m3 # comment"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-modrm-byte:
+    # pack mod, rm32 and r32 operands into ModR/M byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/mod 0/rm32 1/r32")
+    # . . push args
+    68/push  "8b/copy 0/mod 0/rm32 1/r32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 08  # 8b/copy 0/mod 0/rm32 1/r32", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-modrm-byte"/imm32
+    68/push  "8b 08  # 8b/copy 0/mod 0/rm32 1/r32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-modrm-byte-with-non-zero-mod:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "01/add 3/mod/direct 3/rm32/ebx 1/r32/ecx")
+    # . . push args
+    68/push  "01/add 3/mod/direct 3/rm32/ebx 1/r32/ecx"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "out: ")
+#?     # . . push args
+#?     68/push  "out: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check output
+    # . check-stream-equal(_test-output-stream, "# abcd", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-foo"/imm32
+    68/push  "01 cb  # 01/add 3/mod/direct 3/rm32/ebx 1/r32/ecx"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-modrm-byte-from-subop:
+    # pack mod, rm32 and subop operands into ModR/M byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ff 6/subop/push 0/mod 0/rm32")
+    # . . push args
+    68/push  "ff 6/subop/push 0/mod 0/rm32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ff 30  # ff 6/subop/push 0/mod 0/rm32", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-modrm-byte-from-subop"/imm32
+    68/push  "ff 30  # ff 6/subop/push 0/mod 0/rm32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-modrm-byte-with-missing-mod:
+    # pack rm32 and r32 operands into ModR/M byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/rm32 1/r32")
+    # . . push args
+    68/push  "8b/copy 0/rm32 1/r32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 08  # 8b/copy 0/rm32 1/r32", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-modrm-byte-with-missing-mod"/imm32
+    68/push  "8b 08  # 8b/copy 0/rm32 1/r32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-modrm-byte-with-missing-rm32:
+    # pack mod and r32 operands into ModR/M byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/mod 1/r32")
+    # . . push args
+    68/push  "8b/copy 0/mod 1/r32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 08  # 8b/copy 0/mod 1/r32", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-modrm-byte-with-missing-rm32"/imm32
+    68/push  "8b 08  # 8b/copy 0/mod 1/r32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-modrm-byte-with-missing-r32:
+    # pack mod and rm32 operands into ModR/M byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/mod 0/rm32")
+    # . . push args
+    68/push  "8b/copy 0/mod 0/rm32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 00  # 8b/copy 0/mod 0/rm32", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-modrm-byte-with-missing-r32"/imm32
+    68/push  "8b 00  # 8b/copy 0/mod 0/rm32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-sib-byte:
+    # pack base, index and scale operands into SIB byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale")
+    # . . push args
+    68/push  "8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-sib-byte"/imm32
+    68/push  "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index 0/scale"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-scale:
+    # pack base, index and scale operands into SIB byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/scale")
+    # . . push args
+    68/push  "8b/copy 0/mod 4/rm32 1/scale"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 04 40  # 8b/copy 0/mod 4/rm32 1/scale", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-scale"/imm32
+    68/push  "8b 04 40  # 8b/copy 0/mod 4/rm32 1/scale"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-sib-byte-with-missing-base:
+    # pack index and scale operands into SIB byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale")
+    # . . push args
+    68/push  "8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-sib-byte-with-missing-base"/imm32
+    68/push  "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 1/index 0/scale"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-sib-byte-with-missing-index:
+    # pack base and scale operands into SIB byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale")
+    # . . push args
+    68/push  "8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-sib-byte-with-missing-index"/imm32
+    68/push  "8b 0c 00  # 8b/copy 0/mod 4/rm32 1/r32 0/base 0/scale"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-emits-sib-byte-with-missing-scale:
+    # pack base and index operands into SIB byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "8b/copy 0/mod 4/rm32 1/r32 0/base 1/index")
+    # . . push args
+    68/push  "8b/copy 0/mod 4/rm32 1/r32 0/base 1/index"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-emits-sib-byte-with-missing-scale"/imm32
+    68/push  "8b 0c 08  # 8b/copy 0/mod 4/rm32 1/r32 0/base 1/index"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-disp32-operand:
+    # expand /disp32 operand into 4 bytes
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "e8/call 20/disp32")
+    # . . push args
+    68/push  "e8/call 20/disp32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "e8 20 00 00 00  # e8/call 20/disp32", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-disp32-operand"/imm32
+    68/push  "e8 20 00 00 00  # e8/call 20/disp32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-disp16-operand:
+    # expand /disp16 operand into 2 bytes
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "e8/call 20/disp16")
+    # . . push args
+    68/push  "e8/call 20/disp16"/imm32  # not a valid instruction
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "e8 20 00  # e8/call 20/disp16", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-disp16-operand"/imm32
+    68/push  "e8 20 00  # e8/call 20/disp16"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-disp8-operand:
+    # expand /disp8 operand into 1 byte
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "eb/jump 20/disp8")
+    # . . push args
+    68/push  "eb/jump 20/disp8"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "eb 20  # eb/jump 20/disp8", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-disp8-operand"/imm32
+    68/push  "eb 20  # eb/jump 20/disp8"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-disp8-name:
+    # pass /disp8 name directly through
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "eb/jump xyz/disp8")
+    # . . push args
+    68/push  "eb/jump xyz/disp8"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "eb xyz/disp8  # eb/jump xyz/disp8", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-disp8-name"/imm32
+    68/push  "eb xyz/disp8  # eb/jump xyz/disp8"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-imm32-operand:
+    # expand /imm32 operand into 4 bytes
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "68/push 0x20/imm32")
+    # . . push args
+    68/push  "68/push 0x20/imm32"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "68 20 00 00 00  # 68/push 0x20/imm32", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-imm32-operand"/imm32
+    68/push  "68 20 00 00 00  # 68/push 0x20/imm32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-imm16-operand:
+    # expand /imm16 operand into 2 bytes
+    # we don't have one of these at the moment, so this expands to an invalid instruction
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "68/push 0x20/imm16")
+    # . . push args
+    68/push  "68/push 0x20/imm16"/imm32  # not a valid instruction
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "68 20 00  # 68/push 0x20/imm16", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-imm16-operand"/imm32
+    68/push  "68 20 00  # 68/push 0x20/imm16"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-convert-instruction-handles-imm8-operand:
+    # expand /imm8 operand into 1 byte
+    # we don't have one of these at the moment, so this expands to an invalid instruction
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "68/push 0x20/imm8")
+    # . . push args
+    68/push  "68/push 0x20/imm8"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # convert-instruction(_test-input-stream, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  convert-instruction/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check output
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "68 20  # 68/push 0x20/imm8", msg)
+    # . . push args
+    68/push  "F - test-convert-instruction-handles-imm8-operand"/imm32
+    68/push  "68 20  # 68/push 0x20/imm8"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# shortcut for parse-hex-int-from-slice(next-token-from-slice(word->start, word->end, '/'))
+parse-datum-of-word:  # word: (addr slice) -> value/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # esi = word
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # slice = next-token-from-slice(word->start, word->end, '/')
+    # . . push args
+    51/push-ecx
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # return parse-hex-int-from-slice(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$parse-datum-of-word:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/parse-int.mu b/linux/parse-int.mu
new file mode 100644
index 00000000..5bef26ab
--- /dev/null
+++ b/linux/parse-int.mu
@@ -0,0 +1,47 @@
+# parse a decimal int at the commandline
+#
+# To run:
+#   $ ./translate_mu apps/parse-int.mu
+#   $ ./a.elf 123
+#   $ echo $?
+#   123
+
+fn main _args: (addr array addr array byte) -> _/ebx: int {
+  # if no args, print a message and exit
+  var args/esi: (addr array addr array byte) <- copy _args
+  var n/ecx: int <- length args
+  compare n, 1
+  {
+    break-if->
+    print-string 0/screen, "usage: parse-int <integer>\n"
+    return 1
+  }
+  # otherwise parse the first arg as an integer
+  var in/ecx: (addr addr array byte) <- index args, 1
+  var out/eax: int <- parse-int *in
+  return out
+}
+
+fn parse-int _in: (addr array byte) -> _/eax: int {
+  var in/esi: (addr array byte) <- copy _in
+  var len/edx: int <- length in
+  var i/ecx: int <- copy 0
+  var result/edi: int <- copy 0
+  {
+    compare i, len
+    break-if->=
+    # result *= 10
+    var ten/eax: int <- copy 0xa
+    result <- multiply ten
+    # c = in[i]
+    var tmp/ebx: (addr byte) <- index in, i
+    var c/eax: byte <- copy-byte *tmp
+    #
+    var g/eax: grapheme <- copy c
+    var digit/eax: int <- to-decimal-digit g
+    result <- add digit
+    i <- increment
+    loop
+  }
+  return result
+}
diff --git a/linux/print-file.mu b/linux/print-file.mu
new file mode 100644
index 00000000..57e044dc
--- /dev/null
+++ b/linux/print-file.mu
@@ -0,0 +1,39 @@
+# accept a filename on the commandline, read it and print it out to screen
+# only ascii right now, just like the rest of Mu
+#
+# To run:
+#   $ ./translate_mu apps/print-file.mu
+#   $ echo abc > x
+#   $ ./a.elf x
+#   abc
+
+fn main _args: (addr array addr array byte) -> _/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy _args
+  var n/ecx: int <- length args
+  compare n, 1
+  {
+    break-if->
+    print-string 0/screen, "usage: cat <filename>\n"
+    return 0
+  }
+  {
+    break-if-<=
+    var filename/edx: (addr addr array byte) <- index args 1
+    var in: (handle buffered-file)
+    {
+      var addr-in/eax: (addr handle buffered-file) <- address in
+      open *filename, 0/read-only, addr-in
+    }
+    var _in-addr/eax: (addr buffered-file) <- lookup in
+    var in-addr/ecx: (addr buffered-file) <- copy _in-addr
+    {
+      var c/eax: byte <- read-byte-buffered in-addr
+      compare c, 0xffffffff/end-of-file
+      break-if-=
+      var g/eax: grapheme <- copy c
+      print-grapheme 0/screen, g
+      loop
+    }
+  }
+  return 0
+}
diff --git a/linux/random.subx b/linux/random.subx
new file mode 100644
index 00000000..71012309
--- /dev/null
+++ b/linux/random.subx
@@ -0,0 +1,59 @@
+# Repeatedly read 32-bit numbers from /dev/random, print them to stdout.
+#
+# To run:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/random.subx -o apps/random
+#   $ ./bootstrap run apps/random
+
+== code 0x09000000
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:
+    # stream/esi = syscall(open, "/dev/null", O_RDONLY, 0)  # we can't use 'fd' because it looks like a hex byte
+    bb/copy-to-ebx  Filename/imm32
+    b9/copy-to-ecx  0/imm32/rdonly
+    ba/copy-to-edx  0x180/imm32/fixed-perms
+    e8/call  syscall_open/disp32
+    # . stream = eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
+
+$loop:
+
+    # syscall(read, Stream, N, 4)
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           6/r32/esi   .               .                 # copy esi to ebx
+    b9/copy-to-ecx  N/imm32
+    ba/copy-to-edx  4/imm32/size
+    e8/call  syscall_read/disp32
+
+    # write-int32-hex-buffered(Stdout, *N)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           N/disp32                          # push *N
+    68/push  Stdout/imm32
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+
+    # write-buffered(Stdout, Newline)
+    # . . push args
+    68/push  Newline/imm32
+    68/push  Stdout/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    eb/jump  $loop/disp8
+
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+    e8/call  syscall_exit/disp32
+
+== data 0x0a000000
+
+N:
+    0/imm32
+Filename:
+    2f 64 65 76 2f 72 61 6e 64 6f 6d 00
+#   /  d  e  v  /  r  a  n  d  o  m  null
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/raytracing/1.cc b/linux/raytracing/1.cc
new file mode 100644
index 00000000..254f531c
--- /dev/null
+++ b/linux/raytracing/1.cc
@@ -0,0 +1,18 @@
+// https://raytracing.github.io/books/RayTracingInOneWeekend.html
+#include <iostream>
+
+int main() {
+
+    // Image
+
+    const int image_width = 256;
+    const int image_height = 256;
+
+    // Render
+
+    std::cout << "P3\n" << image_width << ' ' << image_height << "\n255\n";
+
+    for (int j = image_height-1; j >= 0; --j)
+        for (int i = 0; i < image_width; ++i)
+            std::cout << i << ' ' << j << " 64\n";
+}
diff --git a/linux/raytracing/1.cc.0 b/linux/raytracing/1.cc.0
new file mode 100644
index 00000000..13d5a1b6
--- /dev/null
+++ b/linux/raytracing/1.cc.0
@@ -0,0 +1,28 @@
+// https://raytracing.github.io/books/RayTracingInOneWeekend.html
+#include <iostream>
+
+int main() {
+
+    // Image
+
+    const int image_width = 256;
+    const int image_height = 256;
+
+    // Render
+
+    std::cout << "P3\n" << image_width << ' ' << image_height << "\n255\n";
+
+    for (int j = image_height-1; j >= 0; --j) {
+        for (int i = 0; i < image_width; ++i) {
+            auto r = double(i) / (image_width-1);
+            auto g = double(j) / (image_height-1);
+            auto b = 0.25;
+
+            int ir = static_cast<int>(255.999 * r);
+            int ig = static_cast<int>(255.999 * g);
+            int ib = static_cast<int>(255.999 * b);
+
+            std::cout << ir << ' ' << ig << ' ' << ib << '\n';
+        }
+    }
+}
diff --git a/linux/raytracing/1.mu b/linux/raytracing/1.mu
new file mode 100644
index 00000000..fbc76f1d
--- /dev/null
+++ b/linux/raytracing/1.mu
@@ -0,0 +1,31 @@
+# Listing 1 of https://raytracing.github.io/books/RayTracingInOneWeekend.html
+# (simplified)
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/raytracing/1.mu
+#   $ ./a.elf > 1.ppm
+
+fn main -> _/ebx: int {
+  print-string 0, "P3\n256 256\n255\n"
+  var j/ecx: int <- copy 0xff
+  {
+    compare j, 0
+    break-if-<
+    var i/eax: int <- copy 0
+    {
+      compare i, 0xff
+      break-if->
+      print-int32-decimal 0, i
+      print-string 0, " "
+      print-int32-decimal 0, j
+      print-string 0, " 64\n"
+      i <- increment
+      loop
+    }
+    j <- decrement
+    loop
+  }
+  return 0
+}
diff --git a/linux/raytracing/1.ppm b/linux/raytracing/1.ppm
new file mode 100644
index 00000000..902cc97f
--- /dev/null
+++ b/linux/raytracing/1.ppm
@@ -0,0 +1,65539 @@
+P3
+256 256
+255
+0 255 64
+1 255 64
+2 255 64
+3 255 64
+4 255 64
+5 255 64
+6 255 64
+7 255 64
+8 255 64
+9 255 64
+10 255 64
+11 255 64
+12 255 64
+13 255 64
+14 255 64
+15 255 64
+16 255 64
+17 255 64
+18 255 64
+19 255 64
+20 255 64
+21 255 64
+22 255 64
+23 255 64
+24 255 64
+25 255 64
+26 255 64
+27 255 64
+28 255 64
+29 255 64
+30 255 64
+31 255 64
+32 255 64
+33 255 64
+34 255 64
+35 255 64
+36 255 64
+37 255 64
+38 255 64
+39 255 64
+40 255 64
+41 255 64
+42 255 64
+43 255 64
+44 255 64
+45 255 64
+46 255 64
+47 255 64
+48 255 64
+49 255 64
+50 255 64
+51 255 64
+52 255 64
+53 255 64
+54 255 64
+55 255 64
+56 255 64
+57 255 64
+58 255 64
+59 255 64
+60 255 64
+61 255 64
+62 255 64
+63 255 64
+64 255 64
+65 255 64
+66 255 64
+67 255 64
+68 255 64
+69 255 64
+70 255 64
+71 255 64
+72 255 64
+73 255 64
+74 255 64
+75 255 64
+76 255 64
+77 255 64
+78 255 64
+79 255 64
+80 255 64
+81 255 64
+82 255 64
+83 255 64
+84 255 64
+85 255 64
+86 255 64
+87 255 64
+88 255 64
+89 255 64
+90 255 64
+91 255 64
+92 255 64
+93 255 64
+94 255 64
+95 255 64
+96 255 64
+97 255 64
+98 255 64
+99 255 64
+100 255 64
+101 255 64
+102 255 64
+103 255 64
+104 255 64
+105 255 64
+106 255 64
+107 255 64
+108 255 64
+109 255 64
+110 255 64
+111 255 64
+112 255 64
+113 255 64
+114 255 64
+115 255 64
+116 255 64
+117 255 64
+118 255 64
+119 255 64
+120 255 64
+121 255 64
+122 255 64
+123 255 64
+124 255 64
+125 255 64
+126 255 64
+127 255 64
+128 255 64
+129 255 64
+130 255 64
+131 255 64
+132 255 64
+133 255 64
+134 255 64
+135 255 64
+136 255 64
+137 255 64
+138 255 64
+139 255 64
+140 255 64
+141 255 64
+142 255 64
+143 255 64
+144 255 64
+145 255 64
+146 255 64
+147 255 64
+148 255 64
+149 255 64
+150 255 64
+151 255 64
+152 255 64
+153 255 64
+154 255 64
+155 255 64
+156 255 64
+157 255 64
+158 255 64
+159 255 64
+160 255 64
+161 255 64
+162 255 64
+163 255 64
+164 255 64
+165 255 64
+166 255 64
+167 255 64
+168 255 64
+169 255 64
+170 255 64
+171 255 64
+172 255 64
+173 255 64
+174 255 64
+175 255 64
+176 255 64
+177 255 64
+178 255 64
+179 255 64
+180 255 64
+181 255 64
+182 255 64
+183 255 64
+184 255 64
+185 255 64
+186 255 64
+187 255 64
+188 255 64
+189 255 64
+190 255 64
+191 255 64
+192 255 64
+193 255 64
+194 255 64
+195 255 64
+196 255 64
+197 255 64
+198 255 64
+199 255 64
+200 255 64
+201 255 64
+202 255 64
+203 255 64
+204 255 64
+205 255 64
+206 255 64
+207 255 64
+208 255 64
+209 255 64
+210 255 64
+211 255 64
+212 255 64
+213 255 64
+214 255 64
+215 255 64
+216 255 64
+217 255 64
+218 255 64
+219 255 64
+220 255 64
+221 255 64
+222 255 64
+223 255 64
+224 255 64
+225 255 64
+226 255 64
+227 255 64
+228 255 64
+229 255 64
+230 255 64
+231 255 64
+232 255 64
+233 255 64
+234 255 64
+235 255 64
+236 255 64
+237 255 64
+238 255 64
+239 255 64
+240 255 64
+241 255 64
+242 255 64
+243 255 64
+244 255 64
+245 255 64
+246 255 64
+247 255 64
+248 255 64
+249 255 64
+250 255 64
+251 255 64
+252 255 64
+253 255 64
+254 255 64
+255 255 64
+0 254 64
+1 254 64
+2 254 64
+3 254 64
+4 254 64
+5 254 64
+6 254 64
+7 254 64
+8 254 64
+9 254 64
+10 254 64
+11 254 64
+12 254 64
+13 254 64
+14 254 64
+15 254 64
+16 254 64
+17 254 64
+18 254 64
+19 254 64
+20 254 64
+21 254 64
+22 254 64
+23 254 64
+24 254 64
+25 254 64
+26 254 64
+27 254 64
+28 254 64
+29 254 64
+30 254 64
+31 254 64
+32 254 64
+33 254 64
+34 254 64
+35 254 64
+36 254 64
+37 254 64
+38 254 64
+39 254 64
+40 254 64
+41 254 64
+42 254 64
+43 254 64
+44 254 64
+45 254 64
+46 254 64
+47 254 64
+48 254 64
+49 254 64
+50 254 64
+51 254 64
+52 254 64
+53 254 64
+54 254 64
+55 254 64
+56 254 64
+57 254 64
+58 254 64
+59 254 64
+60 254 64
+61 254 64
+62 254 64
+63 254 64
+64 254 64
+65 254 64
+66 254 64
+67 254 64
+68 254 64
+69 254 64
+70 254 64
+71 254 64
+72 254 64
+73 254 64
+74 254 64
+75 254 64
+76 254 64
+77 254 64
+78 254 64
+79 254 64
+80 254 64
+81 254 64
+82 254 64
+83 254 64
+84 254 64
+85 254 64
+86 254 64
+87 254 64
+88 254 64
+89 254 64
+90 254 64
+91 254 64
+92 254 64
+93 254 64
+94 254 64
+95 254 64
+96 254 64
+97 254 64
+98 254 64
+99 254 64
+100 254 64
+101 254 64
+102 254 64
+103 254 64
+104 254 64
+105 254 64
+106 254 64
+107 254 64
+108 254 64
+109 254 64
+110 254 64
+111 254 64
+112 254 64
+113 254 64
+114 254 64
+115 254 64
+116 254 64
+117 254 64
+118 254 64
+119 254 64
+120 254 64
+121 254 64
+122 254 64
+123 254 64
+124 254 64
+125 254 64
+126 254 64
+127 254 64
+128 254 64
+129 254 64
+130 254 64
+131 254 64
+132 254 64
+133 254 64
+134 254 64
+135 254 64
+136 254 64
+137 254 64
+138 254 64
+139 254 64
+140 254 64
+141 254 64
+142 254 64
+143 254 64
+144 254 64
+145 254 64
+146 254 64
+147 254 64
+148 254 64
+149 254 64
+150 254 64
+151 254 64
+152 254 64
+153 254 64
+154 254 64
+155 254 64
+156 254 64
+157 254 64
+158 254 64
+159 254 64
+160 254 64
+161 254 64
+162 254 64
+163 254 64
+164 254 64
+165 254 64
+166 254 64
+167 254 64
+168 254 64
+169 254 64
+170 254 64
+171 254 64
+172 254 64
+173 254 64
+174 254 64
+175 254 64
+176 254 64
+177 254 64
+178 254 64
+179 254 64
+180 254 64
+181 254 64
+182 254 64
+183 254 64
+184 254 64
+185 254 64
+186 254 64
+187 254 64
+188 254 64
+189 254 64
+190 254 64
+191 254 64
+192 254 64
+193 254 64
+194 254 64
+195 254 64
+196 254 64
+197 254 64
+198 254 64
+199 254 64
+200 254 64
+201 254 64
+202 254 64
+203 254 64
+204 254 64
+205 254 64
+206 254 64
+207 254 64
+208 254 64
+209 254 64
+210 254 64
+211 254 64
+212 254 64
+213 254 64
+214 254 64
+215 254 64
+216 254 64
+217 254 64
+218 254 64
+219 254 64
+220 254 64
+221 254 64
+222 254 64
+223 254 64
+224 254 64
+225 254 64
+226 254 64
+227 254 64
+228 254 64
+229 254 64
+230 254 64
+231 254 64
+232 254 64
+233 254 64
+234 254 64
+235 254 64
+236 254 64
+237 254 64
+238 254 64
+239 254 64
+240 254 64
+241 254 64
+242 254 64
+243 254 64
+244 254 64
+245 254 64
+246 254 64
+247 254 64
+248 254 64
+249 254 64
+250 254 64
+251 254 64
+252 254 64
+253 254 64
+254 254 64
+255 254 64
+0 253 64
+1 253 64
+2 253 64
+3 253 64
+4 253 64
+5 253 64
+6 253 64
+7 253 64
+8 253 64
+9 253 64
+10 253 64
+11 253 64
+12 253 64
+13 253 64
+14 253 64
+15 253 64
+16 253 64
+17 253 64
+18 253 64
+19 253 64
+20 253 64
+21 253 64
+22 253 64
+23 253 64
+24 253 64
+25 253 64
+26 253 64
+27 253 64
+28 253 64
+29 253 64
+30 253 64
+31 253 64
+32 253 64
+33 253 64
+34 253 64
+35 253 64
+36 253 64
+37 253 64
+38 253 64
+39 253 64
+40 253 64
+41 253 64
+42 253 64
+43 253 64
+44 253 64
+45 253 64
+46 253 64
+47 253 64
+48 253 64
+49 253 64
+50 253 64
+51 253 64
+52 253 64
+53 253 64
+54 253 64
+55 253 64
+56 253 64
+57 253 64
+58 253 64
+59 253 64
+60 253 64
+61 253 64
+62 253 64
+63 253 64
+64 253 64
+65 253 64
+66 253 64
+67 253 64
+68 253 64
+69 253 64
+70 253 64
+71 253 64
+72 253 64
+73 253 64
+74 253 64
+75 253 64
+76 253 64
+77 253 64
+78 253 64
+79 253 64
+80 253 64
+81 253 64
+82 253 64
+83 253 64
+84 253 64
+85 253 64
+86 253 64
+87 253 64
+88 253 64
+89 253 64
+90 253 64
+91 253 64
+92 253 64
+93 253 64
+94 253 64
+95 253 64
+96 253 64
+97 253 64
+98 253 64
+99 253 64
+100 253 64
+101 253 64
+102 253 64
+103 253 64
+104 253 64
+105 253 64
+106 253 64
+107 253 64
+108 253 64
+109 253 64
+110 253 64
+111 253 64
+112 253 64
+113 253 64
+114 253 64
+115 253 64
+116 253 64
+117 253 64
+118 253 64
+119 253 64
+120 253 64
+121 253 64
+122 253 64
+123 253 64
+124 253 64
+125 253 64
+126 253 64
+127 253 64
+128 253 64
+129 253 64
+130 253 64
+131 253 64
+132 253 64
+133 253 64
+134 253 64
+135 253 64
+136 253 64
+137 253 64
+138 253 64
+139 253 64
+140 253 64
+141 253 64
+142 253 64
+143 253 64
+144 253 64
+145 253 64
+146 253 64
+147 253 64
+148 253 64
+149 253 64
+150 253 64
+151 253 64
+152 253 64
+153 253 64
+154 253 64
+155 253 64
+156 253 64
+157 253 64
+158 253 64
+159 253 64
+160 253 64
+161 253 64
+162 253 64
+163 253 64
+164 253 64
+165 253 64
+166 253 64
+167 253 64
+168 253 64
+169 253 64
+170 253 64
+171 253 64
+172 253 64
+173 253 64
+174 253 64
+175 253 64
+176 253 64
+177 253 64
+178 253 64
+179 253 64
+180 253 64
+181 253 64
+182 253 64
+183 253 64
+184 253 64
+185 253 64
+186 253 64
+187 253 64
+188 253 64
+189 253 64
+190 253 64
+191 253 64
+192 253 64
+193 253 64
+194 253 64
+195 253 64
+196 253 64
+197 253 64
+198 253 64
+199 253 64
+200 253 64
+201 253 64
+202 253 64
+203 253 64
+204 253 64
+205 253 64
+206 253 64
+207 253 64
+208 253 64
+209 253 64
+210 253 64
+211 253 64
+212 253 64
+213 253 64
+214 253 64
+215 253 64
+216 253 64
+217 253 64
+218 253 64
+219 253 64
+220 253 64
+221 253 64
+222 253 64
+223 253 64
+224 253 64
+225 253 64
+226 253 64
+227 253 64
+228 253 64
+229 253 64
+230 253 64
+231 253 64
+232 253 64
+233 253 64
+234 253 64
+235 253 64
+236 253 64
+237 253 64
+238 253 64
+239 253 64
+240 253 64
+241 253 64
+242 253 64
+243 253 64
+244 253 64
+245 253 64
+246 253 64
+247 253 64
+248 253 64
+249 253 64
+250 253 64
+251 253 64
+252 253 64
+253 253 64
+254 253 64
+255 253 64
+0 252 64
+1 252 64
+2 252 64
+3 252 64
+4 252 64
+5 252 64
+6 252 64
+7 252 64
+8 252 64
+9 252 64
+10 252 64
+11 252 64
+12 252 64
+13 252 64
+14 252 64
+15 252 64
+16 252 64
+17 252 64
+18 252 64
+19 252 64
+20 252 64
+21 252 64
+22 252 64
+23 252 64
+24 252 64
+25 252 64
+26 252 64
+27 252 64
+28 252 64
+29 252 64
+30 252 64
+31 252 64
+32 252 64
+33 252 64
+34 252 64
+35 252 64
+36 252 64
+37 252 64
+38 252 64
+39 252 64
+40 252 64
+41 252 64
+42 252 64
+43 252 64
+44 252 64
+45 252 64
+46 252 64
+47 252 64
+48 252 64
+49 252 64
+50 252 64
+51 252 64
+52 252 64
+53 252 64
+54 252 64
+55 252 64
+56 252 64
+57 252 64
+58 252 64
+59 252 64
+60 252 64
+61 252 64
+62 252 64
+63 252 64
+64 252 64
+65 252 64
+66 252 64
+67 252 64
+68 252 64
+69 252 64
+70 252 64
+71 252 64
+72 252 64
+73 252 64
+74 252 64
+75 252 64
+76 252 64
+77 252 64
+78 252 64
+79 252 64
+80 252 64
+81 252 64
+82 252 64
+83 252 64
+84 252 64
+85 252 64
+86 252 64
+87 252 64
+88 252 64
+89 252 64
+90 252 64
+91 252 64
+92 252 64
+93 252 64
+94 252 64
+95 252 64
+96 252 64
+97 252 64
+98 252 64
+99 252 64
+100 252 64
+101 252 64
+102 252 64
+103 252 64
+104 252 64
+105 252 64
+106 252 64
+107 252 64
+108 252 64
+109 252 64
+110 252 64
+111 252 64
+112 252 64
+113 252 64
+114 252 64
+115 252 64
+116 252 64
+117 252 64
+118 252 64
+119 252 64
+120 252 64
+121 252 64
+122 252 64
+123 252 64
+124 252 64
+125 252 64
+126 252 64
+127 252 64
+128 252 64
+129 252 64
+130 252 64
+131 252 64
+132 252 64
+133 252 64
+134 252 64
+135 252 64
+136 252 64
+137 252 64
+138 252 64
+139 252 64
+140 252 64
+141 252 64
+142 252 64
+143 252 64
+144 252 64
+145 252 64
+146 252 64
+147 252 64
+148 252 64
+149 252 64
+150 252 64
+151 252 64
+152 252 64
+153 252 64
+154 252 64
+155 252 64
+156 252 64
+157 252 64
+158 252 64
+159 252 64
+160 252 64
+161 252 64
+162 252 64
+163 252 64
+164 252 64
+165 252 64
+166 252 64
+167 252 64
+168 252 64
+169 252 64
+170 252 64
+171 252 64
+172 252 64
+173 252 64
+174 252 64
+175 252 64
+176 252 64
+177 252 64
+178 252 64
+179 252 64
+180 252 64
+181 252 64
+182 252 64
+183 252 64
+184 252 64
+185 252 64
+186 252 64
+187 252 64
+188 252 64
+189 252 64
+190 252 64
+191 252 64
+192 252 64
+193 252 64
+194 252 64
+195 252 64
+196 252 64
+197 252 64
+198 252 64
+199 252 64
+200 252 64
+201 252 64
+202 252 64
+203 252 64
+204 252 64
+205 252 64
+206 252 64
+207 252 64
+208 252 64
+209 252 64
+210 252 64
+211 252 64
+212 252 64
+213 252 64
+214 252 64
+215 252 64
+216 252 64
+217 252 64
+218 252 64
+219 252 64
+220 252 64
+221 252 64
+222 252 64
+223 252 64
+224 252 64
+225 252 64
+226 252 64
+227 252 64
+228 252 64
+229 252 64
+230 252 64
+231 252 64
+232 252 64
+233 252 64
+234 252 64
+235 252 64
+236 252 64
+237 252 64
+238 252 64
+239 252 64
+240 252 64
+241 252 64
+242 252 64
+243 252 64
+244 252 64
+245 252 64
+246 252 64
+247 252 64
+248 252 64
+249 252 64
+250 252 64
+251 252 64
+252 252 64
+253 252 64
+254 252 64
+255 252 64
+0 251 64
+1 251 64
+2 251 64
+3 251 64
+4 251 64
+5 251 64
+6 251 64
+7 251 64
+8 251 64
+9 251 64
+10 251 64
+11 251 64
+12 251 64
+13 251 64
+14 251 64
+15 251 64
+16 251 64
+17 251 64
+18 251 64
+19 251 64
+20 251 64
+21 251 64
+22 251 64
+23 251 64
+24 251 64
+25 251 64
+26 251 64
+27 251 64
+28 251 64
+29 251 64
+30 251 64
+31 251 64
+32 251 64
+33 251 64
+34 251 64
+35 251 64
+36 251 64
+37 251 64
+38 251 64
+39 251 64
+40 251 64
+41 251 64
+42 251 64
+43 251 64
+44 251 64
+45 251 64
+46 251 64
+47 251 64
+48 251 64
+49 251 64
+50 251 64
+51 251 64
+52 251 64
+53 251 64
+54 251 64
+55 251 64
+56 251 64
+57 251 64
+58 251 64
+59 251 64
+60 251 64
+61 251 64
+62 251 64
+63 251 64
+64 251 64
+65 251 64
+66 251 64
+67 251 64
+68 251 64
+69 251 64
+70 251 64
+71 251 64
+72 251 64
+73 251 64
+74 251 64
+75 251 64
+76 251 64
+77 251 64
+78 251 64
+79 251 64
+80 251 64
+81 251 64
+82 251 64
+83 251 64
+84 251 64
+85 251 64
+86 251 64
+87 251 64
+88 251 64
+89 251 64
+90 251 64
+91 251 64
+92 251 64
+93 251 64
+94 251 64
+95 251 64
+96 251 64
+97 251 64
+98 251 64
+99 251 64
+100 251 64
+101 251 64
+102 251 64
+103 251 64
+104 251 64
+105 251 64
+106 251 64
+107 251 64
+108 251 64
+109 251 64
+110 251 64
+111 251 64
+112 251 64
+113 251 64
+114 251 64
+115 251 64
+116 251 64
+117 251 64
+118 251 64
+119 251 64
+120 251 64
+121 251 64
+122 251 64
+123 251 64
+124 251 64
+125 251 64
+126 251 64
+127 251 64
+128 251 64
+129 251 64
+130 251 64
+131 251 64
+132 251 64
+133 251 64
+134 251 64
+135 251 64
+136 251 64
+137 251 64
+138 251 64
+139 251 64
+140 251 64
+141 251 64
+142 251 64
+143 251 64
+144 251 64
+145 251 64
+146 251 64
+147 251 64
+148 251 64
+149 251 64
+150 251 64
+151 251 64
+152 251 64
+153 251 64
+154 251 64
+155 251 64
+156 251 64
+157 251 64
+158 251 64
+159 251 64
+160 251 64
+161 251 64
+162 251 64
+163 251 64
+164 251 64
+165 251 64
+166 251 64
+167 251 64
+168 251 64
+169 251 64
+170 251 64
+171 251 64
+172 251 64
+173 251 64
+174 251 64
+175 251 64
+176 251 64
+177 251 64
+178 251 64
+179 251 64
+180 251 64
+181 251 64
+182 251 64
+183 251 64
+184 251 64
+185 251 64
+186 251 64
+187 251 64
+188 251 64
+189 251 64
+190 251 64
+191 251 64
+192 251 64
+193 251 64
+194 251 64
+195 251 64
+196 251 64
+197 251 64
+198 251 64
+199 251 64
+200 251 64
+201 251 64
+202 251 64
+203 251 64
+204 251 64
+205 251 64
+206 251 64
+207 251 64
+208 251 64
+209 251 64
+210 251 64
+211 251 64
+212 251 64
+213 251 64
+214 251 64
+215 251 64
+216 251 64
+217 251 64
+218 251 64
+219 251 64
+220 251 64
+221 251 64
+222 251 64
+223 251 64
+224 251 64
+225 251 64
+226 251 64
+227 251 64
+228 251 64
+229 251 64
+230 251 64
+231 251 64
+232 251 64
+233 251 64
+234 251 64
+235 251 64
+236 251 64
+237 251 64
+238 251 64
+239 251 64
+240 251 64
+241 251 64
+242 251 64
+243 251 64
+244 251 64
+245 251 64
+246 251 64
+247 251 64
+248 251 64
+249 251 64
+250 251 64
+251 251 64
+252 251 64
+253 251 64
+254 251 64
+255 251 64
+0 250 64
+1 250 64
+2 250 64
+3 250 64
+4 250 64
+5 250 64
+6 250 64
+7 250 64
+8 250 64
+9 250 64
+10 250 64
+11 250 64
+12 250 64
+13 250 64
+14 250 64
+15 250 64
+16 250 64
+17 250 64
+18 250 64
+19 250 64
+20 250 64
+21 250 64
+22 250 64
+23 250 64
+24 250 64
+25 250 64
+26 250 64
+27 250 64
+28 250 64
+29 250 64
+30 250 64
+31 250 64
+32 250 64
+33 250 64
+34 250 64
+35 250 64
+36 250 64
+37 250 64
+38 250 64
+39 250 64
+40 250 64
+41 250 64
+42 250 64
+43 250 64
+44 250 64
+45 250 64
+46 250 64
+47 250 64
+48 250 64
+49 250 64
+50 250 64
+51 250 64
+52 250 64
+53 250 64
+54 250 64
+55 250 64
+56 250 64
+57 250 64
+58 250 64
+59 250 64
+60 250 64
+61 250 64
+62 250 64
+63 250 64
+64 250 64
+65 250 64
+66 250 64
+67 250 64
+68 250 64
+69 250 64
+70 250 64
+71 250 64
+72 250 64
+73 250 64
+74 250 64
+75 250 64
+76 250 64
+77 250 64
+78 250 64
+79 250 64
+80 250 64
+81 250 64
+82 250 64
+83 250 64
+84 250 64
+85 250 64
+86 250 64
+87 250 64
+88 250 64
+89 250 64
+90 250 64
+91 250 64
+92 250 64
+93 250 64
+94 250 64
+95 250 64
+96 250 64
+97 250 64
+98 250 64
+99 250 64
+100 250 64
+101 250 64
+102 250 64
+103 250 64
+104 250 64
+105 250 64
+106 250 64
+107 250 64
+108 250 64
+109 250 64
+110 250 64
+111 250 64
+112 250 64
+113 250 64
+114 250 64
+115 250 64
+116 250 64
+117 250 64
+118 250 64
+119 250 64
+120 250 64
+121 250 64
+122 250 64
+123 250 64
+124 250 64
+125 250 64
+126 250 64
+127 250 64
+128 250 64
+129 250 64
+130 250 64
+131 250 64
+132 250 64
+133 250 64
+134 250 64
+135 250 64
+136 250 64
+137 250 64
+138 250 64
+139 250 64
+140 250 64
+141 250 64
+142 250 64
+143 250 64
+144 250 64
+145 250 64
+146 250 64
+147 250 64
+148 250 64
+149 250 64
+150 250 64
+151 250 64
+152 250 64
+153 250 64
+154 250 64
+155 250 64
+156 250 64
+157 250 64
+158 250 64
+159 250 64
+160 250 64
+161 250 64
+162 250 64
+163 250 64
+164 250 64
+165 250 64
+166 250 64
+167 250 64
+168 250 64
+169 250 64
+170 250 64
+171 250 64
+172 250 64
+173 250 64
+174 250 64
+175 250 64
+176 250 64
+177 250 64
+178 250 64
+179 250 64
+180 250 64
+181 250 64
+182 250 64
+183 250 64
+184 250 64
+185 250 64
+186 250 64
+187 250 64
+188 250 64
+189 250 64
+190 250 64
+191 250 64
+192 250 64
+193 250 64
+194 250 64
+195 250 64
+196 250 64
+197 250 64
+198 250 64
+199 250 64
+200 250 64
+201 250 64
+202 250 64
+203 250 64
+204 250 64
+205 250 64
+206 250 64
+207 250 64
+208 250 64
+209 250 64
+210 250 64
+211 250 64
+212 250 64
+213 250 64
+214 250 64
+215 250 64
+216 250 64
+217 250 64
+218 250 64
+219 250 64
+220 250 64
+221 250 64
+222 250 64
+223 250 64
+224 250 64
+225 250 64
+226 250 64
+227 250 64
+228 250 64
+229 250 64
+230 250 64
+231 250 64
+232 250 64
+233 250 64
+234 250 64
+235 250 64
+236 250 64
+237 250 64
+238 250 64
+239 250 64
+240 250 64
+241 250 64
+242 250 64
+243 250 64
+244 250 64
+245 250 64
+246 250 64
+247 250 64
+248 250 64
+249 250 64
+250 250 64
+251 250 64
+252 250 64
+253 250 64
+254 250 64
+255 250 64
+0 249 64
+1 249 64
+2 249 64
+3 249 64
+4 249 64
+5 249 64
+6 249 64
+7 249 64
+8 249 64
+9 249 64
+10 249 64
+11 249 64
+12 249 64
+13 249 64
+14 249 64
+15 249 64
+16 249 64
+17 249 64
+18 249 64
+19 249 64
+20 249 64
+21 249 64
+22 249 64
+23 249 64
+24 249 64
+25 249 64
+26 249 64
+27 249 64
+28 249 64
+29 249 64
+30 249 64
+31 249 64
+32 249 64
+33 249 64
+34 249 64
+35 249 64
+36 249 64
+37 249 64
+38 249 64
+39 249 64
+40 249 64
+41 249 64
+42 249 64
+43 249 64
+44 249 64
+45 249 64
+46 249 64
+47 249 64
+48 249 64
+49 249 64
+50 249 64
+51 249 64
+52 249 64
+53 249 64
+54 249 64
+55 249 64
+56 249 64
+57 249 64
+58 249 64
+59 249 64
+60 249 64
+61 249 64
+62 249 64
+63 249 64
+64 249 64
+65 249 64
+66 249 64
+67 249 64
+68 249 64
+69 249 64
+70 249 64
+71 249 64
+72 249 64
+73 249 64
+74 249 64
+75 249 64
+76 249 64
+77 249 64
+78 249 64
+79 249 64
+80 249 64
+81 249 64
+82 249 64
+83 249 64
+84 249 64
+85 249 64
+86 249 64
+87 249 64
+88 249 64
+89 249 64
+90 249 64
+91 249 64
+92 249 64
+93 249 64
+94 249 64
+95 249 64
+96 249 64
+97 249 64
+98 249 64
+99 249 64
+100 249 64
+101 249 64
+102 249 64
+103 249 64
+104 249 64
+105 249 64
+106 249 64
+107 249 64
+108 249 64
+109 249 64
+110 249 64
+111 249 64
+112 249 64
+113 249 64
+114 249 64
+115 249 64
+116 249 64
+117 249 64
+118 249 64
+119 249 64
+120 249 64
+121 249 64
+122 249 64
+123 249 64
+124 249 64
+125 249 64
+126 249 64
+127 249 64
+128 249 64
+129 249 64
+130 249 64
+131 249 64
+132 249 64
+133 249 64
+134 249 64
+135 249 64
+136 249 64
+137 249 64
+138 249 64
+139 249 64
+140 249 64
+141 249 64
+142 249 64
+143 249 64
+144 249 64
+145 249 64
+146 249 64
+147 249 64
+148 249 64
+149 249 64
+150 249 64
+151 249 64
+152 249 64
+153 249 64
+154 249 64
+155 249 64
+156 249 64
+157 249 64
+158 249 64
+159 249 64
+160 249 64
+161 249 64
+162 249 64
+163 249 64
+164 249 64
+165 249 64
+166 249 64
+167 249 64
+168 249 64
+169 249 64
+170 249 64
+171 249 64
+172 249 64
+173 249 64
+174 249 64
+175 249 64
+176 249 64
+177 249 64
+178 249 64
+179 249 64
+180 249 64
+181 249 64
+182 249 64
+183 249 64
+184 249 64
+185 249 64
+186 249 64
+187 249 64
+188 249 64
+189 249 64
+190 249 64
+191 249 64
+192 249 64
+193 249 64
+194 249 64
+195 249 64
+196 249 64
+197 249 64
+198 249 64
+199 249 64
+200 249 64
+201 249 64
+202 249 64
+203 249 64
+204 249 64
+205 249 64
+206 249 64
+207 249 64
+208 249 64
+209 249 64
+210 249 64
+211 249 64
+212 249 64
+213 249 64
+214 249 64
+215 249 64
+216 249 64
+217 249 64
+218 249 64
+219 249 64
+220 249 64
+221 249 64
+222 249 64
+223 249 64
+224 249 64
+225 249 64
+226 249 64
+227 249 64
+228 249 64
+229 249 64
+230 249 64
+231 249 64
+232 249 64
+233 249 64
+234 249 64
+235 249 64
+236 249 64
+237 249 64
+238 249 64
+239 249 64
+240 249 64
+241 249 64
+242 249 64
+243 249 64
+244 249 64
+245 249 64
+246 249 64
+247 249 64
+248 249 64
+249 249 64
+250 249 64
+251 249 64
+252 249 64
+253 249 64
+254 249 64
+255 249 64
+0 248 64
+1 248 64
+2 248 64
+3 248 64
+4 248 64
+5 248 64
+6 248 64
+7 248 64
+8 248 64
+9 248 64
+10 248 64
+11 248 64
+12 248 64
+13 248 64
+14 248 64
+15 248 64
+16 248 64
+17 248 64
+18 248 64
+19 248 64
+20 248 64
+21 248 64
+22 248 64
+23 248 64
+24 248 64
+25 248 64
+26 248 64
+27 248 64
+28 248 64
+29 248 64
+30 248 64
+31 248 64
+32 248 64
+33 248 64
+34 248 64
+35 248 64
+36 248 64
+37 248 64
+38 248 64
+39 248 64
+40 248 64
+41 248 64
+42 248 64
+43 248 64
+44 248 64
+45 248 64
+46 248 64
+47 248 64
+48 248 64
+49 248 64
+50 248 64
+51 248 64
+52 248 64
+53 248 64
+54 248 64
+55 248 64
+56 248 64
+57 248 64
+58 248 64
+59 248 64
+60 248 64
+61 248 64
+62 248 64
+63 248 64
+64 248 64
+65 248 64
+66 248 64
+67 248 64
+68 248 64
+69 248 64
+70 248 64
+71 248 64
+72 248 64
+73 248 64
+74 248 64
+75 248 64
+76 248 64
+77 248 64
+78 248 64
+79 248 64
+80 248 64
+81 248 64
+82 248 64
+83 248 64
+84 248 64
+85 248 64
+86 248 64
+87 248 64
+88 248 64
+89 248 64
+90 248 64
+91 248 64
+92 248 64
+93 248 64
+94 248 64
+95 248 64
+96 248 64
+97 248 64
+98 248 64
+99 248 64
+100 248 64
+101 248 64
+102 248 64
+103 248 64
+104 248 64
+105 248 64
+106 248 64
+107 248 64
+108 248 64
+109 248 64
+110 248 64
+111 248 64
+112 248 64
+113 248 64
+114 248 64
+115 248 64
+116 248 64
+117 248 64
+118 248 64
+119 248 64
+120 248 64
+121 248 64
+122 248 64
+123 248 64
+124 248 64
+125 248 64
+126 248 64
+127 248 64
+128 248 64
+129 248 64
+130 248 64
+131 248 64
+132 248 64
+133 248 64
+134 248 64
+135 248 64
+136 248 64
+137 248 64
+138 248 64
+139 248 64
+140 248 64
+141 248 64
+142 248 64
+143 248 64
+144 248 64
+145 248 64
+146 248 64
+147 248 64
+148 248 64
+149 248 64
+150 248 64
+151 248 64
+152 248 64
+153 248 64
+154 248 64
+155 248 64
+156 248 64
+157 248 64
+158 248 64
+159 248 64
+160 248 64
+161 248 64
+162 248 64
+163 248 64
+164 248 64
+165 248 64
+166 248 64
+167 248 64
+168 248 64
+169 248 64
+170 248 64
+171 248 64
+172 248 64
+173 248 64
+174 248 64
+175 248 64
+176 248 64
+177 248 64
+178 248 64
+179 248 64
+180 248 64
+181 248 64
+182 248 64
+183 248 64
+184 248 64
+185 248 64
+186 248 64
+187 248 64
+188 248 64
+189 248 64
+190 248 64
+191 248 64
+192 248 64
+193 248 64
+194 248 64
+195 248 64
+196 248 64
+197 248 64
+198 248 64
+199 248 64
+200 248 64
+201 248 64
+202 248 64
+203 248 64
+204 248 64
+205 248 64
+206 248 64
+207 248 64
+208 248 64
+209 248 64
+210 248 64
+211 248 64
+212 248 64
+213 248 64
+214 248 64
+215 248 64
+216 248 64
+217 248 64
+218 248 64
+219 248 64
+220 248 64
+221 248 64
+222 248 64
+223 248 64
+224 248 64
+225 248 64
+226 248 64
+227 248 64
+228 248 64
+229 248 64
+230 248 64
+231 248 64
+232 248 64
+233 248 64
+234 248 64
+235 248 64
+236 248 64
+237 248 64
+238 248 64
+239 248 64
+240 248 64
+241 248 64
+242 248 64
+243 248 64
+244 248 64
+245 248 64
+246 248 64
+247 248 64
+248 248 64
+249 248 64
+250 248 64
+251 248 64
+252 248 64
+253 248 64
+254 248 64
+255 248 64
+0 247 64
+1 247 64
+2 247 64
+3 247 64
+4 247 64
+5 247 64
+6 247 64
+7 247 64
+8 247 64
+9 247 64
+10 247 64
+11 247 64
+12 247 64
+13 247 64
+14 247 64
+15 247 64
+16 247 64
+17 247 64
+18 247 64
+19 247 64
+20 247 64
+21 247 64
+22 247 64
+23 247 64
+24 247 64
+25 247 64
+26 247 64
+27 247 64
+28 247 64
+29 247 64
+30 247 64
+31 247 64
+32 247 64
+33 247 64
+34 247 64
+35 247 64
+36 247 64
+37 247 64
+38 247 64
+39 247 64
+40 247 64
+41 247 64
+42 247 64
+43 247 64
+44 247 64
+45 247 64
+46 247 64
+47 247 64
+48 247 64
+49 247 64
+50 247 64
+51 247 64
+52 247 64
+53 247 64
+54 247 64
+55 247 64
+56 247 64
+57 247 64
+58 247 64
+59 247 64
+60 247 64
+61 247 64
+62 247 64
+63 247 64
+64 247 64
+65 247 64
+66 247 64
+67 247 64
+68 247 64
+69 247 64
+70 247 64
+71 247 64
+72 247 64
+73 247 64
+74 247 64
+75 247 64
+76 247 64
+77 247 64
+78 247 64
+79 247 64
+80 247 64
+81 247 64
+82 247 64
+83 247 64
+84 247 64
+85 247 64
+86 247 64
+87 247 64
+88 247 64
+89 247 64
+90 247 64
+91 247 64
+92 247 64
+93 247 64
+94 247 64
+95 247 64
+96 247 64
+97 247 64
+98 247 64
+99 247 64
+100 247 64
+101 247 64
+102 247 64
+103 247 64
+104 247 64
+105 247 64
+106 247 64
+107 247 64
+108 247 64
+109 247 64
+110 247 64
+111 247 64
+112 247 64
+113 247 64
+114 247 64
+115 247 64
+116 247 64
+117 247 64
+118 247 64
+119 247 64
+120 247 64
+121 247 64
+122 247 64
+123 247 64
+124 247 64
+125 247 64
+126 247 64
+127 247 64
+128 247 64
+129 247 64
+130 247 64
+131 247 64
+132 247 64
+133 247 64
+134 247 64
+135 247 64
+136 247 64
+137 247 64
+138 247 64
+139 247 64
+140 247 64
+141 247 64
+142 247 64
+143 247 64
+144 247 64
+145 247 64
+146 247 64
+147 247 64
+148 247 64
+149 247 64
+150 247 64
+151 247 64
+152 247 64
+153 247 64
+154 247 64
+155 247 64
+156 247 64
+157 247 64
+158 247 64
+159 247 64
+160 247 64
+161 247 64
+162 247 64
+163 247 64
+164 247 64
+165 247 64
+166 247 64
+167 247 64
+168 247 64
+169 247 64
+170 247 64
+171 247 64
+172 247 64
+173 247 64
+174 247 64
+175 247 64
+176 247 64
+177 247 64
+178 247 64
+179 247 64
+180 247 64
+181 247 64
+182 247 64
+183 247 64
+184 247 64
+185 247 64
+186 247 64
+187 247 64
+188 247 64
+189 247 64
+190 247 64
+191 247 64
+192 247 64
+193 247 64
+194 247 64
+195 247 64
+196 247 64
+197 247 64
+198 247 64
+199 247 64
+200 247 64
+201 247 64
+202 247 64
+203 247 64
+204 247 64
+205 247 64
+206 247 64
+207 247 64
+208 247 64
+209 247 64
+210 247 64
+211 247 64
+212 247 64
+213 247 64
+214 247 64
+215 247 64
+216 247 64
+217 247 64
+218 247 64
+219 247 64
+220 247 64
+221 247 64
+222 247 64
+223 247 64
+224 247 64
+225 247 64
+226 247 64
+227 247 64
+228 247 64
+229 247 64
+230 247 64
+231 247 64
+232 247 64
+233 247 64
+234 247 64
+235 247 64
+236 247 64
+237 247 64
+238 247 64
+239 247 64
+240 247 64
+241 247 64
+242 247 64
+243 247 64
+244 247 64
+245 247 64
+246 247 64
+247 247 64
+248 247 64
+249 247 64
+250 247 64
+251 247 64
+252 247 64
+253 247 64
+254 247 64
+255 247 64
+0 246 64
+1 246 64
+2 246 64
+3 246 64
+4 246 64
+5 246 64
+6 246 64
+7 246 64
+8 246 64
+9 246 64
+10 246 64
+11 246 64
+12 246 64
+13 246 64
+14 246 64
+15 246 64
+16 246 64
+17 246 64
+18 246 64
+19 246 64
+20 246 64
+21 246 64
+22 246 64
+23 246 64
+24 246 64
+25 246 64
+26 246 64
+27 246 64
+28 246 64
+29 246 64
+30 246 64
+31 246 64
+32 246 64
+33 246 64
+34 246 64
+35 246 64
+36 246 64
+37 246 64
+38 246 64
+39 246 64
+40 246 64
+41 246 64
+42 246 64
+43 246 64
+44 246 64
+45 246 64
+46 246 64
+47 246 64
+48 246 64
+49 246 64
+50 246 64
+51 246 64
+52 246 64
+53 246 64
+54 246 64
+55 246 64
+56 246 64
+57 246 64
+58 246 64
+59 246 64
+60 246 64
+61 246 64
+62 246 64
+63 246 64
+64 246 64
+65 246 64
+66 246 64
+67 246 64
+68 246 64
+69 246 64
+70 246 64
+71 246 64
+72 246 64
+73 246 64
+74 246 64
+75 246 64
+76 246 64
+77 246 64
+78 246 64
+79 246 64
+80 246 64
+81 246 64
+82 246 64
+83 246 64
+84 246 64
+85 246 64
+86 246 64
+87 246 64
+88 246 64
+89 246 64
+90 246 64
+91 246 64
+92 246 64
+93 246 64
+94 246 64
+95 246 64
+96 246 64
+97 246 64
+98 246 64
+99 246 64
+100 246 64
+101 246 64
+102 246 64
+103 246 64
+104 246 64
+105 246 64
+106 246 64
+107 246 64
+108 246 64
+109 246 64
+110 246 64
+111 246 64
+112 246 64
+113 246 64
+114 246 64
+115 246 64
+116 246 64
+117 246 64
+118 246 64
+119 246 64
+120 246 64
+121 246 64
+122 246 64
+123 246 64
+124 246 64
+125 246 64
+126 246 64
+127 246 64
+128 246 64
+129 246 64
+130 246 64
+131 246 64
+132 246 64
+133 246 64
+134 246 64
+135 246 64
+136 246 64
+137 246 64
+138 246 64
+139 246 64
+140 246 64
+141 246 64
+142 246 64
+143 246 64
+144 246 64
+145 246 64
+146 246 64
+147 246 64
+148 246 64
+149 246 64
+150 246 64
+151 246 64
+152 246 64
+153 246 64
+154 246 64
+155 246 64
+156 246 64
+157 246 64
+158 246 64
+159 246 64
+160 246 64
+161 246 64
+162 246 64
+163 246 64
+164 246 64
+165 246 64
+166 246 64
+167 246 64
+168 246 64
+169 246 64
+170 246 64
+171 246 64
+172 246 64
+173 246 64
+174 246 64
+175 246 64
+176 246 64
+177 246 64
+178 246 64
+179 246 64
+180 246 64
+181 246 64
+182 246 64
+183 246 64
+184 246 64
+185 246 64
+186 246 64
+187 246 64
+188 246 64
+189 246 64
+190 246 64
+191 246 64
+192 246 64
+193 246 64
+194 246 64
+195 246 64
+196 246 64
+197 246 64
+198 246 64
+199 246 64
+200 246 64
+201 246 64
+202 246 64
+203 246 64
+204 246 64
+205 246 64
+206 246 64
+207 246 64
+208 246 64
+209 246 64
+210 246 64
+211 246 64
+212 246 64
+213 246 64
+214 246 64
+215 246 64
+216 246 64
+217 246 64
+218 246 64
+219 246 64
+220 246 64
+221 246 64
+222 246 64
+223 246 64
+224 246 64
+225 246 64
+226 246 64
+227 246 64
+228 246 64
+229 246 64
+230 246 64
+231 246 64
+232 246 64
+233 246 64
+234 246 64
+235 246 64
+236 246 64
+237 246 64
+238 246 64
+239 246 64
+240 246 64
+241 246 64
+242 246 64
+243 246 64
+244 246 64
+245 246 64
+246 246 64
+247 246 64
+248 246 64
+249 246 64
+250 246 64
+251 246 64
+252 246 64
+253 246 64
+254 246 64
+255 246 64
+0 245 64
+1 245 64
+2 245 64
+3 245 64
+4 245 64
+5 245 64
+6 245 64
+7 245 64
+8 245 64
+9 245 64
+10 245 64
+11 245 64
+12 245 64
+13 245 64
+14 245 64
+15 245 64
+16 245 64
+17 245 64
+18 245 64
+19 245 64
+20 245 64
+21 245 64
+22 245 64
+23 245 64
+24 245 64
+25 245 64
+26 245 64
+27 245 64
+28 245 64
+29 245 64
+30 245 64
+31 245 64
+32 245 64
+33 245 64
+34 245 64
+35 245 64
+36 245 64
+37 245 64
+38 245 64
+39 245 64
+40 245 64
+41 245 64
+42 245 64
+43 245 64
+44 245 64
+45 245 64
+46 245 64
+47 245 64
+48 245 64
+49 245 64
+50 245 64
+51 245 64
+52 245 64
+53 245 64
+54 245 64
+55 245 64
+56 245 64
+57 245 64
+58 245 64
+59 245 64
+60 245 64
+61 245 64
+62 245 64
+63 245 64
+64 245 64
+65 245 64
+66 245 64
+67 245 64
+68 245 64
+69 245 64
+70 245 64
+71 245 64
+72 245 64
+73 245 64
+74 245 64
+75 245 64
+76 245 64
+77 245 64
+78 245 64
+79 245 64
+80 245 64
+81 245 64
+82 245 64
+83 245 64
+84 245 64
+85 245 64
+86 245 64
+87 245 64
+88 245 64
+89 245 64
+90 245 64
+91 245 64
+92 245 64
+93 245 64
+94 245 64
+95 245 64
+96 245 64
+97 245 64
+98 245 64
+99 245 64
+100 245 64
+101 245 64
+102 245 64
+103 245 64
+104 245 64
+105 245 64
+106 245 64
+107 245 64
+108 245 64
+109 245 64
+110 245 64
+111 245 64
+112 245 64
+113 245 64
+114 245 64
+115 245 64
+116 245 64
+117 245 64
+118 245 64
+119 245 64
+120 245 64
+121 245 64
+122 245 64
+123 245 64
+124 245 64
+125 245 64
+126 245 64
+127 245 64
+128 245 64
+129 245 64
+130 245 64
+131 245 64
+132 245 64
+133 245 64
+134 245 64
+135 245 64
+136 245 64
+137 245 64
+138 245 64
+139 245 64
+140 245 64
+141 245 64
+142 245 64
+143 245 64
+144 245 64
+145 245 64
+146 245 64
+147 245 64
+148 245 64
+149 245 64
+150 245 64
+151 245 64
+152 245 64
+153 245 64
+154 245 64
+155 245 64
+156 245 64
+157 245 64
+158 245 64
+159 245 64
+160 245 64
+161 245 64
+162 245 64
+163 245 64
+164 245 64
+165 245 64
+166 245 64
+167 245 64
+168 245 64
+169 245 64
+170 245 64
+171 245 64
+172 245 64
+173 245 64
+174 245 64
+175 245 64
+176 245 64
+177 245 64
+178 245 64
+179 245 64
+180 245 64
+181 245 64
+182 245 64
+183 245 64
+184 245 64
+185 245 64
+186 245 64
+187 245 64
+188 245 64
+189 245 64
+190 245 64
+191 245 64
+192 245 64
+193 245 64
+194 245 64
+195 245 64
+196 245 64
+197 245 64
+198 245 64
+199 245 64
+200 245 64
+201 245 64
+202 245 64
+203 245 64
+204 245 64
+205 245 64
+206 245 64
+207 245 64
+208 245 64
+209 245 64
+210 245 64
+211 245 64
+212 245 64
+213 245 64
+214 245 64
+215 245 64
+216 245 64
+217 245 64
+218 245 64
+219 245 64
+220 245 64
+221 245 64
+222 245 64
+223 245 64
+224 245 64
+225 245 64
+226 245 64
+227 245 64
+228 245 64
+229 245 64
+230 245 64
+231 245 64
+232 245 64
+233 245 64
+234 245 64
+235 245 64
+236 245 64
+237 245 64
+238 245 64
+239 245 64
+240 245 64
+241 245 64
+242 245 64
+243 245 64
+244 245 64
+245 245 64
+246 245 64
+247 245 64
+248 245 64
+249 245 64
+250 245 64
+251 245 64
+252 245 64
+253 245 64
+254 245 64
+255 245 64
+0 244 64
+1 244 64
+2 244 64
+3 244 64
+4 244 64
+5 244 64
+6 244 64
+7 244 64
+8 244 64
+9 244 64
+10 244 64
+11 244 64
+12 244 64
+13 244 64
+14 244 64
+15 244 64
+16 244 64
+17 244 64
+18 244 64
+19 244 64
+20 244 64
+21 244 64
+22 244 64
+23 244 64
+24 244 64
+25 244 64
+26 244 64
+27 244 64
+28 244 64
+29 244 64
+30 244 64
+31 244 64
+32 244 64
+33 244 64
+34 244 64
+35 244 64
+36 244 64
+37 244 64
+38 244 64
+39 244 64
+40 244 64
+41 244 64
+42 244 64
+43 244 64
+44 244 64
+45 244 64
+46 244 64
+47 244 64
+48 244 64
+49 244 64
+50 244 64
+51 244 64
+52 244 64
+53 244 64
+54 244 64
+55 244 64
+56 244 64
+57 244 64
+58 244 64
+59 244 64
+60 244 64
+61 244 64
+62 244 64
+63 244 64
+64 244 64
+65 244 64
+66 244 64
+67 244 64
+68 244 64
+69 244 64
+70 244 64
+71 244 64
+72 244 64
+73 244 64
+74 244 64
+75 244 64
+76 244 64
+77 244 64
+78 244 64
+79 244 64
+80 244 64
+81 244 64
+82 244 64
+83 244 64
+84 244 64
+85 244 64
+86 244 64
+87 244 64
+88 244 64
+89 244 64
+90 244 64
+91 244 64
+92 244 64
+93 244 64
+94 244 64
+95 244 64
+96 244 64
+97 244 64
+98 244 64
+99 244 64
+100 244 64
+101 244 64
+102 244 64
+103 244 64
+104 244 64
+105 244 64
+106 244 64
+107 244 64
+108 244 64
+109 244 64
+110 244 64
+111 244 64
+112 244 64
+113 244 64
+114 244 64
+115 244 64
+116 244 64
+117 244 64
+118 244 64
+119 244 64
+120 244 64
+121 244 64
+122 244 64
+123 244 64
+124 244 64
+125 244 64
+126 244 64
+127 244 64
+128 244 64
+129 244 64
+130 244 64
+131 244 64
+132 244 64
+133 244 64
+134 244 64
+135 244 64
+136 244 64
+137 244 64
+138 244 64
+139 244 64
+140 244 64
+141 244 64
+142 244 64
+143 244 64
+144 244 64
+145 244 64
+146 244 64
+147 244 64
+148 244 64
+149 244 64
+150 244 64
+151 244 64
+152 244 64
+153 244 64
+154 244 64
+155 244 64
+156 244 64
+157 244 64
+158 244 64
+159 244 64
+160 244 64
+161 244 64
+162 244 64
+163 244 64
+164 244 64
+165 244 64
+166 244 64
+167 244 64
+168 244 64
+169 244 64
+170 244 64
+171 244 64
+172 244 64
+173 244 64
+174 244 64
+175 244 64
+176 244 64
+177 244 64
+178 244 64
+179 244 64
+180 244 64
+181 244 64
+182 244 64
+183 244 64
+184 244 64
+185 244 64
+186 244 64
+187 244 64
+188 244 64
+189 244 64
+190 244 64
+191 244 64
+192 244 64
+193 244 64
+194 244 64
+195 244 64
+196 244 64
+197 244 64
+198 244 64
+199 244 64
+200 244 64
+201 244 64
+202 244 64
+203 244 64
+204 244 64
+205 244 64
+206 244 64
+207 244 64
+208 244 64
+209 244 64
+210 244 64
+211 244 64
+212 244 64
+213 244 64
+214 244 64
+215 244 64
+216 244 64
+217 244 64
+218 244 64
+219 244 64
+220 244 64
+221 244 64
+222 244 64
+223 244 64
+224 244 64
+225 244 64
+226 244 64
+227 244 64
+228 244 64
+229 244 64
+230 244 64
+231 244 64
+232 244 64
+233 244 64
+234 244 64
+235 244 64
+236 244 64
+237 244 64
+238 244 64
+239 244 64
+240 244 64
+241 244 64
+242 244 64
+243 244 64
+244 244 64
+245 244 64
+246 244 64
+247 244 64
+248 244 64
+249 244 64
+250 244 64
+251 244 64
+252 244 64
+253 244 64
+254 244 64
+255 244 64
+0 243 64
+1 243 64
+2 243 64
+3 243 64
+4 243 64
+5 243 64
+6 243 64
+7 243 64
+8 243 64
+9 243 64
+10 243 64
+11 243 64
+12 243 64
+13 243 64
+14 243 64
+15 243 64
+16 243 64
+17 243 64
+18 243 64
+19 243 64
+20 243 64
+21 243 64
+22 243 64
+23 243 64
+24 243 64
+25 243 64
+26 243 64
+27 243 64
+28 243 64
+29 243 64
+30 243 64
+31 243 64
+32 243 64
+33 243 64
+34 243 64
+35 243 64
+36 243 64
+37 243 64
+38 243 64
+39 243 64
+40 243 64
+41 243 64
+42 243 64
+43 243 64
+44 243 64
+45 243 64
+46 243 64
+47 243 64
+48 243 64
+49 243 64
+50 243 64
+51 243 64
+52 243 64
+53 243 64
+54 243 64
+55 243 64
+56 243 64
+57 243 64
+58 243 64
+59 243 64
+60 243 64
+61 243 64
+62 243 64
+63 243 64
+64 243 64
+65 243 64
+66 243 64
+67 243 64
+68 243 64
+69 243 64
+70 243 64
+71 243 64
+72 243 64
+73 243 64
+74 243 64
+75 243 64
+76 243 64
+77 243 64
+78 243 64
+79 243 64
+80 243 64
+81 243 64
+82 243 64
+83 243 64
+84 243 64
+85 243 64
+86 243 64
+87 243 64
+88 243 64
+89 243 64
+90 243 64
+91 243 64
+92 243 64
+93 243 64
+94 243 64
+95 243 64
+96 243 64
+97 243 64
+98 243 64
+99 243 64
+100 243 64
+101 243 64
+102 243 64
+103 243 64
+104 243 64
+105 243 64
+106 243 64
+107 243 64
+108 243 64
+109 243 64
+110 243 64
+111 243 64
+112 243 64
+113 243 64
+114 243 64
+115 243 64
+116 243 64
+117 243 64
+118 243 64
+119 243 64
+120 243 64
+121 243 64
+122 243 64
+123 243 64
+124 243 64
+125 243 64
+126 243 64
+127 243 64
+128 243 64
+129 243 64
+130 243 64
+131 243 64
+132 243 64
+133 243 64
+134 243 64
+135 243 64
+136 243 64
+137 243 64
+138 243 64
+139 243 64
+140 243 64
+141 243 64
+142 243 64
+143 243 64
+144 243 64
+145 243 64
+146 243 64
+147 243 64
+148 243 64
+149 243 64
+150 243 64
+151 243 64
+152 243 64
+153 243 64
+154 243 64
+155 243 64
+156 243 64
+157 243 64
+158 243 64
+159 243 64
+160 243 64
+161 243 64
+162 243 64
+163 243 64
+164 243 64
+165 243 64
+166 243 64
+167 243 64
+168 243 64
+169 243 64
+170 243 64
+171 243 64
+172 243 64
+173 243 64
+174 243 64
+175 243 64
+176 243 64
+177 243 64
+178 243 64
+179 243 64
+180 243 64
+181 243 64
+182 243 64
+183 243 64
+184 243 64
+185 243 64
+186 243 64
+187 243 64
+188 243 64
+189 243 64
+190 243 64
+191 243 64
+192 243 64
+193 243 64
+194 243 64
+195 243 64
+196 243 64
+197 243 64
+198 243 64
+199 243 64
+200 243 64
+201 243 64
+202 243 64
+203 243 64
+204 243 64
+205 243 64
+206 243 64
+207 243 64
+208 243 64
+209 243 64
+210 243 64
+211 243 64
+212 243 64
+213 243 64
+214 243 64
+215 243 64
+216 243 64
+217 243 64
+218 243 64
+219 243 64
+220 243 64
+221 243 64
+222 243 64
+223 243 64
+224 243 64
+225 243 64
+226 243 64
+227 243 64
+228 243 64
+229 243 64
+230 243 64
+231 243 64
+232 243 64
+233 243 64
+234 243 64
+235 243 64
+236 243 64
+237 243 64
+238 243 64
+239 243 64
+240 243 64
+241 243 64
+242 243 64
+243 243 64
+244 243 64
+245 243 64
+246 243 64
+247 243 64
+248 243 64
+249 243 64
+250 243 64
+251 243 64
+252 243 64
+253 243 64
+254 243 64
+255 243 64
+0 242 64
+1 242 64
+2 242 64
+3 242 64
+4 242 64
+5 242 64
+6 242 64
+7 242 64
+8 242 64
+9 242 64
+10 242 64
+11 242 64
+12 242 64
+13 242 64
+14 242 64
+15 242 64
+16 242 64
+17 242 64
+18 242 64
+19 242 64
+20 242 64
+21 242 64
+22 242 64
+23 242 64
+24 242 64
+25 242 64
+26 242 64
+27 242 64
+28 242 64
+29 242 64
+30 242 64
+31 242 64
+32 242 64
+33 242 64
+34 242 64
+35 242 64
+36 242 64
+37 242 64
+38 242 64
+39 242 64
+40 242 64
+41 242 64
+42 242 64
+43 242 64
+44 242 64
+45 242 64
+46 242 64
+47 242 64
+48 242 64
+49 242 64
+50 242 64
+51 242 64
+52 242 64
+53 242 64
+54 242 64
+55 242 64
+56 242 64
+57 242 64
+58 242 64
+59 242 64
+60 242 64
+61 242 64
+62 242 64
+63 242 64
+64 242 64
+65 242 64
+66 242 64
+67 242 64
+68 242 64
+69 242 64
+70 242 64
+71 242 64
+72 242 64
+73 242 64
+74 242 64
+75 242 64
+76 242 64
+77 242 64
+78 242 64
+79 242 64
+80 242 64
+81 242 64
+82 242 64
+83 242 64
+84 242 64
+85 242 64
+86 242 64
+87 242 64
+88 242 64
+89 242 64
+90 242 64
+91 242 64
+92 242 64
+93 242 64
+94 242 64
+95 242 64
+96 242 64
+97 242 64
+98 242 64
+99 242 64
+100 242 64
+101 242 64
+102 242 64
+103 242 64
+104 242 64
+105 242 64
+106 242 64
+107 242 64
+108 242 64
+109 242 64
+110 242 64
+111 242 64
+112 242 64
+113 242 64
+114 242 64
+115 242 64
+116 242 64
+117 242 64
+118 242 64
+119 242 64
+120 242 64
+121 242 64
+122 242 64
+123 242 64
+124 242 64
+125 242 64
+126 242 64
+127 242 64
+128 242 64
+129 242 64
+130 242 64
+131 242 64
+132 242 64
+133 242 64
+134 242 64
+135 242 64
+136 242 64
+137 242 64
+138 242 64
+139 242 64
+140 242 64
+141 242 64
+142 242 64
+143 242 64
+144 242 64
+145 242 64
+146 242 64
+147 242 64
+148 242 64
+149 242 64
+150 242 64
+151 242 64
+152 242 64
+153 242 64
+154 242 64
+155 242 64
+156 242 64
+157 242 64
+158 242 64
+159 242 64
+160 242 64
+161 242 64
+162 242 64
+163 242 64
+164 242 64
+165 242 64
+166 242 64
+167 242 64
+168 242 64
+169 242 64
+170 242 64
+171 242 64
+172 242 64
+173 242 64
+174 242 64
+175 242 64
+176 242 64
+177 242 64
+178 242 64
+179 242 64
+180 242 64
+181 242 64
+182 242 64
+183 242 64
+184 242 64
+185 242 64
+186 242 64
+187 242 64
+188 242 64
+189 242 64
+190 242 64
+191 242 64
+192 242 64
+193 242 64
+194 242 64
+195 242 64
+196 242 64
+197 242 64
+198 242 64
+199 242 64
+200 242 64
+201 242 64
+202 242 64
+203 242 64
+204 242 64
+205 242 64
+206 242 64
+207 242 64
+208 242 64
+209 242 64
+210 242 64
+211 242 64
+212 242 64
+213 242 64
+214 242 64
+215 242 64
+216 242 64
+217 242 64
+218 242 64
+219 242 64
+220 242 64
+221 242 64
+222 242 64
+223 242 64
+224 242 64
+225 242 64
+226 242 64
+227 242 64
+228 242 64
+229 242 64
+230 242 64
+231 242 64
+232 242 64
+233 242 64
+234 242 64
+235 242 64
+236 242 64
+237 242 64
+238 242 64
+239 242 64
+240 242 64
+241 242 64
+242 242 64
+243 242 64
+244 242 64
+245 242 64
+246 242 64
+247 242 64
+248 242 64
+249 242 64
+250 242 64
+251 242 64
+252 242 64
+253 242 64
+254 242 64
+255 242 64
+0 241 64
+1 241 64
+2 241 64
+3 241 64
+4 241 64
+5 241 64
+6 241 64
+7 241 64
+8 241 64
+9 241 64
+10 241 64
+11 241 64
+12 241 64
+13 241 64
+14 241 64
+15 241 64
+16 241 64
+17 241 64
+18 241 64
+19 241 64
+20 241 64
+21 241 64
+22 241 64
+23 241 64
+24 241 64
+25 241 64
+26 241 64
+27 241 64
+28 241 64
+29 241 64
+30 241 64
+31 241 64
+32 241 64
+33 241 64
+34 241 64
+35 241 64
+36 241 64
+37 241 64
+38 241 64
+39 241 64
+40 241 64
+41 241 64
+42 241 64
+43 241 64
+44 241 64
+45 241 64
+46 241 64
+47 241 64
+48 241 64
+49 241 64
+50 241 64
+51 241 64
+52 241 64
+53 241 64
+54 241 64
+55 241 64
+56 241 64
+57 241 64
+58 241 64
+59 241 64
+60 241 64
+61 241 64
+62 241 64
+63 241 64
+64 241 64
+65 241 64
+66 241 64
+67 241 64
+68 241 64
+69 241 64
+70 241 64
+71 241 64
+72 241 64
+73 241 64
+74 241 64
+75 241 64
+76 241 64
+77 241 64
+78 241 64
+79 241 64
+80 241 64
+81 241 64
+82 241 64
+83 241 64
+84 241 64
+85 241 64
+86 241 64
+87 241 64
+88 241 64
+89 241 64
+90 241 64
+91 241 64
+92 241 64
+93 241 64
+94 241 64
+95 241 64
+96 241 64
+97 241 64
+98 241 64
+99 241 64
+100 241 64
+101 241 64
+102 241 64
+103 241 64
+104 241 64
+105 241 64
+106 241 64
+107 241 64
+108 241 64
+109 241 64
+110 241 64
+111 241 64
+112 241 64
+113 241 64
+114 241 64
+115 241 64
+116 241 64
+117 241 64
+118 241 64
+119 241 64
+120 241 64
+121 241 64
+122 241 64
+123 241 64
+124 241 64
+125 241 64
+126 241 64
+127 241 64
+128 241 64
+129 241 64
+130 241 64
+131 241 64
+132 241 64
+133 241 64
+134 241 64
+135 241 64
+136 241 64
+137 241 64
+138 241 64
+139 241 64
+140 241 64
+141 241 64
+142 241 64
+143 241 64
+144 241 64
+145 241 64
+146 241 64
+147 241 64
+148 241 64
+149 241 64
+150 241 64
+151 241 64
+152 241 64
+153 241 64
+154 241 64
+155 241 64
+156 241 64
+157 241 64
+158 241 64
+159 241 64
+160 241 64
+161 241 64
+162 241 64
+163 241 64
+164 241 64
+165 241 64
+166 241 64
+167 241 64
+168 241 64
+169 241 64
+170 241 64
+171 241 64
+172 241 64
+173 241 64
+174 241 64
+175 241 64
+176 241 64
+177 241 64
+178 241 64
+179 241 64
+180 241 64
+181 241 64
+182 241 64
+183 241 64
+184 241 64
+185 241 64
+186 241 64
+187 241 64
+188 241 64
+189 241 64
+190 241 64
+191 241 64
+192 241 64
+193 241 64
+194 241 64
+195 241 64
+196 241 64
+197 241 64
+198 241 64
+199 241 64
+200 241 64
+201 241 64
+202 241 64
+203 241 64
+204 241 64
+205 241 64
+206 241 64
+207 241 64
+208 241 64
+209 241 64
+210 241 64
+211 241 64
+212 241 64
+213 241 64
+214 241 64
+215 241 64
+216 241 64
+217 241 64
+218 241 64
+219 241 64
+220 241 64
+221 241 64
+222 241 64
+223 241 64
+224 241 64
+225 241 64
+226 241 64
+227 241 64
+228 241 64
+229 241 64
+230 241 64
+231 241 64
+232 241 64
+233 241 64
+234 241 64
+235 241 64
+236 241 64
+237 241 64
+238 241 64
+239 241 64
+240 241 64
+241 241 64
+242 241 64
+243 241 64
+244 241 64
+245 241 64
+246 241 64
+247 241 64
+248 241 64
+249 241 64
+250 241 64
+251 241 64
+252 241 64
+253 241 64
+254 241 64
+255 241 64
+0 240 64
+1 240 64
+2 240 64
+3 240 64
+4 240 64
+5 240 64
+6 240 64
+7 240 64
+8 240 64
+9 240 64
+10 240 64
+11 240 64
+12 240 64
+13 240 64
+14 240 64
+15 240 64
+16 240 64
+17 240 64
+18 240 64
+19 240 64
+20 240 64
+21 240 64
+22 240 64
+23 240 64
+24 240 64
+25 240 64
+26 240 64
+27 240 64
+28 240 64
+29 240 64
+30 240 64
+31 240 64
+32 240 64
+33 240 64
+34 240 64
+35 240 64
+36 240 64
+37 240 64
+38 240 64
+39 240 64
+40 240 64
+41 240 64
+42 240 64
+43 240 64
+44 240 64
+45 240 64
+46 240 64
+47 240 64
+48 240 64
+49 240 64
+50 240 64
+51 240 64
+52 240 64
+53 240 64
+54 240 64
+55 240 64
+56 240 64
+57 240 64
+58 240 64
+59 240 64
+60 240 64
+61 240 64
+62 240 64
+63 240 64
+64 240 64
+65 240 64
+66 240 64
+67 240 64
+68 240 64
+69 240 64
+70 240 64
+71 240 64
+72 240 64
+73 240 64
+74 240 64
+75 240 64
+76 240 64
+77 240 64
+78 240 64
+79 240 64
+80 240 64
+81 240 64
+82 240 64
+83 240 64
+84 240 64
+85 240 64
+86 240 64
+87 240 64
+88 240 64
+89 240 64
+90 240 64
+91 240 64
+92 240 64
+93 240 64
+94 240 64
+95 240 64
+96 240 64
+97 240 64
+98 240 64
+99 240 64
+100 240 64
+101 240 64
+102 240 64
+103 240 64
+104 240 64
+105 240 64
+106 240 64
+107 240 64
+108 240 64
+109 240 64
+110 240 64
+111 240 64
+112 240 64
+113 240 64
+114 240 64
+115 240 64
+116 240 64
+117 240 64
+118 240 64
+119 240 64
+120 240 64
+121 240 64
+122 240 64
+123 240 64
+124 240 64
+125 240 64
+126 240 64
+127 240 64
+128 240 64
+129 240 64
+130 240 64
+131 240 64
+132 240 64
+133 240 64
+134 240 64
+135 240 64
+136 240 64
+137 240 64
+138 240 64
+139 240 64
+140 240 64
+141 240 64
+142 240 64
+143 240 64
+144 240 64
+145 240 64
+146 240 64
+147 240 64
+148 240 64
+149 240 64
+150 240 64
+151 240 64
+152 240 64
+153 240 64
+154 240 64
+155 240 64
+156 240 64
+157 240 64
+158 240 64
+159 240 64
+160 240 64
+161 240 64
+162 240 64
+163 240 64
+164 240 64
+165 240 64
+166 240 64
+167 240 64
+168 240 64
+169 240 64
+170 240 64
+171 240 64
+172 240 64
+173 240 64
+174 240 64
+175 240 64
+176 240 64
+177 240 64
+178 240 64
+179 240 64
+180 240 64
+181 240 64
+182 240 64
+183 240 64
+184 240 64
+185 240 64
+186 240 64
+187 240 64
+188 240 64
+189 240 64
+190 240 64
+191 240 64
+192 240 64
+193 240 64
+194 240 64
+195 240 64
+196 240 64
+197 240 64
+198 240 64
+199 240 64
+200 240 64
+201 240 64
+202 240 64
+203 240 64
+204 240 64
+205 240 64
+206 240 64
+207 240 64
+208 240 64
+209 240 64
+210 240 64
+211 240 64
+212 240 64
+213 240 64
+214 240 64
+215 240 64
+216 240 64
+217 240 64
+218 240 64
+219 240 64
+220 240 64
+221 240 64
+222 240 64
+223 240 64
+224 240 64
+225 240 64
+226 240 64
+227 240 64
+228 240 64
+229 240 64
+230 240 64
+231 240 64
+232 240 64
+233 240 64
+234 240 64
+235 240 64
+236 240 64
+237 240 64
+238 240 64
+239 240 64
+240 240 64
+241 240 64
+242 240 64
+243 240 64
+244 240 64
+245 240 64
+246 240 64
+247 240 64
+248 240 64
+249 240 64
+250 240 64
+251 240 64
+252 240 64
+253 240 64
+254 240 64
+255 240 64
+0 239 64
+1 239 64
+2 239 64
+3 239 64
+4 239 64
+5 239 64
+6 239 64
+7 239 64
+8 239 64
+9 239 64
+10 239 64
+11 239 64
+12 239 64
+13 239 64
+14 239 64
+15 239 64
+16 239 64
+17 239 64
+18 239 64
+19 239 64
+20 239 64
+21 239 64
+22 239 64
+23 239 64
+24 239 64
+25 239 64
+26 239 64
+27 239 64
+28 239 64
+29 239 64
+30 239 64
+31 239 64
+32 239 64
+33 239 64
+34 239 64
+35 239 64
+36 239 64
+37 239 64
+38 239 64
+39 239 64
+40 239 64
+41 239 64
+42 239 64
+43 239 64
+44 239 64
+45 239 64
+46 239 64
+47 239 64
+48 239 64
+49 239 64
+50 239 64
+51 239 64
+52 239 64
+53 239 64
+54 239 64
+55 239 64
+56 239 64
+57 239 64
+58 239 64
+59 239 64
+60 239 64
+61 239 64
+62 239 64
+63 239 64
+64 239 64
+65 239 64
+66 239 64
+67 239 64
+68 239 64
+69 239 64
+70 239 64
+71 239 64
+72 239 64
+73 239 64
+74 239 64
+75 239 64
+76 239 64
+77 239 64
+78 239 64
+79 239 64
+80 239 64
+81 239 64
+82 239 64
+83 239 64
+84 239 64
+85 239 64
+86 239 64
+87 239 64
+88 239 64
+89 239 64
+90 239 64
+91 239 64
+92 239 64
+93 239 64
+94 239 64
+95 239 64
+96 239 64
+97 239 64
+98 239 64
+99 239 64
+100 239 64
+101 239 64
+102 239 64
+103 239 64
+104 239 64
+105 239 64
+106 239 64
+107 239 64
+108 239 64
+109 239 64
+110 239 64
+111 239 64
+112 239 64
+113 239 64
+114 239 64
+115 239 64
+116 239 64
+117 239 64
+118 239 64
+119 239 64
+120 239 64
+121 239 64
+122 239 64
+123 239 64
+124 239 64
+125 239 64
+126 239 64
+127 239 64
+128 239 64
+129 239 64
+130 239 64
+131 239 64
+132 239 64
+133 239 64
+134 239 64
+135 239 64
+136 239 64
+137 239 64
+138 239 64
+139 239 64
+140 239 64
+141 239 64
+142 239 64
+143 239 64
+144 239 64
+145 239 64
+146 239 64
+147 239 64
+148 239 64
+149 239 64
+150 239 64
+151 239 64
+152 239 64
+153 239 64
+154 239 64
+155 239 64
+156 239 64
+157 239 64
+158 239 64
+159 239 64
+160 239 64
+161 239 64
+162 239 64
+163 239 64
+164 239 64
+165 239 64
+166 239 64
+167 239 64
+168 239 64
+169 239 64
+170 239 64
+171 239 64
+172 239 64
+173 239 64
+174 239 64
+175 239 64
+176 239 64
+177 239 64
+178 239 64
+179 239 64
+180 239 64
+181 239 64
+182 239 64
+183 239 64
+184 239 64
+185 239 64
+186 239 64
+187 239 64
+188 239 64
+189 239 64
+190 239 64
+191 239 64
+192 239 64
+193 239 64
+194 239 64
+195 239 64
+196 239 64
+197 239 64
+198 239 64
+199 239 64
+200 239 64
+201 239 64
+202 239 64
+203 239 64
+204 239 64
+205 239 64
+206 239 64
+207 239 64
+208 239 64
+209 239 64
+210 239 64
+211 239 64
+212 239 64
+213 239 64
+214 239 64
+215 239 64
+216 239 64
+217 239 64
+218 239 64
+219 239 64
+220 239 64
+221 239 64
+222 239 64
+223 239 64
+224 239 64
+225 239 64
+226 239 64
+227 239 64
+228 239 64
+229 239 64
+230 239 64
+231 239 64
+232 239 64
+233 239 64
+234 239 64
+235 239 64
+236 239 64
+237 239 64
+238 239 64
+239 239 64
+240 239 64
+241 239 64
+242 239 64
+243 239 64
+244 239 64
+245 239 64
+246 239 64
+247 239 64
+248 239 64
+249 239 64
+250 239 64
+251 239 64
+252 239 64
+253 239 64
+254 239 64
+255 239 64
+0 238 64
+1 238 64
+2 238 64
+3 238 64
+4 238 64
+5 238 64
+6 238 64
+7 238 64
+8 238 64
+9 238 64
+10 238 64
+11 238 64
+12 238 64
+13 238 64
+14 238 64
+15 238 64
+16 238 64
+17 238 64
+18 238 64
+19 238 64
+20 238 64
+21 238 64
+22 238 64
+23 238 64
+24 238 64
+25 238 64
+26 238 64
+27 238 64
+28 238 64
+29 238 64
+30 238 64
+31 238 64
+32 238 64
+33 238 64
+34 238 64
+35 238 64
+36 238 64
+37 238 64
+38 238 64
+39 238 64
+40 238 64
+41 238 64
+42 238 64
+43 238 64
+44 238 64
+45 238 64
+46 238 64
+47 238 64
+48 238 64
+49 238 64
+50 238 64
+51 238 64
+52 238 64
+53 238 64
+54 238 64
+55 238 64
+56 238 64
+57 238 64
+58 238 64
+59 238 64
+60 238 64
+61 238 64
+62 238 64
+63 238 64
+64 238 64
+65 238 64
+66 238 64
+67 238 64
+68 238 64
+69 238 64
+70 238 64
+71 238 64
+72 238 64
+73 238 64
+74 238 64
+75 238 64
+76 238 64
+77 238 64
+78 238 64
+79 238 64
+80 238 64
+81 238 64
+82 238 64
+83 238 64
+84 238 64
+85 238 64
+86 238 64
+87 238 64
+88 238 64
+89 238 64
+90 238 64
+91 238 64
+92 238 64
+93 238 64
+94 238 64
+95 238 64
+96 238 64
+97 238 64
+98 238 64
+99 238 64
+100 238 64
+101 238 64
+102 238 64
+103 238 64
+104 238 64
+105 238 64
+106 238 64
+107 238 64
+108 238 64
+109 238 64
+110 238 64
+111 238 64
+112 238 64
+113 238 64
+114 238 64
+115 238 64
+116 238 64
+117 238 64
+118 238 64
+119 238 64
+120 238 64
+121 238 64
+122 238 64
+123 238 64
+124 238 64
+125 238 64
+126 238 64
+127 238 64
+128 238 64
+129 238 64
+130 238 64
+131 238 64
+132 238 64
+133 238 64
+134 238 64
+135 238 64
+136 238 64
+137 238 64
+138 238 64
+139 238 64
+140 238 64
+141 238 64
+142 238 64
+143 238 64
+144 238 64
+145 238 64
+146 238 64
+147 238 64
+148 238 64
+149 238 64
+150 238 64
+151 238 64
+152 238 64
+153 238 64
+154 238 64
+155 238 64
+156 238 64
+157 238 64
+158 238 64
+159 238 64
+160 238 64
+161 238 64
+162 238 64
+163 238 64
+164 238 64
+165 238 64
+166 238 64
+167 238 64
+168 238 64
+169 238 64
+170 238 64
+171 238 64
+172 238 64
+173 238 64
+174 238 64
+175 238 64
+176 238 64
+177 238 64
+178 238 64
+179 238 64
+180 238 64
+181 238 64
+182 238 64
+183 238 64
+184 238 64
+185 238 64
+186 238 64
+187 238 64
+188 238 64
+189 238 64
+190 238 64
+191 238 64
+192 238 64
+193 238 64
+194 238 64
+195 238 64
+196 238 64
+197 238 64
+198 238 64
+199 238 64
+200 238 64
+201 238 64
+202 238 64
+203 238 64
+204 238 64
+205 238 64
+206 238 64
+207 238 64
+208 238 64
+209 238 64
+210 238 64
+211 238 64
+212 238 64
+213 238 64
+214 238 64
+215 238 64
+216 238 64
+217 238 64
+218 238 64
+219 238 64
+220 238 64
+221 238 64
+222 238 64
+223 238 64
+224 238 64
+225 238 64
+226 238 64
+227 238 64
+228 238 64
+229 238 64
+230 238 64
+231 238 64
+232 238 64
+233 238 64
+234 238 64
+235 238 64
+236 238 64
+237 238 64
+238 238 64
+239 238 64
+240 238 64
+241 238 64
+242 238 64
+243 238 64
+244 238 64
+245 238 64
+246 238 64
+247 238 64
+248 238 64
+249 238 64
+250 238 64
+251 238 64
+252 238 64
+253 238 64
+254 238 64
+255 238 64
+0 237 64
+1 237 64
+2 237 64
+3 237 64
+4 237 64
+5 237 64
+6 237 64
+7 237 64
+8 237 64
+9 237 64
+10 237 64
+11 237 64
+12 237 64
+13 237 64
+14 237 64
+15 237 64
+16 237 64
+17 237 64
+18 237 64
+19 237 64
+20 237 64
+21 237 64
+22 237 64
+23 237 64
+24 237 64
+25 237 64
+26 237 64
+27 237 64
+28 237 64
+29 237 64
+30 237 64
+31 237 64
+32 237 64
+33 237 64
+34 237 64
+35 237 64
+36 237 64
+37 237 64
+38 237 64
+39 237 64
+40 237 64
+41 237 64
+42 237 64
+43 237 64
+44 237 64
+45 237 64
+46 237 64
+47 237 64
+48 237 64
+49 237 64
+50 237 64
+51 237 64
+52 237 64
+53 237 64
+54 237 64
+55 237 64
+56 237 64
+57 237 64
+58 237 64
+59 237 64
+60 237 64
+61 237 64
+62 237 64
+63 237 64
+64 237 64
+65 237 64
+66 237 64
+67 237 64
+68 237 64
+69 237 64
+70 237 64
+71 237 64
+72 237 64
+73 237 64
+74 237 64
+75 237 64
+76 237 64
+77 237 64
+78 237 64
+79 237 64
+80 237 64
+81 237 64
+82 237 64
+83 237 64
+84 237 64
+85 237 64
+86 237 64
+87 237 64
+88 237 64
+89 237 64
+90 237 64
+91 237 64
+92 237 64
+93 237 64
+94 237 64
+95 237 64
+96 237 64
+97 237 64
+98 237 64
+99 237 64
+100 237 64
+101 237 64
+102 237 64
+103 237 64
+104 237 64
+105 237 64
+106 237 64
+107 237 64
+108 237 64
+109 237 64
+110 237 64
+111 237 64
+112 237 64
+113 237 64
+114 237 64
+115 237 64
+116 237 64
+117 237 64
+118 237 64
+119 237 64
+120 237 64
+121 237 64
+122 237 64
+123 237 64
+124 237 64
+125 237 64
+126 237 64
+127 237 64
+128 237 64
+129 237 64
+130 237 64
+131 237 64
+132 237 64
+133 237 64
+134 237 64
+135 237 64
+136 237 64
+137 237 64
+138 237 64
+139 237 64
+140 237 64
+141 237 64
+142 237 64
+143 237 64
+144 237 64
+145 237 64
+146 237 64
+147 237 64
+148 237 64
+149 237 64
+150 237 64
+151 237 64
+152 237 64
+153 237 64
+154 237 64
+155 237 64
+156 237 64
+157 237 64
+158 237 64
+159 237 64
+160 237 64
+161 237 64
+162 237 64
+163 237 64
+164 237 64
+165 237 64
+166 237 64
+167 237 64
+168 237 64
+169 237 64
+170 237 64
+171 237 64
+172 237 64
+173 237 64
+174 237 64
+175 237 64
+176 237 64
+177 237 64
+178 237 64
+179 237 64
+180 237 64
+181 237 64
+182 237 64
+183 237 64
+184 237 64
+185 237 64
+186 237 64
+187 237 64
+188 237 64
+189 237 64
+190 237 64
+191 237 64
+192 237 64
+193 237 64
+194 237 64
+195 237 64
+196 237 64
+197 237 64
+198 237 64
+199 237 64
+200 237 64
+201 237 64
+202 237 64
+203 237 64
+204 237 64
+205 237 64
+206 237 64
+207 237 64
+208 237 64
+209 237 64
+210 237 64
+211 237 64
+212 237 64
+213 237 64
+214 237 64
+215 237 64
+216 237 64
+217 237 64
+218 237 64
+219 237 64
+220 237 64
+221 237 64
+222 237 64
+223 237 64
+224 237 64
+225 237 64
+226 237 64
+227 237 64
+228 237 64
+229 237 64
+230 237 64
+231 237 64
+232 237 64
+233 237 64
+234 237 64
+235 237 64
+236 237 64
+237 237 64
+238 237 64
+239 237 64
+240 237 64
+241 237 64
+242 237 64
+243 237 64
+244 237 64
+245 237 64
+246 237 64
+247 237 64
+248 237 64
+249 237 64
+250 237 64
+251 237 64
+252 237 64
+253 237 64
+254 237 64
+255 237 64
+0 236 64
+1 236 64
+2 236 64
+3 236 64
+4 236 64
+5 236 64
+6 236 64
+7 236 64
+8 236 64
+9 236 64
+10 236 64
+11 236 64
+12 236 64
+13 236 64
+14 236 64
+15 236 64
+16 236 64
+17 236 64
+18 236 64
+19 236 64
+20 236 64
+21 236 64
+22 236 64
+23 236 64
+24 236 64
+25 236 64
+26 236 64
+27 236 64
+28 236 64
+29 236 64
+30 236 64
+31 236 64
+32 236 64
+33 236 64
+34 236 64
+35 236 64
+36 236 64
+37 236 64
+38 236 64
+39 236 64
+40 236 64
+41 236 64
+42 236 64
+43 236 64
+44 236 64
+45 236 64
+46 236 64
+47 236 64
+48 236 64
+49 236 64
+50 236 64
+51 236 64
+52 236 64
+53 236 64
+54 236 64
+55 236 64
+56 236 64
+57 236 64
+58 236 64
+59 236 64
+60 236 64
+61 236 64
+62 236 64
+63 236 64
+64 236 64
+65 236 64
+66 236 64
+67 236 64
+68 236 64
+69 236 64
+70 236 64
+71 236 64
+72 236 64
+73 236 64
+74 236 64
+75 236 64
+76 236 64
+77 236 64
+78 236 64
+79 236 64
+80 236 64
+81 236 64
+82 236 64
+83 236 64
+84 236 64
+85 236 64
+86 236 64
+87 236 64
+88 236 64
+89 236 64
+90 236 64
+91 236 64
+92 236 64
+93 236 64
+94 236 64
+95 236 64
+96 236 64
+97 236 64
+98 236 64
+99 236 64
+100 236 64
+101 236 64
+102 236 64
+103 236 64
+104 236 64
+105 236 64
+106 236 64
+107 236 64
+108 236 64
+109 236 64
+110 236 64
+111 236 64
+112 236 64
+113 236 64
+114 236 64
+115 236 64
+116 236 64
+117 236 64
+118 236 64
+119 236 64
+120 236 64
+121 236 64
+122 236 64
+123 236 64
+124 236 64
+125 236 64
+126 236 64
+127 236 64
+128 236 64
+129 236 64
+130 236 64
+131 236 64
+132 236 64
+133 236 64
+134 236 64
+135 236 64
+136 236 64
+137 236 64
+138 236 64
+139 236 64
+140 236 64
+141 236 64
+142 236 64
+143 236 64
+144 236 64
+145 236 64
+146 236 64
+147 236 64
+148 236 64
+149 236 64
+150 236 64
+151 236 64
+152 236 64
+153 236 64
+154 236 64
+155 236 64
+156 236 64
+157 236 64
+158 236 64
+159 236 64
+160 236 64
+161 236 64
+162 236 64
+163 236 64
+164 236 64
+165 236 64
+166 236 64
+167 236 64
+168 236 64
+169 236 64
+170 236 64
+171 236 64
+172 236 64
+173 236 64
+174 236 64
+175 236 64
+176 236 64
+177 236 64
+178 236 64
+179 236 64
+180 236 64
+181 236 64
+182 236 64
+183 236 64
+184 236 64
+185 236 64
+186 236 64
+187 236 64
+188 236 64
+189 236 64
+190 236 64
+191 236 64
+192 236 64
+193 236 64
+194 236 64
+195 236 64
+196 236 64
+197 236 64
+198 236 64
+199 236 64
+200 236 64
+201 236 64
+202 236 64
+203 236 64
+204 236 64
+205 236 64
+206 236 64
+207 236 64
+208 236 64
+209 236 64
+210 236 64
+211 236 64
+212 236 64
+213 236 64
+214 236 64
+215 236 64
+216 236 64
+217 236 64
+218 236 64
+219 236 64
+220 236 64
+221 236 64
+222 236 64
+223 236 64
+224 236 64
+225 236 64
+226 236 64
+227 236 64
+228 236 64
+229 236 64
+230 236 64
+231 236 64
+232 236 64
+233 236 64
+234 236 64
+235 236 64
+236 236 64
+237 236 64
+238 236 64
+239 236 64
+240 236 64
+241 236 64
+242 236 64
+243 236 64
+244 236 64
+245 236 64
+246 236 64
+247 236 64
+248 236 64
+249 236 64
+250 236 64
+251 236 64
+252 236 64
+253 236 64
+254 236 64
+255 236 64
+0 235 64
+1 235 64
+2 235 64
+3 235 64
+4 235 64
+5 235 64
+6 235 64
+7 235 64
+8 235 64
+9 235 64
+10 235 64
+11 235 64
+12 235 64
+13 235 64
+14 235 64
+15 235 64
+16 235 64
+17 235 64
+18 235 64
+19 235 64
+20 235 64
+21 235 64
+22 235 64
+23 235 64
+24 235 64
+25 235 64
+26 235 64
+27 235 64
+28 235 64
+29 235 64
+30 235 64
+31 235 64
+32 235 64
+33 235 64
+34 235 64
+35 235 64
+36 235 64
+37 235 64
+38 235 64
+39 235 64
+40 235 64
+41 235 64
+42 235 64
+43 235 64
+44 235 64
+45 235 64
+46 235 64
+47 235 64
+48 235 64
+49 235 64
+50 235 64
+51 235 64
+52 235 64
+53 235 64
+54 235 64
+55 235 64
+56 235 64
+57 235 64
+58 235 64
+59 235 64
+60 235 64
+61 235 64
+62 235 64
+63 235 64
+64 235 64
+65 235 64
+66 235 64
+67 235 64
+68 235 64
+69 235 64
+70 235 64
+71 235 64
+72 235 64
+73 235 64
+74 235 64
+75 235 64
+76 235 64
+77 235 64
+78 235 64
+79 235 64
+80 235 64
+81 235 64
+82 235 64
+83 235 64
+84 235 64
+85 235 64
+86 235 64
+87 235 64
+88 235 64
+89 235 64
+90 235 64
+91 235 64
+92 235 64
+93 235 64
+94 235 64
+95 235 64
+96 235 64
+97 235 64
+98 235 64
+99 235 64
+100 235 64
+101 235 64
+102 235 64
+103 235 64
+104 235 64
+105 235 64
+106 235 64
+107 235 64
+108 235 64
+109 235 64
+110 235 64
+111 235 64
+112 235 64
+113 235 64
+114 235 64
+115 235 64
+116 235 64
+117 235 64
+118 235 64
+119 235 64
+120 235 64
+121 235 64
+122 235 64
+123 235 64
+124 235 64
+125 235 64
+126 235 64
+127 235 64
+128 235 64
+129 235 64
+130 235 64
+131 235 64
+132 235 64
+133 235 64
+134 235 64
+135 235 64
+136 235 64
+137 235 64
+138 235 64
+139 235 64
+140 235 64
+141 235 64
+142 235 64
+143 235 64
+144 235 64
+145 235 64
+146 235 64
+147 235 64
+148 235 64
+149 235 64
+150 235 64
+151 235 64
+152 235 64
+153 235 64
+154 235 64
+155 235 64
+156 235 64
+157 235 64
+158 235 64
+159 235 64
+160 235 64
+161 235 64
+162 235 64
+163 235 64
+164 235 64
+165 235 64
+166 235 64
+167 235 64
+168 235 64
+169 235 64
+170 235 64
+171 235 64
+172 235 64
+173 235 64
+174 235 64
+175 235 64
+176 235 64
+177 235 64
+178 235 64
+179 235 64
+180 235 64
+181 235 64
+182 235 64
+183 235 64
+184 235 64
+185 235 64
+186 235 64
+187 235 64
+188 235 64
+189 235 64
+190 235 64
+191 235 64
+192 235 64
+193 235 64
+194 235 64
+195 235 64
+196 235 64
+197 235 64
+198 235 64
+199 235 64
+200 235 64
+201 235 64
+202 235 64
+203 235 64
+204 235 64
+205 235 64
+206 235 64
+207 235 64
+208 235 64
+209 235 64
+210 235 64
+211 235 64
+212 235 64
+213 235 64
+214 235 64
+215 235 64
+216 235 64
+217 235 64
+218 235 64
+219 235 64
+220 235 64
+221 235 64
+222 235 64
+223 235 64
+224 235 64
+225 235 64
+226 235 64
+227 235 64
+228 235 64
+229 235 64
+230 235 64
+231 235 64
+232 235 64
+233 235 64
+234 235 64
+235 235 64
+236 235 64
+237 235 64
+238 235 64
+239 235 64
+240 235 64
+241 235 64
+242 235 64
+243 235 64
+244 235 64
+245 235 64
+246 235 64
+247 235 64
+248 235 64
+249 235 64
+250 235 64
+251 235 64
+252 235 64
+253 235 64
+254 235 64
+255 235 64
+0 234 64
+1 234 64
+2 234 64
+3 234 64
+4 234 64
+5 234 64
+6 234 64
+7 234 64
+8 234 64
+9 234 64
+10 234 64
+11 234 64
+12 234 64
+13 234 64
+14 234 64
+15 234 64
+16 234 64
+17 234 64
+18 234 64
+19 234 64
+20 234 64
+21 234 64
+22 234 64
+23 234 64
+24 234 64
+25 234 64
+26 234 64
+27 234 64
+28 234 64
+29 234 64
+30 234 64
+31 234 64
+32 234 64
+33 234 64
+34 234 64
+35 234 64
+36 234 64
+37 234 64
+38 234 64
+39 234 64
+40 234 64
+41 234 64
+42 234 64
+43 234 64
+44 234 64
+45 234 64
+46 234 64
+47 234 64
+48 234 64
+49 234 64
+50 234 64
+51 234 64
+52 234 64
+53 234 64
+54 234 64
+55 234 64
+56 234 64
+57 234 64
+58 234 64
+59 234 64
+60 234 64
+61 234 64
+62 234 64
+63 234 64
+64 234 64
+65 234 64
+66 234 64
+67 234 64
+68 234 64
+69 234 64
+70 234 64
+71 234 64
+72 234 64
+73 234 64
+74 234 64
+75 234 64
+76 234 64
+77 234 64
+78 234 64
+79 234 64
+80 234 64
+81 234 64
+82 234 64
+83 234 64
+84 234 64
+85 234 64
+86 234 64
+87 234 64
+88 234 64
+89 234 64
+90 234 64
+91 234 64
+92 234 64
+93 234 64
+94 234 64
+95 234 64
+96 234 64
+97 234 64
+98 234 64
+99 234 64
+100 234 64
+101 234 64
+102 234 64
+103 234 64
+104 234 64
+105 234 64
+106 234 64
+107 234 64
+108 234 64
+109 234 64
+110 234 64
+111 234 64
+112 234 64
+113 234 64
+114 234 64
+115 234 64
+116 234 64
+117 234 64
+118 234 64
+119 234 64
+120 234 64
+121 234 64
+122 234 64
+123 234 64
+124 234 64
+125 234 64
+126 234 64
+127 234 64
+128 234 64
+129 234 64
+130 234 64
+131 234 64
+132 234 64
+133 234 64
+134 234 64
+135 234 64
+136 234 64
+137 234 64
+138 234 64
+139 234 64
+140 234 64
+141 234 64
+142 234 64
+143 234 64
+144 234 64
+145 234 64
+146 234 64
+147 234 64
+148 234 64
+149 234 64
+150 234 64
+151 234 64
+152 234 64
+153 234 64
+154 234 64
+155 234 64
+156 234 64
+157 234 64
+158 234 64
+159 234 64
+160 234 64
+161 234 64
+162 234 64
+163 234 64
+164 234 64
+165 234 64
+166 234 64
+167 234 64
+168 234 64
+169 234 64
+170 234 64
+171 234 64
+172 234 64
+173 234 64
+174 234 64
+175 234 64
+176 234 64
+177 234 64
+178 234 64
+179 234 64
+180 234 64
+181 234 64
+182 234 64
+183 234 64
+184 234 64
+185 234 64
+186 234 64
+187 234 64
+188 234 64
+189 234 64
+190 234 64
+191 234 64
+192 234 64
+193 234 64
+194 234 64
+195 234 64
+196 234 64
+197 234 64
+198 234 64
+199 234 64
+200 234 64
+201 234 64
+202 234 64
+203 234 64
+204 234 64
+205 234 64
+206 234 64
+207 234 64
+208 234 64
+209 234 64
+210 234 64
+211 234 64
+212 234 64
+213 234 64
+214 234 64
+215 234 64
+216 234 64
+217 234 64
+218 234 64
+219 234 64
+220 234 64
+221 234 64
+222 234 64
+223 234 64
+224 234 64
+225 234 64
+226 234 64
+227 234 64
+228 234 64
+229 234 64
+230 234 64
+231 234 64
+232 234 64
+233 234 64
+234 234 64
+235 234 64
+236 234 64
+237 234 64
+238 234 64
+239 234 64
+240 234 64
+241 234 64
+242 234 64
+243 234 64
+244 234 64
+245 234 64
+246 234 64
+247 234 64
+248 234 64
+249 234 64
+250 234 64
+251 234 64
+252 234 64
+253 234 64
+254 234 64
+255 234 64
+0 233 64
+1 233 64
+2 233 64
+3 233 64
+4 233 64
+5 233 64
+6 233 64
+7 233 64
+8 233 64
+9 233 64
+10 233 64
+11 233 64
+12 233 64
+13 233 64
+14 233 64
+15 233 64
+16 233 64
+17 233 64
+18 233 64
+19 233 64
+20 233 64
+21 233 64
+22 233 64
+23 233 64
+24 233 64
+25 233 64
+26 233 64
+27 233 64
+28 233 64
+29 233 64
+30 233 64
+31 233 64
+32 233 64
+33 233 64
+34 233 64
+35 233 64
+36 233 64
+37 233 64
+38 233 64
+39 233 64
+40 233 64
+41 233 64
+42 233 64
+43 233 64
+44 233 64
+45 233 64
+46 233 64
+47 233 64
+48 233 64
+49 233 64
+50 233 64
+51 233 64
+52 233 64
+53 233 64
+54 233 64
+55 233 64
+56 233 64
+57 233 64
+58 233 64
+59 233 64
+60 233 64
+61 233 64
+62 233 64
+63 233 64
+64 233 64
+65 233 64
+66 233 64
+67 233 64
+68 233 64
+69 233 64
+70 233 64
+71 233 64
+72 233 64
+73 233 64
+74 233 64
+75 233 64
+76 233 64
+77 233 64
+78 233 64
+79 233 64
+80 233 64
+81 233 64
+82 233 64
+83 233 64
+84 233 64
+85 233 64
+86 233 64
+87 233 64
+88 233 64
+89 233 64
+90 233 64
+91 233 64
+92 233 64
+93 233 64
+94 233 64
+95 233 64
+96 233 64
+97 233 64
+98 233 64
+99 233 64
+100 233 64
+101 233 64
+102 233 64
+103 233 64
+104 233 64
+105 233 64
+106 233 64
+107 233 64
+108 233 64
+109 233 64
+110 233 64
+111 233 64
+112 233 64
+113 233 64
+114 233 64
+115 233 64
+116 233 64
+117 233 64
+118 233 64
+119 233 64
+120 233 64
+121 233 64
+122 233 64
+123 233 64
+124 233 64
+125 233 64
+126 233 64
+127 233 64
+128 233 64
+129 233 64
+130 233 64
+131 233 64
+132 233 64
+133 233 64
+134 233 64
+135 233 64
+136 233 64
+137 233 64
+138 233 64
+139 233 64
+140 233 64
+141 233 64
+142 233 64
+143 233 64
+144 233 64
+145 233 64
+146 233 64
+147 233 64
+148 233 64
+149 233 64
+150 233 64
+151 233 64
+152 233 64
+153 233 64
+154 233 64
+155 233 64
+156 233 64
+157 233 64
+158 233 64
+159 233 64
+160 233 64
+161 233 64
+162 233 64
+163 233 64
+164 233 64
+165 233 64
+166 233 64
+167 233 64
+168 233 64
+169 233 64
+170 233 64
+171 233 64
+172 233 64
+173 233 64
+174 233 64
+175 233 64
+176 233 64
+177 233 64
+178 233 64
+179 233 64
+180 233 64
+181 233 64
+182 233 64
+183 233 64
+184 233 64
+185 233 64
+186 233 64
+187 233 64
+188 233 64
+189 233 64
+190 233 64
+191 233 64
+192 233 64
+193 233 64
+194 233 64
+195 233 64
+196 233 64
+197 233 64
+198 233 64
+199 233 64
+200 233 64
+201 233 64
+202 233 64
+203 233 64
+204 233 64
+205 233 64
+206 233 64
+207 233 64
+208 233 64
+209 233 64
+210 233 64
+211 233 64
+212 233 64
+213 233 64
+214 233 64
+215 233 64
+216 233 64
+217 233 64
+218 233 64
+219 233 64
+220 233 64
+221 233 64
+222 233 64
+223 233 64
+224 233 64
+225 233 64
+226 233 64
+227 233 64
+228 233 64
+229 233 64
+230 233 64
+231 233 64
+232 233 64
+233 233 64
+234 233 64
+235 233 64
+236 233 64
+237 233 64
+238 233 64
+239 233 64
+240 233 64
+241 233 64
+242 233 64
+243 233 64
+244 233 64
+245 233 64
+246 233 64
+247 233 64
+248 233 64
+249 233 64
+250 233 64
+251 233 64
+252 233 64
+253 233 64
+254 233 64
+255 233 64
+0 232 64
+1 232 64
+2 232 64
+3 232 64
+4 232 64
+5 232 64
+6 232 64
+7 232 64
+8 232 64
+9 232 64
+10 232 64
+11 232 64
+12 232 64
+13 232 64
+14 232 64
+15 232 64
+16 232 64
+17 232 64
+18 232 64
+19 232 64
+20 232 64
+21 232 64
+22 232 64
+23 232 64
+24 232 64
+25 232 64
+26 232 64
+27 232 64
+28 232 64
+29 232 64
+30 232 64
+31 232 64
+32 232 64
+33 232 64
+34 232 64
+35 232 64
+36 232 64
+37 232 64
+38 232 64
+39 232 64
+40 232 64
+41 232 64
+42 232 64
+43 232 64
+44 232 64
+45 232 64
+46 232 64
+47 232 64
+48 232 64
+49 232 64
+50 232 64
+51 232 64
+52 232 64
+53 232 64
+54 232 64
+55 232 64
+56 232 64
+57 232 64
+58 232 64
+59 232 64
+60 232 64
+61 232 64
+62 232 64
+63 232 64
+64 232 64
+65 232 64
+66 232 64
+67 232 64
+68 232 64
+69 232 64
+70 232 64
+71 232 64
+72 232 64
+73 232 64
+74 232 64
+75 232 64
+76 232 64
+77 232 64
+78 232 64
+79 232 64
+80 232 64
+81 232 64
+82 232 64
+83 232 64
+84 232 64
+85 232 64
+86 232 64
+87 232 64
+88 232 64
+89 232 64
+90 232 64
+91 232 64
+92 232 64
+93 232 64
+94 232 64
+95 232 64
+96 232 64
+97 232 64
+98 232 64
+99 232 64
+100 232 64
+101 232 64
+102 232 64
+103 232 64
+104 232 64
+105 232 64
+106 232 64
+107 232 64
+108 232 64
+109 232 64
+110 232 64
+111 232 64
+112 232 64
+113 232 64
+114 232 64
+115 232 64
+116 232 64
+117 232 64
+118 232 64
+119 232 64
+120 232 64
+121 232 64
+122 232 64
+123 232 64
+124 232 64
+125 232 64
+126 232 64
+127 232 64
+128 232 64
+129 232 64
+130 232 64
+131 232 64
+132 232 64
+133 232 64
+134 232 64
+135 232 64
+136 232 64
+137 232 64
+138 232 64
+139 232 64
+140 232 64
+141 232 64
+142 232 64
+143 232 64
+144 232 64
+145 232 64
+146 232 64
+147 232 64
+148 232 64
+149 232 64
+150 232 64
+151 232 64
+152 232 64
+153 232 64
+154 232 64
+155 232 64
+156 232 64
+157 232 64
+158 232 64
+159 232 64
+160 232 64
+161 232 64
+162 232 64
+163 232 64
+164 232 64
+165 232 64
+166 232 64
+167 232 64
+168 232 64
+169 232 64
+170 232 64
+171 232 64
+172 232 64
+173 232 64
+174 232 64
+175 232 64
+176 232 64
+177 232 64
+178 232 64
+179 232 64
+180 232 64
+181 232 64
+182 232 64
+183 232 64
+184 232 64
+185 232 64
+186 232 64
+187 232 64
+188 232 64
+189 232 64
+190 232 64
+191 232 64
+192 232 64
+193 232 64
+194 232 64
+195 232 64
+196 232 64
+197 232 64
+198 232 64
+199 232 64
+200 232 64
+201 232 64
+202 232 64
+203 232 64
+204 232 64
+205 232 64
+206 232 64
+207 232 64
+208 232 64
+209 232 64
+210 232 64
+211 232 64
+212 232 64
+213 232 64
+214 232 64
+215 232 64
+216 232 64
+217 232 64
+218 232 64
+219 232 64
+220 232 64
+221 232 64
+222 232 64
+223 232 64
+224 232 64
+225 232 64
+226 232 64
+227 232 64
+228 232 64
+229 232 64
+230 232 64
+231 232 64
+232 232 64
+233 232 64
+234 232 64
+235 232 64
+236 232 64
+237 232 64
+238 232 64
+239 232 64
+240 232 64
+241 232 64
+242 232 64
+243 232 64
+244 232 64
+245 232 64
+246 232 64
+247 232 64
+248 232 64
+249 232 64
+250 232 64
+251 232 64
+252 232 64
+253 232 64
+254 232 64
+255 232 64
+0 231 64
+1 231 64
+2 231 64
+3 231 64
+4 231 64
+5 231 64
+6 231 64
+7 231 64
+8 231 64
+9 231 64
+10 231 64
+11 231 64
+12 231 64
+13 231 64
+14 231 64
+15 231 64
+16 231 64
+17 231 64
+18 231 64
+19 231 64
+20 231 64
+21 231 64
+22 231 64
+23 231 64
+24 231 64
+25 231 64
+26 231 64
+27 231 64
+28 231 64
+29 231 64
+30 231 64
+31 231 64
+32 231 64
+33 231 64
+34 231 64
+35 231 64
+36 231 64
+37 231 64
+38 231 64
+39 231 64
+40 231 64
+41 231 64
+42 231 64
+43 231 64
+44 231 64
+45 231 64
+46 231 64
+47 231 64
+48 231 64
+49 231 64
+50 231 64
+51 231 64
+52 231 64
+53 231 64
+54 231 64
+55 231 64
+56 231 64
+57 231 64
+58 231 64
+59 231 64
+60 231 64
+61 231 64
+62 231 64
+63 231 64
+64 231 64
+65 231 64
+66 231 64
+67 231 64
+68 231 64
+69 231 64
+70 231 64
+71 231 64
+72 231 64
+73 231 64
+74 231 64
+75 231 64
+76 231 64
+77 231 64
+78 231 64
+79 231 64
+80 231 64
+81 231 64
+82 231 64
+83 231 64
+84 231 64
+85 231 64
+86 231 64
+87 231 64
+88 231 64
+89 231 64
+90 231 64
+91 231 64
+92 231 64
+93 231 64
+94 231 64
+95 231 64
+96 231 64
+97 231 64
+98 231 64
+99 231 64
+100 231 64
+101 231 64
+102 231 64
+103 231 64
+104 231 64
+105 231 64
+106 231 64
+107 231 64
+108 231 64
+109 231 64
+110 231 64
+111 231 64
+112 231 64
+113 231 64
+114 231 64
+115 231 64
+116 231 64
+117 231 64
+118 231 64
+119 231 64
+120 231 64
+121 231 64
+122 231 64
+123 231 64
+124 231 64
+125 231 64
+126 231 64
+127 231 64
+128 231 64
+129 231 64
+130 231 64
+131 231 64
+132 231 64
+133 231 64
+134 231 64
+135 231 64
+136 231 64
+137 231 64
+138 231 64
+139 231 64
+140 231 64
+141 231 64
+142 231 64
+143 231 64
+144 231 64
+145 231 64
+146 231 64
+147 231 64
+148 231 64
+149 231 64
+150 231 64
+151 231 64
+152 231 64
+153 231 64
+154 231 64
+155 231 64
+156 231 64
+157 231 64
+158 231 64
+159 231 64
+160 231 64
+161 231 64
+162 231 64
+163 231 64
+164 231 64
+165 231 64
+166 231 64
+167 231 64
+168 231 64
+169 231 64
+170 231 64
+171 231 64
+172 231 64
+173 231 64
+174 231 64
+175 231 64
+176 231 64
+177 231 64
+178 231 64
+179 231 64
+180 231 64
+181 231 64
+182 231 64
+183 231 64
+184 231 64
+185 231 64
+186 231 64
+187 231 64
+188 231 64
+189 231 64
+190 231 64
+191 231 64
+192 231 64
+193 231 64
+194 231 64
+195 231 64
+196 231 64
+197 231 64
+198 231 64
+199 231 64
+200 231 64
+201 231 64
+202 231 64
+203 231 64
+204 231 64
+205 231 64
+206 231 64
+207 231 64
+208 231 64
+209 231 64
+210 231 64
+211 231 64
+212 231 64
+213 231 64
+214 231 64
+215 231 64
+216 231 64
+217 231 64
+218 231 64
+219 231 64
+220 231 64
+221 231 64
+222 231 64
+223 231 64
+224 231 64
+225 231 64
+226 231 64
+227 231 64
+228 231 64
+229 231 64
+230 231 64
+231 231 64
+232 231 64
+233 231 64
+234 231 64
+235 231 64
+236 231 64
+237 231 64
+238 231 64
+239 231 64
+240 231 64
+241 231 64
+242 231 64
+243 231 64
+244 231 64
+245 231 64
+246 231 64
+247 231 64
+248 231 64
+249 231 64
+250 231 64
+251 231 64
+252 231 64
+253 231 64
+254 231 64
+255 231 64
+0 230 64
+1 230 64
+2 230 64
+3 230 64
+4 230 64
+5 230 64
+6 230 64
+7 230 64
+8 230 64
+9 230 64
+10 230 64
+11 230 64
+12 230 64
+13 230 64
+14 230 64
+15 230 64
+16 230 64
+17 230 64
+18 230 64
+19 230 64
+20 230 64
+21 230 64
+22 230 64
+23 230 64
+24 230 64
+25 230 64
+26 230 64
+27 230 64
+28 230 64
+29 230 64
+30 230 64
+31 230 64
+32 230 64
+33 230 64
+34 230 64
+35 230 64
+36 230 64
+37 230 64
+38 230 64
+39 230 64
+40 230 64
+41 230 64
+42 230 64
+43 230 64
+44 230 64
+45 230 64
+46 230 64
+47 230 64
+48 230 64
+49 230 64
+50 230 64
+51 230 64
+52 230 64
+53 230 64
+54 230 64
+55 230 64
+56 230 64
+57 230 64
+58 230 64
+59 230 64
+60 230 64
+61 230 64
+62 230 64
+63 230 64
+64 230 64
+65 230 64
+66 230 64
+67 230 64
+68 230 64
+69 230 64
+70 230 64
+71 230 64
+72 230 64
+73 230 64
+74 230 64
+75 230 64
+76 230 64
+77 230 64
+78 230 64
+79 230 64
+80 230 64
+81 230 64
+82 230 64
+83 230 64
+84 230 64
+85 230 64
+86 230 64
+87 230 64
+88 230 64
+89 230 64
+90 230 64
+91 230 64
+92 230 64
+93 230 64
+94 230 64
+95 230 64
+96 230 64
+97 230 64
+98 230 64
+99 230 64
+100 230 64
+101 230 64
+102 230 64
+103 230 64
+104 230 64
+105 230 64
+106 230 64
+107 230 64
+108 230 64
+109 230 64
+110 230 64
+111 230 64
+112 230 64
+113 230 64
+114 230 64
+115 230 64
+116 230 64
+117 230 64
+118 230 64
+119 230 64
+120 230 64
+121 230 64
+122 230 64
+123 230 64
+124 230 64
+125 230 64
+126 230 64
+127 230 64
+128 230 64
+129 230 64
+130 230 64
+131 230 64
+132 230 64
+133 230 64
+134 230 64
+135 230 64
+136 230 64
+137 230 64
+138 230 64
+139 230 64
+140 230 64
+141 230 64
+142 230 64
+143 230 64
+144 230 64
+145 230 64
+146 230 64
+147 230 64
+148 230 64
+149 230 64
+150 230 64
+151 230 64
+152 230 64
+153 230 64
+154 230 64
+155 230 64
+156 230 64
+157 230 64
+158 230 64
+159 230 64
+160 230 64
+161 230 64
+162 230 64
+163 230 64
+164 230 64
+165 230 64
+166 230 64
+167 230 64
+168 230 64
+169 230 64
+170 230 64
+171 230 64
+172 230 64
+173 230 64
+174 230 64
+175 230 64
+176 230 64
+177 230 64
+178 230 64
+179 230 64
+180 230 64
+181 230 64
+182 230 64
+183 230 64
+184 230 64
+185 230 64
+186 230 64
+187 230 64
+188 230 64
+189 230 64
+190 230 64
+191 230 64
+192 230 64
+193 230 64
+194 230 64
+195 230 64
+196 230 64
+197 230 64
+198 230 64
+199 230 64
+200 230 64
+201 230 64
+202 230 64
+203 230 64
+204 230 64
+205 230 64
+206 230 64
+207 230 64
+208 230 64
+209 230 64
+210 230 64
+211 230 64
+212 230 64
+213 230 64
+214 230 64
+215 230 64
+216 230 64
+217 230 64
+218 230 64
+219 230 64
+220 230 64
+221 230 64
+222 230 64
+223 230 64
+224 230 64
+225 230 64
+226 230 64
+227 230 64
+228 230 64
+229 230 64
+230 230 64
+231 230 64
+232 230 64
+233 230 64
+234 230 64
+235 230 64
+236 230 64
+237 230 64
+238 230 64
+239 230 64
+240 230 64
+241 230 64
+242 230 64
+243 230 64
+244 230 64
+245 230 64
+246 230 64
+247 230 64
+248 230 64
+249 230 64
+250 230 64
+251 230 64
+252 230 64
+253 230 64
+254 230 64
+255 230 64
+0 229 64
+1 229 64
+2 229 64
+3 229 64
+4 229 64
+5 229 64
+6 229 64
+7 229 64
+8 229 64
+9 229 64
+10 229 64
+11 229 64
+12 229 64
+13 229 64
+14 229 64
+15 229 64
+16 229 64
+17 229 64
+18 229 64
+19 229 64
+20 229 64
+21 229 64
+22 229 64
+23 229 64
+24 229 64
+25 229 64
+26 229 64
+27 229 64
+28 229 64
+29 229 64
+30 229 64
+31 229 64
+32 229 64
+33 229 64
+34 229 64
+35 229 64
+36 229 64
+37 229 64
+38 229 64
+39 229 64
+40 229 64
+41 229 64
+42 229 64
+43 229 64
+44 229 64
+45 229 64
+46 229 64
+47 229 64
+48 229 64
+49 229 64
+50 229 64
+51 229 64
+52 229 64
+53 229 64
+54 229 64
+55 229 64
+56 229 64
+57 229 64
+58 229 64
+59 229 64
+60 229 64
+61 229 64
+62 229 64
+63 229 64
+64 229 64
+65 229 64
+66 229 64
+67 229 64
+68 229 64
+69 229 64
+70 229 64
+71 229 64
+72 229 64
+73 229 64
+74 229 64
+75 229 64
+76 229 64
+77 229 64
+78 229 64
+79 229 64
+80 229 64
+81 229 64
+82 229 64
+83 229 64
+84 229 64
+85 229 64
+86 229 64
+87 229 64
+88 229 64
+89 229 64
+90 229 64
+91 229 64
+92 229 64
+93 229 64
+94 229 64
+95 229 64
+96 229 64
+97 229 64
+98 229 64
+99 229 64
+100 229 64
+101 229 64
+102 229 64
+103 229 64
+104 229 64
+105 229 64
+106 229 64
+107 229 64
+108 229 64
+109 229 64
+110 229 64
+111 229 64
+112 229 64
+113 229 64
+114 229 64
+115 229 64
+116 229 64
+117 229 64
+118 229 64
+119 229 64
+120 229 64
+121 229 64
+122 229 64
+123 229 64
+124 229 64
+125 229 64
+126 229 64
+127 229 64
+128 229 64
+129 229 64
+130 229 64
+131 229 64
+132 229 64
+133 229 64
+134 229 64
+135 229 64
+136 229 64
+137 229 64
+138 229 64
+139 229 64
+140 229 64
+141 229 64
+142 229 64
+143 229 64
+144 229 64
+145 229 64
+146 229 64
+147 229 64
+148 229 64
+149 229 64
+150 229 64
+151 229 64
+152 229 64
+153 229 64
+154 229 64
+155 229 64
+156 229 64
+157 229 64
+158 229 64
+159 229 64
+160 229 64
+161 229 64
+162 229 64
+163 229 64
+164 229 64
+165 229 64
+166 229 64
+167 229 64
+168 229 64
+169 229 64
+170 229 64
+171 229 64
+172 229 64
+173 229 64
+174 229 64
+175 229 64
+176 229 64
+177 229 64
+178 229 64
+179 229 64
+180 229 64
+181 229 64
+182 229 64
+183 229 64
+184 229 64
+185 229 64
+186 229 64
+187 229 64
+188 229 64
+189 229 64
+190 229 64
+191 229 64
+192 229 64
+193 229 64
+194 229 64
+195 229 64
+196 229 64
+197 229 64
+198 229 64
+199 229 64
+200 229 64
+201 229 64
+202 229 64
+203 229 64
+204 229 64
+205 229 64
+206 229 64
+207 229 64
+208 229 64
+209 229 64
+210 229 64
+211 229 64
+212 229 64
+213 229 64
+214 229 64
+215 229 64
+216 229 64
+217 229 64
+218 229 64
+219 229 64
+220 229 64
+221 229 64
+222 229 64
+223 229 64
+224 229 64
+225 229 64
+226 229 64
+227 229 64
+228 229 64
+229 229 64
+230 229 64
+231 229 64
+232 229 64
+233 229 64
+234 229 64
+235 229 64
+236 229 64
+237 229 64
+238 229 64
+239 229 64
+240 229 64
+241 229 64
+242 229 64
+243 229 64
+244 229 64
+245 229 64
+246 229 64
+247 229 64
+248 229 64
+249 229 64
+250 229 64
+251 229 64
+252 229 64
+253 229 64
+254 229 64
+255 229 64
+0 228 64
+1 228 64
+2 228 64
+3 228 64
+4 228 64
+5 228 64
+6 228 64
+7 228 64
+8 228 64
+9 228 64
+10 228 64
+11 228 64
+12 228 64
+13 228 64
+14 228 64
+15 228 64
+16 228 64
+17 228 64
+18 228 64
+19 228 64
+20 228 64
+21 228 64
+22 228 64
+23 228 64
+24 228 64
+25 228 64
+26 228 64
+27 228 64
+28 228 64
+29 228 64
+30 228 64
+31 228 64
+32 228 64
+33 228 64
+34 228 64
+35 228 64
+36 228 64
+37 228 64
+38 228 64
+39 228 64
+40 228 64
+41 228 64
+42 228 64
+43 228 64
+44 228 64
+45 228 64
+46 228 64
+47 228 64
+48 228 64
+49 228 64
+50 228 64
+51 228 64
+52 228 64
+53 228 64
+54 228 64
+55 228 64
+56 228 64
+57 228 64
+58 228 64
+59 228 64
+60 228 64
+61 228 64
+62 228 64
+63 228 64
+64 228 64
+65 228 64
+66 228 64
+67 228 64
+68 228 64
+69 228 64
+70 228 64
+71 228 64
+72 228 64
+73 228 64
+74 228 64
+75 228 64
+76 228 64
+77 228 64
+78 228 64
+79 228 64
+80 228 64
+81 228 64
+82 228 64
+83 228 64
+84 228 64
+85 228 64
+86 228 64
+87 228 64
+88 228 64
+89 228 64
+90 228 64
+91 228 64
+92 228 64
+93 228 64
+94 228 64
+95 228 64
+96 228 64
+97 228 64
+98 228 64
+99 228 64
+100 228 64
+101 228 64
+102 228 64
+103 228 64
+104 228 64
+105 228 64
+106 228 64
+107 228 64
+108 228 64
+109 228 64
+110 228 64
+111 228 64
+112 228 64
+113 228 64
+114 228 64
+115 228 64
+116 228 64
+117 228 64
+118 228 64
+119 228 64
+120 228 64
+121 228 64
+122 228 64
+123 228 64
+124 228 64
+125 228 64
+126 228 64
+127 228 64
+128 228 64
+129 228 64
+130 228 64
+131 228 64
+132 228 64
+133 228 64
+134 228 64
+135 228 64
+136 228 64
+137 228 64
+138 228 64
+139 228 64
+140 228 64
+141 228 64
+142 228 64
+143 228 64
+144 228 64
+145 228 64
+146 228 64
+147 228 64
+148 228 64
+149 228 64
+150 228 64
+151 228 64
+152 228 64
+153 228 64
+154 228 64
+155 228 64
+156 228 64
+157 228 64
+158 228 64
+159 228 64
+160 228 64
+161 228 64
+162 228 64
+163 228 64
+164 228 64
+165 228 64
+166 228 64
+167 228 64
+168 228 64
+169 228 64
+170 228 64
+171 228 64
+172 228 64
+173 228 64
+174 228 64
+175 228 64
+176 228 64
+177 228 64
+178 228 64
+179 228 64
+180 228 64
+181 228 64
+182 228 64
+183 228 64
+184 228 64
+185 228 64
+186 228 64
+187 228 64
+188 228 64
+189 228 64
+190 228 64
+191 228 64
+192 228 64
+193 228 64
+194 228 64
+195 228 64
+196 228 64
+197 228 64
+198 228 64
+199 228 64
+200 228 64
+201 228 64
+202 228 64
+203 228 64
+204 228 64
+205 228 64
+206 228 64
+207 228 64
+208 228 64
+209 228 64
+210 228 64
+211 228 64
+212 228 64
+213 228 64
+214 228 64
+215 228 64
+216 228 64
+217 228 64
+218 228 64
+219 228 64
+220 228 64
+221 228 64
+222 228 64
+223 228 64
+224 228 64
+225 228 64
+226 228 64
+227 228 64
+228 228 64
+229 228 64
+230 228 64
+231 228 64
+232 228 64
+233 228 64
+234 228 64
+235 228 64
+236 228 64
+237 228 64
+238 228 64
+239 228 64
+240 228 64
+241 228 64
+242 228 64
+243 228 64
+244 228 64
+245 228 64
+246 228 64
+247 228 64
+248 228 64
+249 228 64
+250 228 64
+251 228 64
+252 228 64
+253 228 64
+254 228 64
+255 228 64
+0 227 64
+1 227 64
+2 227 64
+3 227 64
+4 227 64
+5 227 64
+6 227 64
+7 227 64
+8 227 64
+9 227 64
+10 227 64
+11 227 64
+12 227 64
+13 227 64
+14 227 64
+15 227 64
+16 227 64
+17 227 64
+18 227 64
+19 227 64
+20 227 64
+21 227 64
+22 227 64
+23 227 64
+24 227 64
+25 227 64
+26 227 64
+27 227 64
+28 227 64
+29 227 64
+30 227 64
+31 227 64
+32 227 64
+33 227 64
+34 227 64
+35 227 64
+36 227 64
+37 227 64
+38 227 64
+39 227 64
+40 227 64
+41 227 64
+42 227 64
+43 227 64
+44 227 64
+45 227 64
+46 227 64
+47 227 64
+48 227 64
+49 227 64
+50 227 64
+51 227 64
+52 227 64
+53 227 64
+54 227 64
+55 227 64
+56 227 64
+57 227 64
+58 227 64
+59 227 64
+60 227 64
+61 227 64
+62 227 64
+63 227 64
+64 227 64
+65 227 64
+66 227 64
+67 227 64
+68 227 64
+69 227 64
+70 227 64
+71 227 64
+72 227 64
+73 227 64
+74 227 64
+75 227 64
+76 227 64
+77 227 64
+78 227 64
+79 227 64
+80 227 64
+81 227 64
+82 227 64
+83 227 64
+84 227 64
+85 227 64
+86 227 64
+87 227 64
+88 227 64
+89 227 64
+90 227 64
+91 227 64
+92 227 64
+93 227 64
+94 227 64
+95 227 64
+96 227 64
+97 227 64
+98 227 64
+99 227 64
+100 227 64
+101 227 64
+102 227 64
+103 227 64
+104 227 64
+105 227 64
+106 227 64
+107 227 64
+108 227 64
+109 227 64
+110 227 64
+111 227 64
+112 227 64
+113 227 64
+114 227 64
+115 227 64
+116 227 64
+117 227 64
+118 227 64
+119 227 64
+120 227 64
+121 227 64
+122 227 64
+123 227 64
+124 227 64
+125 227 64
+126 227 64
+127 227 64
+128 227 64
+129 227 64
+130 227 64
+131 227 64
+132 227 64
+133 227 64
+134 227 64
+135 227 64
+136 227 64
+137 227 64
+138 227 64
+139 227 64
+140 227 64
+141 227 64
+142 227 64
+143 227 64
+144 227 64
+145 227 64
+146 227 64
+147 227 64
+148 227 64
+149 227 64
+150 227 64
+151 227 64
+152 227 64
+153 227 64
+154 227 64
+155 227 64
+156 227 64
+157 227 64
+158 227 64
+159 227 64
+160 227 64
+161 227 64
+162 227 64
+163 227 64
+164 227 64
+165 227 64
+166 227 64
+167 227 64
+168 227 64
+169 227 64
+170 227 64
+171 227 64
+172 227 64
+173 227 64
+174 227 64
+175 227 64
+176 227 64
+177 227 64
+178 227 64
+179 227 64
+180 227 64
+181 227 64
+182 227 64
+183 227 64
+184 227 64
+185 227 64
+186 227 64
+187 227 64
+188 227 64
+189 227 64
+190 227 64
+191 227 64
+192 227 64
+193 227 64
+194 227 64
+195 227 64
+196 227 64
+197 227 64
+198 227 64
+199 227 64
+200 227 64
+201 227 64
+202 227 64
+203 227 64
+204 227 64
+205 227 64
+206 227 64
+207 227 64
+208 227 64
+209 227 64
+210 227 64
+211 227 64
+212 227 64
+213 227 64
+214 227 64
+215 227 64
+216 227 64
+217 227 64
+218 227 64
+219 227 64
+220 227 64
+221 227 64
+222 227 64
+223 227 64
+224 227 64
+225 227 64
+226 227 64
+227 227 64
+228 227 64
+229 227 64
+230 227 64
+231 227 64
+232 227 64
+233 227 64
+234 227 64
+235 227 64
+236 227 64
+237 227 64
+238 227 64
+239 227 64
+240 227 64
+241 227 64
+242 227 64
+243 227 64
+244 227 64
+245 227 64
+246 227 64
+247 227 64
+248 227 64
+249 227 64
+250 227 64
+251 227 64
+252 227 64
+253 227 64
+254 227 64
+255 227 64
+0 226 64
+1 226 64
+2 226 64
+3 226 64
+4 226 64
+5 226 64
+6 226 64
+7 226 64
+8 226 64
+9 226 64
+10 226 64
+11 226 64
+12 226 64
+13 226 64
+14 226 64
+15 226 64
+16 226 64
+17 226 64
+18 226 64
+19 226 64
+20 226 64
+21 226 64
+22 226 64
+23 226 64
+24 226 64
+25 226 64
+26 226 64
+27 226 64
+28 226 64
+29 226 64
+30 226 64
+31 226 64
+32 226 64
+33 226 64
+34 226 64
+35 226 64
+36 226 64
+37 226 64
+38 226 64
+39 226 64
+40 226 64
+41 226 64
+42 226 64
+43 226 64
+44 226 64
+45 226 64
+46 226 64
+47 226 64
+48 226 64
+49 226 64
+50 226 64
+51 226 64
+52 226 64
+53 226 64
+54 226 64
+55 226 64
+56 226 64
+57 226 64
+58 226 64
+59 226 64
+60 226 64
+61 226 64
+62 226 64
+63 226 64
+64 226 64
+65 226 64
+66 226 64
+67 226 64
+68 226 64
+69 226 64
+70 226 64
+71 226 64
+72 226 64
+73 226 64
+74 226 64
+75 226 64
+76 226 64
+77 226 64
+78 226 64
+79 226 64
+80 226 64
+81 226 64
+82 226 64
+83 226 64
+84 226 64
+85 226 64
+86 226 64
+87 226 64
+88 226 64
+89 226 64
+90 226 64
+91 226 64
+92 226 64
+93 226 64
+94 226 64
+95 226 64
+96 226 64
+97 226 64
+98 226 64
+99 226 64
+100 226 64
+101 226 64
+102 226 64
+103 226 64
+104 226 64
+105 226 64
+106 226 64
+107 226 64
+108 226 64
+109 226 64
+110 226 64
+111 226 64
+112 226 64
+113 226 64
+114 226 64
+115 226 64
+116 226 64
+117 226 64
+118 226 64
+119 226 64
+120 226 64
+121 226 64
+122 226 64
+123 226 64
+124 226 64
+125 226 64
+126 226 64
+127 226 64
+128 226 64
+129 226 64
+130 226 64
+131 226 64
+132 226 64
+133 226 64
+134 226 64
+135 226 64
+136 226 64
+137 226 64
+138 226 64
+139 226 64
+140 226 64
+141 226 64
+142 226 64
+143 226 64
+144 226 64
+145 226 64
+146 226 64
+147 226 64
+148 226 64
+149 226 64
+150 226 64
+151 226 64
+152 226 64
+153 226 64
+154 226 64
+155 226 64
+156 226 64
+157 226 64
+158 226 64
+159 226 64
+160 226 64
+161 226 64
+162 226 64
+163 226 64
+164 226 64
+165 226 64
+166 226 64
+167 226 64
+168 226 64
+169 226 64
+170 226 64
+171 226 64
+172 226 64
+173 226 64
+174 226 64
+175 226 64
+176 226 64
+177 226 64
+178 226 64
+179 226 64
+180 226 64
+181 226 64
+182 226 64
+183 226 64
+184 226 64
+185 226 64
+186 226 64
+187 226 64
+188 226 64
+189 226 64
+190 226 64
+191 226 64
+192 226 64
+193 226 64
+194 226 64
+195 226 64
+196 226 64
+197 226 64
+198 226 64
+199 226 64
+200 226 64
+201 226 64
+202 226 64
+203 226 64
+204 226 64
+205 226 64
+206 226 64
+207 226 64
+208 226 64
+209 226 64
+210 226 64
+211 226 64
+212 226 64
+213 226 64
+214 226 64
+215 226 64
+216 226 64
+217 226 64
+218 226 64
+219 226 64
+220 226 64
+221 226 64
+222 226 64
+223 226 64
+224 226 64
+225 226 64
+226 226 64
+227 226 64
+228 226 64
+229 226 64
+230 226 64
+231 226 64
+232 226 64
+233 226 64
+234 226 64
+235 226 64
+236 226 64
+237 226 64
+238 226 64
+239 226 64
+240 226 64
+241 226 64
+242 226 64
+243 226 64
+244 226 64
+245 226 64
+246 226 64
+247 226 64
+248 226 64
+249 226 64
+250 226 64
+251 226 64
+252 226 64
+253 226 64
+254 226 64
+255 226 64
+0 225 64
+1 225 64
+2 225 64
+3 225 64
+4 225 64
+5 225 64
+6 225 64
+7 225 64
+8 225 64
+9 225 64
+10 225 64
+11 225 64
+12 225 64
+13 225 64
+14 225 64
+15 225 64
+16 225 64
+17 225 64
+18 225 64
+19 225 64
+20 225 64
+21 225 64
+22 225 64
+23 225 64
+24 225 64
+25 225 64
+26 225 64
+27 225 64
+28 225 64
+29 225 64
+30 225 64
+31 225 64
+32 225 64
+33 225 64
+34 225 64
+35 225 64
+36 225 64
+37 225 64
+38 225 64
+39 225 64
+40 225 64
+41 225 64
+42 225 64
+43 225 64
+44 225 64
+45 225 64
+46 225 64
+47 225 64
+48 225 64
+49 225 64
+50 225 64
+51 225 64
+52 225 64
+53 225 64
+54 225 64
+55 225 64
+56 225 64
+57 225 64
+58 225 64
+59 225 64
+60 225 64
+61 225 64
+62 225 64
+63 225 64
+64 225 64
+65 225 64
+66 225 64
+67 225 64
+68 225 64
+69 225 64
+70 225 64
+71 225 64
+72 225 64
+73 225 64
+74 225 64
+75 225 64
+76 225 64
+77 225 64
+78 225 64
+79 225 64
+80 225 64
+81 225 64
+82 225 64
+83 225 64
+84 225 64
+85 225 64
+86 225 64
+87 225 64
+88 225 64
+89 225 64
+90 225 64
+91 225 64
+92 225 64
+93 225 64
+94 225 64
+95 225 64
+96 225 64
+97 225 64
+98 225 64
+99 225 64
+100 225 64
+101 225 64
+102 225 64
+103 225 64
+104 225 64
+105 225 64
+106 225 64
+107 225 64
+108 225 64
+109 225 64
+110 225 64
+111 225 64
+112 225 64
+113 225 64
+114 225 64
+115 225 64
+116 225 64
+117 225 64
+118 225 64
+119 225 64
+120 225 64
+121 225 64
+122 225 64
+123 225 64
+124 225 64
+125 225 64
+126 225 64
+127 225 64
+128 225 64
+129 225 64
+130 225 64
+131 225 64
+132 225 64
+133 225 64
+134 225 64
+135 225 64
+136 225 64
+137 225 64
+138 225 64
+139 225 64
+140 225 64
+141 225 64
+142 225 64
+143 225 64
+144 225 64
+145 225 64
+146 225 64
+147 225 64
+148 225 64
+149 225 64
+150 225 64
+151 225 64
+152 225 64
+153 225 64
+154 225 64
+155 225 64
+156 225 64
+157 225 64
+158 225 64
+159 225 64
+160 225 64
+161 225 64
+162 225 64
+163 225 64
+164 225 64
+165 225 64
+166 225 64
+167 225 64
+168 225 64
+169 225 64
+170 225 64
+171 225 64
+172 225 64
+173 225 64
+174 225 64
+175 225 64
+176 225 64
+177 225 64
+178 225 64
+179 225 64
+180 225 64
+181 225 64
+182 225 64
+183 225 64
+184 225 64
+185 225 64
+186 225 64
+187 225 64
+188 225 64
+189 225 64
+190 225 64
+191 225 64
+192 225 64
+193 225 64
+194 225 64
+195 225 64
+196 225 64
+197 225 64
+198 225 64
+199 225 64
+200 225 64
+201 225 64
+202 225 64
+203 225 64
+204 225 64
+205 225 64
+206 225 64
+207 225 64
+208 225 64
+209 225 64
+210 225 64
+211 225 64
+212 225 64
+213 225 64
+214 225 64
+215 225 64
+216 225 64
+217 225 64
+218 225 64
+219 225 64
+220 225 64
+221 225 64
+222 225 64
+223 225 64
+224 225 64
+225 225 64
+226 225 64
+227 225 64
+228 225 64
+229 225 64
+230 225 64
+231 225 64
+232 225 64
+233 225 64
+234 225 64
+235 225 64
+236 225 64
+237 225 64
+238 225 64
+239 225 64
+240 225 64
+241 225 64
+242 225 64
+243 225 64
+244 225 64
+245 225 64
+246 225 64
+247 225 64
+248 225 64
+249 225 64
+250 225 64
+251 225 64
+252 225 64
+253 225 64
+254 225 64
+255 225 64
+0 224 64
+1 224 64
+2 224 64
+3 224 64
+4 224 64
+5 224 64
+6 224 64
+7 224 64
+8 224 64
+9 224 64
+10 224 64
+11 224 64
+12 224 64
+13 224 64
+14 224 64
+15 224 64
+16 224 64
+17 224 64
+18 224 64
+19 224 64
+20 224 64
+21 224 64
+22 224 64
+23 224 64
+24 224 64
+25 224 64
+26 224 64
+27 224 64
+28 224 64
+29 224 64
+30 224 64
+31 224 64
+32 224 64
+33 224 64
+34 224 64
+35 224 64
+36 224 64
+37 224 64
+38 224 64
+39 224 64
+40 224 64
+41 224 64
+42 224 64
+43 224 64
+44 224 64
+45 224 64
+46 224 64
+47 224 64
+48 224 64
+49 224 64
+50 224 64
+51 224 64
+52 224 64
+53 224 64
+54 224 64
+55 224 64
+56 224 64
+57 224 64
+58 224 64
+59 224 64
+60 224 64
+61 224 64
+62 224 64
+63 224 64
+64 224 64
+65 224 64
+66 224 64
+67 224 64
+68 224 64
+69 224 64
+70 224 64
+71 224 64
+72 224 64
+73 224 64
+74 224 64
+75 224 64
+76 224 64
+77 224 64
+78 224 64
+79 224 64
+80 224 64
+81 224 64
+82 224 64
+83 224 64
+84 224 64
+85 224 64
+86 224 64
+87 224 64
+88 224 64
+89 224 64
+90 224 64
+91 224 64
+92 224 64
+93 224 64
+94 224 64
+95 224 64
+96 224 64
+97 224 64
+98 224 64
+99 224 64
+100 224 64
+101 224 64
+102 224 64
+103 224 64
+104 224 64
+105 224 64
+106 224 64
+107 224 64
+108 224 64
+109 224 64
+110 224 64
+111 224 64
+112 224 64
+113 224 64
+114 224 64
+115 224 64
+116 224 64
+117 224 64
+118 224 64
+119 224 64
+120 224 64
+121 224 64
+122 224 64
+123 224 64
+124 224 64
+125 224 64
+126 224 64
+127 224 64
+128 224 64
+129 224 64
+130 224 64
+131 224 64
+132 224 64
+133 224 64
+134 224 64
+135 224 64
+136 224 64
+137 224 64
+138 224 64
+139 224 64
+140 224 64
+141 224 64
+142 224 64
+143 224 64
+144 224 64
+145 224 64
+146 224 64
+147 224 64
+148 224 64
+149 224 64
+150 224 64
+151 224 64
+152 224 64
+153 224 64
+154 224 64
+155 224 64
+156 224 64
+157 224 64
+158 224 64
+159 224 64
+160 224 64
+161 224 64
+162 224 64
+163 224 64
+164 224 64
+165 224 64
+166 224 64
+167 224 64
+168 224 64
+169 224 64
+170 224 64
+171 224 64
+172 224 64
+173 224 64
+174 224 64
+175 224 64
+176 224 64
+177 224 64
+178 224 64
+179 224 64
+180 224 64
+181 224 64
+182 224 64
+183 224 64
+184 224 64
+185 224 64
+186 224 64
+187 224 64
+188 224 64
+189 224 64
+190 224 64
+191 224 64
+192 224 64
+193 224 64
+194 224 64
+195 224 64
+196 224 64
+197 224 64
+198 224 64
+199 224 64
+200 224 64
+201 224 64
+202 224 64
+203 224 64
+204 224 64
+205 224 64
+206 224 64
+207 224 64
+208 224 64
+209 224 64
+210 224 64
+211 224 64
+212 224 64
+213 224 64
+214 224 64
+215 224 64
+216 224 64
+217 224 64
+218 224 64
+219 224 64
+220 224 64
+221 224 64
+222 224 64
+223 224 64
+224 224 64
+225 224 64
+226 224 64
+227 224 64
+228 224 64
+229 224 64
+230 224 64
+231 224 64
+232 224 64
+233 224 64
+234 224 64
+235 224 64
+236 224 64
+237 224 64
+238 224 64
+239 224 64
+240 224 64
+241 224 64
+242 224 64
+243 224 64
+244 224 64
+245 224 64
+246 224 64
+247 224 64
+248 224 64
+249 224 64
+250 224 64
+251 224 64
+252 224 64
+253 224 64
+254 224 64
+255 224 64
+0 223 64
+1 223 64
+2 223 64
+3 223 64
+4 223 64
+5 223 64
+6 223 64
+7 223 64
+8 223 64
+9 223 64
+10 223 64
+11 223 64
+12 223 64
+13 223 64
+14 223 64
+15 223 64
+16 223 64
+17 223 64
+18 223 64
+19 223 64
+20 223 64
+21 223 64
+22 223 64
+23 223 64
+24 223 64
+25 223 64
+26 223 64
+27 223 64
+28 223 64
+29 223 64
+30 223 64
+31 223 64
+32 223 64
+33 223 64
+34 223 64
+35 223 64
+36 223 64
+37 223 64
+38 223 64
+39 223 64
+40 223 64
+41 223 64
+42 223 64
+43 223 64
+44 223 64
+45 223 64
+46 223 64
+47 223 64
+48 223 64
+49 223 64
+50 223 64
+51 223 64
+52 223 64
+53 223 64
+54 223 64
+55 223 64
+56 223 64
+57 223 64
+58 223 64
+59 223 64
+60 223 64
+61 223 64
+62 223 64
+63 223 64
+64 223 64
+65 223 64
+66 223 64
+67 223 64
+68 223 64
+69 223 64
+70 223 64
+71 223 64
+72 223 64
+73 223 64
+74 223 64
+75 223 64
+76 223 64
+77 223 64
+78 223 64
+79 223 64
+80 223 64
+81 223 64
+82 223 64
+83 223 64
+84 223 64
+85 223 64
+86 223 64
+87 223 64
+88 223 64
+89 223 64
+90 223 64
+91 223 64
+92 223 64
+93 223 64
+94 223 64
+95 223 64
+96 223 64
+97 223 64
+98 223 64
+99 223 64
+100 223 64
+101 223 64
+102 223 64
+103 223 64
+104 223 64
+105 223 64
+106 223 64
+107 223 64
+108 223 64
+109 223 64
+110 223 64
+111 223 64
+112 223 64
+113 223 64
+114 223 64
+115 223 64
+116 223 64
+117 223 64
+118 223 64
+119 223 64
+120 223 64
+121 223 64
+122 223 64
+123 223 64
+124 223 64
+125 223 64
+126 223 64
+127 223 64
+128 223 64
+129 223 64
+130 223 64
+131 223 64
+132 223 64
+133 223 64
+134 223 64
+135 223 64
+136 223 64
+137 223 64
+138 223 64
+139 223 64
+140 223 64
+141 223 64
+142 223 64
+143 223 64
+144 223 64
+145 223 64
+146 223 64
+147 223 64
+148 223 64
+149 223 64
+150 223 64
+151 223 64
+152 223 64
+153 223 64
+154 223 64
+155 223 64
+156 223 64
+157 223 64
+158 223 64
+159 223 64
+160 223 64
+161 223 64
+162 223 64
+163 223 64
+164 223 64
+165 223 64
+166 223 64
+167 223 64
+168 223 64
+169 223 64
+170 223 64
+171 223 64
+172 223 64
+173 223 64
+174 223 64
+175 223 64
+176 223 64
+177 223 64
+178 223 64
+179 223 64
+180 223 64
+181 223 64
+182 223 64
+183 223 64
+184 223 64
+185 223 64
+186 223 64
+187 223 64
+188 223 64
+189 223 64
+190 223 64
+191 223 64
+192 223 64
+193 223 64
+194 223 64
+195 223 64
+196 223 64
+197 223 64
+198 223 64
+199 223 64
+200 223 64
+201 223 64
+202 223 64
+203 223 64
+204 223 64
+205 223 64
+206 223 64
+207 223 64
+208 223 64
+209 223 64
+210 223 64
+211 223 64
+212 223 64
+213 223 64
+214 223 64
+215 223 64
+216 223 64
+217 223 64
+218 223 64
+219 223 64
+220 223 64
+221 223 64
+222 223 64
+223 223 64
+224 223 64
+225 223 64
+226 223 64
+227 223 64
+228 223 64
+229 223 64
+230 223 64
+231 223 64
+232 223 64
+233 223 64
+234 223 64
+235 223 64
+236 223 64
+237 223 64
+238 223 64
+239 223 64
+240 223 64
+241 223 64
+242 223 64
+243 223 64
+244 223 64
+245 223 64
+246 223 64
+247 223 64
+248 223 64
+249 223 64
+250 223 64
+251 223 64
+252 223 64
+253 223 64
+254 223 64
+255 223 64
+0 222 64
+1 222 64
+2 222 64
+3 222 64
+4 222 64
+5 222 64
+6 222 64
+7 222 64
+8 222 64
+9 222 64
+10 222 64
+11 222 64
+12 222 64
+13 222 64
+14 222 64
+15 222 64
+16 222 64
+17 222 64
+18 222 64
+19 222 64
+20 222 64
+21 222 64
+22 222 64
+23 222 64
+24 222 64
+25 222 64
+26 222 64
+27 222 64
+28 222 64
+29 222 64
+30 222 64
+31 222 64
+32 222 64
+33 222 64
+34 222 64
+35 222 64
+36 222 64
+37 222 64
+38 222 64
+39 222 64
+40 222 64
+41 222 64
+42 222 64
+43 222 64
+44 222 64
+45 222 64
+46 222 64
+47 222 64
+48 222 64
+49 222 64
+50 222 64
+51 222 64
+52 222 64
+53 222 64
+54 222 64
+55 222 64
+56 222 64
+57 222 64
+58 222 64
+59 222 64
+60 222 64
+61 222 64
+62 222 64
+63 222 64
+64 222 64
+65 222 64
+66 222 64
+67 222 64
+68 222 64
+69 222 64
+70 222 64
+71 222 64
+72 222 64
+73 222 64
+74 222 64
+75 222 64
+76 222 64
+77 222 64
+78 222 64
+79 222 64
+80 222 64
+81 222 64
+82 222 64
+83 222 64
+84 222 64
+85 222 64
+86 222 64
+87 222 64
+88 222 64
+89 222 64
+90 222 64
+91 222 64
+92 222 64
+93 222 64
+94 222 64
+95 222 64
+96 222 64
+97 222 64
+98 222 64
+99 222 64
+100 222 64
+101 222 64
+102 222 64
+103 222 64
+104 222 64
+105 222 64
+106 222 64
+107 222 64
+108 222 64
+109 222 64
+110 222 64
+111 222 64
+112 222 64
+113 222 64
+114 222 64
+115 222 64
+116 222 64
+117 222 64
+118 222 64
+119 222 64
+120 222 64
+121 222 64
+122 222 64
+123 222 64
+124 222 64
+125 222 64
+126 222 64
+127 222 64
+128 222 64
+129 222 64
+130 222 64
+131 222 64
+132 222 64
+133 222 64
+134 222 64
+135 222 64
+136 222 64
+137 222 64
+138 222 64
+139 222 64
+140 222 64
+141 222 64
+142 222 64
+143 222 64
+144 222 64
+145 222 64
+146 222 64
+147 222 64
+148 222 64
+149 222 64
+150 222 64
+151 222 64
+152 222 64
+153 222 64
+154 222 64
+155 222 64
+156 222 64
+157 222 64
+158 222 64
+159 222 64
+160 222 64
+161 222 64
+162 222 64
+163 222 64
+164 222 64
+165 222 64
+166 222 64
+167 222 64
+168 222 64
+169 222 64
+170 222 64
+171 222 64
+172 222 64
+173 222 64
+174 222 64
+175 222 64
+176 222 64
+177 222 64
+178 222 64
+179 222 64
+180 222 64
+181 222 64
+182 222 64
+183 222 64
+184 222 64
+185 222 64
+186 222 64
+187 222 64
+188 222 64
+189 222 64
+190 222 64
+191 222 64
+192 222 64
+193 222 64
+194 222 64
+195 222 64
+196 222 64
+197 222 64
+198 222 64
+199 222 64
+200 222 64
+201 222 64
+202 222 64
+203 222 64
+204 222 64
+205 222 64
+206 222 64
+207 222 64
+208 222 64
+209 222 64
+210 222 64
+211 222 64
+212 222 64
+213 222 64
+214 222 64
+215 222 64
+216 222 64
+217 222 64
+218 222 64
+219 222 64
+220 222 64
+221 222 64
+222 222 64
+223 222 64
+224 222 64
+225 222 64
+226 222 64
+227 222 64
+228 222 64
+229 222 64
+230 222 64
+231 222 64
+232 222 64
+233 222 64
+234 222 64
+235 222 64
+236 222 64
+237 222 64
+238 222 64
+239 222 64
+240 222 64
+241 222 64
+242 222 64
+243 222 64
+244 222 64
+245 222 64
+246 222 64
+247 222 64
+248 222 64
+249 222 64
+250 222 64
+251 222 64
+252 222 64
+253 222 64
+254 222 64
+255 222 64
+0 221 64
+1 221 64
+2 221 64
+3 221 64
+4 221 64
+5 221 64
+6 221 64
+7 221 64
+8 221 64
+9 221 64
+10 221 64
+11 221 64
+12 221 64
+13 221 64
+14 221 64
+15 221 64
+16 221 64
+17 221 64
+18 221 64
+19 221 64
+20 221 64
+21 221 64
+22 221 64
+23 221 64
+24 221 64
+25 221 64
+26 221 64
+27 221 64
+28 221 64
+29 221 64
+30 221 64
+31 221 64
+32 221 64
+33 221 64
+34 221 64
+35 221 64
+36 221 64
+37 221 64
+38 221 64
+39 221 64
+40 221 64
+41 221 64
+42 221 64
+43 221 64
+44 221 64
+45 221 64
+46 221 64
+47 221 64
+48 221 64
+49 221 64
+50 221 64
+51 221 64
+52 221 64
+53 221 64
+54 221 64
+55 221 64
+56 221 64
+57 221 64
+58 221 64
+59 221 64
+60 221 64
+61 221 64
+62 221 64
+63 221 64
+64 221 64
+65 221 64
+66 221 64
+67 221 64
+68 221 64
+69 221 64
+70 221 64
+71 221 64
+72 221 64
+73 221 64
+74 221 64
+75 221 64
+76 221 64
+77 221 64
+78 221 64
+79 221 64
+80 221 64
+81 221 64
+82 221 64
+83 221 64
+84 221 64
+85 221 64
+86 221 64
+87 221 64
+88 221 64
+89 221 64
+90 221 64
+91 221 64
+92 221 64
+93 221 64
+94 221 64
+95 221 64
+96 221 64
+97 221 64
+98 221 64
+99 221 64
+100 221 64
+101 221 64
+102 221 64
+103 221 64
+104 221 64
+105 221 64
+106 221 64
+107 221 64
+108 221 64
+109 221 64
+110 221 64
+111 221 64
+112 221 64
+113 221 64
+114 221 64
+115 221 64
+116 221 64
+117 221 64
+118 221 64
+119 221 64
+120 221 64
+121 221 64
+122 221 64
+123 221 64
+124 221 64
+125 221 64
+126 221 64
+127 221 64
+128 221 64
+129 221 64
+130 221 64
+131 221 64
+132 221 64
+133 221 64
+134 221 64
+135 221 64
+136 221 64
+137 221 64
+138 221 64
+139 221 64
+140 221 64
+141 221 64
+142 221 64
+143 221 64
+144 221 64
+145 221 64
+146 221 64
+147 221 64
+148 221 64
+149 221 64
+150 221 64
+151 221 64
+152 221 64
+153 221 64
+154 221 64
+155 221 64
+156 221 64
+157 221 64
+158 221 64
+159 221 64
+160 221 64
+161 221 64
+162 221 64
+163 221 64
+164 221 64
+165 221 64
+166 221 64
+167 221 64
+168 221 64
+169 221 64
+170 221 64
+171 221 64
+172 221 64
+173 221 64
+174 221 64
+175 221 64
+176 221 64
+177 221 64
+178 221 64
+179 221 64
+180 221 64
+181 221 64
+182 221 64
+183 221 64
+184 221 64
+185 221 64
+186 221 64
+187 221 64
+188 221 64
+189 221 64
+190 221 64
+191 221 64
+192 221 64
+193 221 64
+194 221 64
+195 221 64
+196 221 64
+197 221 64
+198 221 64
+199 221 64
+200 221 64
+201 221 64
+202 221 64
+203 221 64
+204 221 64
+205 221 64
+206 221 64
+207 221 64
+208 221 64
+209 221 64
+210 221 64
+211 221 64
+212 221 64
+213 221 64
+214 221 64
+215 221 64
+216 221 64
+217 221 64
+218 221 64
+219 221 64
+220 221 64
+221 221 64
+222 221 64
+223 221 64
+224 221 64
+225 221 64
+226 221 64
+227 221 64
+228 221 64
+229 221 64
+230 221 64
+231 221 64
+232 221 64
+233 221 64
+234 221 64
+235 221 64
+236 221 64
+237 221 64
+238 221 64
+239 221 64
+240 221 64
+241 221 64
+242 221 64
+243 221 64
+244 221 64
+245 221 64
+246 221 64
+247 221 64
+248 221 64
+249 221 64
+250 221 64
+251 221 64
+252 221 64
+253 221 64
+254 221 64
+255 221 64
+0 220 64
+1 220 64
+2 220 64
+3 220 64
+4 220 64
+5 220 64
+6 220 64
+7 220 64
+8 220 64
+9 220 64
+10 220 64
+11 220 64
+12 220 64
+13 220 64
+14 220 64
+15 220 64
+16 220 64
+17 220 64
+18 220 64
+19 220 64
+20 220 64
+21 220 64
+22 220 64
+23 220 64
+24 220 64
+25 220 64
+26 220 64
+27 220 64
+28 220 64
+29 220 64
+30 220 64
+31 220 64
+32 220 64
+33 220 64
+34 220 64
+35 220 64
+36 220 64
+37 220 64
+38 220 64
+39 220 64
+40 220 64
+41 220 64
+42 220 64
+43 220 64
+44 220 64
+45 220 64
+46 220 64
+47 220 64
+48 220 64
+49 220 64
+50 220 64
+51 220 64
+52 220 64
+53 220 64
+54 220 64
+55 220 64
+56 220 64
+57 220 64
+58 220 64
+59 220 64
+60 220 64
+61 220 64
+62 220 64
+63 220 64
+64 220 64
+65 220 64
+66 220 64
+67 220 64
+68 220 64
+69 220 64
+70 220 64
+71 220 64
+72 220 64
+73 220 64
+74 220 64
+75 220 64
+76 220 64
+77 220 64
+78 220 64
+79 220 64
+80 220 64
+81 220 64
+82 220 64
+83 220 64
+84 220 64
+85 220 64
+86 220 64
+87 220 64
+88 220 64
+89 220 64
+90 220 64
+91 220 64
+92 220 64
+93 220 64
+94 220 64
+95 220 64
+96 220 64
+97 220 64
+98 220 64
+99 220 64
+100 220 64
+101 220 64
+102 220 64
+103 220 64
+104 220 64
+105 220 64
+106 220 64
+107 220 64
+108 220 64
+109 220 64
+110 220 64
+111 220 64
+112 220 64
+113 220 64
+114 220 64
+115 220 64
+116 220 64
+117 220 64
+118 220 64
+119 220 64
+120 220 64
+121 220 64
+122 220 64
+123 220 64
+124 220 64
+125 220 64
+126 220 64
+127 220 64
+128 220 64
+129 220 64
+130 220 64
+131 220 64
+132 220 64
+133 220 64
+134 220 64
+135 220 64
+136 220 64
+137 220 64
+138 220 64
+139 220 64
+140 220 64
+141 220 64
+142 220 64
+143 220 64
+144 220 64
+145 220 64
+146 220 64
+147 220 64
+148 220 64
+149 220 64
+150 220 64
+151 220 64
+152 220 64
+153 220 64
+154 220 64
+155 220 64
+156 220 64
+157 220 64
+158 220 64
+159 220 64
+160 220 64
+161 220 64
+162 220 64
+163 220 64
+164 220 64
+165 220 64
+166 220 64
+167 220 64
+168 220 64
+169 220 64
+170 220 64
+171 220 64
+172 220 64
+173 220 64
+174 220 64
+175 220 64
+176 220 64
+177 220 64
+178 220 64
+179 220 64
+180 220 64
+181 220 64
+182 220 64
+183 220 64
+184 220 64
+185 220 64
+186 220 64
+187 220 64
+188 220 64
+189 220 64
+190 220 64
+191 220 64
+192 220 64
+193 220 64
+194 220 64
+195 220 64
+196 220 64
+197 220 64
+198 220 64
+199 220 64
+200 220 64
+201 220 64
+202 220 64
+203 220 64
+204 220 64
+205 220 64
+206 220 64
+207 220 64
+208 220 64
+209 220 64
+210 220 64
+211 220 64
+212 220 64
+213 220 64
+214 220 64
+215 220 64
+216 220 64
+217 220 64
+218 220 64
+219 220 64
+220 220 64
+221 220 64
+222 220 64
+223 220 64
+224 220 64
+225 220 64
+226 220 64
+227 220 64
+228 220 64
+229 220 64
+230 220 64
+231 220 64
+232 220 64
+233 220 64
+234 220 64
+235 220 64
+236 220 64
+237 220 64
+238 220 64
+239 220 64
+240 220 64
+241 220 64
+242 220 64
+243 220 64
+244 220 64
+245 220 64
+246 220 64
+247 220 64
+248 220 64
+249 220 64
+250 220 64
+251 220 64
+252 220 64
+253 220 64
+254 220 64
+255 220 64
+0 219 64
+1 219 64
+2 219 64
+3 219 64
+4 219 64
+5 219 64
+6 219 64
+7 219 64
+8 219 64
+9 219 64
+10 219 64
+11 219 64
+12 219 64
+13 219 64
+14 219 64
+15 219 64
+16 219 64
+17 219 64
+18 219 64
+19 219 64
+20 219 64
+21 219 64
+22 219 64
+23 219 64
+24 219 64
+25 219 64
+26 219 64
+27 219 64
+28 219 64
+29 219 64
+30 219 64
+31 219 64
+32 219 64
+33 219 64
+34 219 64
+35 219 64
+36 219 64
+37 219 64
+38 219 64
+39 219 64
+40 219 64
+41 219 64
+42 219 64
+43 219 64
+44 219 64
+45 219 64
+46 219 64
+47 219 64
+48 219 64
+49 219 64
+50 219 64
+51 219 64
+52 219 64
+53 219 64
+54 219 64
+55 219 64
+56 219 64
+57 219 64
+58 219 64
+59 219 64
+60 219 64
+61 219 64
+62 219 64
+63 219 64
+64 219 64
+65 219 64
+66 219 64
+67 219 64
+68 219 64
+69 219 64
+70 219 64
+71 219 64
+72 219 64
+73 219 64
+74 219 64
+75 219 64
+76 219 64
+77 219 64
+78 219 64
+79 219 64
+80 219 64
+81 219 64
+82 219 64
+83 219 64
+84 219 64
+85 219 64
+86 219 64
+87 219 64
+88 219 64
+89 219 64
+90 219 64
+91 219 64
+92 219 64
+93 219 64
+94 219 64
+95 219 64
+96 219 64
+97 219 64
+98 219 64
+99 219 64
+100 219 64
+101 219 64
+102 219 64
+103 219 64
+104 219 64
+105 219 64
+106 219 64
+107 219 64
+108 219 64
+109 219 64
+110 219 64
+111 219 64
+112 219 64
+113 219 64
+114 219 64
+115 219 64
+116 219 64
+117 219 64
+118 219 64
+119 219 64
+120 219 64
+121 219 64
+122 219 64
+123 219 64
+124 219 64
+125 219 64
+126 219 64
+127 219 64
+128 219 64
+129 219 64
+130 219 64
+131 219 64
+132 219 64
+133 219 64
+134 219 64
+135 219 64
+136 219 64
+137 219 64
+138 219 64
+139 219 64
+140 219 64
+141 219 64
+142 219 64
+143 219 64
+144 219 64
+145 219 64
+146 219 64
+147 219 64
+148 219 64
+149 219 64
+150 219 64
+151 219 64
+152 219 64
+153 219 64
+154 219 64
+155 219 64
+156 219 64
+157 219 64
+158 219 64
+159 219 64
+160 219 64
+161 219 64
+162 219 64
+163 219 64
+164 219 64
+165 219 64
+166 219 64
+167 219 64
+168 219 64
+169 219 64
+170 219 64
+171 219 64
+172 219 64
+173 219 64
+174 219 64
+175 219 64
+176 219 64
+177 219 64
+178 219 64
+179 219 64
+180 219 64
+181 219 64
+182 219 64
+183 219 64
+184 219 64
+185 219 64
+186 219 64
+187 219 64
+188 219 64
+189 219 64
+190 219 64
+191 219 64
+192 219 64
+193 219 64
+194 219 64
+195 219 64
+196 219 64
+197 219 64
+198 219 64
+199 219 64
+200 219 64
+201 219 64
+202 219 64
+203 219 64
+204 219 64
+205 219 64
+206 219 64
+207 219 64
+208 219 64
+209 219 64
+210 219 64
+211 219 64
+212 219 64
+213 219 64
+214 219 64
+215 219 64
+216 219 64
+217 219 64
+218 219 64
+219 219 64
+220 219 64
+221 219 64
+222 219 64
+223 219 64
+224 219 64
+225 219 64
+226 219 64
+227 219 64
+228 219 64
+229 219 64
+230 219 64
+231 219 64
+232 219 64
+233 219 64
+234 219 64
+235 219 64
+236 219 64
+237 219 64
+238 219 64
+239 219 64
+240 219 64
+241 219 64
+242 219 64
+243 219 64
+244 219 64
+245 219 64
+246 219 64
+247 219 64
+248 219 64
+249 219 64
+250 219 64
+251 219 64
+252 219 64
+253 219 64
+254 219 64
+255 219 64
+0 218 64
+1 218 64
+2 218 64
+3 218 64
+4 218 64
+5 218 64
+6 218 64
+7 218 64
+8 218 64
+9 218 64
+10 218 64
+11 218 64
+12 218 64
+13 218 64
+14 218 64
+15 218 64
+16 218 64
+17 218 64
+18 218 64
+19 218 64
+20 218 64
+21 218 64
+22 218 64
+23 218 64
+24 218 64
+25 218 64
+26 218 64
+27 218 64
+28 218 64
+29 218 64
+30 218 64
+31 218 64
+32 218 64
+33 218 64
+34 218 64
+35 218 64
+36 218 64
+37 218 64
+38 218 64
+39 218 64
+40 218 64
+41 218 64
+42 218 64
+43 218 64
+44 218 64
+45 218 64
+46 218 64
+47 218 64
+48 218 64
+49 218 64
+50 218 64
+51 218 64
+52 218 64
+53 218 64
+54 218 64
+55 218 64
+56 218 64
+57 218 64
+58 218 64
+59 218 64
+60 218 64
+61 218 64
+62 218 64
+63 218 64
+64 218 64
+65 218 64
+66 218 64
+67 218 64
+68 218 64
+69 218 64
+70 218 64
+71 218 64
+72 218 64
+73 218 64
+74 218 64
+75 218 64
+76 218 64
+77 218 64
+78 218 64
+79 218 64
+80 218 64
+81 218 64
+82 218 64
+83 218 64
+84 218 64
+85 218 64
+86 218 64
+87 218 64
+88 218 64
+89 218 64
+90 218 64
+91 218 64
+92 218 64
+93 218 64
+94 218 64
+95 218 64
+96 218 64
+97 218 64
+98 218 64
+99 218 64
+100 218 64
+101 218 64
+102 218 64
+103 218 64
+104 218 64
+105 218 64
+106 218 64
+107 218 64
+108 218 64
+109 218 64
+110 218 64
+111 218 64
+112 218 64
+113 218 64
+114 218 64
+115 218 64
+116 218 64
+117 218 64
+118 218 64
+119 218 64
+120 218 64
+121 218 64
+122 218 64
+123 218 64
+124 218 64
+125 218 64
+126 218 64
+127 218 64
+128 218 64
+129 218 64
+130 218 64
+131 218 64
+132 218 64
+133 218 64
+134 218 64
+135 218 64
+136 218 64
+137 218 64
+138 218 64
+139 218 64
+140 218 64
+141 218 64
+142 218 64
+143 218 64
+144 218 64
+145 218 64
+146 218 64
+147 218 64
+148 218 64
+149 218 64
+150 218 64
+151 218 64
+152 218 64
+153 218 64
+154 218 64
+155 218 64
+156 218 64
+157 218 64
+158 218 64
+159 218 64
+160 218 64
+161 218 64
+162 218 64
+163 218 64
+164 218 64
+165 218 64
+166 218 64
+167 218 64
+168 218 64
+169 218 64
+170 218 64
+171 218 64
+172 218 64
+173 218 64
+174 218 64
+175 218 64
+176 218 64
+177 218 64
+178 218 64
+179 218 64
+180 218 64
+181 218 64
+182 218 64
+183 218 64
+184 218 64
+185 218 64
+186 218 64
+187 218 64
+188 218 64
+189 218 64
+190 218 64
+191 218 64
+192 218 64
+193 218 64
+194 218 64
+195 218 64
+196 218 64
+197 218 64
+198 218 64
+199 218 64
+200 218 64
+201 218 64
+202 218 64
+203 218 64
+204 218 64
+205 218 64
+206 218 64
+207 218 64
+208 218 64
+209 218 64
+210 218 64
+211 218 64
+212 218 64
+213 218 64
+214 218 64
+215 218 64
+216 218 64
+217 218 64
+218 218 64
+219 218 64
+220 218 64
+221 218 64
+222 218 64
+223 218 64
+224 218 64
+225 218 64
+226 218 64
+227 218 64
+228 218 64
+229 218 64
+230 218 64
+231 218 64
+232 218 64
+233 218 64
+234 218 64
+235 218 64
+236 218 64
+237 218 64
+238 218 64
+239 218 64
+240 218 64
+241 218 64
+242 218 64
+243 218 64
+244 218 64
+245 218 64
+246 218 64
+247 218 64
+248 218 64
+249 218 64
+250 218 64
+251 218 64
+252 218 64
+253 218 64
+254 218 64
+255 218 64
+0 217 64
+1 217 64
+2 217 64
+3 217 64
+4 217 64
+5 217 64
+6 217 64
+7 217 64
+8 217 64
+9 217 64
+10 217 64
+11 217 64
+12 217 64
+13 217 64
+14 217 64
+15 217 64
+16 217 64
+17 217 64
+18 217 64
+19 217 64
+20 217 64
+21 217 64
+22 217 64
+23 217 64
+24 217 64
+25 217 64
+26 217 64
+27 217 64
+28 217 64
+29 217 64
+30 217 64
+31 217 64
+32 217 64
+33 217 64
+34 217 64
+35 217 64
+36 217 64
+37 217 64
+38 217 64
+39 217 64
+40 217 64
+41 217 64
+42 217 64
+43 217 64
+44 217 64
+45 217 64
+46 217 64
+47 217 64
+48 217 64
+49 217 64
+50 217 64
+51 217 64
+52 217 64
+53 217 64
+54 217 64
+55 217 64
+56 217 64
+57 217 64
+58 217 64
+59 217 64
+60 217 64
+61 217 64
+62 217 64
+63 217 64
+64 217 64
+65 217 64
+66 217 64
+67 217 64
+68 217 64
+69 217 64
+70 217 64
+71 217 64
+72 217 64
+73 217 64
+74 217 64
+75 217 64
+76 217 64
+77 217 64
+78 217 64
+79 217 64
+80 217 64
+81 217 64
+82 217 64
+83 217 64
+84 217 64
+85 217 64
+86 217 64
+87 217 64
+88 217 64
+89 217 64
+90 217 64
+91 217 64
+92 217 64
+93 217 64
+94 217 64
+95 217 64
+96 217 64
+97 217 64
+98 217 64
+99 217 64
+100 217 64
+101 217 64
+102 217 64
+103 217 64
+104 217 64
+105 217 64
+106 217 64
+107 217 64
+108 217 64
+109 217 64
+110 217 64
+111 217 64
+112 217 64
+113 217 64
+114 217 64
+115 217 64
+116 217 64
+117 217 64
+118 217 64
+119 217 64
+120 217 64
+121 217 64
+122 217 64
+123 217 64
+124 217 64
+125 217 64
+126 217 64
+127 217 64
+128 217 64
+129 217 64
+130 217 64
+131 217 64
+132 217 64
+133 217 64
+134 217 64
+135 217 64
+136 217 64
+137 217 64
+138 217 64
+139 217 64
+140 217 64
+141 217 64
+142 217 64
+143 217 64
+144 217 64
+145 217 64
+146 217 64
+147 217 64
+148 217 64
+149 217 64
+150 217 64
+151 217 64
+152 217 64
+153 217 64
+154 217 64
+155 217 64
+156 217 64
+157 217 64
+158 217 64
+159 217 64
+160 217 64
+161 217 64
+162 217 64
+163 217 64
+164 217 64
+165 217 64
+166 217 64
+167 217 64
+168 217 64
+169 217 64
+170 217 64
+171 217 64
+172 217 64
+173 217 64
+174 217 64
+175 217 64
+176 217 64
+177 217 64
+178 217 64
+179 217 64
+180 217 64
+181 217 64
+182 217 64
+183 217 64
+184 217 64
+185 217 64
+186 217 64
+187 217 64
+188 217 64
+189 217 64
+190 217 64
+191 217 64
+192 217 64
+193 217 64
+194 217 64
+195 217 64
+196 217 64
+197 217 64
+198 217 64
+199 217 64
+200 217 64
+201 217 64
+202 217 64
+203 217 64
+204 217 64
+205 217 64
+206 217 64
+207 217 64
+208 217 64
+209 217 64
+210 217 64
+211 217 64
+212 217 64
+213 217 64
+214 217 64
+215 217 64
+216 217 64
+217 217 64
+218 217 64
+219 217 64
+220 217 64
+221 217 64
+222 217 64
+223 217 64
+224 217 64
+225 217 64
+226 217 64
+227 217 64
+228 217 64
+229 217 64
+230 217 64
+231 217 64
+232 217 64
+233 217 64
+234 217 64
+235 217 64
+236 217 64
+237 217 64
+238 217 64
+239 217 64
+240 217 64
+241 217 64
+242 217 64
+243 217 64
+244 217 64
+245 217 64
+246 217 64
+247 217 64
+248 217 64
+249 217 64
+250 217 64
+251 217 64
+252 217 64
+253 217 64
+254 217 64
+255 217 64
+0 216 64
+1 216 64
+2 216 64
+3 216 64
+4 216 64
+5 216 64
+6 216 64
+7 216 64
+8 216 64
+9 216 64
+10 216 64
+11 216 64
+12 216 64
+13 216 64
+14 216 64
+15 216 64
+16 216 64
+17 216 64
+18 216 64
+19 216 64
+20 216 64
+21 216 64
+22 216 64
+23 216 64
+24 216 64
+25 216 64
+26 216 64
+27 216 64
+28 216 64
+29 216 64
+30 216 64
+31 216 64
+32 216 64
+33 216 64
+34 216 64
+35 216 64
+36 216 64
+37 216 64
+38 216 64
+39 216 64
+40 216 64
+41 216 64
+42 216 64
+43 216 64
+44 216 64
+45 216 64
+46 216 64
+47 216 64
+48 216 64
+49 216 64
+50 216 64
+51 216 64
+52 216 64
+53 216 64
+54 216 64
+55 216 64
+56 216 64
+57 216 64
+58 216 64
+59 216 64
+60 216 64
+61 216 64
+62 216 64
+63 216 64
+64 216 64
+65 216 64
+66 216 64
+67 216 64
+68 216 64
+69 216 64
+70 216 64
+71 216 64
+72 216 64
+73 216 64
+74 216 64
+75 216 64
+76 216 64
+77 216 64
+78 216 64
+79 216 64
+80 216 64
+81 216 64
+82 216 64
+83 216 64
+84 216 64
+85 216 64
+86 216 64
+87 216 64
+88 216 64
+89 216 64
+90 216 64
+91 216 64
+92 216 64
+93 216 64
+94 216 64
+95 216 64
+96 216 64
+97 216 64
+98 216 64
+99 216 64
+100 216 64
+101 216 64
+102 216 64
+103 216 64
+104 216 64
+105 216 64
+106 216 64
+107 216 64
+108 216 64
+109 216 64
+110 216 64
+111 216 64
+112 216 64
+113 216 64
+114 216 64
+115 216 64
+116 216 64
+117 216 64
+118 216 64
+119 216 64
+120 216 64
+121 216 64
+122 216 64
+123 216 64
+124 216 64
+125 216 64
+126 216 64
+127 216 64
+128 216 64
+129 216 64
+130 216 64
+131 216 64
+132 216 64
+133 216 64
+134 216 64
+135 216 64
+136 216 64
+137 216 64
+138 216 64
+139 216 64
+140 216 64
+141 216 64
+142 216 64
+143 216 64
+144 216 64
+145 216 64
+146 216 64
+147 216 64
+148 216 64
+149 216 64
+150 216 64
+151 216 64
+152 216 64
+153 216 64
+154 216 64
+155 216 64
+156 216 64
+157 216 64
+158 216 64
+159 216 64
+160 216 64
+161 216 64
+162 216 64
+163 216 64
+164 216 64
+165 216 64
+166 216 64
+167 216 64
+168 216 64
+169 216 64
+170 216 64
+171 216 64
+172 216 64
+173 216 64
+174 216 64
+175 216 64
+176 216 64
+177 216 64
+178 216 64
+179 216 64
+180 216 64
+181 216 64
+182 216 64
+183 216 64
+184 216 64
+185 216 64
+186 216 64
+187 216 64
+188 216 64
+189 216 64
+190 216 64
+191 216 64
+192 216 64
+193 216 64
+194 216 64
+195 216 64
+196 216 64
+197 216 64
+198 216 64
+199 216 64
+200 216 64
+201 216 64
+202 216 64
+203 216 64
+204 216 64
+205 216 64
+206 216 64
+207 216 64
+208 216 64
+209 216 64
+210 216 64
+211 216 64
+212 216 64
+213 216 64
+214 216 64
+215 216 64
+216 216 64
+217 216 64
+218 216 64
+219 216 64
+220 216 64
+221 216 64
+222 216 64
+223 216 64
+224 216 64
+225 216 64
+226 216 64
+227 216 64
+228 216 64
+229 216 64
+230 216 64
+231 216 64
+232 216 64
+233 216 64
+234 216 64
+235 216 64
+236 216 64
+237 216 64
+238 216 64
+239 216 64
+240 216 64
+241 216 64
+242 216 64
+243 216 64
+244 216 64
+245 216 64
+246 216 64
+247 216 64
+248 216 64
+249 216 64
+250 216 64
+251 216 64
+252 216 64
+253 216 64
+254 216 64
+255 216 64
+0 215 64
+1 215 64
+2 215 64
+3 215 64
+4 215 64
+5 215 64
+6 215 64
+7 215 64
+8 215 64
+9 215 64
+10 215 64
+11 215 64
+12 215 64
+13 215 64
+14 215 64
+15 215 64
+16 215 64
+17 215 64
+18 215 64
+19 215 64
+20 215 64
+21 215 64
+22 215 64
+23 215 64
+24 215 64
+25 215 64
+26 215 64
+27 215 64
+28 215 64
+29 215 64
+30 215 64
+31 215 64
+32 215 64
+33 215 64
+34 215 64
+35 215 64
+36 215 64
+37 215 64
+38 215 64
+39 215 64
+40 215 64
+41 215 64
+42 215 64
+43 215 64
+44 215 64
+45 215 64
+46 215 64
+47 215 64
+48 215 64
+49 215 64
+50 215 64
+51 215 64
+52 215 64
+53 215 64
+54 215 64
+55 215 64
+56 215 64
+57 215 64
+58 215 64
+59 215 64
+60 215 64
+61 215 64
+62 215 64
+63 215 64
+64 215 64
+65 215 64
+66 215 64
+67 215 64
+68 215 64
+69 215 64
+70 215 64
+71 215 64
+72 215 64
+73 215 64
+74 215 64
+75 215 64
+76 215 64
+77 215 64
+78 215 64
+79 215 64
+80 215 64
+81 215 64
+82 215 64
+83 215 64
+84 215 64
+85 215 64
+86 215 64
+87 215 64
+88 215 64
+89 215 64
+90 215 64
+91 215 64
+92 215 64
+93 215 64
+94 215 64
+95 215 64
+96 215 64
+97 215 64
+98 215 64
+99 215 64
+100 215 64
+101 215 64
+102 215 64
+103 215 64
+104 215 64
+105 215 64
+106 215 64
+107 215 64
+108 215 64
+109 215 64
+110 215 64
+111 215 64
+112 215 64
+113 215 64
+114 215 64
+115 215 64
+116 215 64
+117 215 64
+118 215 64
+119 215 64
+120 215 64
+121 215 64
+122 215 64
+123 215 64
+124 215 64
+125 215 64
+126 215 64
+127 215 64
+128 215 64
+129 215 64
+130 215 64
+131 215 64
+132 215 64
+133 215 64
+134 215 64
+135 215 64
+136 215 64
+137 215 64
+138 215 64
+139 215 64
+140 215 64
+141 215 64
+142 215 64
+143 215 64
+144 215 64
+145 215 64
+146 215 64
+147 215 64
+148 215 64
+149 215 64
+150 215 64
+151 215 64
+152 215 64
+153 215 64
+154 215 64
+155 215 64
+156 215 64
+157 215 64
+158 215 64
+159 215 64
+160 215 64
+161 215 64
+162 215 64
+163 215 64
+164 215 64
+165 215 64
+166 215 64
+167 215 64
+168 215 64
+169 215 64
+170 215 64
+171 215 64
+172 215 64
+173 215 64
+174 215 64
+175 215 64
+176 215 64
+177 215 64
+178 215 64
+179 215 64
+180 215 64
+181 215 64
+182 215 64
+183 215 64
+184 215 64
+185 215 64
+186 215 64
+187 215 64
+188 215 64
+189 215 64
+190 215 64
+191 215 64
+192 215 64
+193 215 64
+194 215 64
+195 215 64
+196 215 64
+197 215 64
+198 215 64
+199 215 64
+200 215 64
+201 215 64
+202 215 64
+203 215 64
+204 215 64
+205 215 64
+206 215 64
+207 215 64
+208 215 64
+209 215 64
+210 215 64
+211 215 64
+212 215 64
+213 215 64
+214 215 64
+215 215 64
+216 215 64
+217 215 64
+218 215 64
+219 215 64
+220 215 64
+221 215 64
+222 215 64
+223 215 64
+224 215 64
+225 215 64
+226 215 64
+227 215 64
+228 215 64
+229 215 64
+230 215 64
+231 215 64
+232 215 64
+233 215 64
+234 215 64
+235 215 64
+236 215 64
+237 215 64
+238 215 64
+239 215 64
+240 215 64
+241 215 64
+242 215 64
+243 215 64
+244 215 64
+245 215 64
+246 215 64
+247 215 64
+248 215 64
+249 215 64
+250 215 64
+251 215 64
+252 215 64
+253 215 64
+254 215 64
+255 215 64
+0 214 64
+1 214 64
+2 214 64
+3 214 64
+4 214 64
+5 214 64
+6 214 64
+7 214 64
+8 214 64
+9 214 64
+10 214 64
+11 214 64
+12 214 64
+13 214 64
+14 214 64
+15 214 64
+16 214 64
+17 214 64
+18 214 64
+19 214 64
+20 214 64
+21 214 64
+22 214 64
+23 214 64
+24 214 64
+25 214 64
+26 214 64
+27 214 64
+28 214 64
+29 214 64
+30 214 64
+31 214 64
+32 214 64
+33 214 64
+34 214 64
+35 214 64
+36 214 64
+37 214 64
+38 214 64
+39 214 64
+40 214 64
+41 214 64
+42 214 64
+43 214 64
+44 214 64
+45 214 64
+46 214 64
+47 214 64
+48 214 64
+49 214 64
+50 214 64
+51 214 64
+52 214 64
+53 214 64
+54 214 64
+55 214 64
+56 214 64
+57 214 64
+58 214 64
+59 214 64
+60 214 64
+61 214 64
+62 214 64
+63 214 64
+64 214 64
+65 214 64
+66 214 64
+67 214 64
+68 214 64
+69 214 64
+70 214 64
+71 214 64
+72 214 64
+73 214 64
+74 214 64
+75 214 64
+76 214 64
+77 214 64
+78 214 64
+79 214 64
+80 214 64
+81 214 64
+82 214 64
+83 214 64
+84 214 64
+85 214 64
+86 214 64
+87 214 64
+88 214 64
+89 214 64
+90 214 64
+91 214 64
+92 214 64
+93 214 64
+94 214 64
+95 214 64
+96 214 64
+97 214 64
+98 214 64
+99 214 64
+100 214 64
+101 214 64
+102 214 64
+103 214 64
+104 214 64
+105 214 64
+106 214 64
+107 214 64
+108 214 64
+109 214 64
+110 214 64
+111 214 64
+112 214 64
+113 214 64
+114 214 64
+115 214 64
+116 214 64
+117 214 64
+118 214 64
+119 214 64
+120 214 64
+121 214 64
+122 214 64
+123 214 64
+124 214 64
+125 214 64
+126 214 64
+127 214 64
+128 214 64
+129 214 64
+130 214 64
+131 214 64
+132 214 64
+133 214 64
+134 214 64
+135 214 64
+136 214 64
+137 214 64
+138 214 64
+139 214 64
+140 214 64
+141 214 64
+142 214 64
+143 214 64
+144 214 64
+145 214 64
+146 214 64
+147 214 64
+148 214 64
+149 214 64
+150 214 64
+151 214 64
+152 214 64
+153 214 64
+154 214 64
+155 214 64
+156 214 64
+157 214 64
+158 214 64
+159 214 64
+160 214 64
+161 214 64
+162 214 64
+163 214 64
+164 214 64
+165 214 64
+166 214 64
+167 214 64
+168 214 64
+169 214 64
+170 214 64
+171 214 64
+172 214 64
+173 214 64
+174 214 64
+175 214 64
+176 214 64
+177 214 64
+178 214 64
+179 214 64
+180 214 64
+181 214 64
+182 214 64
+183 214 64
+184 214 64
+185 214 64
+186 214 64
+187 214 64
+188 214 64
+189 214 64
+190 214 64
+191 214 64
+192 214 64
+193 214 64
+194 214 64
+195 214 64
+196 214 64
+197 214 64
+198 214 64
+199 214 64
+200 214 64
+201 214 64
+202 214 64
+203 214 64
+204 214 64
+205 214 64
+206 214 64
+207 214 64
+208 214 64
+209 214 64
+210 214 64
+211 214 64
+212 214 64
+213 214 64
+214 214 64
+215 214 64
+216 214 64
+217 214 64
+218 214 64
+219 214 64
+220 214 64
+221 214 64
+222 214 64
+223 214 64
+224 214 64
+225 214 64
+226 214 64
+227 214 64
+228 214 64
+229 214 64
+230 214 64
+231 214 64
+232 214 64
+233 214 64
+234 214 64
+235 214 64
+236 214 64
+237 214 64
+238 214 64
+239 214 64
+240 214 64
+241 214 64
+242 214 64
+243 214 64
+244 214 64
+245 214 64
+246 214 64
+247 214 64
+248 214 64
+249 214 64
+250 214 64
+251 214 64
+252 214 64
+253 214 64
+254 214 64
+255 214 64
+0 213 64
+1 213 64
+2 213 64
+3 213 64
+4 213 64
+5 213 64
+6 213 64
+7 213 64
+8 213 64
+9 213 64
+10 213 64
+11 213 64
+12 213 64
+13 213 64
+14 213 64
+15 213 64
+16 213 64
+17 213 64
+18 213 64
+19 213 64
+20 213 64
+21 213 64
+22 213 64
+23 213 64
+24 213 64
+25 213 64
+26 213 64
+27 213 64
+28 213 64
+29 213 64
+30 213 64
+31 213 64
+32 213 64
+33 213 64
+34 213 64
+35 213 64
+36 213 64
+37 213 64
+38 213 64
+39 213 64
+40 213 64
+41 213 64
+42 213 64
+43 213 64
+44 213 64
+45 213 64
+46 213 64
+47 213 64
+48 213 64
+49 213 64
+50 213 64
+51 213 64
+52 213 64
+53 213 64
+54 213 64
+55 213 64
+56 213 64
+57 213 64
+58 213 64
+59 213 64
+60 213 64
+61 213 64
+62 213 64
+63 213 64
+64 213 64
+65 213 64
+66 213 64
+67 213 64
+68 213 64
+69 213 64
+70 213 64
+71 213 64
+72 213 64
+73 213 64
+74 213 64
+75 213 64
+76 213 64
+77 213 64
+78 213 64
+79 213 64
+80 213 64
+81 213 64
+82 213 64
+83 213 64
+84 213 64
+85 213 64
+86 213 64
+87 213 64
+88 213 64
+89 213 64
+90 213 64
+91 213 64
+92 213 64
+93 213 64
+94 213 64
+95 213 64
+96 213 64
+97 213 64
+98 213 64
+99 213 64
+100 213 64
+101 213 64
+102 213 64
+103 213 64
+104 213 64
+105 213 64
+106 213 64
+107 213 64
+108 213 64
+109 213 64
+110 213 64
+111 213 64
+112 213 64
+113 213 64
+114 213 64
+115 213 64
+116 213 64
+117 213 64
+118 213 64
+119 213 64
+120 213 64
+121 213 64
+122 213 64
+123 213 64
+124 213 64
+125 213 64
+126 213 64
+127 213 64
+128 213 64
+129 213 64
+130 213 64
+131 213 64
+132 213 64
+133 213 64
+134 213 64
+135 213 64
+136 213 64
+137 213 64
+138 213 64
+139 213 64
+140 213 64
+141 213 64
+142 213 64
+143 213 64
+144 213 64
+145 213 64
+146 213 64
+147 213 64
+148 213 64
+149 213 64
+150 213 64
+151 213 64
+152 213 64
+153 213 64
+154 213 64
+155 213 64
+156 213 64
+157 213 64
+158 213 64
+159 213 64
+160 213 64
+161 213 64
+162 213 64
+163 213 64
+164 213 64
+165 213 64
+166 213 64
+167 213 64
+168 213 64
+169 213 64
+170 213 64
+171 213 64
+172 213 64
+173 213 64
+174 213 64
+175 213 64
+176 213 64
+177 213 64
+178 213 64
+179 213 64
+180 213 64
+181 213 64
+182 213 64
+183 213 64
+184 213 64
+185 213 64
+186 213 64
+187 213 64
+188 213 64
+189 213 64
+190 213 64
+191 213 64
+192 213 64
+193 213 64
+194 213 64
+195 213 64
+196 213 64
+197 213 64
+198 213 64
+199 213 64
+200 213 64
+201 213 64
+202 213 64
+203 213 64
+204 213 64
+205 213 64
+206 213 64
+207 213 64
+208 213 64
+209 213 64
+210 213 64
+211 213 64
+212 213 64
+213 213 64
+214 213 64
+215 213 64
+216 213 64
+217 213 64
+218 213 64
+219 213 64
+220 213 64
+221 213 64
+222 213 64
+223 213 64
+224 213 64
+225 213 64
+226 213 64
+227 213 64
+228 213 64
+229 213 64
+230 213 64
+231 213 64
+232 213 64
+233 213 64
+234 213 64
+235 213 64
+236 213 64
+237 213 64
+238 213 64
+239 213 64
+240 213 64
+241 213 64
+242 213 64
+243 213 64
+244 213 64
+245 213 64
+246 213 64
+247 213 64
+248 213 64
+249 213 64
+250 213 64
+251 213 64
+252 213 64
+253 213 64
+254 213 64
+255 213 64
+0 212 64
+1 212 64
+2 212 64
+3 212 64
+4 212 64
+5 212 64
+6 212 64
+7 212 64
+8 212 64
+9 212 64
+10 212 64
+11 212 64
+12 212 64
+13 212 64
+14 212 64
+15 212 64
+16 212 64
+17 212 64
+18 212 64
+19 212 64
+20 212 64
+21 212 64
+22 212 64
+23 212 64
+24 212 64
+25 212 64
+26 212 64
+27 212 64
+28 212 64
+29 212 64
+30 212 64
+31 212 64
+32 212 64
+33 212 64
+34 212 64
+35 212 64
+36 212 64
+37 212 64
+38 212 64
+39 212 64
+40 212 64
+41 212 64
+42 212 64
+43 212 64
+44 212 64
+45 212 64
+46 212 64
+47 212 64
+48 212 64
+49 212 64
+50 212 64
+51 212 64
+52 212 64
+53 212 64
+54 212 64
+55 212 64
+56 212 64
+57 212 64
+58 212 64
+59 212 64
+60 212 64
+61 212 64
+62 212 64
+63 212 64
+64 212 64
+65 212 64
+66 212 64
+67 212 64
+68 212 64
+69 212 64
+70 212 64
+71 212 64
+72 212 64
+73 212 64
+74 212 64
+75 212 64
+76 212 64
+77 212 64
+78 212 64
+79 212 64
+80 212 64
+81 212 64
+82 212 64
+83 212 64
+84 212 64
+85 212 64
+86 212 64
+87 212 64
+88 212 64
+89 212 64
+90 212 64
+91 212 64
+92 212 64
+93 212 64
+94 212 64
+95 212 64
+96 212 64
+97 212 64
+98 212 64
+99 212 64
+100 212 64
+101 212 64
+102 212 64
+103 212 64
+104 212 64
+105 212 64
+106 212 64
+107 212 64
+108 212 64
+109 212 64
+110 212 64
+111 212 64
+112 212 64
+113 212 64
+114 212 64
+115 212 64
+116 212 64
+117 212 64
+118 212 64
+119 212 64
+120 212 64
+121 212 64
+122 212 64
+123 212 64
+124 212 64
+125 212 64
+126 212 64
+127 212 64
+128 212 64
+129 212 64
+130 212 64
+131 212 64
+132 212 64
+133 212 64
+134 212 64
+135 212 64
+136 212 64
+137 212 64
+138 212 64
+139 212 64
+140 212 64
+141 212 64
+142 212 64
+143 212 64
+144 212 64
+145 212 64
+146 212 64
+147 212 64
+148 212 64
+149 212 64
+150 212 64
+151 212 64
+152 212 64
+153 212 64
+154 212 64
+155 212 64
+156 212 64
+157 212 64
+158 212 64
+159 212 64
+160 212 64
+161 212 64
+162 212 64
+163 212 64
+164 212 64
+165 212 64
+166 212 64
+167 212 64
+168 212 64
+169 212 64
+170 212 64
+171 212 64
+172 212 64
+173 212 64
+174 212 64
+175 212 64
+176 212 64
+177 212 64
+178 212 64
+179 212 64
+180 212 64
+181 212 64
+182 212 64
+183 212 64
+184 212 64
+185 212 64
+186 212 64
+187 212 64
+188 212 64
+189 212 64
+190 212 64
+191 212 64
+192 212 64
+193 212 64
+194 212 64
+195 212 64
+196 212 64
+197 212 64
+198 212 64
+199 212 64
+200 212 64
+201 212 64
+202 212 64
+203 212 64
+204 212 64
+205 212 64
+206 212 64
+207 212 64
+208 212 64
+209 212 64
+210 212 64
+211 212 64
+212 212 64
+213 212 64
+214 212 64
+215 212 64
+216 212 64
+217 212 64
+218 212 64
+219 212 64
+220 212 64
+221 212 64
+222 212 64
+223 212 64
+224 212 64
+225 212 64
+226 212 64
+227 212 64
+228 212 64
+229 212 64
+230 212 64
+231 212 64
+232 212 64
+233 212 64
+234 212 64
+235 212 64
+236 212 64
+237 212 64
+238 212 64
+239 212 64
+240 212 64
+241 212 64
+242 212 64
+243 212 64
+244 212 64
+245 212 64
+246 212 64
+247 212 64
+248 212 64
+249 212 64
+250 212 64
+251 212 64
+252 212 64
+253 212 64
+254 212 64
+255 212 64
+0 211 64
+1 211 64
+2 211 64
+3 211 64
+4 211 64
+5 211 64
+6 211 64
+7 211 64
+8 211 64
+9 211 64
+10 211 64
+11 211 64
+12 211 64
+13 211 64
+14 211 64
+15 211 64
+16 211 64
+17 211 64
+18 211 64
+19 211 64
+20 211 64
+21 211 64
+22 211 64
+23 211 64
+24 211 64
+25 211 64
+26 211 64
+27 211 64
+28 211 64
+29 211 64
+30 211 64
+31 211 64
+32 211 64
+33 211 64
+34 211 64
+35 211 64
+36 211 64
+37 211 64
+38 211 64
+39 211 64
+40 211 64
+41 211 64
+42 211 64
+43 211 64
+44 211 64
+45 211 64
+46 211 64
+47 211 64
+48 211 64
+49 211 64
+50 211 64
+51 211 64
+52 211 64
+53 211 64
+54 211 64
+55 211 64
+56 211 64
+57 211 64
+58 211 64
+59 211 64
+60 211 64
+61 211 64
+62 211 64
+63 211 64
+64 211 64
+65 211 64
+66 211 64
+67 211 64
+68 211 64
+69 211 64
+70 211 64
+71 211 64
+72 211 64
+73 211 64
+74 211 64
+75 211 64
+76 211 64
+77 211 64
+78 211 64
+79 211 64
+80 211 64
+81 211 64
+82 211 64
+83 211 64
+84 211 64
+85 211 64
+86 211 64
+87 211 64
+88 211 64
+89 211 64
+90 211 64
+91 211 64
+92 211 64
+93 211 64
+94 211 64
+95 211 64
+96 211 64
+97 211 64
+98 211 64
+99 211 64
+100 211 64
+101 211 64
+102 211 64
+103 211 64
+104 211 64
+105 211 64
+106 211 64
+107 211 64
+108 211 64
+109 211 64
+110 211 64
+111 211 64
+112 211 64
+113 211 64
+114 211 64
+115 211 64
+116 211 64
+117 211 64
+118 211 64
+119 211 64
+120 211 64
+121 211 64
+122 211 64
+123 211 64
+124 211 64
+125 211 64
+126 211 64
+127 211 64
+128 211 64
+129 211 64
+130 211 64
+131 211 64
+132 211 64
+133 211 64
+134 211 64
+135 211 64
+136 211 64
+137 211 64
+138 211 64
+139 211 64
+140 211 64
+141 211 64
+142 211 64
+143 211 64
+144 211 64
+145 211 64
+146 211 64
+147 211 64
+148 211 64
+149 211 64
+150 211 64
+151 211 64
+152 211 64
+153 211 64
+154 211 64
+155 211 64
+156 211 64
+157 211 64
+158 211 64
+159 211 64
+160 211 64
+161 211 64
+162 211 64
+163 211 64
+164 211 64
+165 211 64
+166 211 64
+167 211 64
+168 211 64
+169 211 64
+170 211 64
+171 211 64
+172 211 64
+173 211 64
+174 211 64
+175 211 64
+176 211 64
+177 211 64
+178 211 64
+179 211 64
+180 211 64
+181 211 64
+182 211 64
+183 211 64
+184 211 64
+185 211 64
+186 211 64
+187 211 64
+188 211 64
+189 211 64
+190 211 64
+191 211 64
+192 211 64
+193 211 64
+194 211 64
+195 211 64
+196 211 64
+197 211 64
+198 211 64
+199 211 64
+200 211 64
+201 211 64
+202 211 64
+203 211 64
+204 211 64
+205 211 64
+206 211 64
+207 211 64
+208 211 64
+209 211 64
+210 211 64
+211 211 64
+212 211 64
+213 211 64
+214 211 64
+215 211 64
+216 211 64
+217 211 64
+218 211 64
+219 211 64
+220 211 64
+221 211 64
+222 211 64
+223 211 64
+224 211 64
+225 211 64
+226 211 64
+227 211 64
+228 211 64
+229 211 64
+230 211 64
+231 211 64
+232 211 64
+233 211 64
+234 211 64
+235 211 64
+236 211 64
+237 211 64
+238 211 64
+239 211 64
+240 211 64
+241 211 64
+242 211 64
+243 211 64
+244 211 64
+245 211 64
+246 211 64
+247 211 64
+248 211 64
+249 211 64
+250 211 64
+251 211 64
+252 211 64
+253 211 64
+254 211 64
+255 211 64
+0 210 64
+1 210 64
+2 210 64
+3 210 64
+4 210 64
+5 210 64
+6 210 64
+7 210 64
+8 210 64
+9 210 64
+10 210 64
+11 210 64
+12 210 64
+13 210 64
+14 210 64
+15 210 64
+16 210 64
+17 210 64
+18 210 64
+19 210 64
+20 210 64
+21 210 64
+22 210 64
+23 210 64
+24 210 64
+25 210 64
+26 210 64
+27 210 64
+28 210 64
+29 210 64
+30 210 64
+31 210 64
+32 210 64
+33 210 64
+34 210 64
+35 210 64
+36 210 64
+37 210 64
+38 210 64
+39 210 64
+40 210 64
+41 210 64
+42 210 64
+43 210 64
+44 210 64
+45 210 64
+46 210 64
+47 210 64
+48 210 64
+49 210 64
+50 210 64
+51 210 64
+52 210 64
+53 210 64
+54 210 64
+55 210 64
+56 210 64
+57 210 64
+58 210 64
+59 210 64
+60 210 64
+61 210 64
+62 210 64
+63 210 64
+64 210 64
+65 210 64
+66 210 64
+67 210 64
+68 210 64
+69 210 64
+70 210 64
+71 210 64
+72 210 64
+73 210 64
+74 210 64
+75 210 64
+76 210 64
+77 210 64
+78 210 64
+79 210 64
+80 210 64
+81 210 64
+82 210 64
+83 210 64
+84 210 64
+85 210 64
+86 210 64
+87 210 64
+88 210 64
+89 210 64
+90 210 64
+91 210 64
+92 210 64
+93 210 64
+94 210 64
+95 210 64
+96 210 64
+97 210 64
+98 210 64
+99 210 64
+100 210 64
+101 210 64
+102 210 64
+103 210 64
+104 210 64
+105 210 64
+106 210 64
+107 210 64
+108 210 64
+109 210 64
+110 210 64
+111 210 64
+112 210 64
+113 210 64
+114 210 64
+115 210 64
+116 210 64
+117 210 64
+118 210 64
+119 210 64
+120 210 64
+121 210 64
+122 210 64
+123 210 64
+124 210 64
+125 210 64
+126 210 64
+127 210 64
+128 210 64
+129 210 64
+130 210 64
+131 210 64
+132 210 64
+133 210 64
+134 210 64
+135 210 64
+136 210 64
+137 210 64
+138 210 64
+139 210 64
+140 210 64
+141 210 64
+142 210 64
+143 210 64
+144 210 64
+145 210 64
+146 210 64
+147 210 64
+148 210 64
+149 210 64
+150 210 64
+151 210 64
+152 210 64
+153 210 64
+154 210 64
+155 210 64
+156 210 64
+157 210 64
+158 210 64
+159 210 64
+160 210 64
+161 210 64
+162 210 64
+163 210 64
+164 210 64
+165 210 64
+166 210 64
+167 210 64
+168 210 64
+169 210 64
+170 210 64
+171 210 64
+172 210 64
+173 210 64
+174 210 64
+175 210 64
+176 210 64
+177 210 64
+178 210 64
+179 210 64
+180 210 64
+181 210 64
+182 210 64
+183 210 64
+184 210 64
+185 210 64
+186 210 64
+187 210 64
+188 210 64
+189 210 64
+190 210 64
+191 210 64
+192 210 64
+193 210 64
+194 210 64
+195 210 64
+196 210 64
+197 210 64
+198 210 64
+199 210 64
+200 210 64
+201 210 64
+202 210 64
+203 210 64
+204 210 64
+205 210 64
+206 210 64
+207 210 64
+208 210 64
+209 210 64
+210 210 64
+211 210 64
+212 210 64
+213 210 64
+214 210 64
+215 210 64
+216 210 64
+217 210 64
+218 210 64
+219 210 64
+220 210 64
+221 210 64
+222 210 64
+223 210 64
+224 210 64
+225 210 64
+226 210 64
+227 210 64
+228 210 64
+229 210 64
+230 210 64
+231 210 64
+232 210 64
+233 210 64
+234 210 64
+235 210 64
+236 210 64
+237 210 64
+238 210 64
+239 210 64
+240 210 64
+241 210 64
+242 210 64
+243 210 64
+244 210 64
+245 210 64
+246 210 64
+247 210 64
+248 210 64
+249 210 64
+250 210 64
+251 210 64
+252 210 64
+253 210 64
+254 210 64
+255 210 64
+0 209 64
+1 209 64
+2 209 64
+3 209 64
+4 209 64
+5 209 64
+6 209 64
+7 209 64
+8 209 64
+9 209 64
+10 209 64
+11 209 64
+12 209 64
+13 209 64
+14 209 64
+15 209 64
+16 209 64
+17 209 64
+18 209 64
+19 209 64
+20 209 64
+21 209 64
+22 209 64
+23 209 64
+24 209 64
+25 209 64
+26 209 64
+27 209 64
+28 209 64
+29 209 64
+30 209 64
+31 209 64
+32 209 64
+33 209 64
+34 209 64
+35 209 64
+36 209 64
+37 209 64
+38 209 64
+39 209 64
+40 209 64
+41 209 64
+42 209 64
+43 209 64
+44 209 64
+45 209 64
+46 209 64
+47 209 64
+48 209 64
+49 209 64
+50 209 64
+51 209 64
+52 209 64
+53 209 64
+54 209 64
+55 209 64
+56 209 64
+57 209 64
+58 209 64
+59 209 64
+60 209 64
+61 209 64
+62 209 64
+63 209 64
+64 209 64
+65 209 64
+66 209 64
+67 209 64
+68 209 64
+69 209 64
+70 209 64
+71 209 64
+72 209 64
+73 209 64
+74 209 64
+75 209 64
+76 209 64
+77 209 64
+78 209 64
+79 209 64
+80 209 64
+81 209 64
+82 209 64
+83 209 64
+84 209 64
+85 209 64
+86 209 64
+87 209 64
+88 209 64
+89 209 64
+90 209 64
+91 209 64
+92 209 64
+93 209 64
+94 209 64
+95 209 64
+96 209 64
+97 209 64
+98 209 64
+99 209 64
+100 209 64
+101 209 64
+102 209 64
+103 209 64
+104 209 64
+105 209 64
+106 209 64
+107 209 64
+108 209 64
+109 209 64
+110 209 64
+111 209 64
+112 209 64
+113 209 64
+114 209 64
+115 209 64
+116 209 64
+117 209 64
+118 209 64
+119 209 64
+120 209 64
+121 209 64
+122 209 64
+123 209 64
+124 209 64
+125 209 64
+126 209 64
+127 209 64
+128 209 64
+129 209 64
+130 209 64
+131 209 64
+132 209 64
+133 209 64
+134 209 64
+135 209 64
+136 209 64
+137 209 64
+138 209 64
+139 209 64
+140 209 64
+141 209 64
+142 209 64
+143 209 64
+144 209 64
+145 209 64
+146 209 64
+147 209 64
+148 209 64
+149 209 64
+150 209 64
+151 209 64
+152 209 64
+153 209 64
+154 209 64
+155 209 64
+156 209 64
+157 209 64
+158 209 64
+159 209 64
+160 209 64
+161 209 64
+162 209 64
+163 209 64
+164 209 64
+165 209 64
+166 209 64
+167 209 64
+168 209 64
+169 209 64
+170 209 64
+171 209 64
+172 209 64
+173 209 64
+174 209 64
+175 209 64
+176 209 64
+177 209 64
+178 209 64
+179 209 64
+180 209 64
+181 209 64
+182 209 64
+183 209 64
+184 209 64
+185 209 64
+186 209 64
+187 209 64
+188 209 64
+189 209 64
+190 209 64
+191 209 64
+192 209 64
+193 209 64
+194 209 64
+195 209 64
+196 209 64
+197 209 64
+198 209 64
+199 209 64
+200 209 64
+201 209 64
+202 209 64
+203 209 64
+204 209 64
+205 209 64
+206 209 64
+207 209 64
+208 209 64
+209 209 64
+210 209 64
+211 209 64
+212 209 64
+213 209 64
+214 209 64
+215 209 64
+216 209 64
+217 209 64
+218 209 64
+219 209 64
+220 209 64
+221 209 64
+222 209 64
+223 209 64
+224 209 64
+225 209 64
+226 209 64
+227 209 64
+228 209 64
+229 209 64
+230 209 64
+231 209 64
+232 209 64
+233 209 64
+234 209 64
+235 209 64
+236 209 64
+237 209 64
+238 209 64
+239 209 64
+240 209 64
+241 209 64
+242 209 64
+243 209 64
+244 209 64
+245 209 64
+246 209 64
+247 209 64
+248 209 64
+249 209 64
+250 209 64
+251 209 64
+252 209 64
+253 209 64
+254 209 64
+255 209 64
+0 208 64
+1 208 64
+2 208 64
+3 208 64
+4 208 64
+5 208 64
+6 208 64
+7 208 64
+8 208 64
+9 208 64
+10 208 64
+11 208 64
+12 208 64
+13 208 64
+14 208 64
+15 208 64
+16 208 64
+17 208 64
+18 208 64
+19 208 64
+20 208 64
+21 208 64
+22 208 64
+23 208 64
+24 208 64
+25 208 64
+26 208 64
+27 208 64
+28 208 64
+29 208 64
+30 208 64
+31 208 64
+32 208 64
+33 208 64
+34 208 64
+35 208 64
+36 208 64
+37 208 64
+38 208 64
+39 208 64
+40 208 64
+41 208 64
+42 208 64
+43 208 64
+44 208 64
+45 208 64
+46 208 64
+47 208 64
+48 208 64
+49 208 64
+50 208 64
+51 208 64
+52 208 64
+53 208 64
+54 208 64
+55 208 64
+56 208 64
+57 208 64
+58 208 64
+59 208 64
+60 208 64
+61 208 64
+62 208 64
+63 208 64
+64 208 64
+65 208 64
+66 208 64
+67 208 64
+68 208 64
+69 208 64
+70 208 64
+71 208 64
+72 208 64
+73 208 64
+74 208 64
+75 208 64
+76 208 64
+77 208 64
+78 208 64
+79 208 64
+80 208 64
+81 208 64
+82 208 64
+83 208 64
+84 208 64
+85 208 64
+86 208 64
+87 208 64
+88 208 64
+89 208 64
+90 208 64
+91 208 64
+92 208 64
+93 208 64
+94 208 64
+95 208 64
+96 208 64
+97 208 64
+98 208 64
+99 208 64
+100 208 64
+101 208 64
+102 208 64
+103 208 64
+104 208 64
+105 208 64
+106 208 64
+107 208 64
+108 208 64
+109 208 64
+110 208 64
+111 208 64
+112 208 64
+113 208 64
+114 208 64
+115 208 64
+116 208 64
+117 208 64
+118 208 64
+119 208 64
+120 208 64
+121 208 64
+122 208 64
+123 208 64
+124 208 64
+125 208 64
+126 208 64
+127 208 64
+128 208 64
+129 208 64
+130 208 64
+131 208 64
+132 208 64
+133 208 64
+134 208 64
+135 208 64
+136 208 64
+137 208 64
+138 208 64
+139 208 64
+140 208 64
+141 208 64
+142 208 64
+143 208 64
+144 208 64
+145 208 64
+146 208 64
+147 208 64
+148 208 64
+149 208 64
+150 208 64
+151 208 64
+152 208 64
+153 208 64
+154 208 64
+155 208 64
+156 208 64
+157 208 64
+158 208 64
+159 208 64
+160 208 64
+161 208 64
+162 208 64
+163 208 64
+164 208 64
+165 208 64
+166 208 64
+167 208 64
+168 208 64
+169 208 64
+170 208 64
+171 208 64
+172 208 64
+173 208 64
+174 208 64
+175 208 64
+176 208 64
+177 208 64
+178 208 64
+179 208 64
+180 208 64
+181 208 64
+182 208 64
+183 208 64
+184 208 64
+185 208 64
+186 208 64
+187 208 64
+188 208 64
+189 208 64
+190 208 64
+191 208 64
+192 208 64
+193 208 64
+194 208 64
+195 208 64
+196 208 64
+197 208 64
+198 208 64
+199 208 64
+200 208 64
+201 208 64
+202 208 64
+203 208 64
+204 208 64
+205 208 64
+206 208 64
+207 208 64
+208 208 64
+209 208 64
+210 208 64
+211 208 64
+212 208 64
+213 208 64
+214 208 64
+215 208 64
+216 208 64
+217 208 64
+218 208 64
+219 208 64
+220 208 64
+221 208 64
+222 208 64
+223 208 64
+224 208 64
+225 208 64
+226 208 64
+227 208 64
+228 208 64
+229 208 64
+230 208 64
+231 208 64
+232 208 64
+233 208 64
+234 208 64
+235 208 64
+236 208 64
+237 208 64
+238 208 64
+239 208 64
+240 208 64
+241 208 64
+242 208 64
+243 208 64
+244 208 64
+245 208 64
+246 208 64
+247 208 64
+248 208 64
+249 208 64
+250 208 64
+251 208 64
+252 208 64
+253 208 64
+254 208 64
+255 208 64
+0 207 64
+1 207 64
+2 207 64
+3 207 64
+4 207 64
+5 207 64
+6 207 64
+7 207 64
+8 207 64
+9 207 64
+10 207 64
+11 207 64
+12 207 64
+13 207 64
+14 207 64
+15 207 64
+16 207 64
+17 207 64
+18 207 64
+19 207 64
+20 207 64
+21 207 64
+22 207 64
+23 207 64
+24 207 64
+25 207 64
+26 207 64
+27 207 64
+28 207 64
+29 207 64
+30 207 64
+31 207 64
+32 207 64
+33 207 64
+34 207 64
+35 207 64
+36 207 64
+37 207 64
+38 207 64
+39 207 64
+40 207 64
+41 207 64
+42 207 64
+43 207 64
+44 207 64
+45 207 64
+46 207 64
+47 207 64
+48 207 64
+49 207 64
+50 207 64
+51 207 64
+52 207 64
+53 207 64
+54 207 64
+55 207 64
+56 207 64
+57 207 64
+58 207 64
+59 207 64
+60 207 64
+61 207 64
+62 207 64
+63 207 64
+64 207 64
+65 207 64
+66 207 64
+67 207 64
+68 207 64
+69 207 64
+70 207 64
+71 207 64
+72 207 64
+73 207 64
+74 207 64
+75 207 64
+76 207 64
+77 207 64
+78 207 64
+79 207 64
+80 207 64
+81 207 64
+82 207 64
+83 207 64
+84 207 64
+85 207 64
+86 207 64
+87 207 64
+88 207 64
+89 207 64
+90 207 64
+91 207 64
+92 207 64
+93 207 64
+94 207 64
+95 207 64
+96 207 64
+97 207 64
+98 207 64
+99 207 64
+100 207 64
+101 207 64
+102 207 64
+103 207 64
+104 207 64
+105 207 64
+106 207 64
+107 207 64
+108 207 64
+109 207 64
+110 207 64
+111 207 64
+112 207 64
+113 207 64
+114 207 64
+115 207 64
+116 207 64
+117 207 64
+118 207 64
+119 207 64
+120 207 64
+121 207 64
+122 207 64
+123 207 64
+124 207 64
+125 207 64
+126 207 64
+127 207 64
+128 207 64
+129 207 64
+130 207 64
+131 207 64
+132 207 64
+133 207 64
+134 207 64
+135 207 64
+136 207 64
+137 207 64
+138 207 64
+139 207 64
+140 207 64
+141 207 64
+142 207 64
+143 207 64
+144 207 64
+145 207 64
+146 207 64
+147 207 64
+148 207 64
+149 207 64
+150 207 64
+151 207 64
+152 207 64
+153 207 64
+154 207 64
+155 207 64
+156 207 64
+157 207 64
+158 207 64
+159 207 64
+160 207 64
+161 207 64
+162 207 64
+163 207 64
+164 207 64
+165 207 64
+166 207 64
+167 207 64
+168 207 64
+169 207 64
+170 207 64
+171 207 64
+172 207 64
+173 207 64
+174 207 64
+175 207 64
+176 207 64
+177 207 64
+178 207 64
+179 207 64
+180 207 64
+181 207 64
+182 207 64
+183 207 64
+184 207 64
+185 207 64
+186 207 64
+187 207 64
+188 207 64
+189 207 64
+190 207 64
+191 207 64
+192 207 64
+193 207 64
+194 207 64
+195 207 64
+196 207 64
+197 207 64
+198 207 64
+199 207 64
+200 207 64
+201 207 64
+202 207 64
+203 207 64
+204 207 64
+205 207 64
+206 207 64
+207 207 64
+208 207 64
+209 207 64
+210 207 64
+211 207 64
+212 207 64
+213 207 64
+214 207 64
+215 207 64
+216 207 64
+217 207 64
+218 207 64
+219 207 64
+220 207 64
+221 207 64
+222 207 64
+223 207 64
+224 207 64
+225 207 64
+226 207 64
+227 207 64
+228 207 64
+229 207 64
+230 207 64
+231 207 64
+232 207 64
+233 207 64
+234 207 64
+235 207 64
+236 207 64
+237 207 64
+238 207 64
+239 207 64
+240 207 64
+241 207 64
+242 207 64
+243 207 64
+244 207 64
+245 207 64
+246 207 64
+247 207 64
+248 207 64
+249 207 64
+250 207 64
+251 207 64
+252 207 64
+253 207 64
+254 207 64
+255 207 64
+0 206 64
+1 206 64
+2 206 64
+3 206 64
+4 206 64
+5 206 64
+6 206 64
+7 206 64
+8 206 64
+9 206 64
+10 206 64
+11 206 64
+12 206 64
+13 206 64
+14 206 64
+15 206 64
+16 206 64
+17 206 64
+18 206 64
+19 206 64
+20 206 64
+21 206 64
+22 206 64
+23 206 64
+24 206 64
+25 206 64
+26 206 64
+27 206 64
+28 206 64
+29 206 64
+30 206 64
+31 206 64
+32 206 64
+33 206 64
+34 206 64
+35 206 64
+36 206 64
+37 206 64
+38 206 64
+39 206 64
+40 206 64
+41 206 64
+42 206 64
+43 206 64
+44 206 64
+45 206 64
+46 206 64
+47 206 64
+48 206 64
+49 206 64
+50 206 64
+51 206 64
+52 206 64
+53 206 64
+54 206 64
+55 206 64
+56 206 64
+57 206 64
+58 206 64
+59 206 64
+60 206 64
+61 206 64
+62 206 64
+63 206 64
+64 206 64
+65 206 64
+66 206 64
+67 206 64
+68 206 64
+69 206 64
+70 206 64
+71 206 64
+72 206 64
+73 206 64
+74 206 64
+75 206 64
+76 206 64
+77 206 64
+78 206 64
+79 206 64
+80 206 64
+81 206 64
+82 206 64
+83 206 64
+84 206 64
+85 206 64
+86 206 64
+87 206 64
+88 206 64
+89 206 64
+90 206 64
+91 206 64
+92 206 64
+93 206 64
+94 206 64
+95 206 64
+96 206 64
+97 206 64
+98 206 64
+99 206 64
+100 206 64
+101 206 64
+102 206 64
+103 206 64
+104 206 64
+105 206 64
+106 206 64
+107 206 64
+108 206 64
+109 206 64
+110 206 64
+111 206 64
+112 206 64
+113 206 64
+114 206 64
+115 206 64
+116 206 64
+117 206 64
+118 206 64
+119 206 64
+120 206 64
+121 206 64
+122 206 64
+123 206 64
+124 206 64
+125 206 64
+126 206 64
+127 206 64
+128 206 64
+129 206 64
+130 206 64
+131 206 64
+132 206 64
+133 206 64
+134 206 64
+135 206 64
+136 206 64
+137 206 64
+138 206 64
+139 206 64
+140 206 64
+141 206 64
+142 206 64
+143 206 64
+144 206 64
+145 206 64
+146 206 64
+147 206 64
+148 206 64
+149 206 64
+150 206 64
+151 206 64
+152 206 64
+153 206 64
+154 206 64
+155 206 64
+156 206 64
+157 206 64
+158 206 64
+159 206 64
+160 206 64
+161 206 64
+162 206 64
+163 206 64
+164 206 64
+165 206 64
+166 206 64
+167 206 64
+168 206 64
+169 206 64
+170 206 64
+171 206 64
+172 206 64
+173 206 64
+174 206 64
+175 206 64
+176 206 64
+177 206 64
+178 206 64
+179 206 64
+180 206 64
+181 206 64
+182 206 64
+183 206 64
+184 206 64
+185 206 64
+186 206 64
+187 206 64
+188 206 64
+189 206 64
+190 206 64
+191 206 64
+192 206 64
+193 206 64
+194 206 64
+195 206 64
+196 206 64
+197 206 64
+198 206 64
+199 206 64
+200 206 64
+201 206 64
+202 206 64
+203 206 64
+204 206 64
+205 206 64
+206 206 64
+207 206 64
+208 206 64
+209 206 64
+210 206 64
+211 206 64
+212 206 64
+213 206 64
+214 206 64
+215 206 64
+216 206 64
+217 206 64
+218 206 64
+219 206 64
+220 206 64
+221 206 64
+222 206 64
+223 206 64
+224 206 64
+225 206 64
+226 206 64
+227 206 64
+228 206 64
+229 206 64
+230 206 64
+231 206 64
+232 206 64
+233 206 64
+234 206 64
+235 206 64
+236 206 64
+237 206 64
+238 206 64
+239 206 64
+240 206 64
+241 206 64
+242 206 64
+243 206 64
+244 206 64
+245 206 64
+246 206 64
+247 206 64
+248 206 64
+249 206 64
+250 206 64
+251 206 64
+252 206 64
+253 206 64
+254 206 64
+255 206 64
+0 205 64
+1 205 64
+2 205 64
+3 205 64
+4 205 64
+5 205 64
+6 205 64
+7 205 64
+8 205 64
+9 205 64
+10 205 64
+11 205 64
+12 205 64
+13 205 64
+14 205 64
+15 205 64
+16 205 64
+17 205 64
+18 205 64
+19 205 64
+20 205 64
+21 205 64
+22 205 64
+23 205 64
+24 205 64
+25 205 64
+26 205 64
+27 205 64
+28 205 64
+29 205 64
+30 205 64
+31 205 64
+32 205 64
+33 205 64
+34 205 64
+35 205 64
+36 205 64
+37 205 64
+38 205 64
+39 205 64
+40 205 64
+41 205 64
+42 205 64
+43 205 64
+44 205 64
+45 205 64
+46 205 64
+47 205 64
+48 205 64
+49 205 64
+50 205 64
+51 205 64
+52 205 64
+53 205 64
+54 205 64
+55 205 64
+56 205 64
+57 205 64
+58 205 64
+59 205 64
+60 205 64
+61 205 64
+62 205 64
+63 205 64
+64 205 64
+65 205 64
+66 205 64
+67 205 64
+68 205 64
+69 205 64
+70 205 64
+71 205 64
+72 205 64
+73 205 64
+74 205 64
+75 205 64
+76 205 64
+77 205 64
+78 205 64
+79 205 64
+80 205 64
+81 205 64
+82 205 64
+83 205 64
+84 205 64
+85 205 64
+86 205 64
+87 205 64
+88 205 64
+89 205 64
+90 205 64
+91 205 64
+92 205 64
+93 205 64
+94 205 64
+95 205 64
+96 205 64
+97 205 64
+98 205 64
+99 205 64
+100 205 64
+101 205 64
+102 205 64
+103 205 64
+104 205 64
+105 205 64
+106 205 64
+107 205 64
+108 205 64
+109 205 64
+110 205 64
+111 205 64
+112 205 64
+113 205 64
+114 205 64
+115 205 64
+116 205 64
+117 205 64
+118 205 64
+119 205 64
+120 205 64
+121 205 64
+122 205 64
+123 205 64
+124 205 64
+125 205 64
+126 205 64
+127 205 64
+128 205 64
+129 205 64
+130 205 64
+131 205 64
+132 205 64
+133 205 64
+134 205 64
+135 205 64
+136 205 64
+137 205 64
+138 205 64
+139 205 64
+140 205 64
+141 205 64
+142 205 64
+143 205 64
+144 205 64
+145 205 64
+146 205 64
+147 205 64
+148 205 64
+149 205 64
+150 205 64
+151 205 64
+152 205 64
+153 205 64
+154 205 64
+155 205 64
+156 205 64
+157 205 64
+158 205 64
+159 205 64
+160 205 64
+161 205 64
+162 205 64
+163 205 64
+164 205 64
+165 205 64
+166 205 64
+167 205 64
+168 205 64
+169 205 64
+170 205 64
+171 205 64
+172 205 64
+173 205 64
+174 205 64
+175 205 64
+176 205 64
+177 205 64
+178 205 64
+179 205 64
+180 205 64
+181 205 64
+182 205 64
+183 205 64
+184 205 64
+185 205 64
+186 205 64
+187 205 64
+188 205 64
+189 205 64
+190 205 64
+191 205 64
+192 205 64
+193 205 64
+194 205 64
+195 205 64
+196 205 64
+197 205 64
+198 205 64
+199 205 64
+200 205 64
+201 205 64
+202 205 64
+203 205 64
+204 205 64
+205 205 64
+206 205 64
+207 205 64
+208 205 64
+209 205 64
+210 205 64
+211 205 64
+212 205 64
+213 205 64
+214 205 64
+215 205 64
+216 205 64
+217 205 64
+218 205 64
+219 205 64
+220 205 64
+221 205 64
+222 205 64
+223 205 64
+224 205 64
+225 205 64
+226 205 64
+227 205 64
+228 205 64
+229 205 64
+230 205 64
+231 205 64
+232 205 64
+233 205 64
+234 205 64
+235 205 64
+236 205 64
+237 205 64
+238 205 64
+239 205 64
+240 205 64
+241 205 64
+242 205 64
+243 205 64
+244 205 64
+245 205 64
+246 205 64
+247 205 64
+248 205 64
+249 205 64
+250 205 64
+251 205 64
+252 205 64
+253 205 64
+254 205 64
+255 205 64
+0 204 64
+1 204 64
+2 204 64
+3 204 64
+4 204 64
+5 204 64
+6 204 64
+7 204 64
+8 204 64
+9 204 64
+10 204 64
+11 204 64
+12 204 64
+13 204 64
+14 204 64
+15 204 64
+16 204 64
+17 204 64
+18 204 64
+19 204 64
+20 204 64
+21 204 64
+22 204 64
+23 204 64
+24 204 64
+25 204 64
+26 204 64
+27 204 64
+28 204 64
+29 204 64
+30 204 64
+31 204 64
+32 204 64
+33 204 64
+34 204 64
+35 204 64
+36 204 64
+37 204 64
+38 204 64
+39 204 64
+40 204 64
+41 204 64
+42 204 64
+43 204 64
+44 204 64
+45 204 64
+46 204 64
+47 204 64
+48 204 64
+49 204 64
+50 204 64
+51 204 64
+52 204 64
+53 204 64
+54 204 64
+55 204 64
+56 204 64
+57 204 64
+58 204 64
+59 204 64
+60 204 64
+61 204 64
+62 204 64
+63 204 64
+64 204 64
+65 204 64
+66 204 64
+67 204 64
+68 204 64
+69 204 64
+70 204 64
+71 204 64
+72 204 64
+73 204 64
+74 204 64
+75 204 64
+76 204 64
+77 204 64
+78 204 64
+79 204 64
+80 204 64
+81 204 64
+82 204 64
+83 204 64
+84 204 64
+85 204 64
+86 204 64
+87 204 64
+88 204 64
+89 204 64
+90 204 64
+91 204 64
+92 204 64
+93 204 64
+94 204 64
+95 204 64
+96 204 64
+97 204 64
+98 204 64
+99 204 64
+100 204 64
+101 204 64
+102 204 64
+103 204 64
+104 204 64
+105 204 64
+106 204 64
+107 204 64
+108 204 64
+109 204 64
+110 204 64
+111 204 64
+112 204 64
+113 204 64
+114 204 64
+115 204 64
+116 204 64
+117 204 64
+118 204 64
+119 204 64
+120 204 64
+121 204 64
+122 204 64
+123 204 64
+124 204 64
+125 204 64
+126 204 64
+127 204 64
+128 204 64
+129 204 64
+130 204 64
+131 204 64
+132 204 64
+133 204 64
+134 204 64
+135 204 64
+136 204 64
+137 204 64
+138 204 64
+139 204 64
+140 204 64
+141 204 64
+142 204 64
+143 204 64
+144 204 64
+145 204 64
+146 204 64
+147 204 64
+148 204 64
+149 204 64
+150 204 64
+151 204 64
+152 204 64
+153 204 64
+154 204 64
+155 204 64
+156 204 64
+157 204 64
+158 204 64
+159 204 64
+160 204 64
+161 204 64
+162 204 64
+163 204 64
+164 204 64
+165 204 64
+166 204 64
+167 204 64
+168 204 64
+169 204 64
+170 204 64
+171 204 64
+172 204 64
+173 204 64
+174 204 64
+175 204 64
+176 204 64
+177 204 64
+178 204 64
+179 204 64
+180 204 64
+181 204 64
+182 204 64
+183 204 64
+184 204 64
+185 204 64
+186 204 64
+187 204 64
+188 204 64
+189 204 64
+190 204 64
+191 204 64
+192 204 64
+193 204 64
+194 204 64
+195 204 64
+196 204 64
+197 204 64
+198 204 64
+199 204 64
+200 204 64
+201 204 64
+202 204 64
+203 204 64
+204 204 64
+205 204 64
+206 204 64
+207 204 64
+208 204 64
+209 204 64
+210 204 64
+211 204 64
+212 204 64
+213 204 64
+214 204 64
+215 204 64
+216 204 64
+217 204 64
+218 204 64
+219 204 64
+220 204 64
+221 204 64
+222 204 64
+223 204 64
+224 204 64
+225 204 64
+226 204 64
+227 204 64
+228 204 64
+229 204 64
+230 204 64
+231 204 64
+232 204 64
+233 204 64
+234 204 64
+235 204 64
+236 204 64
+237 204 64
+238 204 64
+239 204 64
+240 204 64
+241 204 64
+242 204 64
+243 204 64
+244 204 64
+245 204 64
+246 204 64
+247 204 64
+248 204 64
+249 204 64
+250 204 64
+251 204 64
+252 204 64
+253 204 64
+254 204 64
+255 204 64
+0 203 64
+1 203 64
+2 203 64
+3 203 64
+4 203 64
+5 203 64
+6 203 64
+7 203 64
+8 203 64
+9 203 64
+10 203 64
+11 203 64
+12 203 64
+13 203 64
+14 203 64
+15 203 64
+16 203 64
+17 203 64
+18 203 64
+19 203 64
+20 203 64
+21 203 64
+22 203 64
+23 203 64
+24 203 64
+25 203 64
+26 203 64
+27 203 64
+28 203 64
+29 203 64
+30 203 64
+31 203 64
+32 203 64
+33 203 64
+34 203 64
+35 203 64
+36 203 64
+37 203 64
+38 203 64
+39 203 64
+40 203 64
+41 203 64
+42 203 64
+43 203 64
+44 203 64
+45 203 64
+46 203 64
+47 203 64
+48 203 64
+49 203 64
+50 203 64
+51 203 64
+52 203 64
+53 203 64
+54 203 64
+55 203 64
+56 203 64
+57 203 64
+58 203 64
+59 203 64
+60 203 64
+61 203 64
+62 203 64
+63 203 64
+64 203 64
+65 203 64
+66 203 64
+67 203 64
+68 203 64
+69 203 64
+70 203 64
+71 203 64
+72 203 64
+73 203 64
+74 203 64
+75 203 64
+76 203 64
+77 203 64
+78 203 64
+79 203 64
+80 203 64
+81 203 64
+82 203 64
+83 203 64
+84 203 64
+85 203 64
+86 203 64
+87 203 64
+88 203 64
+89 203 64
+90 203 64
+91 203 64
+92 203 64
+93 203 64
+94 203 64
+95 203 64
+96 203 64
+97 203 64
+98 203 64
+99 203 64
+100 203 64
+101 203 64
+102 203 64
+103 203 64
+104 203 64
+105 203 64
+106 203 64
+107 203 64
+108 203 64
+109 203 64
+110 203 64
+111 203 64
+112 203 64
+113 203 64
+114 203 64
+115 203 64
+116 203 64
+117 203 64
+118 203 64
+119 203 64
+120 203 64
+121 203 64
+122 203 64
+123 203 64
+124 203 64
+125 203 64
+126 203 64
+127 203 64
+128 203 64
+129 203 64
+130 203 64
+131 203 64
+132 203 64
+133 203 64
+134 203 64
+135 203 64
+136 203 64
+137 203 64
+138 203 64
+139 203 64
+140 203 64
+141 203 64
+142 203 64
+143 203 64
+144 203 64
+145 203 64
+146 203 64
+147 203 64
+148 203 64
+149 203 64
+150 203 64
+151 203 64
+152 203 64
+153 203 64
+154 203 64
+155 203 64
+156 203 64
+157 203 64
+158 203 64
+159 203 64
+160 203 64
+161 203 64
+162 203 64
+163 203 64
+164 203 64
+165 203 64
+166 203 64
+167 203 64
+168 203 64
+169 203 64
+170 203 64
+171 203 64
+172 203 64
+173 203 64
+174 203 64
+175 203 64
+176 203 64
+177 203 64
+178 203 64
+179 203 64
+180 203 64
+181 203 64
+182 203 64
+183 203 64
+184 203 64
+185 203 64
+186 203 64
+187 203 64
+188 203 64
+189 203 64
+190 203 64
+191 203 64
+192 203 64
+193 203 64
+194 203 64
+195 203 64
+196 203 64
+197 203 64
+198 203 64
+199 203 64
+200 203 64
+201 203 64
+202 203 64
+203 203 64
+204 203 64
+205 203 64
+206 203 64
+207 203 64
+208 203 64
+209 203 64
+210 203 64
+211 203 64
+212 203 64
+213 203 64
+214 203 64
+215 203 64
+216 203 64
+217 203 64
+218 203 64
+219 203 64
+220 203 64
+221 203 64
+222 203 64
+223 203 64
+224 203 64
+225 203 64
+226 203 64
+227 203 64
+228 203 64
+229 203 64
+230 203 64
+231 203 64
+232 203 64
+233 203 64
+234 203 64
+235 203 64
+236 203 64
+237 203 64
+238 203 64
+239 203 64
+240 203 64
+241 203 64
+242 203 64
+243 203 64
+244 203 64
+245 203 64
+246 203 64
+247 203 64
+248 203 64
+249 203 64
+250 203 64
+251 203 64
+252 203 64
+253 203 64
+254 203 64
+255 203 64
+0 202 64
+1 202 64
+2 202 64
+3 202 64
+4 202 64
+5 202 64
+6 202 64
+7 202 64
+8 202 64
+9 202 64
+10 202 64
+11 202 64
+12 202 64
+13 202 64
+14 202 64
+15 202 64
+16 202 64
+17 202 64
+18 202 64
+19 202 64
+20 202 64
+21 202 64
+22 202 64
+23 202 64
+24 202 64
+25 202 64
+26 202 64
+27 202 64
+28 202 64
+29 202 64
+30 202 64
+31 202 64
+32 202 64
+33 202 64
+34 202 64
+35 202 64
+36 202 64
+37 202 64
+38 202 64
+39 202 64
+40 202 64
+41 202 64
+42 202 64
+43 202 64
+44 202 64
+45 202 64
+46 202 64
+47 202 64
+48 202 64
+49 202 64
+50 202 64
+51 202 64
+52 202 64
+53 202 64
+54 202 64
+55 202 64
+56 202 64
+57 202 64
+58 202 64
+59 202 64
+60 202 64
+61 202 64
+62 202 64
+63 202 64
+64 202 64
+65 202 64
+66 202 64
+67 202 64
+68 202 64
+69 202 64
+70 202 64
+71 202 64
+72 202 64
+73 202 64
+74 202 64
+75 202 64
+76 202 64
+77 202 64
+78 202 64
+79 202 64
+80 202 64
+81 202 64
+82 202 64
+83 202 64
+84 202 64
+85 202 64
+86 202 64
+87 202 64
+88 202 64
+89 202 64
+90 202 64
+91 202 64
+92 202 64
+93 202 64
+94 202 64
+95 202 64
+96 202 64
+97 202 64
+98 202 64
+99 202 64
+100 202 64
+101 202 64
+102 202 64
+103 202 64
+104 202 64
+105 202 64
+106 202 64
+107 202 64
+108 202 64
+109 202 64
+110 202 64
+111 202 64
+112 202 64
+113 202 64
+114 202 64
+115 202 64
+116 202 64
+117 202 64
+118 202 64
+119 202 64
+120 202 64
+121 202 64
+122 202 64
+123 202 64
+124 202 64
+125 202 64
+126 202 64
+127 202 64
+128 202 64
+129 202 64
+130 202 64
+131 202 64
+132 202 64
+133 202 64
+134 202 64
+135 202 64
+136 202 64
+137 202 64
+138 202 64
+139 202 64
+140 202 64
+141 202 64
+142 202 64
+143 202 64
+144 202 64
+145 202 64
+146 202 64
+147 202 64
+148 202 64
+149 202 64
+150 202 64
+151 202 64
+152 202 64
+153 202 64
+154 202 64
+155 202 64
+156 202 64
+157 202 64
+158 202 64
+159 202 64
+160 202 64
+161 202 64
+162 202 64
+163 202 64
+164 202 64
+165 202 64
+166 202 64
+167 202 64
+168 202 64
+169 202 64
+170 202 64
+171 202 64
+172 202 64
+173 202 64
+174 202 64
+175 202 64
+176 202 64
+177 202 64
+178 202 64
+179 202 64
+180 202 64
+181 202 64
+182 202 64
+183 202 64
+184 202 64
+185 202 64
+186 202 64
+187 202 64
+188 202 64
+189 202 64
+190 202 64
+191 202 64
+192 202 64
+193 202 64
+194 202 64
+195 202 64
+196 202 64
+197 202 64
+198 202 64
+199 202 64
+200 202 64
+201 202 64
+202 202 64
+203 202 64
+204 202 64
+205 202 64
+206 202 64
+207 202 64
+208 202 64
+209 202 64
+210 202 64
+211 202 64
+212 202 64
+213 202 64
+214 202 64
+215 202 64
+216 202 64
+217 202 64
+218 202 64
+219 202 64
+220 202 64
+221 202 64
+222 202 64
+223 202 64
+224 202 64
+225 202 64
+226 202 64
+227 202 64
+228 202 64
+229 202 64
+230 202 64
+231 202 64
+232 202 64
+233 202 64
+234 202 64
+235 202 64
+236 202 64
+237 202 64
+238 202 64
+239 202 64
+240 202 64
+241 202 64
+242 202 64
+243 202 64
+244 202 64
+245 202 64
+246 202 64
+247 202 64
+248 202 64
+249 202 64
+250 202 64
+251 202 64
+252 202 64
+253 202 64
+254 202 64
+255 202 64
+0 201 64
+1 201 64
+2 201 64
+3 201 64
+4 201 64
+5 201 64
+6 201 64
+7 201 64
+8 201 64
+9 201 64
+10 201 64
+11 201 64
+12 201 64
+13 201 64
+14 201 64
+15 201 64
+16 201 64
+17 201 64
+18 201 64
+19 201 64
+20 201 64
+21 201 64
+22 201 64
+23 201 64
+24 201 64
+25 201 64
+26 201 64
+27 201 64
+28 201 64
+29 201 64
+30 201 64
+31 201 64
+32 201 64
+33 201 64
+34 201 64
+35 201 64
+36 201 64
+37 201 64
+38 201 64
+39 201 64
+40 201 64
+41 201 64
+42 201 64
+43 201 64
+44 201 64
+45 201 64
+46 201 64
+47 201 64
+48 201 64
+49 201 64
+50 201 64
+51 201 64
+52 201 64
+53 201 64
+54 201 64
+55 201 64
+56 201 64
+57 201 64
+58 201 64
+59 201 64
+60 201 64
+61 201 64
+62 201 64
+63 201 64
+64 201 64
+65 201 64
+66 201 64
+67 201 64
+68 201 64
+69 201 64
+70 201 64
+71 201 64
+72 201 64
+73 201 64
+74 201 64
+75 201 64
+76 201 64
+77 201 64
+78 201 64
+79 201 64
+80 201 64
+81 201 64
+82 201 64
+83 201 64
+84 201 64
+85 201 64
+86 201 64
+87 201 64
+88 201 64
+89 201 64
+90 201 64
+91 201 64
+92 201 64
+93 201 64
+94 201 64
+95 201 64
+96 201 64
+97 201 64
+98 201 64
+99 201 64
+100 201 64
+101 201 64
+102 201 64
+103 201 64
+104 201 64
+105 201 64
+106 201 64
+107 201 64
+108 201 64
+109 201 64
+110 201 64
+111 201 64
+112 201 64
+113 201 64
+114 201 64
+115 201 64
+116 201 64
+117 201 64
+118 201 64
+119 201 64
+120 201 64
+121 201 64
+122 201 64
+123 201 64
+124 201 64
+125 201 64
+126 201 64
+127 201 64
+128 201 64
+129 201 64
+130 201 64
+131 201 64
+132 201 64
+133 201 64
+134 201 64
+135 201 64
+136 201 64
+137 201 64
+138 201 64
+139 201 64
+140 201 64
+141 201 64
+142 201 64
+143 201 64
+144 201 64
+145 201 64
+146 201 64
+147 201 64
+148 201 64
+149 201 64
+150 201 64
+151 201 64
+152 201 64
+153 201 64
+154 201 64
+155 201 64
+156 201 64
+157 201 64
+158 201 64
+159 201 64
+160 201 64
+161 201 64
+162 201 64
+163 201 64
+164 201 64
+165 201 64
+166 201 64
+167 201 64
+168 201 64
+169 201 64
+170 201 64
+171 201 64
+172 201 64
+173 201 64
+174 201 64
+175 201 64
+176 201 64
+177 201 64
+178 201 64
+179 201 64
+180 201 64
+181 201 64
+182 201 64
+183 201 64
+184 201 64
+185 201 64
+186 201 64
+187 201 64
+188 201 64
+189 201 64
+190 201 64
+191 201 64
+192 201 64
+193 201 64
+194 201 64
+195 201 64
+196 201 64
+197 201 64
+198 201 64
+199 201 64
+200 201 64
+201 201 64
+202 201 64
+203 201 64
+204 201 64
+205 201 64
+206 201 64
+207 201 64
+208 201 64
+209 201 64
+210 201 64
+211 201 64
+212 201 64
+213 201 64
+214 201 64
+215 201 64
+216 201 64
+217 201 64
+218 201 64
+219 201 64
+220 201 64
+221 201 64
+222 201 64
+223 201 64
+224 201 64
+225 201 64
+226 201 64
+227 201 64
+228 201 64
+229 201 64
+230 201 64
+231 201 64
+232 201 64
+233 201 64
+234 201 64
+235 201 64
+236 201 64
+237 201 64
+238 201 64
+239 201 64
+240 201 64
+241 201 64
+242 201 64
+243 201 64
+244 201 64
+245 201 64
+246 201 64
+247 201 64
+248 201 64
+249 201 64
+250 201 64
+251 201 64
+252 201 64
+253 201 64
+254 201 64
+255 201 64
+0 200 64
+1 200 64
+2 200 64
+3 200 64
+4 200 64
+5 200 64
+6 200 64
+7 200 64
+8 200 64
+9 200 64
+10 200 64
+11 200 64
+12 200 64
+13 200 64
+14 200 64
+15 200 64
+16 200 64
+17 200 64
+18 200 64
+19 200 64
+20 200 64
+21 200 64
+22 200 64
+23 200 64
+24 200 64
+25 200 64
+26 200 64
+27 200 64
+28 200 64
+29 200 64
+30 200 64
+31 200 64
+32 200 64
+33 200 64
+34 200 64
+35 200 64
+36 200 64
+37 200 64
+38 200 64
+39 200 64
+40 200 64
+41 200 64
+42 200 64
+43 200 64
+44 200 64
+45 200 64
+46 200 64
+47 200 64
+48 200 64
+49 200 64
+50 200 64
+51 200 64
+52 200 64
+53 200 64
+54 200 64
+55 200 64
+56 200 64
+57 200 64
+58 200 64
+59 200 64
+60 200 64
+61 200 64
+62 200 64
+63 200 64
+64 200 64
+65 200 64
+66 200 64
+67 200 64
+68 200 64
+69 200 64
+70 200 64
+71 200 64
+72 200 64
+73 200 64
+74 200 64
+75 200 64
+76 200 64
+77 200 64
+78 200 64
+79 200 64
+80 200 64
+81 200 64
+82 200 64
+83 200 64
+84 200 64
+85 200 64
+86 200 64
+87 200 64
+88 200 64
+89 200 64
+90 200 64
+91 200 64
+92 200 64
+93 200 64
+94 200 64
+95 200 64
+96 200 64
+97 200 64
+98 200 64
+99 200 64
+100 200 64
+101 200 64
+102 200 64
+103 200 64
+104 200 64
+105 200 64
+106 200 64
+107 200 64
+108 200 64
+109 200 64
+110 200 64
+111 200 64
+112 200 64
+113 200 64
+114 200 64
+115 200 64
+116 200 64
+117 200 64
+118 200 64
+119 200 64
+120 200 64
+121 200 64
+122 200 64
+123 200 64
+124 200 64
+125 200 64
+126 200 64
+127 200 64
+128 200 64
+129 200 64
+130 200 64
+131 200 64
+132 200 64
+133 200 64
+134 200 64
+135 200 64
+136 200 64
+137 200 64
+138 200 64
+139 200 64
+140 200 64
+141 200 64
+142 200 64
+143 200 64
+144 200 64
+145 200 64
+146 200 64
+147 200 64
+148 200 64
+149 200 64
+150 200 64
+151 200 64
+152 200 64
+153 200 64
+154 200 64
+155 200 64
+156 200 64
+157 200 64
+158 200 64
+159 200 64
+160 200 64
+161 200 64
+162 200 64
+163 200 64
+164 200 64
+165 200 64
+166 200 64
+167 200 64
+168 200 64
+169 200 64
+170 200 64
+171 200 64
+172 200 64
+173 200 64
+174 200 64
+175 200 64
+176 200 64
+177 200 64
+178 200 64
+179 200 64
+180 200 64
+181 200 64
+182 200 64
+183 200 64
+184 200 64
+185 200 64
+186 200 64
+187 200 64
+188 200 64
+189 200 64
+190 200 64
+191 200 64
+192 200 64
+193 200 64
+194 200 64
+195 200 64
+196 200 64
+197 200 64
+198 200 64
+199 200 64
+200 200 64
+201 200 64
+202 200 64
+203 200 64
+204 200 64
+205 200 64
+206 200 64
+207 200 64
+208 200 64
+209 200 64
+210 200 64
+211 200 64
+212 200 64
+213 200 64
+214 200 64
+215 200 64
+216 200 64
+217 200 64
+218 200 64
+219 200 64
+220 200 64
+221 200 64
+222 200 64
+223 200 64
+224 200 64
+225 200 64
+226 200 64
+227 200 64
+228 200 64
+229 200 64
+230 200 64
+231 200 64
+232 200 64
+233 200 64
+234 200 64
+235 200 64
+236 200 64
+237 200 64
+238 200 64
+239 200 64
+240 200 64
+241 200 64
+242 200 64
+243 200 64
+244 200 64
+245 200 64
+246 200 64
+247 200 64
+248 200 64
+249 200 64
+250 200 64
+251 200 64
+252 200 64
+253 200 64
+254 200 64
+255 200 64
+0 199 64
+1 199 64
+2 199 64
+3 199 64
+4 199 64
+5 199 64
+6 199 64
+7 199 64
+8 199 64
+9 199 64
+10 199 64
+11 199 64
+12 199 64
+13 199 64
+14 199 64
+15 199 64
+16 199 64
+17 199 64
+18 199 64
+19 199 64
+20 199 64
+21 199 64
+22 199 64
+23 199 64
+24 199 64
+25 199 64
+26 199 64
+27 199 64
+28 199 64
+29 199 64
+30 199 64
+31 199 64
+32 199 64
+33 199 64
+34 199 64
+35 199 64
+36 199 64
+37 199 64
+38 199 64
+39 199 64
+40 199 64
+41 199 64
+42 199 64
+43 199 64
+44 199 64
+45 199 64
+46 199 64
+47 199 64
+48 199 64
+49 199 64
+50 199 64
+51 199 64
+52 199 64
+53 199 64
+54 199 64
+55 199 64
+56 199 64
+57 199 64
+58 199 64
+59 199 64
+60 199 64
+61 199 64
+62 199 64
+63 199 64
+64 199 64
+65 199 64
+66 199 64
+67 199 64
+68 199 64
+69 199 64
+70 199 64
+71 199 64
+72 199 64
+73 199 64
+74 199 64
+75 199 64
+76 199 64
+77 199 64
+78 199 64
+79 199 64
+80 199 64
+81 199 64
+82 199 64
+83 199 64
+84 199 64
+85 199 64
+86 199 64
+87 199 64
+88 199 64
+89 199 64
+90 199 64
+91 199 64
+92 199 64
+93 199 64
+94 199 64
+95 199 64
+96 199 64
+97 199 64
+98 199 64
+99 199 64
+100 199 64
+101 199 64
+102 199 64
+103 199 64
+104 199 64
+105 199 64
+106 199 64
+107 199 64
+108 199 64
+109 199 64
+110 199 64
+111 199 64
+112 199 64
+113 199 64
+114 199 64
+115 199 64
+116 199 64
+117 199 64
+118 199 64
+119 199 64
+120 199 64
+121 199 64
+122 199 64
+123 199 64
+124 199 64
+125 199 64
+126 199 64
+127 199 64
+128 199 64
+129 199 64
+130 199 64
+131 199 64
+132 199 64
+133 199 64
+134 199 64
+135 199 64
+136 199 64
+137 199 64
+138 199 64
+139 199 64
+140 199 64
+141 199 64
+142 199 64
+143 199 64
+144 199 64
+145 199 64
+146 199 64
+147 199 64
+148 199 64
+149 199 64
+150 199 64
+151 199 64
+152 199 64
+153 199 64
+154 199 64
+155 199 64
+156 199 64
+157 199 64
+158 199 64
+159 199 64
+160 199 64
+161 199 64
+162 199 64
+163 199 64
+164 199 64
+165 199 64
+166 199 64
+167 199 64
+168 199 64
+169 199 64
+170 199 64
+171 199 64
+172 199 64
+173 199 64
+174 199 64
+175 199 64
+176 199 64
+177 199 64
+178 199 64
+179 199 64
+180 199 64
+181 199 64
+182 199 64
+183 199 64
+184 199 64
+185 199 64
+186 199 64
+187 199 64
+188 199 64
+189 199 64
+190 199 64
+191 199 64
+192 199 64
+193 199 64
+194 199 64
+195 199 64
+196 199 64
+197 199 64
+198 199 64
+199 199 64
+200 199 64
+201 199 64
+202 199 64
+203 199 64
+204 199 64
+205 199 64
+206 199 64
+207 199 64
+208 199 64
+209 199 64
+210 199 64
+211 199 64
+212 199 64
+213 199 64
+214 199 64
+215 199 64
+216 199 64
+217 199 64
+218 199 64
+219 199 64
+220 199 64
+221 199 64
+222 199 64
+223 199 64
+224 199 64
+225 199 64
+226 199 64
+227 199 64
+228 199 64
+229 199 64
+230 199 64
+231 199 64
+232 199 64
+233 199 64
+234 199 64
+235 199 64
+236 199 64
+237 199 64
+238 199 64
+239 199 64
+240 199 64
+241 199 64
+242 199 64
+243 199 64
+244 199 64
+245 199 64
+246 199 64
+247 199 64
+248 199 64
+249 199 64
+250 199 64
+251 199 64
+252 199 64
+253 199 64
+254 199 64
+255 199 64
+0 198 64
+1 198 64
+2 198 64
+3 198 64
+4 198 64
+5 198 64
+6 198 64
+7 198 64
+8 198 64
+9 198 64
+10 198 64
+11 198 64
+12 198 64
+13 198 64
+14 198 64
+15 198 64
+16 198 64
+17 198 64
+18 198 64
+19 198 64
+20 198 64
+21 198 64
+22 198 64
+23 198 64
+24 198 64
+25 198 64
+26 198 64
+27 198 64
+28 198 64
+29 198 64
+30 198 64
+31 198 64
+32 198 64
+33 198 64
+34 198 64
+35 198 64
+36 198 64
+37 198 64
+38 198 64
+39 198 64
+40 198 64
+41 198 64
+42 198 64
+43 198 64
+44 198 64
+45 198 64
+46 198 64
+47 198 64
+48 198 64
+49 198 64
+50 198 64
+51 198 64
+52 198 64
+53 198 64
+54 198 64
+55 198 64
+56 198 64
+57 198 64
+58 198 64
+59 198 64
+60 198 64
+61 198 64
+62 198 64
+63 198 64
+64 198 64
+65 198 64
+66 198 64
+67 198 64
+68 198 64
+69 198 64
+70 198 64
+71 198 64
+72 198 64
+73 198 64
+74 198 64
+75 198 64
+76 198 64
+77 198 64
+78 198 64
+79 198 64
+80 198 64
+81 198 64
+82 198 64
+83 198 64
+84 198 64
+85 198 64
+86 198 64
+87 198 64
+88 198 64
+89 198 64
+90 198 64
+91 198 64
+92 198 64
+93 198 64
+94 198 64
+95 198 64
+96 198 64
+97 198 64
+98 198 64
+99 198 64
+100 198 64
+101 198 64
+102 198 64
+103 198 64
+104 198 64
+105 198 64
+106 198 64
+107 198 64
+108 198 64
+109 198 64
+110 198 64
+111 198 64
+112 198 64
+113 198 64
+114 198 64
+115 198 64
+116 198 64
+117 198 64
+118 198 64
+119 198 64
+120 198 64
+121 198 64
+122 198 64
+123 198 64
+124 198 64
+125 198 64
+126 198 64
+127 198 64
+128 198 64
+129 198 64
+130 198 64
+131 198 64
+132 198 64
+133 198 64
+134 198 64
+135 198 64
+136 198 64
+137 198 64
+138 198 64
+139 198 64
+140 198 64
+141 198 64
+142 198 64
+143 198 64
+144 198 64
+145 198 64
+146 198 64
+147 198 64
+148 198 64
+149 198 64
+150 198 64
+151 198 64
+152 198 64
+153 198 64
+154 198 64
+155 198 64
+156 198 64
+157 198 64
+158 198 64
+159 198 64
+160 198 64
+161 198 64
+162 198 64
+163 198 64
+164 198 64
+165 198 64
+166 198 64
+167 198 64
+168 198 64
+169 198 64
+170 198 64
+171 198 64
+172 198 64
+173 198 64
+174 198 64
+175 198 64
+176 198 64
+177 198 64
+178 198 64
+179 198 64
+180 198 64
+181 198 64
+182 198 64
+183 198 64
+184 198 64
+185 198 64
+186 198 64
+187 198 64
+188 198 64
+189 198 64
+190 198 64
+191 198 64
+192 198 64
+193 198 64
+194 198 64
+195 198 64
+196 198 64
+197 198 64
+198 198 64
+199 198 64
+200 198 64
+201 198 64
+202 198 64
+203 198 64
+204 198 64
+205 198 64
+206 198 64
+207 198 64
+208 198 64
+209 198 64
+210 198 64
+211 198 64
+212 198 64
+213 198 64
+214 198 64
+215 198 64
+216 198 64
+217 198 64
+218 198 64
+219 198 64
+220 198 64
+221 198 64
+222 198 64
+223 198 64
+224 198 64
+225 198 64
+226 198 64
+227 198 64
+228 198 64
+229 198 64
+230 198 64
+231 198 64
+232 198 64
+233 198 64
+234 198 64
+235 198 64
+236 198 64
+237 198 64
+238 198 64
+239 198 64
+240 198 64
+241 198 64
+242 198 64
+243 198 64
+244 198 64
+245 198 64
+246 198 64
+247 198 64
+248 198 64
+249 198 64
+250 198 64
+251 198 64
+252 198 64
+253 198 64
+254 198 64
+255 198 64
+0 197 64
+1 197 64
+2 197 64
+3 197 64
+4 197 64
+5 197 64
+6 197 64
+7 197 64
+8 197 64
+9 197 64
+10 197 64
+11 197 64
+12 197 64
+13 197 64
+14 197 64
+15 197 64
+16 197 64
+17 197 64
+18 197 64
+19 197 64
+20 197 64
+21 197 64
+22 197 64
+23 197 64
+24 197 64
+25 197 64
+26 197 64
+27 197 64
+28 197 64
+29 197 64
+30 197 64
+31 197 64
+32 197 64
+33 197 64
+34 197 64
+35 197 64
+36 197 64
+37 197 64
+38 197 64
+39 197 64
+40 197 64
+41 197 64
+42 197 64
+43 197 64
+44 197 64
+45 197 64
+46 197 64
+47 197 64
+48 197 64
+49 197 64
+50 197 64
+51 197 64
+52 197 64
+53 197 64
+54 197 64
+55 197 64
+56 197 64
+57 197 64
+58 197 64
+59 197 64
+60 197 64
+61 197 64
+62 197 64
+63 197 64
+64 197 64
+65 197 64
+66 197 64
+67 197 64
+68 197 64
+69 197 64
+70 197 64
+71 197 64
+72 197 64
+73 197 64
+74 197 64
+75 197 64
+76 197 64
+77 197 64
+78 197 64
+79 197 64
+80 197 64
+81 197 64
+82 197 64
+83 197 64
+84 197 64
+85 197 64
+86 197 64
+87 197 64
+88 197 64
+89 197 64
+90 197 64
+91 197 64
+92 197 64
+93 197 64
+94 197 64
+95 197 64
+96 197 64
+97 197 64
+98 197 64
+99 197 64
+100 197 64
+101 197 64
+102 197 64
+103 197 64
+104 197 64
+105 197 64
+106 197 64
+107 197 64
+108 197 64
+109 197 64
+110 197 64
+111 197 64
+112 197 64
+113 197 64
+114 197 64
+115 197 64
+116 197 64
+117 197 64
+118 197 64
+119 197 64
+120 197 64
+121 197 64
+122 197 64
+123 197 64
+124 197 64
+125 197 64
+126 197 64
+127 197 64
+128 197 64
+129 197 64
+130 197 64
+131 197 64
+132 197 64
+133 197 64
+134 197 64
+135 197 64
+136 197 64
+137 197 64
+138 197 64
+139 197 64
+140 197 64
+141 197 64
+142 197 64
+143 197 64
+144 197 64
+145 197 64
+146 197 64
+147 197 64
+148 197 64
+149 197 64
+150 197 64
+151 197 64
+152 197 64
+153 197 64
+154 197 64
+155 197 64
+156 197 64
+157 197 64
+158 197 64
+159 197 64
+160 197 64
+161 197 64
+162 197 64
+163 197 64
+164 197 64
+165 197 64
+166 197 64
+167 197 64
+168 197 64
+169 197 64
+170 197 64
+171 197 64
+172 197 64
+173 197 64
+174 197 64
+175 197 64
+176 197 64
+177 197 64
+178 197 64
+179 197 64
+180 197 64
+181 197 64
+182 197 64
+183 197 64
+184 197 64
+185 197 64
+186 197 64
+187 197 64
+188 197 64
+189 197 64
+190 197 64
+191 197 64
+192 197 64
+193 197 64
+194 197 64
+195 197 64
+196 197 64
+197 197 64
+198 197 64
+199 197 64
+200 197 64
+201 197 64
+202 197 64
+203 197 64
+204 197 64
+205 197 64
+206 197 64
+207 197 64
+208 197 64
+209 197 64
+210 197 64
+211 197 64
+212 197 64
+213 197 64
+214 197 64
+215 197 64
+216 197 64
+217 197 64
+218 197 64
+219 197 64
+220 197 64
+221 197 64
+222 197 64
+223 197 64
+224 197 64
+225 197 64
+226 197 64
+227 197 64
+228 197 64
+229 197 64
+230 197 64
+231 197 64
+232 197 64
+233 197 64
+234 197 64
+235 197 64
+236 197 64
+237 197 64
+238 197 64
+239 197 64
+240 197 64
+241 197 64
+242 197 64
+243 197 64
+244 197 64
+245 197 64
+246 197 64
+247 197 64
+248 197 64
+249 197 64
+250 197 64
+251 197 64
+252 197 64
+253 197 64
+254 197 64
+255 197 64
+0 196 64
+1 196 64
+2 196 64
+3 196 64
+4 196 64
+5 196 64
+6 196 64
+7 196 64
+8 196 64
+9 196 64
+10 196 64
+11 196 64
+12 196 64
+13 196 64
+14 196 64
+15 196 64
+16 196 64
+17 196 64
+18 196 64
+19 196 64
+20 196 64
+21 196 64
+22 196 64
+23 196 64
+24 196 64
+25 196 64
+26 196 64
+27 196 64
+28 196 64
+29 196 64
+30 196 64
+31 196 64
+32 196 64
+33 196 64
+34 196 64
+35 196 64
+36 196 64
+37 196 64
+38 196 64
+39 196 64
+40 196 64
+41 196 64
+42 196 64
+43 196 64
+44 196 64
+45 196 64
+46 196 64
+47 196 64
+48 196 64
+49 196 64
+50 196 64
+51 196 64
+52 196 64
+53 196 64
+54 196 64
+55 196 64
+56 196 64
+57 196 64
+58 196 64
+59 196 64
+60 196 64
+61 196 64
+62 196 64
+63 196 64
+64 196 64
+65 196 64
+66 196 64
+67 196 64
+68 196 64
+69 196 64
+70 196 64
+71 196 64
+72 196 64
+73 196 64
+74 196 64
+75 196 64
+76 196 64
+77 196 64
+78 196 64
+79 196 64
+80 196 64
+81 196 64
+82 196 64
+83 196 64
+84 196 64
+85 196 64
+86 196 64
+87 196 64
+88 196 64
+89 196 64
+90 196 64
+91 196 64
+92 196 64
+93 196 64
+94 196 64
+95 196 64
+96 196 64
+97 196 64
+98 196 64
+99 196 64
+100 196 64
+101 196 64
+102 196 64
+103 196 64
+104 196 64
+105 196 64
+106 196 64
+107 196 64
+108 196 64
+109 196 64
+110 196 64
+111 196 64
+112 196 64
+113 196 64
+114 196 64
+115 196 64
+116 196 64
+117 196 64
+118 196 64
+119 196 64
+120 196 64
+121 196 64
+122 196 64
+123 196 64
+124 196 64
+125 196 64
+126 196 64
+127 196 64
+128 196 64
+129 196 64
+130 196 64
+131 196 64
+132 196 64
+133 196 64
+134 196 64
+135 196 64
+136 196 64
+137 196 64
+138 196 64
+139 196 64
+140 196 64
+141 196 64
+142 196 64
+143 196 64
+144 196 64
+145 196 64
+146 196 64
+147 196 64
+148 196 64
+149 196 64
+150 196 64
+151 196 64
+152 196 64
+153 196 64
+154 196 64
+155 196 64
+156 196 64
+157 196 64
+158 196 64
+159 196 64
+160 196 64
+161 196 64
+162 196 64
+163 196 64
+164 196 64
+165 196 64
+166 196 64
+167 196 64
+168 196 64
+169 196 64
+170 196 64
+171 196 64
+172 196 64
+173 196 64
+174 196 64
+175 196 64
+176 196 64
+177 196 64
+178 196 64
+179 196 64
+180 196 64
+181 196 64
+182 196 64
+183 196 64
+184 196 64
+185 196 64
+186 196 64
+187 196 64
+188 196 64
+189 196 64
+190 196 64
+191 196 64
+192 196 64
+193 196 64
+194 196 64
+195 196 64
+196 196 64
+197 196 64
+198 196 64
+199 196 64
+200 196 64
+201 196 64
+202 196 64
+203 196 64
+204 196 64
+205 196 64
+206 196 64
+207 196 64
+208 196 64
+209 196 64
+210 196 64
+211 196 64
+212 196 64
+213 196 64
+214 196 64
+215 196 64
+216 196 64
+217 196 64
+218 196 64
+219 196 64
+220 196 64
+221 196 64
+222 196 64
+223 196 64
+224 196 64
+225 196 64
+226 196 64
+227 196 64
+228 196 64
+229 196 64
+230 196 64
+231 196 64
+232 196 64
+233 196 64
+234 196 64
+235 196 64
+236 196 64
+237 196 64
+238 196 64
+239 196 64
+240 196 64
+241 196 64
+242 196 64
+243 196 64
+244 196 64
+245 196 64
+246 196 64
+247 196 64
+248 196 64
+249 196 64
+250 196 64
+251 196 64
+252 196 64
+253 196 64
+254 196 64
+255 196 64
+0 195 64
+1 195 64
+2 195 64
+3 195 64
+4 195 64
+5 195 64
+6 195 64
+7 195 64
+8 195 64
+9 195 64
+10 195 64
+11 195 64
+12 195 64
+13 195 64
+14 195 64
+15 195 64
+16 195 64
+17 195 64
+18 195 64
+19 195 64
+20 195 64
+21 195 64
+22 195 64
+23 195 64
+24 195 64
+25 195 64
+26 195 64
+27 195 64
+28 195 64
+29 195 64
+30 195 64
+31 195 64
+32 195 64
+33 195 64
+34 195 64
+35 195 64
+36 195 64
+37 195 64
+38 195 64
+39 195 64
+40 195 64
+41 195 64
+42 195 64
+43 195 64
+44 195 64
+45 195 64
+46 195 64
+47 195 64
+48 195 64
+49 195 64
+50 195 64
+51 195 64
+52 195 64
+53 195 64
+54 195 64
+55 195 64
+56 195 64
+57 195 64
+58 195 64
+59 195 64
+60 195 64
+61 195 64
+62 195 64
+63 195 64
+64 195 64
+65 195 64
+66 195 64
+67 195 64
+68 195 64
+69 195 64
+70 195 64
+71 195 64
+72 195 64
+73 195 64
+74 195 64
+75 195 64
+76 195 64
+77 195 64
+78 195 64
+79 195 64
+80 195 64
+81 195 64
+82 195 64
+83 195 64
+84 195 64
+85 195 64
+86 195 64
+87 195 64
+88 195 64
+89 195 64
+90 195 64
+91 195 64
+92 195 64
+93 195 64
+94 195 64
+95 195 64
+96 195 64
+97 195 64
+98 195 64
+99 195 64
+100 195 64
+101 195 64
+102 195 64
+103 195 64
+104 195 64
+105 195 64
+106 195 64
+107 195 64
+108 195 64
+109 195 64
+110 195 64
+111 195 64
+112 195 64
+113 195 64
+114 195 64
+115 195 64
+116 195 64
+117 195 64
+118 195 64
+119 195 64
+120 195 64
+121 195 64
+122 195 64
+123 195 64
+124 195 64
+125 195 64
+126 195 64
+127 195 64
+128 195 64
+129 195 64
+130 195 64
+131 195 64
+132 195 64
+133 195 64
+134 195 64
+135 195 64
+136 195 64
+137 195 64
+138 195 64
+139 195 64
+140 195 64
+141 195 64
+142 195 64
+143 195 64
+144 195 64
+145 195 64
+146 195 64
+147 195 64
+148 195 64
+149 195 64
+150 195 64
+151 195 64
+152 195 64
+153 195 64
+154 195 64
+155 195 64
+156 195 64
+157 195 64
+158 195 64
+159 195 64
+160 195 64
+161 195 64
+162 195 64
+163 195 64
+164 195 64
+165 195 64
+166 195 64
+167 195 64
+168 195 64
+169 195 64
+170 195 64
+171 195 64
+172 195 64
+173 195 64
+174 195 64
+175 195 64
+176 195 64
+177 195 64
+178 195 64
+179 195 64
+180 195 64
+181 195 64
+182 195 64
+183 195 64
+184 195 64
+185 195 64
+186 195 64
+187 195 64
+188 195 64
+189 195 64
+190 195 64
+191 195 64
+192 195 64
+193 195 64
+194 195 64
+195 195 64
+196 195 64
+197 195 64
+198 195 64
+199 195 64
+200 195 64
+201 195 64
+202 195 64
+203 195 64
+204 195 64
+205 195 64
+206 195 64
+207 195 64
+208 195 64
+209 195 64
+210 195 64
+211 195 64
+212 195 64
+213 195 64
+214 195 64
+215 195 64
+216 195 64
+217 195 64
+218 195 64
+219 195 64
+220 195 64
+221 195 64
+222 195 64
+223 195 64
+224 195 64
+225 195 64
+226 195 64
+227 195 64
+228 195 64
+229 195 64
+230 195 64
+231 195 64
+232 195 64
+233 195 64
+234 195 64
+235 195 64
+236 195 64
+237 195 64
+238 195 64
+239 195 64
+240 195 64
+241 195 64
+242 195 64
+243 195 64
+244 195 64
+245 195 64
+246 195 64
+247 195 64
+248 195 64
+249 195 64
+250 195 64
+251 195 64
+252 195 64
+253 195 64
+254 195 64
+255 195 64
+0 194 64
+1 194 64
+2 194 64
+3 194 64
+4 194 64
+5 194 64
+6 194 64
+7 194 64
+8 194 64
+9 194 64
+10 194 64
+11 194 64
+12 194 64
+13 194 64
+14 194 64
+15 194 64
+16 194 64
+17 194 64
+18 194 64
+19 194 64
+20 194 64
+21 194 64
+22 194 64
+23 194 64
+24 194 64
+25 194 64
+26 194 64
+27 194 64
+28 194 64
+29 194 64
+30 194 64
+31 194 64
+32 194 64
+33 194 64
+34 194 64
+35 194 64
+36 194 64
+37 194 64
+38 194 64
+39 194 64
+40 194 64
+41 194 64
+42 194 64
+43 194 64
+44 194 64
+45 194 64
+46 194 64
+47 194 64
+48 194 64
+49 194 64
+50 194 64
+51 194 64
+52 194 64
+53 194 64
+54 194 64
+55 194 64
+56 194 64
+57 194 64
+58 194 64
+59 194 64
+60 194 64
+61 194 64
+62 194 64
+63 194 64
+64 194 64
+65 194 64
+66 194 64
+67 194 64
+68 194 64
+69 194 64
+70 194 64
+71 194 64
+72 194 64
+73 194 64
+74 194 64
+75 194 64
+76 194 64
+77 194 64
+78 194 64
+79 194 64
+80 194 64
+81 194 64
+82 194 64
+83 194 64
+84 194 64
+85 194 64
+86 194 64
+87 194 64
+88 194 64
+89 194 64
+90 194 64
+91 194 64
+92 194 64
+93 194 64
+94 194 64
+95 194 64
+96 194 64
+97 194 64
+98 194 64
+99 194 64
+100 194 64
+101 194 64
+102 194 64
+103 194 64
+104 194 64
+105 194 64
+106 194 64
+107 194 64
+108 194 64
+109 194 64
+110 194 64
+111 194 64
+112 194 64
+113 194 64
+114 194 64
+115 194 64
+116 194 64
+117 194 64
+118 194 64
+119 194 64
+120 194 64
+121 194 64
+122 194 64
+123 194 64
+124 194 64
+125 194 64
+126 194 64
+127 194 64
+128 194 64
+129 194 64
+130 194 64
+131 194 64
+132 194 64
+133 194 64
+134 194 64
+135 194 64
+136 194 64
+137 194 64
+138 194 64
+139 194 64
+140 194 64
+141 194 64
+142 194 64
+143 194 64
+144 194 64
+145 194 64
+146 194 64
+147 194 64
+148 194 64
+149 194 64
+150 194 64
+151 194 64
+152 194 64
+153 194 64
+154 194 64
+155 194 64
+156 194 64
+157 194 64
+158 194 64
+159 194 64
+160 194 64
+161 194 64
+162 194 64
+163 194 64
+164 194 64
+165 194 64
+166 194 64
+167 194 64
+168 194 64
+169 194 64
+170 194 64
+171 194 64
+172 194 64
+173 194 64
+174 194 64
+175 194 64
+176 194 64
+177 194 64
+178 194 64
+179 194 64
+180 194 64
+181 194 64
+182 194 64
+183 194 64
+184 194 64
+185 194 64
+186 194 64
+187 194 64
+188 194 64
+189 194 64
+190 194 64
+191 194 64
+192 194 64
+193 194 64
+194 194 64
+195 194 64
+196 194 64
+197 194 64
+198 194 64
+199 194 64
+200 194 64
+201 194 64
+202 194 64
+203 194 64
+204 194 64
+205 194 64
+206 194 64
+207 194 64
+208 194 64
+209 194 64
+210 194 64
+211 194 64
+212 194 64
+213 194 64
+214 194 64
+215 194 64
+216 194 64
+217 194 64
+218 194 64
+219 194 64
+220 194 64
+221 194 64
+222 194 64
+223 194 64
+224 194 64
+225 194 64
+226 194 64
+227 194 64
+228 194 64
+229 194 64
+230 194 64
+231 194 64
+232 194 64
+233 194 64
+234 194 64
+235 194 64
+236 194 64
+237 194 64
+238 194 64
+239 194 64
+240 194 64
+241 194 64
+242 194 64
+243 194 64
+244 194 64
+245 194 64
+246 194 64
+247 194 64
+248 194 64
+249 194 64
+250 194 64
+251 194 64
+252 194 64
+253 194 64
+254 194 64
+255 194 64
+0 193 64
+1 193 64
+2 193 64
+3 193 64
+4 193 64
+5 193 64
+6 193 64
+7 193 64
+8 193 64
+9 193 64
+10 193 64
+11 193 64
+12 193 64
+13 193 64
+14 193 64
+15 193 64
+16 193 64
+17 193 64
+18 193 64
+19 193 64
+20 193 64
+21 193 64
+22 193 64
+23 193 64
+24 193 64
+25 193 64
+26 193 64
+27 193 64
+28 193 64
+29 193 64
+30 193 64
+31 193 64
+32 193 64
+33 193 64
+34 193 64
+35 193 64
+36 193 64
+37 193 64
+38 193 64
+39 193 64
+40 193 64
+41 193 64
+42 193 64
+43 193 64
+44 193 64
+45 193 64
+46 193 64
+47 193 64
+48 193 64
+49 193 64
+50 193 64
+51 193 64
+52 193 64
+53 193 64
+54 193 64
+55 193 64
+56 193 64
+57 193 64
+58 193 64
+59 193 64
+60 193 64
+61 193 64
+62 193 64
+63 193 64
+64 193 64
+65 193 64
+66 193 64
+67 193 64
+68 193 64
+69 193 64
+70 193 64
+71 193 64
+72 193 64
+73 193 64
+74 193 64
+75 193 64
+76 193 64
+77 193 64
+78 193 64
+79 193 64
+80 193 64
+81 193 64
+82 193 64
+83 193 64
+84 193 64
+85 193 64
+86 193 64
+87 193 64
+88 193 64
+89 193 64
+90 193 64
+91 193 64
+92 193 64
+93 193 64
+94 193 64
+95 193 64
+96 193 64
+97 193 64
+98 193 64
+99 193 64
+100 193 64
+101 193 64
+102 193 64
+103 193 64
+104 193 64
+105 193 64
+106 193 64
+107 193 64
+108 193 64
+109 193 64
+110 193 64
+111 193 64
+112 193 64
+113 193 64
+114 193 64
+115 193 64
+116 193 64
+117 193 64
+118 193 64
+119 193 64
+120 193 64
+121 193 64
+122 193 64
+123 193 64
+124 193 64
+125 193 64
+126 193 64
+127 193 64
+128 193 64
+129 193 64
+130 193 64
+131 193 64
+132 193 64
+133 193 64
+134 193 64
+135 193 64
+136 193 64
+137 193 64
+138 193 64
+139 193 64
+140 193 64
+141 193 64
+142 193 64
+143 193 64
+144 193 64
+145 193 64
+146 193 64
+147 193 64
+148 193 64
+149 193 64
+150 193 64
+151 193 64
+152 193 64
+153 193 64
+154 193 64
+155 193 64
+156 193 64
+157 193 64
+158 193 64
+159 193 64
+160 193 64
+161 193 64
+162 193 64
+163 193 64
+164 193 64
+165 193 64
+166 193 64
+167 193 64
+168 193 64
+169 193 64
+170 193 64
+171 193 64
+172 193 64
+173 193 64
+174 193 64
+175 193 64
+176 193 64
+177 193 64
+178 193 64
+179 193 64
+180 193 64
+181 193 64
+182 193 64
+183 193 64
+184 193 64
+185 193 64
+186 193 64
+187 193 64
+188 193 64
+189 193 64
+190 193 64
+191 193 64
+192 193 64
+193 193 64
+194 193 64
+195 193 64
+196 193 64
+197 193 64
+198 193 64
+199 193 64
+200 193 64
+201 193 64
+202 193 64
+203 193 64
+204 193 64
+205 193 64
+206 193 64
+207 193 64
+208 193 64
+209 193 64
+210 193 64
+211 193 64
+212 193 64
+213 193 64
+214 193 64
+215 193 64
+216 193 64
+217 193 64
+218 193 64
+219 193 64
+220 193 64
+221 193 64
+222 193 64
+223 193 64
+224 193 64
+225 193 64
+226 193 64
+227 193 64
+228 193 64
+229 193 64
+230 193 64
+231 193 64
+232 193 64
+233 193 64
+234 193 64
+235 193 64
+236 193 64
+237 193 64
+238 193 64
+239 193 64
+240 193 64
+241 193 64
+242 193 64
+243 193 64
+244 193 64
+245 193 64
+246 193 64
+247 193 64
+248 193 64
+249 193 64
+250 193 64
+251 193 64
+252 193 64
+253 193 64
+254 193 64
+255 193 64
+0 192 64
+1 192 64
+2 192 64
+3 192 64
+4 192 64
+5 192 64
+6 192 64
+7 192 64
+8 192 64
+9 192 64
+10 192 64
+11 192 64
+12 192 64
+13 192 64
+14 192 64
+15 192 64
+16 192 64
+17 192 64
+18 192 64
+19 192 64
+20 192 64
+21 192 64
+22 192 64
+23 192 64
+24 192 64
+25 192 64
+26 192 64
+27 192 64
+28 192 64
+29 192 64
+30 192 64
+31 192 64
+32 192 64
+33 192 64
+34 192 64
+35 192 64
+36 192 64
+37 192 64
+38 192 64
+39 192 64
+40 192 64
+41 192 64
+42 192 64
+43 192 64
+44 192 64
+45 192 64
+46 192 64
+47 192 64
+48 192 64
+49 192 64
+50 192 64
+51 192 64
+52 192 64
+53 192 64
+54 192 64
+55 192 64
+56 192 64
+57 192 64
+58 192 64
+59 192 64
+60 192 64
+61 192 64
+62 192 64
+63 192 64
+64 192 64
+65 192 64
+66 192 64
+67 192 64
+68 192 64
+69 192 64
+70 192 64
+71 192 64
+72 192 64
+73 192 64
+74 192 64
+75 192 64
+76 192 64
+77 192 64
+78 192 64
+79 192 64
+80 192 64
+81 192 64
+82 192 64
+83 192 64
+84 192 64
+85 192 64
+86 192 64
+87 192 64
+88 192 64
+89 192 64
+90 192 64
+91 192 64
+92 192 64
+93 192 64
+94 192 64
+95 192 64
+96 192 64
+97 192 64
+98 192 64
+99 192 64
+100 192 64
+101 192 64
+102 192 64
+103 192 64
+104 192 64
+105 192 64
+106 192 64
+107 192 64
+108 192 64
+109 192 64
+110 192 64
+111 192 64
+112 192 64
+113 192 64
+114 192 64
+115 192 64
+116 192 64
+117 192 64
+118 192 64
+119 192 64
+120 192 64
+121 192 64
+122 192 64
+123 192 64
+124 192 64
+125 192 64
+126 192 64
+127 192 64
+128 192 64
+129 192 64
+130 192 64
+131 192 64
+132 192 64
+133 192 64
+134 192 64
+135 192 64
+136 192 64
+137 192 64
+138 192 64
+139 192 64
+140 192 64
+141 192 64
+142 192 64
+143 192 64
+144 192 64
+145 192 64
+146 192 64
+147 192 64
+148 192 64
+149 192 64
+150 192 64
+151 192 64
+152 192 64
+153 192 64
+154 192 64
+155 192 64
+156 192 64
+157 192 64
+158 192 64
+159 192 64
+160 192 64
+161 192 64
+162 192 64
+163 192 64
+164 192 64
+165 192 64
+166 192 64
+167 192 64
+168 192 64
+169 192 64
+170 192 64
+171 192 64
+172 192 64
+173 192 64
+174 192 64
+175 192 64
+176 192 64
+177 192 64
+178 192 64
+179 192 64
+180 192 64
+181 192 64
+182 192 64
+183 192 64
+184 192 64
+185 192 64
+186 192 64
+187 192 64
+188 192 64
+189 192 64
+190 192 64
+191 192 64
+192 192 64
+193 192 64
+194 192 64
+195 192 64
+196 192 64
+197 192 64
+198 192 64
+199 192 64
+200 192 64
+201 192 64
+202 192 64
+203 192 64
+204 192 64
+205 192 64
+206 192 64
+207 192 64
+208 192 64
+209 192 64
+210 192 64
+211 192 64
+212 192 64
+213 192 64
+214 192 64
+215 192 64
+216 192 64
+217 192 64
+218 192 64
+219 192 64
+220 192 64
+221 192 64
+222 192 64
+223 192 64
+224 192 64
+225 192 64
+226 192 64
+227 192 64
+228 192 64
+229 192 64
+230 192 64
+231 192 64
+232 192 64
+233 192 64
+234 192 64
+235 192 64
+236 192 64
+237 192 64
+238 192 64
+239 192 64
+240 192 64
+241 192 64
+242 192 64
+243 192 64
+244 192 64
+245 192 64
+246 192 64
+247 192 64
+248 192 64
+249 192 64
+250 192 64
+251 192 64
+252 192 64
+253 192 64
+254 192 64
+255 192 64
+0 191 64
+1 191 64
+2 191 64
+3 191 64
+4 191 64
+5 191 64
+6 191 64
+7 191 64
+8 191 64
+9 191 64
+10 191 64
+11 191 64
+12 191 64
+13 191 64
+14 191 64
+15 191 64
+16 191 64
+17 191 64
+18 191 64
+19 191 64
+20 191 64
+21 191 64
+22 191 64
+23 191 64
+24 191 64
+25 191 64
+26 191 64
+27 191 64
+28 191 64
+29 191 64
+30 191 64
+31 191 64
+32 191 64
+33 191 64
+34 191 64
+35 191 64
+36 191 64
+37 191 64
+38 191 64
+39 191 64
+40 191 64
+41 191 64
+42 191 64
+43 191 64
+44 191 64
+45 191 64
+46 191 64
+47 191 64
+48 191 64
+49 191 64
+50 191 64
+51 191 64
+52 191 64
+53 191 64
+54 191 64
+55 191 64
+56 191 64
+57 191 64
+58 191 64
+59 191 64
+60 191 64
+61 191 64
+62 191 64
+63 191 64
+64 191 64
+65 191 64
+66 191 64
+67 191 64
+68 191 64
+69 191 64
+70 191 64
+71 191 64
+72 191 64
+73 191 64
+74 191 64
+75 191 64
+76 191 64
+77 191 64
+78 191 64
+79 191 64
+80 191 64
+81 191 64
+82 191 64
+83 191 64
+84 191 64
+85 191 64
+86 191 64
+87 191 64
+88 191 64
+89 191 64
+90 191 64
+91 191 64
+92 191 64
+93 191 64
+94 191 64
+95 191 64
+96 191 64
+97 191 64
+98 191 64
+99 191 64
+100 191 64
+101 191 64
+102 191 64
+103 191 64
+104 191 64
+105 191 64
+106 191 64
+107 191 64
+108 191 64
+109 191 64
+110 191 64
+111 191 64
+112 191 64
+113 191 64
+114 191 64
+115 191 64
+116 191 64
+117 191 64
+118 191 64
+119 191 64
+120 191 64
+121 191 64
+122 191 64
+123 191 64
+124 191 64
+125 191 64
+126 191 64
+127 191 64
+128 191 64
+129 191 64
+130 191 64
+131 191 64
+132 191 64
+133 191 64
+134 191 64
+135 191 64
+136 191 64
+137 191 64
+138 191 64
+139 191 64
+140 191 64
+141 191 64
+142 191 64
+143 191 64
+144 191 64
+145 191 64
+146 191 64
+147 191 64
+148 191 64
+149 191 64
+150 191 64
+151 191 64
+152 191 64
+153 191 64
+154 191 64
+155 191 64
+156 191 64
+157 191 64
+158 191 64
+159 191 64
+160 191 64
+161 191 64
+162 191 64
+163 191 64
+164 191 64
+165 191 64
+166 191 64
+167 191 64
+168 191 64
+169 191 64
+170 191 64
+171 191 64
+172 191 64
+173 191 64
+174 191 64
+175 191 64
+176 191 64
+177 191 64
+178 191 64
+179 191 64
+180 191 64
+181 191 64
+182 191 64
+183 191 64
+184 191 64
+185 191 64
+186 191 64
+187 191 64
+188 191 64
+189 191 64
+190 191 64
+191 191 64
+192 191 64
+193 191 64
+194 191 64
+195 191 64
+196 191 64
+197 191 64
+198 191 64
+199 191 64
+200 191 64
+201 191 64
+202 191 64
+203 191 64
+204 191 64
+205 191 64
+206 191 64
+207 191 64
+208 191 64
+209 191 64
+210 191 64
+211 191 64
+212 191 64
+213 191 64
+214 191 64
+215 191 64
+216 191 64
+217 191 64
+218 191 64
+219 191 64
+220 191 64
+221 191 64
+222 191 64
+223 191 64
+224 191 64
+225 191 64
+226 191 64
+227 191 64
+228 191 64
+229 191 64
+230 191 64
+231 191 64
+232 191 64
+233 191 64
+234 191 64
+235 191 64
+236 191 64
+237 191 64
+238 191 64
+239 191 64
+240 191 64
+241 191 64
+242 191 64
+243 191 64
+244 191 64
+245 191 64
+246 191 64
+247 191 64
+248 191 64
+249 191 64
+250 191 64
+251 191 64
+252 191 64
+253 191 64
+254 191 64
+255 191 64
+0 190 64
+1 190 64
+2 190 64
+3 190 64
+4 190 64
+5 190 64
+6 190 64
+7 190 64
+8 190 64
+9 190 64
+10 190 64
+11 190 64
+12 190 64
+13 190 64
+14 190 64
+15 190 64
+16 190 64
+17 190 64
+18 190 64
+19 190 64
+20 190 64
+21 190 64
+22 190 64
+23 190 64
+24 190 64
+25 190 64
+26 190 64
+27 190 64
+28 190 64
+29 190 64
+30 190 64
+31 190 64
+32 190 64
+33 190 64
+34 190 64
+35 190 64
+36 190 64
+37 190 64
+38 190 64
+39 190 64
+40 190 64
+41 190 64
+42 190 64
+43 190 64
+44 190 64
+45 190 64
+46 190 64
+47 190 64
+48 190 64
+49 190 64
+50 190 64
+51 190 64
+52 190 64
+53 190 64
+54 190 64
+55 190 64
+56 190 64
+57 190 64
+58 190 64
+59 190 64
+60 190 64
+61 190 64
+62 190 64
+63 190 64
+64 190 64
+65 190 64
+66 190 64
+67 190 64
+68 190 64
+69 190 64
+70 190 64
+71 190 64
+72 190 64
+73 190 64
+74 190 64
+75 190 64
+76 190 64
+77 190 64
+78 190 64
+79 190 64
+80 190 64
+81 190 64
+82 190 64
+83 190 64
+84 190 64
+85 190 64
+86 190 64
+87 190 64
+88 190 64
+89 190 64
+90 190 64
+91 190 64
+92 190 64
+93 190 64
+94 190 64
+95 190 64
+96 190 64
+97 190 64
+98 190 64
+99 190 64
+100 190 64
+101 190 64
+102 190 64
+103 190 64
+104 190 64
+105 190 64
+106 190 64
+107 190 64
+108 190 64
+109 190 64
+110 190 64
+111 190 64
+112 190 64
+113 190 64
+114 190 64
+115 190 64
+116 190 64
+117 190 64
+118 190 64
+119 190 64
+120 190 64
+121 190 64
+122 190 64
+123 190 64
+124 190 64
+125 190 64
+126 190 64
+127 190 64
+128 190 64
+129 190 64
+130 190 64
+131 190 64
+132 190 64
+133 190 64
+134 190 64
+135 190 64
+136 190 64
+137 190 64
+138 190 64
+139 190 64
+140 190 64
+141 190 64
+142 190 64
+143 190 64
+144 190 64
+145 190 64
+146 190 64
+147 190 64
+148 190 64
+149 190 64
+150 190 64
+151 190 64
+152 190 64
+153 190 64
+154 190 64
+155 190 64
+156 190 64
+157 190 64
+158 190 64
+159 190 64
+160 190 64
+161 190 64
+162 190 64
+163 190 64
+164 190 64
+165 190 64
+166 190 64
+167 190 64
+168 190 64
+169 190 64
+170 190 64
+171 190 64
+172 190 64
+173 190 64
+174 190 64
+175 190 64
+176 190 64
+177 190 64
+178 190 64
+179 190 64
+180 190 64
+181 190 64
+182 190 64
+183 190 64
+184 190 64
+185 190 64
+186 190 64
+187 190 64
+188 190 64
+189 190 64
+190 190 64
+191 190 64
+192 190 64
+193 190 64
+194 190 64
+195 190 64
+196 190 64
+197 190 64
+198 190 64
+199 190 64
+200 190 64
+201 190 64
+202 190 64
+203 190 64
+204 190 64
+205 190 64
+206 190 64
+207 190 64
+208 190 64
+209 190 64
+210 190 64
+211 190 64
+212 190 64
+213 190 64
+214 190 64
+215 190 64
+216 190 64
+217 190 64
+218 190 64
+219 190 64
+220 190 64
+221 190 64
+222 190 64
+223 190 64
+224 190 64
+225 190 64
+226 190 64
+227 190 64
+228 190 64
+229 190 64
+230 190 64
+231 190 64
+232 190 64
+233 190 64
+234 190 64
+235 190 64
+236 190 64
+237 190 64
+238 190 64
+239 190 64
+240 190 64
+241 190 64
+242 190 64
+243 190 64
+244 190 64
+245 190 64
+246 190 64
+247 190 64
+248 190 64
+249 190 64
+250 190 64
+251 190 64
+252 190 64
+253 190 64
+254 190 64
+255 190 64
+0 189 64
+1 189 64
+2 189 64
+3 189 64
+4 189 64
+5 189 64
+6 189 64
+7 189 64
+8 189 64
+9 189 64
+10 189 64
+11 189 64
+12 189 64
+13 189 64
+14 189 64
+15 189 64
+16 189 64
+17 189 64
+18 189 64
+19 189 64
+20 189 64
+21 189 64
+22 189 64
+23 189 64
+24 189 64
+25 189 64
+26 189 64
+27 189 64
+28 189 64
+29 189 64
+30 189 64
+31 189 64
+32 189 64
+33 189 64
+34 189 64
+35 189 64
+36 189 64
+37 189 64
+38 189 64
+39 189 64
+40 189 64
+41 189 64
+42 189 64
+43 189 64
+44 189 64
+45 189 64
+46 189 64
+47 189 64
+48 189 64
+49 189 64
+50 189 64
+51 189 64
+52 189 64
+53 189 64
+54 189 64
+55 189 64
+56 189 64
+57 189 64
+58 189 64
+59 189 64
+60 189 64
+61 189 64
+62 189 64
+63 189 64
+64 189 64
+65 189 64
+66 189 64
+67 189 64
+68 189 64
+69 189 64
+70 189 64
+71 189 64
+72 189 64
+73 189 64
+74 189 64
+75 189 64
+76 189 64
+77 189 64
+78 189 64
+79 189 64
+80 189 64
+81 189 64
+82 189 64
+83 189 64
+84 189 64
+85 189 64
+86 189 64
+87 189 64
+88 189 64
+89 189 64
+90 189 64
+91 189 64
+92 189 64
+93 189 64
+94 189 64
+95 189 64
+96 189 64
+97 189 64
+98 189 64
+99 189 64
+100 189 64
+101 189 64
+102 189 64
+103 189 64
+104 189 64
+105 189 64
+106 189 64
+107 189 64
+108 189 64
+109 189 64
+110 189 64
+111 189 64
+112 189 64
+113 189 64
+114 189 64
+115 189 64
+116 189 64
+117 189 64
+118 189 64
+119 189 64
+120 189 64
+121 189 64
+122 189 64
+123 189 64
+124 189 64
+125 189 64
+126 189 64
+127 189 64
+128 189 64
+129 189 64
+130 189 64
+131 189 64
+132 189 64
+133 189 64
+134 189 64
+135 189 64
+136 189 64
+137 189 64
+138 189 64
+139 189 64
+140 189 64
+141 189 64
+142 189 64
+143 189 64
+144 189 64
+145 189 64
+146 189 64
+147 189 64
+148 189 64
+149 189 64
+150 189 64
+151 189 64
+152 189 64
+153 189 64
+154 189 64
+155 189 64
+156 189 64
+157 189 64
+158 189 64
+159 189 64
+160 189 64
+161 189 64
+162 189 64
+163 189 64
+164 189 64
+165 189 64
+166 189 64
+167 189 64
+168 189 64
+169 189 64
+170 189 64
+171 189 64
+172 189 64
+173 189 64
+174 189 64
+175 189 64
+176 189 64
+177 189 64
+178 189 64
+179 189 64
+180 189 64
+181 189 64
+182 189 64
+183 189 64
+184 189 64
+185 189 64
+186 189 64
+187 189 64
+188 189 64
+189 189 64
+190 189 64
+191 189 64
+192 189 64
+193 189 64
+194 189 64
+195 189 64
+196 189 64
+197 189 64
+198 189 64
+199 189 64
+200 189 64
+201 189 64
+202 189 64
+203 189 64
+204 189 64
+205 189 64
+206 189 64
+207 189 64
+208 189 64
+209 189 64
+210 189 64
+211 189 64
+212 189 64
+213 189 64
+214 189 64
+215 189 64
+216 189 64
+217 189 64
+218 189 64
+219 189 64
+220 189 64
+221 189 64
+222 189 64
+223 189 64
+224 189 64
+225 189 64
+226 189 64
+227 189 64
+228 189 64
+229 189 64
+230 189 64
+231 189 64
+232 189 64
+233 189 64
+234 189 64
+235 189 64
+236 189 64
+237 189 64
+238 189 64
+239 189 64
+240 189 64
+241 189 64
+242 189 64
+243 189 64
+244 189 64
+245 189 64
+246 189 64
+247 189 64
+248 189 64
+249 189 64
+250 189 64
+251 189 64
+252 189 64
+253 189 64
+254 189 64
+255 189 64
+0 188 64
+1 188 64
+2 188 64
+3 188 64
+4 188 64
+5 188 64
+6 188 64
+7 188 64
+8 188 64
+9 188 64
+10 188 64
+11 188 64
+12 188 64
+13 188 64
+14 188 64
+15 188 64
+16 188 64
+17 188 64
+18 188 64
+19 188 64
+20 188 64
+21 188 64
+22 188 64
+23 188 64
+24 188 64
+25 188 64
+26 188 64
+27 188 64
+28 188 64
+29 188 64
+30 188 64
+31 188 64
+32 188 64
+33 188 64
+34 188 64
+35 188 64
+36 188 64
+37 188 64
+38 188 64
+39 188 64
+40 188 64
+41 188 64
+42 188 64
+43 188 64
+44 188 64
+45 188 64
+46 188 64
+47 188 64
+48 188 64
+49 188 64
+50 188 64
+51 188 64
+52 188 64
+53 188 64
+54 188 64
+55 188 64
+56 188 64
+57 188 64
+58 188 64
+59 188 64
+60 188 64
+61 188 64
+62 188 64
+63 188 64
+64 188 64
+65 188 64
+66 188 64
+67 188 64
+68 188 64
+69 188 64
+70 188 64
+71 188 64
+72 188 64
+73 188 64
+74 188 64
+75 188 64
+76 188 64
+77 188 64
+78 188 64
+79 188 64
+80 188 64
+81 188 64
+82 188 64
+83 188 64
+84 188 64
+85 188 64
+86 188 64
+87 188 64
+88 188 64
+89 188 64
+90 188 64
+91 188 64
+92 188 64
+93 188 64
+94 188 64
+95 188 64
+96 188 64
+97 188 64
+98 188 64
+99 188 64
+100 188 64
+101 188 64
+102 188 64
+103 188 64
+104 188 64
+105 188 64
+106 188 64
+107 188 64
+108 188 64
+109 188 64
+110 188 64
+111 188 64
+112 188 64
+113 188 64
+114 188 64
+115 188 64
+116 188 64
+117 188 64
+118 188 64
+119 188 64
+120 188 64
+121 188 64
+122 188 64
+123 188 64
+124 188 64
+125 188 64
+126 188 64
+127 188 64
+128 188 64
+129 188 64
+130 188 64
+131 188 64
+132 188 64
+133 188 64
+134 188 64
+135 188 64
+136 188 64
+137 188 64
+138 188 64
+139 188 64
+140 188 64
+141 188 64
+142 188 64
+143 188 64
+144 188 64
+145 188 64
+146 188 64
+147 188 64
+148 188 64
+149 188 64
+150 188 64
+151 188 64
+152 188 64
+153 188 64
+154 188 64
+155 188 64
+156 188 64
+157 188 64
+158 188 64
+159 188 64
+160 188 64
+161 188 64
+162 188 64
+163 188 64
+164 188 64
+165 188 64
+166 188 64
+167 188 64
+168 188 64
+169 188 64
+170 188 64
+171 188 64
+172 188 64
+173 188 64
+174 188 64
+175 188 64
+176 188 64
+177 188 64
+178 188 64
+179 188 64
+180 188 64
+181 188 64
+182 188 64
+183 188 64
+184 188 64
+185 188 64
+186 188 64
+187 188 64
+188 188 64
+189 188 64
+190 188 64
+191 188 64
+192 188 64
+193 188 64
+194 188 64
+195 188 64
+196 188 64
+197 188 64
+198 188 64
+199 188 64
+200 188 64
+201 188 64
+202 188 64
+203 188 64
+204 188 64
+205 188 64
+206 188 64
+207 188 64
+208 188 64
+209 188 64
+210 188 64
+211 188 64
+212 188 64
+213 188 64
+214 188 64
+215 188 64
+216 188 64
+217 188 64
+218 188 64
+219 188 64
+220 188 64
+221 188 64
+222 188 64
+223 188 64
+224 188 64
+225 188 64
+226 188 64
+227 188 64
+228 188 64
+229 188 64
+230 188 64
+231 188 64
+232 188 64
+233 188 64
+234 188 64
+235 188 64
+236 188 64
+237 188 64
+238 188 64
+239 188 64
+240 188 64
+241 188 64
+242 188 64
+243 188 64
+244 188 64
+245 188 64
+246 188 64
+247 188 64
+248 188 64
+249 188 64
+250 188 64
+251 188 64
+252 188 64
+253 188 64
+254 188 64
+255 188 64
+0 187 64
+1 187 64
+2 187 64
+3 187 64
+4 187 64
+5 187 64
+6 187 64
+7 187 64
+8 187 64
+9 187 64
+10 187 64
+11 187 64
+12 187 64
+13 187 64
+14 187 64
+15 187 64
+16 187 64
+17 187 64
+18 187 64
+19 187 64
+20 187 64
+21 187 64
+22 187 64
+23 187 64
+24 187 64
+25 187 64
+26 187 64
+27 187 64
+28 187 64
+29 187 64
+30 187 64
+31 187 64
+32 187 64
+33 187 64
+34 187 64
+35 187 64
+36 187 64
+37 187 64
+38 187 64
+39 187 64
+40 187 64
+41 187 64
+42 187 64
+43 187 64
+44 187 64
+45 187 64
+46 187 64
+47 187 64
+48 187 64
+49 187 64
+50 187 64
+51 187 64
+52 187 64
+53 187 64
+54 187 64
+55 187 64
+56 187 64
+57 187 64
+58 187 64
+59 187 64
+60 187 64
+61 187 64
+62 187 64
+63 187 64
+64 187 64
+65 187 64
+66 187 64
+67 187 64
+68 187 64
+69 187 64
+70 187 64
+71 187 64
+72 187 64
+73 187 64
+74 187 64
+75 187 64
+76 187 64
+77 187 64
+78 187 64
+79 187 64
+80 187 64
+81 187 64
+82 187 64
+83 187 64
+84 187 64
+85 187 64
+86 187 64
+87 187 64
+88 187 64
+89 187 64
+90 187 64
+91 187 64
+92 187 64
+93 187 64
+94 187 64
+95 187 64
+96 187 64
+97 187 64
+98 187 64
+99 187 64
+100 187 64
+101 187 64
+102 187 64
+103 187 64
+104 187 64
+105 187 64
+106 187 64
+107 187 64
+108 187 64
+109 187 64
+110 187 64
+111 187 64
+112 187 64
+113 187 64
+114 187 64
+115 187 64
+116 187 64
+117 187 64
+118 187 64
+119 187 64
+120 187 64
+121 187 64
+122 187 64
+123 187 64
+124 187 64
+125 187 64
+126 187 64
+127 187 64
+128 187 64
+129 187 64
+130 187 64
+131 187 64
+132 187 64
+133 187 64
+134 187 64
+135 187 64
+136 187 64
+137 187 64
+138 187 64
+139 187 64
+140 187 64
+141 187 64
+142 187 64
+143 187 64
+144 187 64
+145 187 64
+146 187 64
+147 187 64
+148 187 64
+149 187 64
+150 187 64
+151 187 64
+152 187 64
+153 187 64
+154 187 64
+155 187 64
+156 187 64
+157 187 64
+158 187 64
+159 187 64
+160 187 64
+161 187 64
+162 187 64
+163 187 64
+164 187 64
+165 187 64
+166 187 64
+167 187 64
+168 187 64
+169 187 64
+170 187 64
+171 187 64
+172 187 64
+173 187 64
+174 187 64
+175 187 64
+176 187 64
+177 187 64
+178 187 64
+179 187 64
+180 187 64
+181 187 64
+182 187 64
+183 187 64
+184 187 64
+185 187 64
+186 187 64
+187 187 64
+188 187 64
+189 187 64
+190 187 64
+191 187 64
+192 187 64
+193 187 64
+194 187 64
+195 187 64
+196 187 64
+197 187 64
+198 187 64
+199 187 64
+200 187 64
+201 187 64
+202 187 64
+203 187 64
+204 187 64
+205 187 64
+206 187 64
+207 187 64
+208 187 64
+209 187 64
+210 187 64
+211 187 64
+212 187 64
+213 187 64
+214 187 64
+215 187 64
+216 187 64
+217 187 64
+218 187 64
+219 187 64
+220 187 64
+221 187 64
+222 187 64
+223 187 64
+224 187 64
+225 187 64
+226 187 64
+227 187 64
+228 187 64
+229 187 64
+230 187 64
+231 187 64
+232 187 64
+233 187 64
+234 187 64
+235 187 64
+236 187 64
+237 187 64
+238 187 64
+239 187 64
+240 187 64
+241 187 64
+242 187 64
+243 187 64
+244 187 64
+245 187 64
+246 187 64
+247 187 64
+248 187 64
+249 187 64
+250 187 64
+251 187 64
+252 187 64
+253 187 64
+254 187 64
+255 187 64
+0 186 64
+1 186 64
+2 186 64
+3 186 64
+4 186 64
+5 186 64
+6 186 64
+7 186 64
+8 186 64
+9 186 64
+10 186 64
+11 186 64
+12 186 64
+13 186 64
+14 186 64
+15 186 64
+16 186 64
+17 186 64
+18 186 64
+19 186 64
+20 186 64
+21 186 64
+22 186 64
+23 186 64
+24 186 64
+25 186 64
+26 186 64
+27 186 64
+28 186 64
+29 186 64
+30 186 64
+31 186 64
+32 186 64
+33 186 64
+34 186 64
+35 186 64
+36 186 64
+37 186 64
+38 186 64
+39 186 64
+40 186 64
+41 186 64
+42 186 64
+43 186 64
+44 186 64
+45 186 64
+46 186 64
+47 186 64
+48 186 64
+49 186 64
+50 186 64
+51 186 64
+52 186 64
+53 186 64
+54 186 64
+55 186 64
+56 186 64
+57 186 64
+58 186 64
+59 186 64
+60 186 64
+61 186 64
+62 186 64
+63 186 64
+64 186 64
+65 186 64
+66 186 64
+67 186 64
+68 186 64
+69 186 64
+70 186 64
+71 186 64
+72 186 64
+73 186 64
+74 186 64
+75 186 64
+76 186 64
+77 186 64
+78 186 64
+79 186 64
+80 186 64
+81 186 64
+82 186 64
+83 186 64
+84 186 64
+85 186 64
+86 186 64
+87 186 64
+88 186 64
+89 186 64
+90 186 64
+91 186 64
+92 186 64
+93 186 64
+94 186 64
+95 186 64
+96 186 64
+97 186 64
+98 186 64
+99 186 64
+100 186 64
+101 186 64
+102 186 64
+103 186 64
+104 186 64
+105 186 64
+106 186 64
+107 186 64
+108 186 64
+109 186 64
+110 186 64
+111 186 64
+112 186 64
+113 186 64
+114 186 64
+115 186 64
+116 186 64
+117 186 64
+118 186 64
+119 186 64
+120 186 64
+121 186 64
+122 186 64
+123 186 64
+124 186 64
+125 186 64
+126 186 64
+127 186 64
+128 186 64
+129 186 64
+130 186 64
+131 186 64
+132 186 64
+133 186 64
+134 186 64
+135 186 64
+136 186 64
+137 186 64
+138 186 64
+139 186 64
+140 186 64
+141 186 64
+142 186 64
+143 186 64
+144 186 64
+145 186 64
+146 186 64
+147 186 64
+148 186 64
+149 186 64
+150 186 64
+151 186 64
+152 186 64
+153 186 64
+154 186 64
+155 186 64
+156 186 64
+157 186 64
+158 186 64
+159 186 64
+160 186 64
+161 186 64
+162 186 64
+163 186 64
+164 186 64
+165 186 64
+166 186 64
+167 186 64
+168 186 64
+169 186 64
+170 186 64
+171 186 64
+172 186 64
+173 186 64
+174 186 64
+175 186 64
+176 186 64
+177 186 64
+178 186 64
+179 186 64
+180 186 64
+181 186 64
+182 186 64
+183 186 64
+184 186 64
+185 186 64
+186 186 64
+187 186 64
+188 186 64
+189 186 64
+190 186 64
+191 186 64
+192 186 64
+193 186 64
+194 186 64
+195 186 64
+196 186 64
+197 186 64
+198 186 64
+199 186 64
+200 186 64
+201 186 64
+202 186 64
+203 186 64
+204 186 64
+205 186 64
+206 186 64
+207 186 64
+208 186 64
+209 186 64
+210 186 64
+211 186 64
+212 186 64
+213 186 64
+214 186 64
+215 186 64
+216 186 64
+217 186 64
+218 186 64
+219 186 64
+220 186 64
+221 186 64
+222 186 64
+223 186 64
+224 186 64
+225 186 64
+226 186 64
+227 186 64
+228 186 64
+229 186 64
+230 186 64
+231 186 64
+232 186 64
+233 186 64
+234 186 64
+235 186 64
+236 186 64
+237 186 64
+238 186 64
+239 186 64
+240 186 64
+241 186 64
+242 186 64
+243 186 64
+244 186 64
+245 186 64
+246 186 64
+247 186 64
+248 186 64
+249 186 64
+250 186 64
+251 186 64
+252 186 64
+253 186 64
+254 186 64
+255 186 64
+0 185 64
+1 185 64
+2 185 64
+3 185 64
+4 185 64
+5 185 64
+6 185 64
+7 185 64
+8 185 64
+9 185 64
+10 185 64
+11 185 64
+12 185 64
+13 185 64
+14 185 64
+15 185 64
+16 185 64
+17 185 64
+18 185 64
+19 185 64
+20 185 64
+21 185 64
+22 185 64
+23 185 64
+24 185 64
+25 185 64
+26 185 64
+27 185 64
+28 185 64
+29 185 64
+30 185 64
+31 185 64
+32 185 64
+33 185 64
+34 185 64
+35 185 64
+36 185 64
+37 185 64
+38 185 64
+39 185 64
+40 185 64
+41 185 64
+42 185 64
+43 185 64
+44 185 64
+45 185 64
+46 185 64
+47 185 64
+48 185 64
+49 185 64
+50 185 64
+51 185 64
+52 185 64
+53 185 64
+54 185 64
+55 185 64
+56 185 64
+57 185 64
+58 185 64
+59 185 64
+60 185 64
+61 185 64
+62 185 64
+63 185 64
+64 185 64
+65 185 64
+66 185 64
+67 185 64
+68 185 64
+69 185 64
+70 185 64
+71 185 64
+72 185 64
+73 185 64
+74 185 64
+75 185 64
+76 185 64
+77 185 64
+78 185 64
+79 185 64
+80 185 64
+81 185 64
+82 185 64
+83 185 64
+84 185 64
+85 185 64
+86 185 64
+87 185 64
+88 185 64
+89 185 64
+90 185 64
+91 185 64
+92 185 64
+93 185 64
+94 185 64
+95 185 64
+96 185 64
+97 185 64
+98 185 64
+99 185 64
+100 185 64
+101 185 64
+102 185 64
+103 185 64
+104 185 64
+105 185 64
+106 185 64
+107 185 64
+108 185 64
+109 185 64
+110 185 64
+111 185 64
+112 185 64
+113 185 64
+114 185 64
+115 185 64
+116 185 64
+117 185 64
+118 185 64
+119 185 64
+120 185 64
+121 185 64
+122 185 64
+123 185 64
+124 185 64
+125 185 64
+126 185 64
+127 185 64
+128 185 64
+129 185 64
+130 185 64
+131 185 64
+132 185 64
+133 185 64
+134 185 64
+135 185 64
+136 185 64
+137 185 64
+138 185 64
+139 185 64
+140 185 64
+141 185 64
+142 185 64
+143 185 64
+144 185 64
+145 185 64
+146 185 64
+147 185 64
+148 185 64
+149 185 64
+150 185 64
+151 185 64
+152 185 64
+153 185 64
+154 185 64
+155 185 64
+156 185 64
+157 185 64
+158 185 64
+159 185 64
+160 185 64
+161 185 64
+162 185 64
+163 185 64
+164 185 64
+165 185 64
+166 185 64
+167 185 64
+168 185 64
+169 185 64
+170 185 64
+171 185 64
+172 185 64
+173 185 64
+174 185 64
+175 185 64
+176 185 64
+177 185 64
+178 185 64
+179 185 64
+180 185 64
+181 185 64
+182 185 64
+183 185 64
+184 185 64
+185 185 64
+186 185 64
+187 185 64
+188 185 64
+189 185 64
+190 185 64
+191 185 64
+192 185 64
+193 185 64
+194 185 64
+195 185 64
+196 185 64
+197 185 64
+198 185 64
+199 185 64
+200 185 64
+201 185 64
+202 185 64
+203 185 64
+204 185 64
+205 185 64
+206 185 64
+207 185 64
+208 185 64
+209 185 64
+210 185 64
+211 185 64
+212 185 64
+213 185 64
+214 185 64
+215 185 64
+216 185 64
+217 185 64
+218 185 64
+219 185 64
+220 185 64
+221 185 64
+222 185 64
+223 185 64
+224 185 64
+225 185 64
+226 185 64
+227 185 64
+228 185 64
+229 185 64
+230 185 64
+231 185 64
+232 185 64
+233 185 64
+234 185 64
+235 185 64
+236 185 64
+237 185 64
+238 185 64
+239 185 64
+240 185 64
+241 185 64
+242 185 64
+243 185 64
+244 185 64
+245 185 64
+246 185 64
+247 185 64
+248 185 64
+249 185 64
+250 185 64
+251 185 64
+252 185 64
+253 185 64
+254 185 64
+255 185 64
+0 184 64
+1 184 64
+2 184 64
+3 184 64
+4 184 64
+5 184 64
+6 184 64
+7 184 64
+8 184 64
+9 184 64
+10 184 64
+11 184 64
+12 184 64
+13 184 64
+14 184 64
+15 184 64
+16 184 64
+17 184 64
+18 184 64
+19 184 64
+20 184 64
+21 184 64
+22 184 64
+23 184 64
+24 184 64
+25 184 64
+26 184 64
+27 184 64
+28 184 64
+29 184 64
+30 184 64
+31 184 64
+32 184 64
+33 184 64
+34 184 64
+35 184 64
+36 184 64
+37 184 64
+38 184 64
+39 184 64
+40 184 64
+41 184 64
+42 184 64
+43 184 64
+44 184 64
+45 184 64
+46 184 64
+47 184 64
+48 184 64
+49 184 64
+50 184 64
+51 184 64
+52 184 64
+53 184 64
+54 184 64
+55 184 64
+56 184 64
+57 184 64
+58 184 64
+59 184 64
+60 184 64
+61 184 64
+62 184 64
+63 184 64
+64 184 64
+65 184 64
+66 184 64
+67 184 64
+68 184 64
+69 184 64
+70 184 64
+71 184 64
+72 184 64
+73 184 64
+74 184 64
+75 184 64
+76 184 64
+77 184 64
+78 184 64
+79 184 64
+80 184 64
+81 184 64
+82 184 64
+83 184 64
+84 184 64
+85 184 64
+86 184 64
+87 184 64
+88 184 64
+89 184 64
+90 184 64
+91 184 64
+92 184 64
+93 184 64
+94 184 64
+95 184 64
+96 184 64
+97 184 64
+98 184 64
+99 184 64
+100 184 64
+101 184 64
+102 184 64
+103 184 64
+104 184 64
+105 184 64
+106 184 64
+107 184 64
+108 184 64
+109 184 64
+110 184 64
+111 184 64
+112 184 64
+113 184 64
+114 184 64
+115 184 64
+116 184 64
+117 184 64
+118 184 64
+119 184 64
+120 184 64
+121 184 64
+122 184 64
+123 184 64
+124 184 64
+125 184 64
+126 184 64
+127 184 64
+128 184 64
+129 184 64
+130 184 64
+131 184 64
+132 184 64
+133 184 64
+134 184 64
+135 184 64
+136 184 64
+137 184 64
+138 184 64
+139 184 64
+140 184 64
+141 184 64
+142 184 64
+143 184 64
+144 184 64
+145 184 64
+146 184 64
+147 184 64
+148 184 64
+149 184 64
+150 184 64
+151 184 64
+152 184 64
+153 184 64
+154 184 64
+155 184 64
+156 184 64
+157 184 64
+158 184 64
+159 184 64
+160 184 64
+161 184 64
+162 184 64
+163 184 64
+164 184 64
+165 184 64
+166 184 64
+167 184 64
+168 184 64
+169 184 64
+170 184 64
+171 184 64
+172 184 64
+173 184 64
+174 184 64
+175 184 64
+176 184 64
+177 184 64
+178 184 64
+179 184 64
+180 184 64
+181 184 64
+182 184 64
+183 184 64
+184 184 64
+185 184 64
+186 184 64
+187 184 64
+188 184 64
+189 184 64
+190 184 64
+191 184 64
+192 184 64
+193 184 64
+194 184 64
+195 184 64
+196 184 64
+197 184 64
+198 184 64
+199 184 64
+200 184 64
+201 184 64
+202 184 64
+203 184 64
+204 184 64
+205 184 64
+206 184 64
+207 184 64
+208 184 64
+209 184 64
+210 184 64
+211 184 64
+212 184 64
+213 184 64
+214 184 64
+215 184 64
+216 184 64
+217 184 64
+218 184 64
+219 184 64
+220 184 64
+221 184 64
+222 184 64
+223 184 64
+224 184 64
+225 184 64
+226 184 64
+227 184 64
+228 184 64
+229 184 64
+230 184 64
+231 184 64
+232 184 64
+233 184 64
+234 184 64
+235 184 64
+236 184 64
+237 184 64
+238 184 64
+239 184 64
+240 184 64
+241 184 64
+242 184 64
+243 184 64
+244 184 64
+245 184 64
+246 184 64
+247 184 64
+248 184 64
+249 184 64
+250 184 64
+251 184 64
+252 184 64
+253 184 64
+254 184 64
+255 184 64
+0 183 64
+1 183 64
+2 183 64
+3 183 64
+4 183 64
+5 183 64
+6 183 64
+7 183 64
+8 183 64
+9 183 64
+10 183 64
+11 183 64
+12 183 64
+13 183 64
+14 183 64
+15 183 64
+16 183 64
+17 183 64
+18 183 64
+19 183 64
+20 183 64
+21 183 64
+22 183 64
+23 183 64
+24 183 64
+25 183 64
+26 183 64
+27 183 64
+28 183 64
+29 183 64
+30 183 64
+31 183 64
+32 183 64
+33 183 64
+34 183 64
+35 183 64
+36 183 64
+37 183 64
+38 183 64
+39 183 64
+40 183 64
+41 183 64
+42 183 64
+43 183 64
+44 183 64
+45 183 64
+46 183 64
+47 183 64
+48 183 64
+49 183 64
+50 183 64
+51 183 64
+52 183 64
+53 183 64
+54 183 64
+55 183 64
+56 183 64
+57 183 64
+58 183 64
+59 183 64
+60 183 64
+61 183 64
+62 183 64
+63 183 64
+64 183 64
+65 183 64
+66 183 64
+67 183 64
+68 183 64
+69 183 64
+70 183 64
+71 183 64
+72 183 64
+73 183 64
+74 183 64
+75 183 64
+76 183 64
+77 183 64
+78 183 64
+79 183 64
+80 183 64
+81 183 64
+82 183 64
+83 183 64
+84 183 64
+85 183 64
+86 183 64
+87 183 64
+88 183 64
+89 183 64
+90 183 64
+91 183 64
+92 183 64
+93 183 64
+94 183 64
+95 183 64
+96 183 64
+97 183 64
+98 183 64
+99 183 64
+100 183 64
+101 183 64
+102 183 64
+103 183 64
+104 183 64
+105 183 64
+106 183 64
+107 183 64
+108 183 64
+109 183 64
+110 183 64
+111 183 64
+112 183 64
+113 183 64
+114 183 64
+115 183 64
+116 183 64
+117 183 64
+118 183 64
+119 183 64
+120 183 64
+121 183 64
+122 183 64
+123 183 64
+124 183 64
+125 183 64
+126 183 64
+127 183 64
+128 183 64
+129 183 64
+130 183 64
+131 183 64
+132 183 64
+133 183 64
+134 183 64
+135 183 64
+136 183 64
+137 183 64
+138 183 64
+139 183 64
+140 183 64
+141 183 64
+142 183 64
+143 183 64
+144 183 64
+145 183 64
+146 183 64
+147 183 64
+148 183 64
+149 183 64
+150 183 64
+151 183 64
+152 183 64
+153 183 64
+154 183 64
+155 183 64
+156 183 64
+157 183 64
+158 183 64
+159 183 64
+160 183 64
+161 183 64
+162 183 64
+163 183 64
+164 183 64
+165 183 64
+166 183 64
+167 183 64
+168 183 64
+169 183 64
+170 183 64
+171 183 64
+172 183 64
+173 183 64
+174 183 64
+175 183 64
+176 183 64
+177 183 64
+178 183 64
+179 183 64
+180 183 64
+181 183 64
+182 183 64
+183 183 64
+184 183 64
+185 183 64
+186 183 64
+187 183 64
+188 183 64
+189 183 64
+190 183 64
+191 183 64
+192 183 64
+193 183 64
+194 183 64
+195 183 64
+196 183 64
+197 183 64
+198 183 64
+199 183 64
+200 183 64
+201 183 64
+202 183 64
+203 183 64
+204 183 64
+205 183 64
+206 183 64
+207 183 64
+208 183 64
+209 183 64
+210 183 64
+211 183 64
+212 183 64
+213 183 64
+214 183 64
+215 183 64
+216 183 64
+217 183 64
+218 183 64
+219 183 64
+220 183 64
+221 183 64
+222 183 64
+223 183 64
+224 183 64
+225 183 64
+226 183 64
+227 183 64
+228 183 64
+229 183 64
+230 183 64
+231 183 64
+232 183 64
+233 183 64
+234 183 64
+235 183 64
+236 183 64
+237 183 64
+238 183 64
+239 183 64
+240 183 64
+241 183 64
+242 183 64
+243 183 64
+244 183 64
+245 183 64
+246 183 64
+247 183 64
+248 183 64
+249 183 64
+250 183 64
+251 183 64
+252 183 64
+253 183 64
+254 183 64
+255 183 64
+0 182 64
+1 182 64
+2 182 64
+3 182 64
+4 182 64
+5 182 64
+6 182 64
+7 182 64
+8 182 64
+9 182 64
+10 182 64
+11 182 64
+12 182 64
+13 182 64
+14 182 64
+15 182 64
+16 182 64
+17 182 64
+18 182 64
+19 182 64
+20 182 64
+21 182 64
+22 182 64
+23 182 64
+24 182 64
+25 182 64
+26 182 64
+27 182 64
+28 182 64
+29 182 64
+30 182 64
+31 182 64
+32 182 64
+33 182 64
+34 182 64
+35 182 64
+36 182 64
+37 182 64
+38 182 64
+39 182 64
+40 182 64
+41 182 64
+42 182 64
+43 182 64
+44 182 64
+45 182 64
+46 182 64
+47 182 64
+48 182 64
+49 182 64
+50 182 64
+51 182 64
+52 182 64
+53 182 64
+54 182 64
+55 182 64
+56 182 64
+57 182 64
+58 182 64
+59 182 64
+60 182 64
+61 182 64
+62 182 64
+63 182 64
+64 182 64
+65 182 64
+66 182 64
+67 182 64
+68 182 64
+69 182 64
+70 182 64
+71 182 64
+72 182 64
+73 182 64
+74 182 64
+75 182 64
+76 182 64
+77 182 64
+78 182 64
+79 182 64
+80 182 64
+81 182 64
+82 182 64
+83 182 64
+84 182 64
+85 182 64
+86 182 64
+87 182 64
+88 182 64
+89 182 64
+90 182 64
+91 182 64
+92 182 64
+93 182 64
+94 182 64
+95 182 64
+96 182 64
+97 182 64
+98 182 64
+99 182 64
+100 182 64
+101 182 64
+102 182 64
+103 182 64
+104 182 64
+105 182 64
+106 182 64
+107 182 64
+108 182 64
+109 182 64
+110 182 64
+111 182 64
+112 182 64
+113 182 64
+114 182 64
+115 182 64
+116 182 64
+117 182 64
+118 182 64
+119 182 64
+120 182 64
+121 182 64
+122 182 64
+123 182 64
+124 182 64
+125 182 64
+126 182 64
+127 182 64
+128 182 64
+129 182 64
+130 182 64
+131 182 64
+132 182 64
+133 182 64
+134 182 64
+135 182 64
+136 182 64
+137 182 64
+138 182 64
+139 182 64
+140 182 64
+141 182 64
+142 182 64
+143 182 64
+144 182 64
+145 182 64
+146 182 64
+147 182 64
+148 182 64
+149 182 64
+150 182 64
+151 182 64
+152 182 64
+153 182 64
+154 182 64
+155 182 64
+156 182 64
+157 182 64
+158 182 64
+159 182 64
+160 182 64
+161 182 64
+162 182 64
+163 182 64
+164 182 64
+165 182 64
+166 182 64
+167 182 64
+168 182 64
+169 182 64
+170 182 64
+171 182 64
+172 182 64
+173 182 64
+174 182 64
+175 182 64
+176 182 64
+177 182 64
+178 182 64
+179 182 64
+180 182 64
+181 182 64
+182 182 64
+183 182 64
+184 182 64
+185 182 64
+186 182 64
+187 182 64
+188 182 64
+189 182 64
+190 182 64
+191 182 64
+192 182 64
+193 182 64
+194 182 64
+195 182 64
+196 182 64
+197 182 64
+198 182 64
+199 182 64
+200 182 64
+201 182 64
+202 182 64
+203 182 64
+204 182 64
+205 182 64
+206 182 64
+207 182 64
+208 182 64
+209 182 64
+210 182 64
+211 182 64
+212 182 64
+213 182 64
+214 182 64
+215 182 64
+216 182 64
+217 182 64
+218 182 64
+219 182 64
+220 182 64
+221 182 64
+222 182 64
+223 182 64
+224 182 64
+225 182 64
+226 182 64
+227 182 64
+228 182 64
+229 182 64
+230 182 64
+231 182 64
+232 182 64
+233 182 64
+234 182 64
+235 182 64
+236 182 64
+237 182 64
+238 182 64
+239 182 64
+240 182 64
+241 182 64
+242 182 64
+243 182 64
+244 182 64
+245 182 64
+246 182 64
+247 182 64
+248 182 64
+249 182 64
+250 182 64
+251 182 64
+252 182 64
+253 182 64
+254 182 64
+255 182 64
+0 181 64
+1 181 64
+2 181 64
+3 181 64
+4 181 64
+5 181 64
+6 181 64
+7 181 64
+8 181 64
+9 181 64
+10 181 64
+11 181 64
+12 181 64
+13 181 64
+14 181 64
+15 181 64
+16 181 64
+17 181 64
+18 181 64
+19 181 64
+20 181 64
+21 181 64
+22 181 64
+23 181 64
+24 181 64
+25 181 64
+26 181 64
+27 181 64
+28 181 64
+29 181 64
+30 181 64
+31 181 64
+32 181 64
+33 181 64
+34 181 64
+35 181 64
+36 181 64
+37 181 64
+38 181 64
+39 181 64
+40 181 64
+41 181 64
+42 181 64
+43 181 64
+44 181 64
+45 181 64
+46 181 64
+47 181 64
+48 181 64
+49 181 64
+50 181 64
+51 181 64
+52 181 64
+53 181 64
+54 181 64
+55 181 64
+56 181 64
+57 181 64
+58 181 64
+59 181 64
+60 181 64
+61 181 64
+62 181 64
+63 181 64
+64 181 64
+65 181 64
+66 181 64
+67 181 64
+68 181 64
+69 181 64
+70 181 64
+71 181 64
+72 181 64
+73 181 64
+74 181 64
+75 181 64
+76 181 64
+77 181 64
+78 181 64
+79 181 64
+80 181 64
+81 181 64
+82 181 64
+83 181 64
+84 181 64
+85 181 64
+86 181 64
+87 181 64
+88 181 64
+89 181 64
+90 181 64
+91 181 64
+92 181 64
+93 181 64
+94 181 64
+95 181 64
+96 181 64
+97 181 64
+98 181 64
+99 181 64
+100 181 64
+101 181 64
+102 181 64
+103 181 64
+104 181 64
+105 181 64
+106 181 64
+107 181 64
+108 181 64
+109 181 64
+110 181 64
+111 181 64
+112 181 64
+113 181 64
+114 181 64
+115 181 64
+116 181 64
+117 181 64
+118 181 64
+119 181 64
+120 181 64
+121 181 64
+122 181 64
+123 181 64
+124 181 64
+125 181 64
+126 181 64
+127 181 64
+128 181 64
+129 181 64
+130 181 64
+131 181 64
+132 181 64
+133 181 64
+134 181 64
+135 181 64
+136 181 64
+137 181 64
+138 181 64
+139 181 64
+140 181 64
+141 181 64
+142 181 64
+143 181 64
+144 181 64
+145 181 64
+146 181 64
+147 181 64
+148 181 64
+149 181 64
+150 181 64
+151 181 64
+152 181 64
+153 181 64
+154 181 64
+155 181 64
+156 181 64
+157 181 64
+158 181 64
+159 181 64
+160 181 64
+161 181 64
+162 181 64
+163 181 64
+164 181 64
+165 181 64
+166 181 64
+167 181 64
+168 181 64
+169 181 64
+170 181 64
+171 181 64
+172 181 64
+173 181 64
+174 181 64
+175 181 64
+176 181 64
+177 181 64
+178 181 64
+179 181 64
+180 181 64
+181 181 64
+182 181 64
+183 181 64
+184 181 64
+185 181 64
+186 181 64
+187 181 64
+188 181 64
+189 181 64
+190 181 64
+191 181 64
+192 181 64
+193 181 64
+194 181 64
+195 181 64
+196 181 64
+197 181 64
+198 181 64
+199 181 64
+200 181 64
+201 181 64
+202 181 64
+203 181 64
+204 181 64
+205 181 64
+206 181 64
+207 181 64
+208 181 64
+209 181 64
+210 181 64
+211 181 64
+212 181 64
+213 181 64
+214 181 64
+215 181 64
+216 181 64
+217 181 64
+218 181 64
+219 181 64
+220 181 64
+221 181 64
+222 181 64
+223 181 64
+224 181 64
+225 181 64
+226 181 64
+227 181 64
+228 181 64
+229 181 64
+230 181 64
+231 181 64
+232 181 64
+233 181 64
+234 181 64
+235 181 64
+236 181 64
+237 181 64
+238 181 64
+239 181 64
+240 181 64
+241 181 64
+242 181 64
+243 181 64
+244 181 64
+245 181 64
+246 181 64
+247 181 64
+248 181 64
+249 181 64
+250 181 64
+251 181 64
+252 181 64
+253 181 64
+254 181 64
+255 181 64
+0 180 64
+1 180 64
+2 180 64
+3 180 64
+4 180 64
+5 180 64
+6 180 64
+7 180 64
+8 180 64
+9 180 64
+10 180 64
+11 180 64
+12 180 64
+13 180 64
+14 180 64
+15 180 64
+16 180 64
+17 180 64
+18 180 64
+19 180 64
+20 180 64
+21 180 64
+22 180 64
+23 180 64
+24 180 64
+25 180 64
+26 180 64
+27 180 64
+28 180 64
+29 180 64
+30 180 64
+31 180 64
+32 180 64
+33 180 64
+34 180 64
+35 180 64
+36 180 64
+37 180 64
+38 180 64
+39 180 64
+40 180 64
+41 180 64
+42 180 64
+43 180 64
+44 180 64
+45 180 64
+46 180 64
+47 180 64
+48 180 64
+49 180 64
+50 180 64
+51 180 64
+52 180 64
+53 180 64
+54 180 64
+55 180 64
+56 180 64
+57 180 64
+58 180 64
+59 180 64
+60 180 64
+61 180 64
+62 180 64
+63 180 64
+64 180 64
+65 180 64
+66 180 64
+67 180 64
+68 180 64
+69 180 64
+70 180 64
+71 180 64
+72 180 64
+73 180 64
+74 180 64
+75 180 64
+76 180 64
+77 180 64
+78 180 64
+79 180 64
+80 180 64
+81 180 64
+82 180 64
+83 180 64
+84 180 64
+85 180 64
+86 180 64
+87 180 64
+88 180 64
+89 180 64
+90 180 64
+91 180 64
+92 180 64
+93 180 64
+94 180 64
+95 180 64
+96 180 64
+97 180 64
+98 180 64
+99 180 64
+100 180 64
+101 180 64
+102 180 64
+103 180 64
+104 180 64
+105 180 64
+106 180 64
+107 180 64
+108 180 64
+109 180 64
+110 180 64
+111 180 64
+112 180 64
+113 180 64
+114 180 64
+115 180 64
+116 180 64
+117 180 64
+118 180 64
+119 180 64
+120 180 64
+121 180 64
+122 180 64
+123 180 64
+124 180 64
+125 180 64
+126 180 64
+127 180 64
+128 180 64
+129 180 64
+130 180 64
+131 180 64
+132 180 64
+133 180 64
+134 180 64
+135 180 64
+136 180 64
+137 180 64
+138 180 64
+139 180 64
+140 180 64
+141 180 64
+142 180 64
+143 180 64
+144 180 64
+145 180 64
+146 180 64
+147 180 64
+148 180 64
+149 180 64
+150 180 64
+151 180 64
+152 180 64
+153 180 64
+154 180 64
+155 180 64
+156 180 64
+157 180 64
+158 180 64
+159 180 64
+160 180 64
+161 180 64
+162 180 64
+163 180 64
+164 180 64
+165 180 64
+166 180 64
+167 180 64
+168 180 64
+169 180 64
+170 180 64
+171 180 64
+172 180 64
+173 180 64
+174 180 64
+175 180 64
+176 180 64
+177 180 64
+178 180 64
+179 180 64
+180 180 64
+181 180 64
+182 180 64
+183 180 64
+184 180 64
+185 180 64
+186 180 64
+187 180 64
+188 180 64
+189 180 64
+190 180 64
+191 180 64
+192 180 64
+193 180 64
+194 180 64
+195 180 64
+196 180 64
+197 180 64
+198 180 64
+199 180 64
+200 180 64
+201 180 64
+202 180 64
+203 180 64
+204 180 64
+205 180 64
+206 180 64
+207 180 64
+208 180 64
+209 180 64
+210 180 64
+211 180 64
+212 180 64
+213 180 64
+214 180 64
+215 180 64
+216 180 64
+217 180 64
+218 180 64
+219 180 64
+220 180 64
+221 180 64
+222 180 64
+223 180 64
+224 180 64
+225 180 64
+226 180 64
+227 180 64
+228 180 64
+229 180 64
+230 180 64
+231 180 64
+232 180 64
+233 180 64
+234 180 64
+235 180 64
+236 180 64
+237 180 64
+238 180 64
+239 180 64
+240 180 64
+241 180 64
+242 180 64
+243 180 64
+244 180 64
+245 180 64
+246 180 64
+247 180 64
+248 180 64
+249 180 64
+250 180 64
+251 180 64
+252 180 64
+253 180 64
+254 180 64
+255 180 64
+0 179 64
+1 179 64
+2 179 64
+3 179 64
+4 179 64
+5 179 64
+6 179 64
+7 179 64
+8 179 64
+9 179 64
+10 179 64
+11 179 64
+12 179 64
+13 179 64
+14 179 64
+15 179 64
+16 179 64
+17 179 64
+18 179 64
+19 179 64
+20 179 64
+21 179 64
+22 179 64
+23 179 64
+24 179 64
+25 179 64
+26 179 64
+27 179 64
+28 179 64
+29 179 64
+30 179 64
+31 179 64
+32 179 64
+33 179 64
+34 179 64
+35 179 64
+36 179 64
+37 179 64
+38 179 64
+39 179 64
+40 179 64
+41 179 64
+42 179 64
+43 179 64
+44 179 64
+45 179 64
+46 179 64
+47 179 64
+48 179 64
+49 179 64
+50 179 64
+51 179 64
+52 179 64
+53 179 64
+54 179 64
+55 179 64
+56 179 64
+57 179 64
+58 179 64
+59 179 64
+60 179 64
+61 179 64
+62 179 64
+63 179 64
+64 179 64
+65 179 64
+66 179 64
+67 179 64
+68 179 64
+69 179 64
+70 179 64
+71 179 64
+72 179 64
+73 179 64
+74 179 64
+75 179 64
+76 179 64
+77 179 64
+78 179 64
+79 179 64
+80 179 64
+81 179 64
+82 179 64
+83 179 64
+84 179 64
+85 179 64
+86 179 64
+87 179 64
+88 179 64
+89 179 64
+90 179 64
+91 179 64
+92 179 64
+93 179 64
+94 179 64
+95 179 64
+96 179 64
+97 179 64
+98 179 64
+99 179 64
+100 179 64
+101 179 64
+102 179 64
+103 179 64
+104 179 64
+105 179 64
+106 179 64
+107 179 64
+108 179 64
+109 179 64
+110 179 64
+111 179 64
+112 179 64
+113 179 64
+114 179 64
+115 179 64
+116 179 64
+117 179 64
+118 179 64
+119 179 64
+120 179 64
+121 179 64
+122 179 64
+123 179 64
+124 179 64
+125 179 64
+126 179 64
+127 179 64
+128 179 64
+129 179 64
+130 179 64
+131 179 64
+132 179 64
+133 179 64
+134 179 64
+135 179 64
+136 179 64
+137 179 64
+138 179 64
+139 179 64
+140 179 64
+141 179 64
+142 179 64
+143 179 64
+144 179 64
+145 179 64
+146 179 64
+147 179 64
+148 179 64
+149 179 64
+150 179 64
+151 179 64
+152 179 64
+153 179 64
+154 179 64
+155 179 64
+156 179 64
+157 179 64
+158 179 64
+159 179 64
+160 179 64
+161 179 64
+162 179 64
+163 179 64
+164 179 64
+165 179 64
+166 179 64
+167 179 64
+168 179 64
+169 179 64
+170 179 64
+171 179 64
+172 179 64
+173 179 64
+174 179 64
+175 179 64
+176 179 64
+177 179 64
+178 179 64
+179 179 64
+180 179 64
+181 179 64
+182 179 64
+183 179 64
+184 179 64
+185 179 64
+186 179 64
+187 179 64
+188 179 64
+189 179 64
+190 179 64
+191 179 64
+192 179 64
+193 179 64
+194 179 64
+195 179 64
+196 179 64
+197 179 64
+198 179 64
+199 179 64
+200 179 64
+201 179 64
+202 179 64
+203 179 64
+204 179 64
+205 179 64
+206 179 64
+207 179 64
+208 179 64
+209 179 64
+210 179 64
+211 179 64
+212 179 64
+213 179 64
+214 179 64
+215 179 64
+216 179 64
+217 179 64
+218 179 64
+219 179 64
+220 179 64
+221 179 64
+222 179 64
+223 179 64
+224 179 64
+225 179 64
+226 179 64
+227 179 64
+228 179 64
+229 179 64
+230 179 64
+231 179 64
+232 179 64
+233 179 64
+234 179 64
+235 179 64
+236 179 64
+237 179 64
+238 179 64
+239 179 64
+240 179 64
+241 179 64
+242 179 64
+243 179 64
+244 179 64
+245 179 64
+246 179 64
+247 179 64
+248 179 64
+249 179 64
+250 179 64
+251 179 64
+252 179 64
+253 179 64
+254 179 64
+255 179 64
+0 178 64
+1 178 64
+2 178 64
+3 178 64
+4 178 64
+5 178 64
+6 178 64
+7 178 64
+8 178 64
+9 178 64
+10 178 64
+11 178 64
+12 178 64
+13 178 64
+14 178 64
+15 178 64
+16 178 64
+17 178 64
+18 178 64
+19 178 64
+20 178 64
+21 178 64
+22 178 64
+23 178 64
+24 178 64
+25 178 64
+26 178 64
+27 178 64
+28 178 64
+29 178 64
+30 178 64
+31 178 64
+32 178 64
+33 178 64
+34 178 64
+35 178 64
+36 178 64
+37 178 64
+38 178 64
+39 178 64
+40 178 64
+41 178 64
+42 178 64
+43 178 64
+44 178 64
+45 178 64
+46 178 64
+47 178 64
+48 178 64
+49 178 64
+50 178 64
+51 178 64
+52 178 64
+53 178 64
+54 178 64
+55 178 64
+56 178 64
+57 178 64
+58 178 64
+59 178 64
+60 178 64
+61 178 64
+62 178 64
+63 178 64
+64 178 64
+65 178 64
+66 178 64
+67 178 64
+68 178 64
+69 178 64
+70 178 64
+71 178 64
+72 178 64
+73 178 64
+74 178 64
+75 178 64
+76 178 64
+77 178 64
+78 178 64
+79 178 64
+80 178 64
+81 178 64
+82 178 64
+83 178 64
+84 178 64
+85 178 64
+86 178 64
+87 178 64
+88 178 64
+89 178 64
+90 178 64
+91 178 64
+92 178 64
+93 178 64
+94 178 64
+95 178 64
+96 178 64
+97 178 64
+98 178 64
+99 178 64
+100 178 64
+101 178 64
+102 178 64
+103 178 64
+104 178 64
+105 178 64
+106 178 64
+107 178 64
+108 178 64
+109 178 64
+110 178 64
+111 178 64
+112 178 64
+113 178 64
+114 178 64
+115 178 64
+116 178 64
+117 178 64
+118 178 64
+119 178 64
+120 178 64
+121 178 64
+122 178 64
+123 178 64
+124 178 64
+125 178 64
+126 178 64
+127 178 64
+128 178 64
+129 178 64
+130 178 64
+131 178 64
+132 178 64
+133 178 64
+134 178 64
+135 178 64
+136 178 64
+137 178 64
+138 178 64
+139 178 64
+140 178 64
+141 178 64
+142 178 64
+143 178 64
+144 178 64
+145 178 64
+146 178 64
+147 178 64
+148 178 64
+149 178 64
+150 178 64
+151 178 64
+152 178 64
+153 178 64
+154 178 64
+155 178 64
+156 178 64
+157 178 64
+158 178 64
+159 178 64
+160 178 64
+161 178 64
+162 178 64
+163 178 64
+164 178 64
+165 178 64
+166 178 64
+167 178 64
+168 178 64
+169 178 64
+170 178 64
+171 178 64
+172 178 64
+173 178 64
+174 178 64
+175 178 64
+176 178 64
+177 178 64
+178 178 64
+179 178 64
+180 178 64
+181 178 64
+182 178 64
+183 178 64
+184 178 64
+185 178 64
+186 178 64
+187 178 64
+188 178 64
+189 178 64
+190 178 64
+191 178 64
+192 178 64
+193 178 64
+194 178 64
+195 178 64
+196 178 64
+197 178 64
+198 178 64
+199 178 64
+200 178 64
+201 178 64
+202 178 64
+203 178 64
+204 178 64
+205 178 64
+206 178 64
+207 178 64
+208 178 64
+209 178 64
+210 178 64
+211 178 64
+212 178 64
+213 178 64
+214 178 64
+215 178 64
+216 178 64
+217 178 64
+218 178 64
+219 178 64
+220 178 64
+221 178 64
+222 178 64
+223 178 64
+224 178 64
+225 178 64
+226 178 64
+227 178 64
+228 178 64
+229 178 64
+230 178 64
+231 178 64
+232 178 64
+233 178 64
+234 178 64
+235 178 64
+236 178 64
+237 178 64
+238 178 64
+239 178 64
+240 178 64
+241 178 64
+242 178 64
+243 178 64
+244 178 64
+245 178 64
+246 178 64
+247 178 64
+248 178 64
+249 178 64
+250 178 64
+251 178 64
+252 178 64
+253 178 64
+254 178 64
+255 178 64
+0 177 64
+1 177 64
+2 177 64
+3 177 64
+4 177 64
+5 177 64
+6 177 64
+7 177 64
+8 177 64
+9 177 64
+10 177 64
+11 177 64
+12 177 64
+13 177 64
+14 177 64
+15 177 64
+16 177 64
+17 177 64
+18 177 64
+19 177 64
+20 177 64
+21 177 64
+22 177 64
+23 177 64
+24 177 64
+25 177 64
+26 177 64
+27 177 64
+28 177 64
+29 177 64
+30 177 64
+31 177 64
+32 177 64
+33 177 64
+34 177 64
+35 177 64
+36 177 64
+37 177 64
+38 177 64
+39 177 64
+40 177 64
+41 177 64
+42 177 64
+43 177 64
+44 177 64
+45 177 64
+46 177 64
+47 177 64
+48 177 64
+49 177 64
+50 177 64
+51 177 64
+52 177 64
+53 177 64
+54 177 64
+55 177 64
+56 177 64
+57 177 64
+58 177 64
+59 177 64
+60 177 64
+61 177 64
+62 177 64
+63 177 64
+64 177 64
+65 177 64
+66 177 64
+67 177 64
+68 177 64
+69 177 64
+70 177 64
+71 177 64
+72 177 64
+73 177 64
+74 177 64
+75 177 64
+76 177 64
+77 177 64
+78 177 64
+79 177 64
+80 177 64
+81 177 64
+82 177 64
+83 177 64
+84 177 64
+85 177 64
+86 177 64
+87 177 64
+88 177 64
+89 177 64
+90 177 64
+91 177 64
+92 177 64
+93 177 64
+94 177 64
+95 177 64
+96 177 64
+97 177 64
+98 177 64
+99 177 64
+100 177 64
+101 177 64
+102 177 64
+103 177 64
+104 177 64
+105 177 64
+106 177 64
+107 177 64
+108 177 64
+109 177 64
+110 177 64
+111 177 64
+112 177 64
+113 177 64
+114 177 64
+115 177 64
+116 177 64
+117 177 64
+118 177 64
+119 177 64
+120 177 64
+121 177 64
+122 177 64
+123 177 64
+124 177 64
+125 177 64
+126 177 64
+127 177 64
+128 177 64
+129 177 64
+130 177 64
+131 177 64
+132 177 64
+133 177 64
+134 177 64
+135 177 64
+136 177 64
+137 177 64
+138 177 64
+139 177 64
+140 177 64
+141 177 64
+142 177 64
+143 177 64
+144 177 64
+145 177 64
+146 177 64
+147 177 64
+148 177 64
+149 177 64
+150 177 64
+151 177 64
+152 177 64
+153 177 64
+154 177 64
+155 177 64
+156 177 64
+157 177 64
+158 177 64
+159 177 64
+160 177 64
+161 177 64
+162 177 64
+163 177 64
+164 177 64
+165 177 64
+166 177 64
+167 177 64
+168 177 64
+169 177 64
+170 177 64
+171 177 64
+172 177 64
+173 177 64
+174 177 64
+175 177 64
+176 177 64
+177 177 64
+178 177 64
+179 177 64
+180 177 64
+181 177 64
+182 177 64
+183 177 64
+184 177 64
+185 177 64
+186 177 64
+187 177 64
+188 177 64
+189 177 64
+190 177 64
+191 177 64
+192 177 64
+193 177 64
+194 177 64
+195 177 64
+196 177 64
+197 177 64
+198 177 64
+199 177 64
+200 177 64
+201 177 64
+202 177 64
+203 177 64
+204 177 64
+205 177 64
+206 177 64
+207 177 64
+208 177 64
+209 177 64
+210 177 64
+211 177 64
+212 177 64
+213 177 64
+214 177 64
+215 177 64
+216 177 64
+217 177 64
+218 177 64
+219 177 64
+220 177 64
+221 177 64
+222 177 64
+223 177 64
+224 177 64
+225 177 64
+226 177 64
+227 177 64
+228 177 64
+229 177 64
+230 177 64
+231 177 64
+232 177 64
+233 177 64
+234 177 64
+235 177 64
+236 177 64
+237 177 64
+238 177 64
+239 177 64
+240 177 64
+241 177 64
+242 177 64
+243 177 64
+244 177 64
+245 177 64
+246 177 64
+247 177 64
+248 177 64
+249 177 64
+250 177 64
+251 177 64
+252 177 64
+253 177 64
+254 177 64
+255 177 64
+0 176 64
+1 176 64
+2 176 64
+3 176 64
+4 176 64
+5 176 64
+6 176 64
+7 176 64
+8 176 64
+9 176 64
+10 176 64
+11 176 64
+12 176 64
+13 176 64
+14 176 64
+15 176 64
+16 176 64
+17 176 64
+18 176 64
+19 176 64
+20 176 64
+21 176 64
+22 176 64
+23 176 64
+24 176 64
+25 176 64
+26 176 64
+27 176 64
+28 176 64
+29 176 64
+30 176 64
+31 176 64
+32 176 64
+33 176 64
+34 176 64
+35 176 64
+36 176 64
+37 176 64
+38 176 64
+39 176 64
+40 176 64
+41 176 64
+42 176 64
+43 176 64
+44 176 64
+45 176 64
+46 176 64
+47 176 64
+48 176 64
+49 176 64
+50 176 64
+51 176 64
+52 176 64
+53 176 64
+54 176 64
+55 176 64
+56 176 64
+57 176 64
+58 176 64
+59 176 64
+60 176 64
+61 176 64
+62 176 64
+63 176 64
+64 176 64
+65 176 64
+66 176 64
+67 176 64
+68 176 64
+69 176 64
+70 176 64
+71 176 64
+72 176 64
+73 176 64
+74 176 64
+75 176 64
+76 176 64
+77 176 64
+78 176 64
+79 176 64
+80 176 64
+81 176 64
+82 176 64
+83 176 64
+84 176 64
+85 176 64
+86 176 64
+87 176 64
+88 176 64
+89 176 64
+90 176 64
+91 176 64
+92 176 64
+93 176 64
+94 176 64
+95 176 64
+96 176 64
+97 176 64
+98 176 64
+99 176 64
+100 176 64
+101 176 64
+102 176 64
+103 176 64
+104 176 64
+105 176 64
+106 176 64
+107 176 64
+108 176 64
+109 176 64
+110 176 64
+111 176 64
+112 176 64
+113 176 64
+114 176 64
+115 176 64
+116 176 64
+117 176 64
+118 176 64
+119 176 64
+120 176 64
+121 176 64
+122 176 64
+123 176 64
+124 176 64
+125 176 64
+126 176 64
+127 176 64
+128 176 64
+129 176 64
+130 176 64
+131 176 64
+132 176 64
+133 176 64
+134 176 64
+135 176 64
+136 176 64
+137 176 64
+138 176 64
+139 176 64
+140 176 64
+141 176 64
+142 176 64
+143 176 64
+144 176 64
+145 176 64
+146 176 64
+147 176 64
+148 176 64
+149 176 64
+150 176 64
+151 176 64
+152 176 64
+153 176 64
+154 176 64
+155 176 64
+156 176 64
+157 176 64
+158 176 64
+159 176 64
+160 176 64
+161 176 64
+162 176 64
+163 176 64
+164 176 64
+165 176 64
+166 176 64
+167 176 64
+168 176 64
+169 176 64
+170 176 64
+171 176 64
+172 176 64
+173 176 64
+174 176 64
+175 176 64
+176 176 64
+177 176 64
+178 176 64
+179 176 64
+180 176 64
+181 176 64
+182 176 64
+183 176 64
+184 176 64
+185 176 64
+186 176 64
+187 176 64
+188 176 64
+189 176 64
+190 176 64
+191 176 64
+192 176 64
+193 176 64
+194 176 64
+195 176 64
+196 176 64
+197 176 64
+198 176 64
+199 176 64
+200 176 64
+201 176 64
+202 176 64
+203 176 64
+204 176 64
+205 176 64
+206 176 64
+207 176 64
+208 176 64
+209 176 64
+210 176 64
+211 176 64
+212 176 64
+213 176 64
+214 176 64
+215 176 64
+216 176 64
+217 176 64
+218 176 64
+219 176 64
+220 176 64
+221 176 64
+222 176 64
+223 176 64
+224 176 64
+225 176 64
+226 176 64
+227 176 64
+228 176 64
+229 176 64
+230 176 64
+231 176 64
+232 176 64
+233 176 64
+234 176 64
+235 176 64
+236 176 64
+237 176 64
+238 176 64
+239 176 64
+240 176 64
+241 176 64
+242 176 64
+243 176 64
+244 176 64
+245 176 64
+246 176 64
+247 176 64
+248 176 64
+249 176 64
+250 176 64
+251 176 64
+252 176 64
+253 176 64
+254 176 64
+255 176 64
+0 175 64
+1 175 64
+2 175 64
+3 175 64
+4 175 64
+5 175 64
+6 175 64
+7 175 64
+8 175 64
+9 175 64
+10 175 64
+11 175 64
+12 175 64
+13 175 64
+14 175 64
+15 175 64
+16 175 64
+17 175 64
+18 175 64
+19 175 64
+20 175 64
+21 175 64
+22 175 64
+23 175 64
+24 175 64
+25 175 64
+26 175 64
+27 175 64
+28 175 64
+29 175 64
+30 175 64
+31 175 64
+32 175 64
+33 175 64
+34 175 64
+35 175 64
+36 175 64
+37 175 64
+38 175 64
+39 175 64
+40 175 64
+41 175 64
+42 175 64
+43 175 64
+44 175 64
+45 175 64
+46 175 64
+47 175 64
+48 175 64
+49 175 64
+50 175 64
+51 175 64
+52 175 64
+53 175 64
+54 175 64
+55 175 64
+56 175 64
+57 175 64
+58 175 64
+59 175 64
+60 175 64
+61 175 64
+62 175 64
+63 175 64
+64 175 64
+65 175 64
+66 175 64
+67 175 64
+68 175 64
+69 175 64
+70 175 64
+71 175 64
+72 175 64
+73 175 64
+74 175 64
+75 175 64
+76 175 64
+77 175 64
+78 175 64
+79 175 64
+80 175 64
+81 175 64
+82 175 64
+83 175 64
+84 175 64
+85 175 64
+86 175 64
+87 175 64
+88 175 64
+89 175 64
+90 175 64
+91 175 64
+92 175 64
+93 175 64
+94 175 64
+95 175 64
+96 175 64
+97 175 64
+98 175 64
+99 175 64
+100 175 64
+101 175 64
+102 175 64
+103 175 64
+104 175 64
+105 175 64
+106 175 64
+107 175 64
+108 175 64
+109 175 64
+110 175 64
+111 175 64
+112 175 64
+113 175 64
+114 175 64
+115 175 64
+116 175 64
+117 175 64
+118 175 64
+119 175 64
+120 175 64
+121 175 64
+122 175 64
+123 175 64
+124 175 64
+125 175 64
+126 175 64
+127 175 64
+128 175 64
+129 175 64
+130 175 64
+131 175 64
+132 175 64
+133 175 64
+134 175 64
+135 175 64
+136 175 64
+137 175 64
+138 175 64
+139 175 64
+140 175 64
+141 175 64
+142 175 64
+143 175 64
+144 175 64
+145 175 64
+146 175 64
+147 175 64
+148 175 64
+149 175 64
+150 175 64
+151 175 64
+152 175 64
+153 175 64
+154 175 64
+155 175 64
+156 175 64
+157 175 64
+158 175 64
+159 175 64
+160 175 64
+161 175 64
+162 175 64
+163 175 64
+164 175 64
+165 175 64
+166 175 64
+167 175 64
+168 175 64
+169 175 64
+170 175 64
+171 175 64
+172 175 64
+173 175 64
+174 175 64
+175 175 64
+176 175 64
+177 175 64
+178 175 64
+179 175 64
+180 175 64
+181 175 64
+182 175 64
+183 175 64
+184 175 64
+185 175 64
+186 175 64
+187 175 64
+188 175 64
+189 175 64
+190 175 64
+191 175 64
+192 175 64
+193 175 64
+194 175 64
+195 175 64
+196 175 64
+197 175 64
+198 175 64
+199 175 64
+200 175 64
+201 175 64
+202 175 64
+203 175 64
+204 175 64
+205 175 64
+206 175 64
+207 175 64
+208 175 64
+209 175 64
+210 175 64
+211 175 64
+212 175 64
+213 175 64
+214 175 64
+215 175 64
+216 175 64
+217 175 64
+218 175 64
+219 175 64
+220 175 64
+221 175 64
+222 175 64
+223 175 64
+224 175 64
+225 175 64
+226 175 64
+227 175 64
+228 175 64
+229 175 64
+230 175 64
+231 175 64
+232 175 64
+233 175 64
+234 175 64
+235 175 64
+236 175 64
+237 175 64
+238 175 64
+239 175 64
+240 175 64
+241 175 64
+242 175 64
+243 175 64
+244 175 64
+245 175 64
+246 175 64
+247 175 64
+248 175 64
+249 175 64
+250 175 64
+251 175 64
+252 175 64
+253 175 64
+254 175 64
+255 175 64
+0 174 64
+1 174 64
+2 174 64
+3 174 64
+4 174 64
+5 174 64
+6 174 64
+7 174 64
+8 174 64
+9 174 64
+10 174 64
+11 174 64
+12 174 64
+13 174 64
+14 174 64
+15 174 64
+16 174 64
+17 174 64
+18 174 64
+19 174 64
+20 174 64
+21 174 64
+22 174 64
+23 174 64
+24 174 64
+25 174 64
+26 174 64
+27 174 64
+28 174 64
+29 174 64
+30 174 64
+31 174 64
+32 174 64
+33 174 64
+34 174 64
+35 174 64
+36 174 64
+37 174 64
+38 174 64
+39 174 64
+40 174 64
+41 174 64
+42 174 64
+43 174 64
+44 174 64
+45 174 64
+46 174 64
+47 174 64
+48 174 64
+49 174 64
+50 174 64
+51 174 64
+52 174 64
+53 174 64
+54 174 64
+55 174 64
+56 174 64
+57 174 64
+58 174 64
+59 174 64
+60 174 64
+61 174 64
+62 174 64
+63 174 64
+64 174 64
+65 174 64
+66 174 64
+67 174 64
+68 174 64
+69 174 64
+70 174 64
+71 174 64
+72 174 64
+73 174 64
+74 174 64
+75 174 64
+76 174 64
+77 174 64
+78 174 64
+79 174 64
+80 174 64
+81 174 64
+82 174 64
+83 174 64
+84 174 64
+85 174 64
+86 174 64
+87 174 64
+88 174 64
+89 174 64
+90 174 64
+91 174 64
+92 174 64
+93 174 64
+94 174 64
+95 174 64
+96 174 64
+97 174 64
+98 174 64
+99 174 64
+100 174 64
+101 174 64
+102 174 64
+103 174 64
+104 174 64
+105 174 64
+106 174 64
+107 174 64
+108 174 64
+109 174 64
+110 174 64
+111 174 64
+112 174 64
+113 174 64
+114 174 64
+115 174 64
+116 174 64
+117 174 64
+118 174 64
+119 174 64
+120 174 64
+121 174 64
+122 174 64
+123 174 64
+124 174 64
+125 174 64
+126 174 64
+127 174 64
+128 174 64
+129 174 64
+130 174 64
+131 174 64
+132 174 64
+133 174 64
+134 174 64
+135 174 64
+136 174 64
+137 174 64
+138 174 64
+139 174 64
+140 174 64
+141 174 64
+142 174 64
+143 174 64
+144 174 64
+145 174 64
+146 174 64
+147 174 64
+148 174 64
+149 174 64
+150 174 64
+151 174 64
+152 174 64
+153 174 64
+154 174 64
+155 174 64
+156 174 64
+157 174 64
+158 174 64
+159 174 64
+160 174 64
+161 174 64
+162 174 64
+163 174 64
+164 174 64
+165 174 64
+166 174 64
+167 174 64
+168 174 64
+169 174 64
+170 174 64
+171 174 64
+172 174 64
+173 174 64
+174 174 64
+175 174 64
+176 174 64
+177 174 64
+178 174 64
+179 174 64
+180 174 64
+181 174 64
+182 174 64
+183 174 64
+184 174 64
+185 174 64
+186 174 64
+187 174 64
+188 174 64
+189 174 64
+190 174 64
+191 174 64
+192 174 64
+193 174 64
+194 174 64
+195 174 64
+196 174 64
+197 174 64
+198 174 64
+199 174 64
+200 174 64
+201 174 64
+202 174 64
+203 174 64
+204 174 64
+205 174 64
+206 174 64
+207 174 64
+208 174 64
+209 174 64
+210 174 64
+211 174 64
+212 174 64
+213 174 64
+214 174 64
+215 174 64
+216 174 64
+217 174 64
+218 174 64
+219 174 64
+220 174 64
+221 174 64
+222 174 64
+223 174 64
+224 174 64
+225 174 64
+226 174 64
+227 174 64
+228 174 64
+229 174 64
+230 174 64
+231 174 64
+232 174 64
+233 174 64
+234 174 64
+235 174 64
+236 174 64
+237 174 64
+238 174 64
+239 174 64
+240 174 64
+241 174 64
+242 174 64
+243 174 64
+244 174 64
+245 174 64
+246 174 64
+247 174 64
+248 174 64
+249 174 64
+250 174 64
+251 174 64
+252 174 64
+253 174 64
+254 174 64
+255 174 64
+0 173 64
+1 173 64
+2 173 64
+3 173 64
+4 173 64
+5 173 64
+6 173 64
+7 173 64
+8 173 64
+9 173 64
+10 173 64
+11 173 64
+12 173 64
+13 173 64
+14 173 64
+15 173 64
+16 173 64
+17 173 64
+18 173 64
+19 173 64
+20 173 64
+21 173 64
+22 173 64
+23 173 64
+24 173 64
+25 173 64
+26 173 64
+27 173 64
+28 173 64
+29 173 64
+30 173 64
+31 173 64
+32 173 64
+33 173 64
+34 173 64
+35 173 64
+36 173 64
+37 173 64
+38 173 64
+39 173 64
+40 173 64
+41 173 64
+42 173 64
+43 173 64
+44 173 64
+45 173 64
+46 173 64
+47 173 64
+48 173 64
+49 173 64
+50 173 64
+51 173 64
+52 173 64
+53 173 64
+54 173 64
+55 173 64
+56 173 64
+57 173 64
+58 173 64
+59 173 64
+60 173 64
+61 173 64
+62 173 64
+63 173 64
+64 173 64
+65 173 64
+66 173 64
+67 173 64
+68 173 64
+69 173 64
+70 173 64
+71 173 64
+72 173 64
+73 173 64
+74 173 64
+75 173 64
+76 173 64
+77 173 64
+78 173 64
+79 173 64
+80 173 64
+81 173 64
+82 173 64
+83 173 64
+84 173 64
+85 173 64
+86 173 64
+87 173 64
+88 173 64
+89 173 64
+90 173 64
+91 173 64
+92 173 64
+93 173 64
+94 173 64
+95 173 64
+96 173 64
+97 173 64
+98 173 64
+99 173 64
+100 173 64
+101 173 64
+102 173 64
+103 173 64
+104 173 64
+105 173 64
+106 173 64
+107 173 64
+108 173 64
+109 173 64
+110 173 64
+111 173 64
+112 173 64
+113 173 64
+114 173 64
+115 173 64
+116 173 64
+117 173 64
+118 173 64
+119 173 64
+120 173 64
+121 173 64
+122 173 64
+123 173 64
+124 173 64
+125 173 64
+126 173 64
+127 173 64
+128 173 64
+129 173 64
+130 173 64
+131 173 64
+132 173 64
+133 173 64
+134 173 64
+135 173 64
+136 173 64
+137 173 64
+138 173 64
+139 173 64
+140 173 64
+141 173 64
+142 173 64
+143 173 64
+144 173 64
+145 173 64
+146 173 64
+147 173 64
+148 173 64
+149 173 64
+150 173 64
+151 173 64
+152 173 64
+153 173 64
+154 173 64
+155 173 64
+156 173 64
+157 173 64
+158 173 64
+159 173 64
+160 173 64
+161 173 64
+162 173 64
+163 173 64
+164 173 64
+165 173 64
+166 173 64
+167 173 64
+168 173 64
+169 173 64
+170 173 64
+171 173 64
+172 173 64
+173 173 64
+174 173 64
+175 173 64
+176 173 64
+177 173 64
+178 173 64
+179 173 64
+180 173 64
+181 173 64
+182 173 64
+183 173 64
+184 173 64
+185 173 64
+186 173 64
+187 173 64
+188 173 64
+189 173 64
+190 173 64
+191 173 64
+192 173 64
+193 173 64
+194 173 64
+195 173 64
+196 173 64
+197 173 64
+198 173 64
+199 173 64
+200 173 64
+201 173 64
+202 173 64
+203 173 64
+204 173 64
+205 173 64
+206 173 64
+207 173 64
+208 173 64
+209 173 64
+210 173 64
+211 173 64
+212 173 64
+213 173 64
+214 173 64
+215 173 64
+216 173 64
+217 173 64
+218 173 64
+219 173 64
+220 173 64
+221 173 64
+222 173 64
+223 173 64
+224 173 64
+225 173 64
+226 173 64
+227 173 64
+228 173 64
+229 173 64
+230 173 64
+231 173 64
+232 173 64
+233 173 64
+234 173 64
+235 173 64
+236 173 64
+237 173 64
+238 173 64
+239 173 64
+240 173 64
+241 173 64
+242 173 64
+243 173 64
+244 173 64
+245 173 64
+246 173 64
+247 173 64
+248 173 64
+249 173 64
+250 173 64
+251 173 64
+252 173 64
+253 173 64
+254 173 64
+255 173 64
+0 172 64
+1 172 64
+2 172 64
+3 172 64
+4 172 64
+5 172 64
+6 172 64
+7 172 64
+8 172 64
+9 172 64
+10 172 64
+11 172 64
+12 172 64
+13 172 64
+14 172 64
+15 172 64
+16 172 64
+17 172 64
+18 172 64
+19 172 64
+20 172 64
+21 172 64
+22 172 64
+23 172 64
+24 172 64
+25 172 64
+26 172 64
+27 172 64
+28 172 64
+29 172 64
+30 172 64
+31 172 64
+32 172 64
+33 172 64
+34 172 64
+35 172 64
+36 172 64
+37 172 64
+38 172 64
+39 172 64
+40 172 64
+41 172 64
+42 172 64
+43 172 64
+44 172 64
+45 172 64
+46 172 64
+47 172 64
+48 172 64
+49 172 64
+50 172 64
+51 172 64
+52 172 64
+53 172 64
+54 172 64
+55 172 64
+56 172 64
+57 172 64
+58 172 64
+59 172 64
+60 172 64
+61 172 64
+62 172 64
+63 172 64
+64 172 64
+65 172 64
+66 172 64
+67 172 64
+68 172 64
+69 172 64
+70 172 64
+71 172 64
+72 172 64
+73 172 64
+74 172 64
+75 172 64
+76 172 64
+77 172 64
+78 172 64
+79 172 64
+80 172 64
+81 172 64
+82 172 64
+83 172 64
+84 172 64
+85 172 64
+86 172 64
+87 172 64
+88 172 64
+89 172 64
+90 172 64
+91 172 64
+92 172 64
+93 172 64
+94 172 64
+95 172 64
+96 172 64
+97 172 64
+98 172 64
+99 172 64
+100 172 64
+101 172 64
+102 172 64
+103 172 64
+104 172 64
+105 172 64
+106 172 64
+107 172 64
+108 172 64
+109 172 64
+110 172 64
+111 172 64
+112 172 64
+113 172 64
+114 172 64
+115 172 64
+116 172 64
+117 172 64
+118 172 64
+119 172 64
+120 172 64
+121 172 64
+122 172 64
+123 172 64
+124 172 64
+125 172 64
+126 172 64
+127 172 64
+128 172 64
+129 172 64
+130 172 64
+131 172 64
+132 172 64
+133 172 64
+134 172 64
+135 172 64
+136 172 64
+137 172 64
+138 172 64
+139 172 64
+140 172 64
+141 172 64
+142 172 64
+143 172 64
+144 172 64
+145 172 64
+146 172 64
+147 172 64
+148 172 64
+149 172 64
+150 172 64
+151 172 64
+152 172 64
+153 172 64
+154 172 64
+155 172 64
+156 172 64
+157 172 64
+158 172 64
+159 172 64
+160 172 64
+161 172 64
+162 172 64
+163 172 64
+164 172 64
+165 172 64
+166 172 64
+167 172 64
+168 172 64
+169 172 64
+170 172 64
+171 172 64
+172 172 64
+173 172 64
+174 172 64
+175 172 64
+176 172 64
+177 172 64
+178 172 64
+179 172 64
+180 172 64
+181 172 64
+182 172 64
+183 172 64
+184 172 64
+185 172 64
+186 172 64
+187 172 64
+188 172 64
+189 172 64
+190 172 64
+191 172 64
+192 172 64
+193 172 64
+194 172 64
+195 172 64
+196 172 64
+197 172 64
+198 172 64
+199 172 64
+200 172 64
+201 172 64
+202 172 64
+203 172 64
+204 172 64
+205 172 64
+206 172 64
+207 172 64
+208 172 64
+209 172 64
+210 172 64
+211 172 64
+212 172 64
+213 172 64
+214 172 64
+215 172 64
+216 172 64
+217 172 64
+218 172 64
+219 172 64
+220 172 64
+221 172 64
+222 172 64
+223 172 64
+224 172 64
+225 172 64
+226 172 64
+227 172 64
+228 172 64
+229 172 64
+230 172 64
+231 172 64
+232 172 64
+233 172 64
+234 172 64
+235 172 64
+236 172 64
+237 172 64
+238 172 64
+239 172 64
+240 172 64
+241 172 64
+242 172 64
+243 172 64
+244 172 64
+245 172 64
+246 172 64
+247 172 64
+248 172 64
+249 172 64
+250 172 64
+251 172 64
+252 172 64
+253 172 64
+254 172 64
+255 172 64
+0 171 64
+1 171 64
+2 171 64
+3 171 64
+4 171 64
+5 171 64
+6 171 64
+7 171 64
+8 171 64
+9 171 64
+10 171 64
+11 171 64
+12 171 64
+13 171 64
+14 171 64
+15 171 64
+16 171 64
+17 171 64
+18 171 64
+19 171 64
+20 171 64
+21 171 64
+22 171 64
+23 171 64
+24 171 64
+25 171 64
+26 171 64
+27 171 64
+28 171 64
+29 171 64
+30 171 64
+31 171 64
+32 171 64
+33 171 64
+34 171 64
+35 171 64
+36 171 64
+37 171 64
+38 171 64
+39 171 64
+40 171 64
+41 171 64
+42 171 64
+43 171 64
+44 171 64
+45 171 64
+46 171 64
+47 171 64
+48 171 64
+49 171 64
+50 171 64
+51 171 64
+52 171 64
+53 171 64
+54 171 64
+55 171 64
+56 171 64
+57 171 64
+58 171 64
+59 171 64
+60 171 64
+61 171 64
+62 171 64
+63 171 64
+64 171 64
+65 171 64
+66 171 64
+67 171 64
+68 171 64
+69 171 64
+70 171 64
+71 171 64
+72 171 64
+73 171 64
+74 171 64
+75 171 64
+76 171 64
+77 171 64
+78 171 64
+79 171 64
+80 171 64
+81 171 64
+82 171 64
+83 171 64
+84 171 64
+85 171 64
+86 171 64
+87 171 64
+88 171 64
+89 171 64
+90 171 64
+91 171 64
+92 171 64
+93 171 64
+94 171 64
+95 171 64
+96 171 64
+97 171 64
+98 171 64
+99 171 64
+100 171 64
+101 171 64
+102 171 64
+103 171 64
+104 171 64
+105 171 64
+106 171 64
+107 171 64
+108 171 64
+109 171 64
+110 171 64
+111 171 64
+112 171 64
+113 171 64
+114 171 64
+115 171 64
+116 171 64
+117 171 64
+118 171 64
+119 171 64
+120 171 64
+121 171 64
+122 171 64
+123 171 64
+124 171 64
+125 171 64
+126 171 64
+127 171 64
+128 171 64
+129 171 64
+130 171 64
+131 171 64
+132 171 64
+133 171 64
+134 171 64
+135 171 64
+136 171 64
+137 171 64
+138 171 64
+139 171 64
+140 171 64
+141 171 64
+142 171 64
+143 171 64
+144 171 64
+145 171 64
+146 171 64
+147 171 64
+148 171 64
+149 171 64
+150 171 64
+151 171 64
+152 171 64
+153 171 64
+154 171 64
+155 171 64
+156 171 64
+157 171 64
+158 171 64
+159 171 64
+160 171 64
+161 171 64
+162 171 64
+163 171 64
+164 171 64
+165 171 64
+166 171 64
+167 171 64
+168 171 64
+169 171 64
+170 171 64
+171 171 64
+172 171 64
+173 171 64
+174 171 64
+175 171 64
+176 171 64
+177 171 64
+178 171 64
+179 171 64
+180 171 64
+181 171 64
+182 171 64
+183 171 64
+184 171 64
+185 171 64
+186 171 64
+187 171 64
+188 171 64
+189 171 64
+190 171 64
+191 171 64
+192 171 64
+193 171 64
+194 171 64
+195 171 64
+196 171 64
+197 171 64
+198 171 64
+199 171 64
+200 171 64
+201 171 64
+202 171 64
+203 171 64
+204 171 64
+205 171 64
+206 171 64
+207 171 64
+208 171 64
+209 171 64
+210 171 64
+211 171 64
+212 171 64
+213 171 64
+214 171 64
+215 171 64
+216 171 64
+217 171 64
+218 171 64
+219 171 64
+220 171 64
+221 171 64
+222 171 64
+223 171 64
+224 171 64
+225 171 64
+226 171 64
+227 171 64
+228 171 64
+229 171 64
+230 171 64
+231 171 64
+232 171 64
+233 171 64
+234 171 64
+235 171 64
+236 171 64
+237 171 64
+238 171 64
+239 171 64
+240 171 64
+241 171 64
+242 171 64
+243 171 64
+244 171 64
+245 171 64
+246 171 64
+247 171 64
+248 171 64
+249 171 64
+250 171 64
+251 171 64
+252 171 64
+253 171 64
+254 171 64
+255 171 64
+0 170 64
+1 170 64
+2 170 64
+3 170 64
+4 170 64
+5 170 64
+6 170 64
+7 170 64
+8 170 64
+9 170 64
+10 170 64
+11 170 64
+12 170 64
+13 170 64
+14 170 64
+15 170 64
+16 170 64
+17 170 64
+18 170 64
+19 170 64
+20 170 64
+21 170 64
+22 170 64
+23 170 64
+24 170 64
+25 170 64
+26 170 64
+27 170 64
+28 170 64
+29 170 64
+30 170 64
+31 170 64
+32 170 64
+33 170 64
+34 170 64
+35 170 64
+36 170 64
+37 170 64
+38 170 64
+39 170 64
+40 170 64
+41 170 64
+42 170 64
+43 170 64
+44 170 64
+45 170 64
+46 170 64
+47 170 64
+48 170 64
+49 170 64
+50 170 64
+51 170 64
+52 170 64
+53 170 64
+54 170 64
+55 170 64
+56 170 64
+57 170 64
+58 170 64
+59 170 64
+60 170 64
+61 170 64
+62 170 64
+63 170 64
+64 170 64
+65 170 64
+66 170 64
+67 170 64
+68 170 64
+69 170 64
+70 170 64
+71 170 64
+72 170 64
+73 170 64
+74 170 64
+75 170 64
+76 170 64
+77 170 64
+78 170 64
+79 170 64
+80 170 64
+81 170 64
+82 170 64
+83 170 64
+84 170 64
+85 170 64
+86 170 64
+87 170 64
+88 170 64
+89 170 64
+90 170 64
+91 170 64
+92 170 64
+93 170 64
+94 170 64
+95 170 64
+96 170 64
+97 170 64
+98 170 64
+99 170 64
+100 170 64
+101 170 64
+102 170 64
+103 170 64
+104 170 64
+105 170 64
+106 170 64
+107 170 64
+108 170 64
+109 170 64
+110 170 64
+111 170 64
+112 170 64
+113 170 64
+114 170 64
+115 170 64
+116 170 64
+117 170 64
+118 170 64
+119 170 64
+120 170 64
+121 170 64
+122 170 64
+123 170 64
+124 170 64
+125 170 64
+126 170 64
+127 170 64
+128 170 64
+129 170 64
+130 170 64
+131 170 64
+132 170 64
+133 170 64
+134 170 64
+135 170 64
+136 170 64
+137 170 64
+138 170 64
+139 170 64
+140 170 64
+141 170 64
+142 170 64
+143 170 64
+144 170 64
+145 170 64
+146 170 64
+147 170 64
+148 170 64
+149 170 64
+150 170 64
+151 170 64
+152 170 64
+153 170 64
+154 170 64
+155 170 64
+156 170 64
+157 170 64
+158 170 64
+159 170 64
+160 170 64
+161 170 64
+162 170 64
+163 170 64
+164 170 64
+165 170 64
+166 170 64
+167 170 64
+168 170 64
+169 170 64
+170 170 64
+171 170 64
+172 170 64
+173 170 64
+174 170 64
+175 170 64
+176 170 64
+177 170 64
+178 170 64
+179 170 64
+180 170 64
+181 170 64
+182 170 64
+183 170 64
+184 170 64
+185 170 64
+186 170 64
+187 170 64
+188 170 64
+189 170 64
+190 170 64
+191 170 64
+192 170 64
+193 170 64
+194 170 64
+195 170 64
+196 170 64
+197 170 64
+198 170 64
+199 170 64
+200 170 64
+201 170 64
+202 170 64
+203 170 64
+204 170 64
+205 170 64
+206 170 64
+207 170 64
+208 170 64
+209 170 64
+210 170 64
+211 170 64
+212 170 64
+213 170 64
+214 170 64
+215 170 64
+216 170 64
+217 170 64
+218 170 64
+219 170 64
+220 170 64
+221 170 64
+222 170 64
+223 170 64
+224 170 64
+225 170 64
+226 170 64
+227 170 64
+228 170 64
+229 170 64
+230 170 64
+231 170 64
+232 170 64
+233 170 64
+234 170 64
+235 170 64
+236 170 64
+237 170 64
+238 170 64
+239 170 64
+240 170 64
+241 170 64
+242 170 64
+243 170 64
+244 170 64
+245 170 64
+246 170 64
+247 170 64
+248 170 64
+249 170 64
+250 170 64
+251 170 64
+252 170 64
+253 170 64
+254 170 64
+255 170 64
+0 169 64
+1 169 64
+2 169 64
+3 169 64
+4 169 64
+5 169 64
+6 169 64
+7 169 64
+8 169 64
+9 169 64
+10 169 64
+11 169 64
+12 169 64
+13 169 64
+14 169 64
+15 169 64
+16 169 64
+17 169 64
+18 169 64
+19 169 64
+20 169 64
+21 169 64
+22 169 64
+23 169 64
+24 169 64
+25 169 64
+26 169 64
+27 169 64
+28 169 64
+29 169 64
+30 169 64
+31 169 64
+32 169 64
+33 169 64
+34 169 64
+35 169 64
+36 169 64
+37 169 64
+38 169 64
+39 169 64
+40 169 64
+41 169 64
+42 169 64
+43 169 64
+44 169 64
+45 169 64
+46 169 64
+47 169 64
+48 169 64
+49 169 64
+50 169 64
+51 169 64
+52 169 64
+53 169 64
+54 169 64
+55 169 64
+56 169 64
+57 169 64
+58 169 64
+59 169 64
+60 169 64
+61 169 64
+62 169 64
+63 169 64
+64 169 64
+65 169 64
+66 169 64
+67 169 64
+68 169 64
+69 169 64
+70 169 64
+71 169 64
+72 169 64
+73 169 64
+74 169 64
+75 169 64
+76 169 64
+77 169 64
+78 169 64
+79 169 64
+80 169 64
+81 169 64
+82 169 64
+83 169 64
+84 169 64
+85 169 64
+86 169 64
+87 169 64
+88 169 64
+89 169 64
+90 169 64
+91 169 64
+92 169 64
+93 169 64
+94 169 64
+95 169 64
+96 169 64
+97 169 64
+98 169 64
+99 169 64
+100 169 64
+101 169 64
+102 169 64
+103 169 64
+104 169 64
+105 169 64
+106 169 64
+107 169 64
+108 169 64
+109 169 64
+110 169 64
+111 169 64
+112 169 64
+113 169 64
+114 169 64
+115 169 64
+116 169 64
+117 169 64
+118 169 64
+119 169 64
+120 169 64
+121 169 64
+122 169 64
+123 169 64
+124 169 64
+125 169 64
+126 169 64
+127 169 64
+128 169 64
+129 169 64
+130 169 64
+131 169 64
+132 169 64
+133 169 64
+134 169 64
+135 169 64
+136 169 64
+137 169 64
+138 169 64
+139 169 64
+140 169 64
+141 169 64
+142 169 64
+143 169 64
+144 169 64
+145 169 64
+146 169 64
+147 169 64
+148 169 64
+149 169 64
+150 169 64
+151 169 64
+152 169 64
+153 169 64
+154 169 64
+155 169 64
+156 169 64
+157 169 64
+158 169 64
+159 169 64
+160 169 64
+161 169 64
+162 169 64
+163 169 64
+164 169 64
+165 169 64
+166 169 64
+167 169 64
+168 169 64
+169 169 64
+170 169 64
+171 169 64
+172 169 64
+173 169 64
+174 169 64
+175 169 64
+176 169 64
+177 169 64
+178 169 64
+179 169 64
+180 169 64
+181 169 64
+182 169 64
+183 169 64
+184 169 64
+185 169 64
+186 169 64
+187 169 64
+188 169 64
+189 169 64
+190 169 64
+191 169 64
+192 169 64
+193 169 64
+194 169 64
+195 169 64
+196 169 64
+197 169 64
+198 169 64
+199 169 64
+200 169 64
+201 169 64
+202 169 64
+203 169 64
+204 169 64
+205 169 64
+206 169 64
+207 169 64
+208 169 64
+209 169 64
+210 169 64
+211 169 64
+212 169 64
+213 169 64
+214 169 64
+215 169 64
+216 169 64
+217 169 64
+218 169 64
+219 169 64
+220 169 64
+221 169 64
+222 169 64
+223 169 64
+224 169 64
+225 169 64
+226 169 64
+227 169 64
+228 169 64
+229 169 64
+230 169 64
+231 169 64
+232 169 64
+233 169 64
+234 169 64
+235 169 64
+236 169 64
+237 169 64
+238 169 64
+239 169 64
+240 169 64
+241 169 64
+242 169 64
+243 169 64
+244 169 64
+245 169 64
+246 169 64
+247 169 64
+248 169 64
+249 169 64
+250 169 64
+251 169 64
+252 169 64
+253 169 64
+254 169 64
+255 169 64
+0 168 64
+1 168 64
+2 168 64
+3 168 64
+4 168 64
+5 168 64
+6 168 64
+7 168 64
+8 168 64
+9 168 64
+10 168 64
+11 168 64
+12 168 64
+13 168 64
+14 168 64
+15 168 64
+16 168 64
+17 168 64
+18 168 64
+19 168 64
+20 168 64
+21 168 64
+22 168 64
+23 168 64
+24 168 64
+25 168 64
+26 168 64
+27 168 64
+28 168 64
+29 168 64
+30 168 64
+31 168 64
+32 168 64
+33 168 64
+34 168 64
+35 168 64
+36 168 64
+37 168 64
+38 168 64
+39 168 64
+40 168 64
+41 168 64
+42 168 64
+43 168 64
+44 168 64
+45 168 64
+46 168 64
+47 168 64
+48 168 64
+49 168 64
+50 168 64
+51 168 64
+52 168 64
+53 168 64
+54 168 64
+55 168 64
+56 168 64
+57 168 64
+58 168 64
+59 168 64
+60 168 64
+61 168 64
+62 168 64
+63 168 64
+64 168 64
+65 168 64
+66 168 64
+67 168 64
+68 168 64
+69 168 64
+70 168 64
+71 168 64
+72 168 64
+73 168 64
+74 168 64
+75 168 64
+76 168 64
+77 168 64
+78 168 64
+79 168 64
+80 168 64
+81 168 64
+82 168 64
+83 168 64
+84 168 64
+85 168 64
+86 168 64
+87 168 64
+88 168 64
+89 168 64
+90 168 64
+91 168 64
+92 168 64
+93 168 64
+94 168 64
+95 168 64
+96 168 64
+97 168 64
+98 168 64
+99 168 64
+100 168 64
+101 168 64
+102 168 64
+103 168 64
+104 168 64
+105 168 64
+106 168 64
+107 168 64
+108 168 64
+109 168 64
+110 168 64
+111 168 64
+112 168 64
+113 168 64
+114 168 64
+115 168 64
+116 168 64
+117 168 64
+118 168 64
+119 168 64
+120 168 64
+121 168 64
+122 168 64
+123 168 64
+124 168 64
+125 168 64
+126 168 64
+127 168 64
+128 168 64
+129 168 64
+130 168 64
+131 168 64
+132 168 64
+133 168 64
+134 168 64
+135 168 64
+136 168 64
+137 168 64
+138 168 64
+139 168 64
+140 168 64
+141 168 64
+142 168 64
+143 168 64
+144 168 64
+145 168 64
+146 168 64
+147 168 64
+148 168 64
+149 168 64
+150 168 64
+151 168 64
+152 168 64
+153 168 64
+154 168 64
+155 168 64
+156 168 64
+157 168 64
+158 168 64
+159 168 64
+160 168 64
+161 168 64
+162 168 64
+163 168 64
+164 168 64
+165 168 64
+166 168 64
+167 168 64
+168 168 64
+169 168 64
+170 168 64
+171 168 64
+172 168 64
+173 168 64
+174 168 64
+175 168 64
+176 168 64
+177 168 64
+178 168 64
+179 168 64
+180 168 64
+181 168 64
+182 168 64
+183 168 64
+184 168 64
+185 168 64
+186 168 64
+187 168 64
+188 168 64
+189 168 64
+190 168 64
+191 168 64
+192 168 64
+193 168 64
+194 168 64
+195 168 64
+196 168 64
+197 168 64
+198 168 64
+199 168 64
+200 168 64
+201 168 64
+202 168 64
+203 168 64
+204 168 64
+205 168 64
+206 168 64
+207 168 64
+208 168 64
+209 168 64
+210 168 64
+211 168 64
+212 168 64
+213 168 64
+214 168 64
+215 168 64
+216 168 64
+217 168 64
+218 168 64
+219 168 64
+220 168 64
+221 168 64
+222 168 64
+223 168 64
+224 168 64
+225 168 64
+226 168 64
+227 168 64
+228 168 64
+229 168 64
+230 168 64
+231 168 64
+232 168 64
+233 168 64
+234 168 64
+235 168 64
+236 168 64
+237 168 64
+238 168 64
+239 168 64
+240 168 64
+241 168 64
+242 168 64
+243 168 64
+244 168 64
+245 168 64
+246 168 64
+247 168 64
+248 168 64
+249 168 64
+250 168 64
+251 168 64
+252 168 64
+253 168 64
+254 168 64
+255 168 64
+0 167 64
+1 167 64
+2 167 64
+3 167 64
+4 167 64
+5 167 64
+6 167 64
+7 167 64
+8 167 64
+9 167 64
+10 167 64
+11 167 64
+12 167 64
+13 167 64
+14 167 64
+15 167 64
+16 167 64
+17 167 64
+18 167 64
+19 167 64
+20 167 64
+21 167 64
+22 167 64
+23 167 64
+24 167 64
+25 167 64
+26 167 64
+27 167 64
+28 167 64
+29 167 64
+30 167 64
+31 167 64
+32 167 64
+33 167 64
+34 167 64
+35 167 64
+36 167 64
+37 167 64
+38 167 64
+39 167 64
+40 167 64
+41 167 64
+42 167 64
+43 167 64
+44 167 64
+45 167 64
+46 167 64
+47 167 64
+48 167 64
+49 167 64
+50 167 64
+51 167 64
+52 167 64
+53 167 64
+54 167 64
+55 167 64
+56 167 64
+57 167 64
+58 167 64
+59 167 64
+60 167 64
+61 167 64
+62 167 64
+63 167 64
+64 167 64
+65 167 64
+66 167 64
+67 167 64
+68 167 64
+69 167 64
+70 167 64
+71 167 64
+72 167 64
+73 167 64
+74 167 64
+75 167 64
+76 167 64
+77 167 64
+78 167 64
+79 167 64
+80 167 64
+81 167 64
+82 167 64
+83 167 64
+84 167 64
+85 167 64
+86 167 64
+87 167 64
+88 167 64
+89 167 64
+90 167 64
+91 167 64
+92 167 64
+93 167 64
+94 167 64
+95 167 64
+96 167 64
+97 167 64
+98 167 64
+99 167 64
+100 167 64
+101 167 64
+102 167 64
+103 167 64
+104 167 64
+105 167 64
+106 167 64
+107 167 64
+108 167 64
+109 167 64
+110 167 64
+111 167 64
+112 167 64
+113 167 64
+114 167 64
+115 167 64
+116 167 64
+117 167 64
+118 167 64
+119 167 64
+120 167 64
+121 167 64
+122 167 64
+123 167 64
+124 167 64
+125 167 64
+126 167 64
+127 167 64
+128 167 64
+129 167 64
+130 167 64
+131 167 64
+132 167 64
+133 167 64
+134 167 64
+135 167 64
+136 167 64
+137 167 64
+138 167 64
+139 167 64
+140 167 64
+141 167 64
+142 167 64
+143 167 64
+144 167 64
+145 167 64
+146 167 64
+147 167 64
+148 167 64
+149 167 64
+150 167 64
+151 167 64
+152 167 64
+153 167 64
+154 167 64
+155 167 64
+156 167 64
+157 167 64
+158 167 64
+159 167 64
+160 167 64
+161 167 64
+162 167 64
+163 167 64
+164 167 64
+165 167 64
+166 167 64
+167 167 64
+168 167 64
+169 167 64
+170 167 64
+171 167 64
+172 167 64
+173 167 64
+174 167 64
+175 167 64
+176 167 64
+177 167 64
+178 167 64
+179 167 64
+180 167 64
+181 167 64
+182 167 64
+183 167 64
+184 167 64
+185 167 64
+186 167 64
+187 167 64
+188 167 64
+189 167 64
+190 167 64
+191 167 64
+192 167 64
+193 167 64
+194 167 64
+195 167 64
+196 167 64
+197 167 64
+198 167 64
+199 167 64
+200 167 64
+201 167 64
+202 167 64
+203 167 64
+204 167 64
+205 167 64
+206 167 64
+207 167 64
+208 167 64
+209 167 64
+210 167 64
+211 167 64
+212 167 64
+213 167 64
+214 167 64
+215 167 64
+216 167 64
+217 167 64
+218 167 64
+219 167 64
+220 167 64
+221 167 64
+222 167 64
+223 167 64
+224 167 64
+225 167 64
+226 167 64
+227 167 64
+228 167 64
+229 167 64
+230 167 64
+231 167 64
+232 167 64
+233 167 64
+234 167 64
+235 167 64
+236 167 64
+237 167 64
+238 167 64
+239 167 64
+240 167 64
+241 167 64
+242 167 64
+243 167 64
+244 167 64
+245 167 64
+246 167 64
+247 167 64
+248 167 64
+249 167 64
+250 167 64
+251 167 64
+252 167 64
+253 167 64
+254 167 64
+255 167 64
+0 166 64
+1 166 64
+2 166 64
+3 166 64
+4 166 64
+5 166 64
+6 166 64
+7 166 64
+8 166 64
+9 166 64
+10 166 64
+11 166 64
+12 166 64
+13 166 64
+14 166 64
+15 166 64
+16 166 64
+17 166 64
+18 166 64
+19 166 64
+20 166 64
+21 166 64
+22 166 64
+23 166 64
+24 166 64
+25 166 64
+26 166 64
+27 166 64
+28 166 64
+29 166 64
+30 166 64
+31 166 64
+32 166 64
+33 166 64
+34 166 64
+35 166 64
+36 166 64
+37 166 64
+38 166 64
+39 166 64
+40 166 64
+41 166 64
+42 166 64
+43 166 64
+44 166 64
+45 166 64
+46 166 64
+47 166 64
+48 166 64
+49 166 64
+50 166 64
+51 166 64
+52 166 64
+53 166 64
+54 166 64
+55 166 64
+56 166 64
+57 166 64
+58 166 64
+59 166 64
+60 166 64
+61 166 64
+62 166 64
+63 166 64
+64 166 64
+65 166 64
+66 166 64
+67 166 64
+68 166 64
+69 166 64
+70 166 64
+71 166 64
+72 166 64
+73 166 64
+74 166 64
+75 166 64
+76 166 64
+77 166 64
+78 166 64
+79 166 64
+80 166 64
+81 166 64
+82 166 64
+83 166 64
+84 166 64
+85 166 64
+86 166 64
+87 166 64
+88 166 64
+89 166 64
+90 166 64
+91 166 64
+92 166 64
+93 166 64
+94 166 64
+95 166 64
+96 166 64
+97 166 64
+98 166 64
+99 166 64
+100 166 64
+101 166 64
+102 166 64
+103 166 64
+104 166 64
+105 166 64
+106 166 64
+107 166 64
+108 166 64
+109 166 64
+110 166 64
+111 166 64
+112 166 64
+113 166 64
+114 166 64
+115 166 64
+116 166 64
+117 166 64
+118 166 64
+119 166 64
+120 166 64
+121 166 64
+122 166 64
+123 166 64
+124 166 64
+125 166 64
+126 166 64
+127 166 64
+128 166 64
+129 166 64
+130 166 64
+131 166 64
+132 166 64
+133 166 64
+134 166 64
+135 166 64
+136 166 64
+137 166 64
+138 166 64
+139 166 64
+140 166 64
+141 166 64
+142 166 64
+143 166 64
+144 166 64
+145 166 64
+146 166 64
+147 166 64
+148 166 64
+149 166 64
+150 166 64
+151 166 64
+152 166 64
+153 166 64
+154 166 64
+155 166 64
+156 166 64
+157 166 64
+158 166 64
+159 166 64
+160 166 64
+161 166 64
+162 166 64
+163 166 64
+164 166 64
+165 166 64
+166 166 64
+167 166 64
+168 166 64
+169 166 64
+170 166 64
+171 166 64
+172 166 64
+173 166 64
+174 166 64
+175 166 64
+176 166 64
+177 166 64
+178 166 64
+179 166 64
+180 166 64
+181 166 64
+182 166 64
+183 166 64
+184 166 64
+185 166 64
+186 166 64
+187 166 64
+188 166 64
+189 166 64
+190 166 64
+191 166 64
+192 166 64
+193 166 64
+194 166 64
+195 166 64
+196 166 64
+197 166 64
+198 166 64
+199 166 64
+200 166 64
+201 166 64
+202 166 64
+203 166 64
+204 166 64
+205 166 64
+206 166 64
+207 166 64
+208 166 64
+209 166 64
+210 166 64
+211 166 64
+212 166 64
+213 166 64
+214 166 64
+215 166 64
+216 166 64
+217 166 64
+218 166 64
+219 166 64
+220 166 64
+221 166 64
+222 166 64
+223 166 64
+224 166 64
+225 166 64
+226 166 64
+227 166 64
+228 166 64
+229 166 64
+230 166 64
+231 166 64
+232 166 64
+233 166 64
+234 166 64
+235 166 64
+236 166 64
+237 166 64
+238 166 64
+239 166 64
+240 166 64
+241 166 64
+242 166 64
+243 166 64
+244 166 64
+245 166 64
+246 166 64
+247 166 64
+248 166 64
+249 166 64
+250 166 64
+251 166 64
+252 166 64
+253 166 64
+254 166 64
+255 166 64
+0 165 64
+1 165 64
+2 165 64
+3 165 64
+4 165 64
+5 165 64
+6 165 64
+7 165 64
+8 165 64
+9 165 64
+10 165 64
+11 165 64
+12 165 64
+13 165 64
+14 165 64
+15 165 64
+16 165 64
+17 165 64
+18 165 64
+19 165 64
+20 165 64
+21 165 64
+22 165 64
+23 165 64
+24 165 64
+25 165 64
+26 165 64
+27 165 64
+28 165 64
+29 165 64
+30 165 64
+31 165 64
+32 165 64
+33 165 64
+34 165 64
+35 165 64
+36 165 64
+37 165 64
+38 165 64
+39 165 64
+40 165 64
+41 165 64
+42 165 64
+43 165 64
+44 165 64
+45 165 64
+46 165 64
+47 165 64
+48 165 64
+49 165 64
+50 165 64
+51 165 64
+52 165 64
+53 165 64
+54 165 64
+55 165 64
+56 165 64
+57 165 64
+58 165 64
+59 165 64
+60 165 64
+61 165 64
+62 165 64
+63 165 64
+64 165 64
+65 165 64
+66 165 64
+67 165 64
+68 165 64
+69 165 64
+70 165 64
+71 165 64
+72 165 64
+73 165 64
+74 165 64
+75 165 64
+76 165 64
+77 165 64
+78 165 64
+79 165 64
+80 165 64
+81 165 64
+82 165 64
+83 165 64
+84 165 64
+85 165 64
+86 165 64
+87 165 64
+88 165 64
+89 165 64
+90 165 64
+91 165 64
+92 165 64
+93 165 64
+94 165 64
+95 165 64
+96 165 64
+97 165 64
+98 165 64
+99 165 64
+100 165 64
+101 165 64
+102 165 64
+103 165 64
+104 165 64
+105 165 64
+106 165 64
+107 165 64
+108 165 64
+109 165 64
+110 165 64
+111 165 64
+112 165 64
+113 165 64
+114 165 64
+115 165 64
+116 165 64
+117 165 64
+118 165 64
+119 165 64
+120 165 64
+121 165 64
+122 165 64
+123 165 64
+124 165 64
+125 165 64
+126 165 64
+127 165 64
+128 165 64
+129 165 64
+130 165 64
+131 165 64
+132 165 64
+133 165 64
+134 165 64
+135 165 64
+136 165 64
+137 165 64
+138 165 64
+139 165 64
+140 165 64
+141 165 64
+142 165 64
+143 165 64
+144 165 64
+145 165 64
+146 165 64
+147 165 64
+148 165 64
+149 165 64
+150 165 64
+151 165 64
+152 165 64
+153 165 64
+154 165 64
+155 165 64
+156 165 64
+157 165 64
+158 165 64
+159 165 64
+160 165 64
+161 165 64
+162 165 64
+163 165 64
+164 165 64
+165 165 64
+166 165 64
+167 165 64
+168 165 64
+169 165 64
+170 165 64
+171 165 64
+172 165 64
+173 165 64
+174 165 64
+175 165 64
+176 165 64
+177 165 64
+178 165 64
+179 165 64
+180 165 64
+181 165 64
+182 165 64
+183 165 64
+184 165 64
+185 165 64
+186 165 64
+187 165 64
+188 165 64
+189 165 64
+190 165 64
+191 165 64
+192 165 64
+193 165 64
+194 165 64
+195 165 64
+196 165 64
+197 165 64
+198 165 64
+199 165 64
+200 165 64
+201 165 64
+202 165 64
+203 165 64
+204 165 64
+205 165 64
+206 165 64
+207 165 64
+208 165 64
+209 165 64
+210 165 64
+211 165 64
+212 165 64
+213 165 64
+214 165 64
+215 165 64
+216 165 64
+217 165 64
+218 165 64
+219 165 64
+220 165 64
+221 165 64
+222 165 64
+223 165 64
+224 165 64
+225 165 64
+226 165 64
+227 165 64
+228 165 64
+229 165 64
+230 165 64
+231 165 64
+232 165 64
+233 165 64
+234 165 64
+235 165 64
+236 165 64
+237 165 64
+238 165 64
+239 165 64
+240 165 64
+241 165 64
+242 165 64
+243 165 64
+244 165 64
+245 165 64
+246 165 64
+247 165 64
+248 165 64
+249 165 64
+250 165 64
+251 165 64
+252 165 64
+253 165 64
+254 165 64
+255 165 64
+0 164 64
+1 164 64
+2 164 64
+3 164 64
+4 164 64
+5 164 64
+6 164 64
+7 164 64
+8 164 64
+9 164 64
+10 164 64
+11 164 64
+12 164 64
+13 164 64
+14 164 64
+15 164 64
+16 164 64
+17 164 64
+18 164 64
+19 164 64
+20 164 64
+21 164 64
+22 164 64
+23 164 64
+24 164 64
+25 164 64
+26 164 64
+27 164 64
+28 164 64
+29 164 64
+30 164 64
+31 164 64
+32 164 64
+33 164 64
+34 164 64
+35 164 64
+36 164 64
+37 164 64
+38 164 64
+39 164 64
+40 164 64
+41 164 64
+42 164 64
+43 164 64
+44 164 64
+45 164 64
+46 164 64
+47 164 64
+48 164 64
+49 164 64
+50 164 64
+51 164 64
+52 164 64
+53 164 64
+54 164 64
+55 164 64
+56 164 64
+57 164 64
+58 164 64
+59 164 64
+60 164 64
+61 164 64
+62 164 64
+63 164 64
+64 164 64
+65 164 64
+66 164 64
+67 164 64
+68 164 64
+69 164 64
+70 164 64
+71 164 64
+72 164 64
+73 164 64
+74 164 64
+75 164 64
+76 164 64
+77 164 64
+78 164 64
+79 164 64
+80 164 64
+81 164 64
+82 164 64
+83 164 64
+84 164 64
+85 164 64
+86 164 64
+87 164 64
+88 164 64
+89 164 64
+90 164 64
+91 164 64
+92 164 64
+93 164 64
+94 164 64
+95 164 64
+96 164 64
+97 164 64
+98 164 64
+99 164 64
+100 164 64
+101 164 64
+102 164 64
+103 164 64
+104 164 64
+105 164 64
+106 164 64
+107 164 64
+108 164 64
+109 164 64
+110 164 64
+111 164 64
+112 164 64
+113 164 64
+114 164 64
+115 164 64
+116 164 64
+117 164 64
+118 164 64
+119 164 64
+120 164 64
+121 164 64
+122 164 64
+123 164 64
+124 164 64
+125 164 64
+126 164 64
+127 164 64
+128 164 64
+129 164 64
+130 164 64
+131 164 64
+132 164 64
+133 164 64
+134 164 64
+135 164 64
+136 164 64
+137 164 64
+138 164 64
+139 164 64
+140 164 64
+141 164 64
+142 164 64
+143 164 64
+144 164 64
+145 164 64
+146 164 64
+147 164 64
+148 164 64
+149 164 64
+150 164 64
+151 164 64
+152 164 64
+153 164 64
+154 164 64
+155 164 64
+156 164 64
+157 164 64
+158 164 64
+159 164 64
+160 164 64
+161 164 64
+162 164 64
+163 164 64
+164 164 64
+165 164 64
+166 164 64
+167 164 64
+168 164 64
+169 164 64
+170 164 64
+171 164 64
+172 164 64
+173 164 64
+174 164 64
+175 164 64
+176 164 64
+177 164 64
+178 164 64
+179 164 64
+180 164 64
+181 164 64
+182 164 64
+183 164 64
+184 164 64
+185 164 64
+186 164 64
+187 164 64
+188 164 64
+189 164 64
+190 164 64
+191 164 64
+192 164 64
+193 164 64
+194 164 64
+195 164 64
+196 164 64
+197 164 64
+198 164 64
+199 164 64
+200 164 64
+201 164 64
+202 164 64
+203 164 64
+204 164 64
+205 164 64
+206 164 64
+207 164 64
+208 164 64
+209 164 64
+210 164 64
+211 164 64
+212 164 64
+213 164 64
+214 164 64
+215 164 64
+216 164 64
+217 164 64
+218 164 64
+219 164 64
+220 164 64
+221 164 64
+222 164 64
+223 164 64
+224 164 64
+225 164 64
+226 164 64
+227 164 64
+228 164 64
+229 164 64
+230 164 64
+231 164 64
+232 164 64
+233 164 64
+234 164 64
+235 164 64
+236 164 64
+237 164 64
+238 164 64
+239 164 64
+240 164 64
+241 164 64
+242 164 64
+243 164 64
+244 164 64
+245 164 64
+246 164 64
+247 164 64
+248 164 64
+249 164 64
+250 164 64
+251 164 64
+252 164 64
+253 164 64
+254 164 64
+255 164 64
+0 163 64
+1 163 64
+2 163 64
+3 163 64
+4 163 64
+5 163 64
+6 163 64
+7 163 64
+8 163 64
+9 163 64
+10 163 64
+11 163 64
+12 163 64
+13 163 64
+14 163 64
+15 163 64
+16 163 64
+17 163 64
+18 163 64
+19 163 64
+20 163 64
+21 163 64
+22 163 64
+23 163 64
+24 163 64
+25 163 64
+26 163 64
+27 163 64
+28 163 64
+29 163 64
+30 163 64
+31 163 64
+32 163 64
+33 163 64
+34 163 64
+35 163 64
+36 163 64
+37 163 64
+38 163 64
+39 163 64
+40 163 64
+41 163 64
+42 163 64
+43 163 64
+44 163 64
+45 163 64
+46 163 64
+47 163 64
+48 163 64
+49 163 64
+50 163 64
+51 163 64
+52 163 64
+53 163 64
+54 163 64
+55 163 64
+56 163 64
+57 163 64
+58 163 64
+59 163 64
+60 163 64
+61 163 64
+62 163 64
+63 163 64
+64 163 64
+65 163 64
+66 163 64
+67 163 64
+68 163 64
+69 163 64
+70 163 64
+71 163 64
+72 163 64
+73 163 64
+74 163 64
+75 163 64
+76 163 64
+77 163 64
+78 163 64
+79 163 64
+80 163 64
+81 163 64
+82 163 64
+83 163 64
+84 163 64
+85 163 64
+86 163 64
+87 163 64
+88 163 64
+89 163 64
+90 163 64
+91 163 64
+92 163 64
+93 163 64
+94 163 64
+95 163 64
+96 163 64
+97 163 64
+98 163 64
+99 163 64
+100 163 64
+101 163 64
+102 163 64
+103 163 64
+104 163 64
+105 163 64
+106 163 64
+107 163 64
+108 163 64
+109 163 64
+110 163 64
+111 163 64
+112 163 64
+113 163 64
+114 163 64
+115 163 64
+116 163 64
+117 163 64
+118 163 64
+119 163 64
+120 163 64
+121 163 64
+122 163 64
+123 163 64
+124 163 64
+125 163 64
+126 163 64
+127 163 64
+128 163 64
+129 163 64
+130 163 64
+131 163 64
+132 163 64
+133 163 64
+134 163 64
+135 163 64
+136 163 64
+137 163 64
+138 163 64
+139 163 64
+140 163 64
+141 163 64
+142 163 64
+143 163 64
+144 163 64
+145 163 64
+146 163 64
+147 163 64
+148 163 64
+149 163 64
+150 163 64
+151 163 64
+152 163 64
+153 163 64
+154 163 64
+155 163 64
+156 163 64
+157 163 64
+158 163 64
+159 163 64
+160 163 64
+161 163 64
+162 163 64
+163 163 64
+164 163 64
+165 163 64
+166 163 64
+167 163 64
+168 163 64
+169 163 64
+170 163 64
+171 163 64
+172 163 64
+173 163 64
+174 163 64
+175 163 64
+176 163 64
+177 163 64
+178 163 64
+179 163 64
+180 163 64
+181 163 64
+182 163 64
+183 163 64
+184 163 64
+185 163 64
+186 163 64
+187 163 64
+188 163 64
+189 163 64
+190 163 64
+191 163 64
+192 163 64
+193 163 64
+194 163 64
+195 163 64
+196 163 64
+197 163 64
+198 163 64
+199 163 64
+200 163 64
+201 163 64
+202 163 64
+203 163 64
+204 163 64
+205 163 64
+206 163 64
+207 163 64
+208 163 64
+209 163 64
+210 163 64
+211 163 64
+212 163 64
+213 163 64
+214 163 64
+215 163 64
+216 163 64
+217 163 64
+218 163 64
+219 163 64
+220 163 64
+221 163 64
+222 163 64
+223 163 64
+224 163 64
+225 163 64
+226 163 64
+227 163 64
+228 163 64
+229 163 64
+230 163 64
+231 163 64
+232 163 64
+233 163 64
+234 163 64
+235 163 64
+236 163 64
+237 163 64
+238 163 64
+239 163 64
+240 163 64
+241 163 64
+242 163 64
+243 163 64
+244 163 64
+245 163 64
+246 163 64
+247 163 64
+248 163 64
+249 163 64
+250 163 64
+251 163 64
+252 163 64
+253 163 64
+254 163 64
+255 163 64
+0 162 64
+1 162 64
+2 162 64
+3 162 64
+4 162 64
+5 162 64
+6 162 64
+7 162 64
+8 162 64
+9 162 64
+10 162 64
+11 162 64
+12 162 64
+13 162 64
+14 162 64
+15 162 64
+16 162 64
+17 162 64
+18 162 64
+19 162 64
+20 162 64
+21 162 64
+22 162 64
+23 162 64
+24 162 64
+25 162 64
+26 162 64
+27 162 64
+28 162 64
+29 162 64
+30 162 64
+31 162 64
+32 162 64
+33 162 64
+34 162 64
+35 162 64
+36 162 64
+37 162 64
+38 162 64
+39 162 64
+40 162 64
+41 162 64
+42 162 64
+43 162 64
+44 162 64
+45 162 64
+46 162 64
+47 162 64
+48 162 64
+49 162 64
+50 162 64
+51 162 64
+52 162 64
+53 162 64
+54 162 64
+55 162 64
+56 162 64
+57 162 64
+58 162 64
+59 162 64
+60 162 64
+61 162 64
+62 162 64
+63 162 64
+64 162 64
+65 162 64
+66 162 64
+67 162 64
+68 162 64
+69 162 64
+70 162 64
+71 162 64
+72 162 64
+73 162 64
+74 162 64
+75 162 64
+76 162 64
+77 162 64
+78 162 64
+79 162 64
+80 162 64
+81 162 64
+82 162 64
+83 162 64
+84 162 64
+85 162 64
+86 162 64
+87 162 64
+88 162 64
+89 162 64
+90 162 64
+91 162 64
+92 162 64
+93 162 64
+94 162 64
+95 162 64
+96 162 64
+97 162 64
+98 162 64
+99 162 64
+100 162 64
+101 162 64
+102 162 64
+103 162 64
+104 162 64
+105 162 64
+106 162 64
+107 162 64
+108 162 64
+109 162 64
+110 162 64
+111 162 64
+112 162 64
+113 162 64
+114 162 64
+115 162 64
+116 162 64
+117 162 64
+118 162 64
+119 162 64
+120 162 64
+121 162 64
+122 162 64
+123 162 64
+124 162 64
+125 162 64
+126 162 64
+127 162 64
+128 162 64
+129 162 64
+130 162 64
+131 162 64
+132 162 64
+133 162 64
+134 162 64
+135 162 64
+136 162 64
+137 162 64
+138 162 64
+139 162 64
+140 162 64
+141 162 64
+142 162 64
+143 162 64
+144 162 64
+145 162 64
+146 162 64
+147 162 64
+148 162 64
+149 162 64
+150 162 64
+151 162 64
+152 162 64
+153 162 64
+154 162 64
+155 162 64
+156 162 64
+157 162 64
+158 162 64
+159 162 64
+160 162 64
+161 162 64
+162 162 64
+163 162 64
+164 162 64
+165 162 64
+166 162 64
+167 162 64
+168 162 64
+169 162 64
+170 162 64
+171 162 64
+172 162 64
+173 162 64
+174 162 64
+175 162 64
+176 162 64
+177 162 64
+178 162 64
+179 162 64
+180 162 64
+181 162 64
+182 162 64
+183 162 64
+184 162 64
+185 162 64
+186 162 64
+187 162 64
+188 162 64
+189 162 64
+190 162 64
+191 162 64
+192 162 64
+193 162 64
+194 162 64
+195 162 64
+196 162 64
+197 162 64
+198 162 64
+199 162 64
+200 162 64
+201 162 64
+202 162 64
+203 162 64
+204 162 64
+205 162 64
+206 162 64
+207 162 64
+208 162 64
+209 162 64
+210 162 64
+211 162 64
+212 162 64
+213 162 64
+214 162 64
+215 162 64
+216 162 64
+217 162 64
+218 162 64
+219 162 64
+220 162 64
+221 162 64
+222 162 64
+223 162 64
+224 162 64
+225 162 64
+226 162 64
+227 162 64
+228 162 64
+229 162 64
+230 162 64
+231 162 64
+232 162 64
+233 162 64
+234 162 64
+235 162 64
+236 162 64
+237 162 64
+238 162 64
+239 162 64
+240 162 64
+241 162 64
+242 162 64
+243 162 64
+244 162 64
+245 162 64
+246 162 64
+247 162 64
+248 162 64
+249 162 64
+250 162 64
+251 162 64
+252 162 64
+253 162 64
+254 162 64
+255 162 64
+0 161 64
+1 161 64
+2 161 64
+3 161 64
+4 161 64
+5 161 64
+6 161 64
+7 161 64
+8 161 64
+9 161 64
+10 161 64
+11 161 64
+12 161 64
+13 161 64
+14 161 64
+15 161 64
+16 161 64
+17 161 64
+18 161 64
+19 161 64
+20 161 64
+21 161 64
+22 161 64
+23 161 64
+24 161 64
+25 161 64
+26 161 64
+27 161 64
+28 161 64
+29 161 64
+30 161 64
+31 161 64
+32 161 64
+33 161 64
+34 161 64
+35 161 64
+36 161 64
+37 161 64
+38 161 64
+39 161 64
+40 161 64
+41 161 64
+42 161 64
+43 161 64
+44 161 64
+45 161 64
+46 161 64
+47 161 64
+48 161 64
+49 161 64
+50 161 64
+51 161 64
+52 161 64
+53 161 64
+54 161 64
+55 161 64
+56 161 64
+57 161 64
+58 161 64
+59 161 64
+60 161 64
+61 161 64
+62 161 64
+63 161 64
+64 161 64
+65 161 64
+66 161 64
+67 161 64
+68 161 64
+69 161 64
+70 161 64
+71 161 64
+72 161 64
+73 161 64
+74 161 64
+75 161 64
+76 161 64
+77 161 64
+78 161 64
+79 161 64
+80 161 64
+81 161 64
+82 161 64
+83 161 64
+84 161 64
+85 161 64
+86 161 64
+87 161 64
+88 161 64
+89 161 64
+90 161 64
+91 161 64
+92 161 64
+93 161 64
+94 161 64
+95 161 64
+96 161 64
+97 161 64
+98 161 64
+99 161 64
+100 161 64
+101 161 64
+102 161 64
+103 161 64
+104 161 64
+105 161 64
+106 161 64
+107 161 64
+108 161 64
+109 161 64
+110 161 64
+111 161 64
+112 161 64
+113 161 64
+114 161 64
+115 161 64
+116 161 64
+117 161 64
+118 161 64
+119 161 64
+120 161 64
+121 161 64
+122 161 64
+123 161 64
+124 161 64
+125 161 64
+126 161 64
+127 161 64
+128 161 64
+129 161 64
+130 161 64
+131 161 64
+132 161 64
+133 161 64
+134 161 64
+135 161 64
+136 161 64
+137 161 64
+138 161 64
+139 161 64
+140 161 64
+141 161 64
+142 161 64
+143 161 64
+144 161 64
+145 161 64
+146 161 64
+147 161 64
+148 161 64
+149 161 64
+150 161 64
+151 161 64
+152 161 64
+153 161 64
+154 161 64
+155 161 64
+156 161 64
+157 161 64
+158 161 64
+159 161 64
+160 161 64
+161 161 64
+162 161 64
+163 161 64
+164 161 64
+165 161 64
+166 161 64
+167 161 64
+168 161 64
+169 161 64
+170 161 64
+171 161 64
+172 161 64
+173 161 64
+174 161 64
+175 161 64
+176 161 64
+177 161 64
+178 161 64
+179 161 64
+180 161 64
+181 161 64
+182 161 64
+183 161 64
+184 161 64
+185 161 64
+186 161 64
+187 161 64
+188 161 64
+189 161 64
+190 161 64
+191 161 64
+192 161 64
+193 161 64
+194 161 64
+195 161 64
+196 161 64
+197 161 64
+198 161 64
+199 161 64
+200 161 64
+201 161 64
+202 161 64
+203 161 64
+204 161 64
+205 161 64
+206 161 64
+207 161 64
+208 161 64
+209 161 64
+210 161 64
+211 161 64
+212 161 64
+213 161 64
+214 161 64
+215 161 64
+216 161 64
+217 161 64
+218 161 64
+219 161 64
+220 161 64
+221 161 64
+222 161 64
+223 161 64
+224 161 64
+225 161 64
+226 161 64
+227 161 64
+228 161 64
+229 161 64
+230 161 64
+231 161 64
+232 161 64
+233 161 64
+234 161 64
+235 161 64
+236 161 64
+237 161 64
+238 161 64
+239 161 64
+240 161 64
+241 161 64
+242 161 64
+243 161 64
+244 161 64
+245 161 64
+246 161 64
+247 161 64
+248 161 64
+249 161 64
+250 161 64
+251 161 64
+252 161 64
+253 161 64
+254 161 64
+255 161 64
+0 160 64
+1 160 64
+2 160 64
+3 160 64
+4 160 64
+5 160 64
+6 160 64
+7 160 64
+8 160 64
+9 160 64
+10 160 64
+11 160 64
+12 160 64
+13 160 64
+14 160 64
+15 160 64
+16 160 64
+17 160 64
+18 160 64
+19 160 64
+20 160 64
+21 160 64
+22 160 64
+23 160 64
+24 160 64
+25 160 64
+26 160 64
+27 160 64
+28 160 64
+29 160 64
+30 160 64
+31 160 64
+32 160 64
+33 160 64
+34 160 64
+35 160 64
+36 160 64
+37 160 64
+38 160 64
+39 160 64
+40 160 64
+41 160 64
+42 160 64
+43 160 64
+44 160 64
+45 160 64
+46 160 64
+47 160 64
+48 160 64
+49 160 64
+50 160 64
+51 160 64
+52 160 64
+53 160 64
+54 160 64
+55 160 64
+56 160 64
+57 160 64
+58 160 64
+59 160 64
+60 160 64
+61 160 64
+62 160 64
+63 160 64
+64 160 64
+65 160 64
+66 160 64
+67 160 64
+68 160 64
+69 160 64
+70 160 64
+71 160 64
+72 160 64
+73 160 64
+74 160 64
+75 160 64
+76 160 64
+77 160 64
+78 160 64
+79 160 64
+80 160 64
+81 160 64
+82 160 64
+83 160 64
+84 160 64
+85 160 64
+86 160 64
+87 160 64
+88 160 64
+89 160 64
+90 160 64
+91 160 64
+92 160 64
+93 160 64
+94 160 64
+95 160 64
+96 160 64
+97 160 64
+98 160 64
+99 160 64
+100 160 64
+101 160 64
+102 160 64
+103 160 64
+104 160 64
+105 160 64
+106 160 64
+107 160 64
+108 160 64
+109 160 64
+110 160 64
+111 160 64
+112 160 64
+113 160 64
+114 160 64
+115 160 64
+116 160 64
+117 160 64
+118 160 64
+119 160 64
+120 160 64
+121 160 64
+122 160 64
+123 160 64
+124 160 64
+125 160 64
+126 160 64
+127 160 64
+128 160 64
+129 160 64
+130 160 64
+131 160 64
+132 160 64
+133 160 64
+134 160 64
+135 160 64
+136 160 64
+137 160 64
+138 160 64
+139 160 64
+140 160 64
+141 160 64
+142 160 64
+143 160 64
+144 160 64
+145 160 64
+146 160 64
+147 160 64
+148 160 64
+149 160 64
+150 160 64
+151 160 64
+152 160 64
+153 160 64
+154 160 64
+155 160 64
+156 160 64
+157 160 64
+158 160 64
+159 160 64
+160 160 64
+161 160 64
+162 160 64
+163 160 64
+164 160 64
+165 160 64
+166 160 64
+167 160 64
+168 160 64
+169 160 64
+170 160 64
+171 160 64
+172 160 64
+173 160 64
+174 160 64
+175 160 64
+176 160 64
+177 160 64
+178 160 64
+179 160 64
+180 160 64
+181 160 64
+182 160 64
+183 160 64
+184 160 64
+185 160 64
+186 160 64
+187 160 64
+188 160 64
+189 160 64
+190 160 64
+191 160 64
+192 160 64
+193 160 64
+194 160 64
+195 160 64
+196 160 64
+197 160 64
+198 160 64
+199 160 64
+200 160 64
+201 160 64
+202 160 64
+203 160 64
+204 160 64
+205 160 64
+206 160 64
+207 160 64
+208 160 64
+209 160 64
+210 160 64
+211 160 64
+212 160 64
+213 160 64
+214 160 64
+215 160 64
+216 160 64
+217 160 64
+218 160 64
+219 160 64
+220 160 64
+221 160 64
+222 160 64
+223 160 64
+224 160 64
+225 160 64
+226 160 64
+227 160 64
+228 160 64
+229 160 64
+230 160 64
+231 160 64
+232 160 64
+233 160 64
+234 160 64
+235 160 64
+236 160 64
+237 160 64
+238 160 64
+239 160 64
+240 160 64
+241 160 64
+242 160 64
+243 160 64
+244 160 64
+245 160 64
+246 160 64
+247 160 64
+248 160 64
+249 160 64
+250 160 64
+251 160 64
+252 160 64
+253 160 64
+254 160 64
+255 160 64
+0 159 64
+1 159 64
+2 159 64
+3 159 64
+4 159 64
+5 159 64
+6 159 64
+7 159 64
+8 159 64
+9 159 64
+10 159 64
+11 159 64
+12 159 64
+13 159 64
+14 159 64
+15 159 64
+16 159 64
+17 159 64
+18 159 64
+19 159 64
+20 159 64
+21 159 64
+22 159 64
+23 159 64
+24 159 64
+25 159 64
+26 159 64
+27 159 64
+28 159 64
+29 159 64
+30 159 64
+31 159 64
+32 159 64
+33 159 64
+34 159 64
+35 159 64
+36 159 64
+37 159 64
+38 159 64
+39 159 64
+40 159 64
+41 159 64
+42 159 64
+43 159 64
+44 159 64
+45 159 64
+46 159 64
+47 159 64
+48 159 64
+49 159 64
+50 159 64
+51 159 64
+52 159 64
+53 159 64
+54 159 64
+55 159 64
+56 159 64
+57 159 64
+58 159 64
+59 159 64
+60 159 64
+61 159 64
+62 159 64
+63 159 64
+64 159 64
+65 159 64
+66 159 64
+67 159 64
+68 159 64
+69 159 64
+70 159 64
+71 159 64
+72 159 64
+73 159 64
+74 159 64
+75 159 64
+76 159 64
+77 159 64
+78 159 64
+79 159 64
+80 159 64
+81 159 64
+82 159 64
+83 159 64
+84 159 64
+85 159 64
+86 159 64
+87 159 64
+88 159 64
+89 159 64
+90 159 64
+91 159 64
+92 159 64
+93 159 64
+94 159 64
+95 159 64
+96 159 64
+97 159 64
+98 159 64
+99 159 64
+100 159 64
+101 159 64
+102 159 64
+103 159 64
+104 159 64
+105 159 64
+106 159 64
+107 159 64
+108 159 64
+109 159 64
+110 159 64
+111 159 64
+112 159 64
+113 159 64
+114 159 64
+115 159 64
+116 159 64
+117 159 64
+118 159 64
+119 159 64
+120 159 64
+121 159 64
+122 159 64
+123 159 64
+124 159 64
+125 159 64
+126 159 64
+127 159 64
+128 159 64
+129 159 64
+130 159 64
+131 159 64
+132 159 64
+133 159 64
+134 159 64
+135 159 64
+136 159 64
+137 159 64
+138 159 64
+139 159 64
+140 159 64
+141 159 64
+142 159 64
+143 159 64
+144 159 64
+145 159 64
+146 159 64
+147 159 64
+148 159 64
+149 159 64
+150 159 64
+151 159 64
+152 159 64
+153 159 64
+154 159 64
+155 159 64
+156 159 64
+157 159 64
+158 159 64
+159 159 64
+160 159 64
+161 159 64
+162 159 64
+163 159 64
+164 159 64
+165 159 64
+166 159 64
+167 159 64
+168 159 64
+169 159 64
+170 159 64
+171 159 64
+172 159 64
+173 159 64
+174 159 64
+175 159 64
+176 159 64
+177 159 64
+178 159 64
+179 159 64
+180 159 64
+181 159 64
+182 159 64
+183 159 64
+184 159 64
+185 159 64
+186 159 64
+187 159 64
+188 159 64
+189 159 64
+190 159 64
+191 159 64
+192 159 64
+193 159 64
+194 159 64
+195 159 64
+196 159 64
+197 159 64
+198 159 64
+199 159 64
+200 159 64
+201 159 64
+202 159 64
+203 159 64
+204 159 64
+205 159 64
+206 159 64
+207 159 64
+208 159 64
+209 159 64
+210 159 64
+211 159 64
+212 159 64
+213 159 64
+214 159 64
+215 159 64
+216 159 64
+217 159 64
+218 159 64
+219 159 64
+220 159 64
+221 159 64
+222 159 64
+223 159 64
+224 159 64
+225 159 64
+226 159 64
+227 159 64
+228 159 64
+229 159 64
+230 159 64
+231 159 64
+232 159 64
+233 159 64
+234 159 64
+235 159 64
+236 159 64
+237 159 64
+238 159 64
+239 159 64
+240 159 64
+241 159 64
+242 159 64
+243 159 64
+244 159 64
+245 159 64
+246 159 64
+247 159 64
+248 159 64
+249 159 64
+250 159 64
+251 159 64
+252 159 64
+253 159 64
+254 159 64
+255 159 64
+0 158 64
+1 158 64
+2 158 64
+3 158 64
+4 158 64
+5 158 64
+6 158 64
+7 158 64
+8 158 64
+9 158 64
+10 158 64
+11 158 64
+12 158 64
+13 158 64
+14 158 64
+15 158 64
+16 158 64
+17 158 64
+18 158 64
+19 158 64
+20 158 64
+21 158 64
+22 158 64
+23 158 64
+24 158 64
+25 158 64
+26 158 64
+27 158 64
+28 158 64
+29 158 64
+30 158 64
+31 158 64
+32 158 64
+33 158 64
+34 158 64
+35 158 64
+36 158 64
+37 158 64
+38 158 64
+39 158 64
+40 158 64
+41 158 64
+42 158 64
+43 158 64
+44 158 64
+45 158 64
+46 158 64
+47 158 64
+48 158 64
+49 158 64
+50 158 64
+51 158 64
+52 158 64
+53 158 64
+54 158 64
+55 158 64
+56 158 64
+57 158 64
+58 158 64
+59 158 64
+60 158 64
+61 158 64
+62 158 64
+63 158 64
+64 158 64
+65 158 64
+66 158 64
+67 158 64
+68 158 64
+69 158 64
+70 158 64
+71 158 64
+72 158 64
+73 158 64
+74 158 64
+75 158 64
+76 158 64
+77 158 64
+78 158 64
+79 158 64
+80 158 64
+81 158 64
+82 158 64
+83 158 64
+84 158 64
+85 158 64
+86 158 64
+87 158 64
+88 158 64
+89 158 64
+90 158 64
+91 158 64
+92 158 64
+93 158 64
+94 158 64
+95 158 64
+96 158 64
+97 158 64
+98 158 64
+99 158 64
+100 158 64
+101 158 64
+102 158 64
+103 158 64
+104 158 64
+105 158 64
+106 158 64
+107 158 64
+108 158 64
+109 158 64
+110 158 64
+111 158 64
+112 158 64
+113 158 64
+114 158 64
+115 158 64
+116 158 64
+117 158 64
+118 158 64
+119 158 64
+120 158 64
+121 158 64
+122 158 64
+123 158 64
+124 158 64
+125 158 64
+126 158 64
+127 158 64
+128 158 64
+129 158 64
+130 158 64
+131 158 64
+132 158 64
+133 158 64
+134 158 64
+135 158 64
+136 158 64
+137 158 64
+138 158 64
+139 158 64
+140 158 64
+141 158 64
+142 158 64
+143 158 64
+144 158 64
+145 158 64
+146 158 64
+147 158 64
+148 158 64
+149 158 64
+150 158 64
+151 158 64
+152 158 64
+153 158 64
+154 158 64
+155 158 64
+156 158 64
+157 158 64
+158 158 64
+159 158 64
+160 158 64
+161 158 64
+162 158 64
+163 158 64
+164 158 64
+165 158 64
+166 158 64
+167 158 64
+168 158 64
+169 158 64
+170 158 64
+171 158 64
+172 158 64
+173 158 64
+174 158 64
+175 158 64
+176 158 64
+177 158 64
+178 158 64
+179 158 64
+180 158 64
+181 158 64
+182 158 64
+183 158 64
+184 158 64
+185 158 64
+186 158 64
+187 158 64
+188 158 64
+189 158 64
+190 158 64
+191 158 64
+192 158 64
+193 158 64
+194 158 64
+195 158 64
+196 158 64
+197 158 64
+198 158 64
+199 158 64
+200 158 64
+201 158 64
+202 158 64
+203 158 64
+204 158 64
+205 158 64
+206 158 64
+207 158 64
+208 158 64
+209 158 64
+210 158 64
+211 158 64
+212 158 64
+213 158 64
+214 158 64
+215 158 64
+216 158 64
+217 158 64
+218 158 64
+219 158 64
+220 158 64
+221 158 64
+222 158 64
+223 158 64
+224 158 64
+225 158 64
+226 158 64
+227 158 64
+228 158 64
+229 158 64
+230 158 64
+231 158 64
+232 158 64
+233 158 64
+234 158 64
+235 158 64
+236 158 64
+237 158 64
+238 158 64
+239 158 64
+240 158 64
+241 158 64
+242 158 64
+243 158 64
+244 158 64
+245 158 64
+246 158 64
+247 158 64
+248 158 64
+249 158 64
+250 158 64
+251 158 64
+252 158 64
+253 158 64
+254 158 64
+255 158 64
+0 157 64
+1 157 64
+2 157 64
+3 157 64
+4 157 64
+5 157 64
+6 157 64
+7 157 64
+8 157 64
+9 157 64
+10 157 64
+11 157 64
+12 157 64
+13 157 64
+14 157 64
+15 157 64
+16 157 64
+17 157 64
+18 157 64
+19 157 64
+20 157 64
+21 157 64
+22 157 64
+23 157 64
+24 157 64
+25 157 64
+26 157 64
+27 157 64
+28 157 64
+29 157 64
+30 157 64
+31 157 64
+32 157 64
+33 157 64
+34 157 64
+35 157 64
+36 157 64
+37 157 64
+38 157 64
+39 157 64
+40 157 64
+41 157 64
+42 157 64
+43 157 64
+44 157 64
+45 157 64
+46 157 64
+47 157 64
+48 157 64
+49 157 64
+50 157 64
+51 157 64
+52 157 64
+53 157 64
+54 157 64
+55 157 64
+56 157 64
+57 157 64
+58 157 64
+59 157 64
+60 157 64
+61 157 64
+62 157 64
+63 157 64
+64 157 64
+65 157 64
+66 157 64
+67 157 64
+68 157 64
+69 157 64
+70 157 64
+71 157 64
+72 157 64
+73 157 64
+74 157 64
+75 157 64
+76 157 64
+77 157 64
+78 157 64
+79 157 64
+80 157 64
+81 157 64
+82 157 64
+83 157 64
+84 157 64
+85 157 64
+86 157 64
+87 157 64
+88 157 64
+89 157 64
+90 157 64
+91 157 64
+92 157 64
+93 157 64
+94 157 64
+95 157 64
+96 157 64
+97 157 64
+98 157 64
+99 157 64
+100 157 64
+101 157 64
+102 157 64
+103 157 64
+104 157 64
+105 157 64
+106 157 64
+107 157 64
+108 157 64
+109 157 64
+110 157 64
+111 157 64
+112 157 64
+113 157 64
+114 157 64
+115 157 64
+116 157 64
+117 157 64
+118 157 64
+119 157 64
+120 157 64
+121 157 64
+122 157 64
+123 157 64
+124 157 64
+125 157 64
+126 157 64
+127 157 64
+128 157 64
+129 157 64
+130 157 64
+131 157 64
+132 157 64
+133 157 64
+134 157 64
+135 157 64
+136 157 64
+137 157 64
+138 157 64
+139 157 64
+140 157 64
+141 157 64
+142 157 64
+143 157 64
+144 157 64
+145 157 64
+146 157 64
+147 157 64
+148 157 64
+149 157 64
+150 157 64
+151 157 64
+152 157 64
+153 157 64
+154 157 64
+155 157 64
+156 157 64
+157 157 64
+158 157 64
+159 157 64
+160 157 64
+161 157 64
+162 157 64
+163 157 64
+164 157 64
+165 157 64
+166 157 64
+167 157 64
+168 157 64
+169 157 64
+170 157 64
+171 157 64
+172 157 64
+173 157 64
+174 157 64
+175 157 64
+176 157 64
+177 157 64
+178 157 64
+179 157 64
+180 157 64
+181 157 64
+182 157 64
+183 157 64
+184 157 64
+185 157 64
+186 157 64
+187 157 64
+188 157 64
+189 157 64
+190 157 64
+191 157 64
+192 157 64
+193 157 64
+194 157 64
+195 157 64
+196 157 64
+197 157 64
+198 157 64
+199 157 64
+200 157 64
+201 157 64
+202 157 64
+203 157 64
+204 157 64
+205 157 64
+206 157 64
+207 157 64
+208 157 64
+209 157 64
+210 157 64
+211 157 64
+212 157 64
+213 157 64
+214 157 64
+215 157 64
+216 157 64
+217 157 64
+218 157 64
+219 157 64
+220 157 64
+221 157 64
+222 157 64
+223 157 64
+224 157 64
+225 157 64
+226 157 64
+227 157 64
+228 157 64
+229 157 64
+230 157 64
+231 157 64
+232 157 64
+233 157 64
+234 157 64
+235 157 64
+236 157 64
+237 157 64
+238 157 64
+239 157 64
+240 157 64
+241 157 64
+242 157 64
+243 157 64
+244 157 64
+245 157 64
+246 157 64
+247 157 64
+248 157 64
+249 157 64
+250 157 64
+251 157 64
+252 157 64
+253 157 64
+254 157 64
+255 157 64
+0 156 64
+1 156 64
+2 156 64
+3 156 64
+4 156 64
+5 156 64
+6 156 64
+7 156 64
+8 156 64
+9 156 64
+10 156 64
+11 156 64
+12 156 64
+13 156 64
+14 156 64
+15 156 64
+16 156 64
+17 156 64
+18 156 64
+19 156 64
+20 156 64
+21 156 64
+22 156 64
+23 156 64
+24 156 64
+25 156 64
+26 156 64
+27 156 64
+28 156 64
+29 156 64
+30 156 64
+31 156 64
+32 156 64
+33 156 64
+34 156 64
+35 156 64
+36 156 64
+37 156 64
+38 156 64
+39 156 64
+40 156 64
+41 156 64
+42 156 64
+43 156 64
+44 156 64
+45 156 64
+46 156 64
+47 156 64
+48 156 64
+49 156 64
+50 156 64
+51 156 64
+52 156 64
+53 156 64
+54 156 64
+55 156 64
+56 156 64
+57 156 64
+58 156 64
+59 156 64
+60 156 64
+61 156 64
+62 156 64
+63 156 64
+64 156 64
+65 156 64
+66 156 64
+67 156 64
+68 156 64
+69 156 64
+70 156 64
+71 156 64
+72 156 64
+73 156 64
+74 156 64
+75 156 64
+76 156 64
+77 156 64
+78 156 64
+79 156 64
+80 156 64
+81 156 64
+82 156 64
+83 156 64
+84 156 64
+85 156 64
+86 156 64
+87 156 64
+88 156 64
+89 156 64
+90 156 64
+91 156 64
+92 156 64
+93 156 64
+94 156 64
+95 156 64
+96 156 64
+97 156 64
+98 156 64
+99 156 64
+100 156 64
+101 156 64
+102 156 64
+103 156 64
+104 156 64
+105 156 64
+106 156 64
+107 156 64
+108 156 64
+109 156 64
+110 156 64
+111 156 64
+112 156 64
+113 156 64
+114 156 64
+115 156 64
+116 156 64
+117 156 64
+118 156 64
+119 156 64
+120 156 64
+121 156 64
+122 156 64
+123 156 64
+124 156 64
+125 156 64
+126 156 64
+127 156 64
+128 156 64
+129 156 64
+130 156 64
+131 156 64
+132 156 64
+133 156 64
+134 156 64
+135 156 64
+136 156 64
+137 156 64
+138 156 64
+139 156 64
+140 156 64
+141 156 64
+142 156 64
+143 156 64
+144 156 64
+145 156 64
+146 156 64
+147 156 64
+148 156 64
+149 156 64
+150 156 64
+151 156 64
+152 156 64
+153 156 64
+154 156 64
+155 156 64
+156 156 64
+157 156 64
+158 156 64
+159 156 64
+160 156 64
+161 156 64
+162 156 64
+163 156 64
+164 156 64
+165 156 64
+166 156 64
+167 156 64
+168 156 64
+169 156 64
+170 156 64
+171 156 64
+172 156 64
+173 156 64
+174 156 64
+175 156 64
+176 156 64
+177 156 64
+178 156 64
+179 156 64
+180 156 64
+181 156 64
+182 156 64
+183 156 64
+184 156 64
+185 156 64
+186 156 64
+187 156 64
+188 156 64
+189 156 64
+190 156 64
+191 156 64
+192 156 64
+193 156 64
+194 156 64
+195 156 64
+196 156 64
+197 156 64
+198 156 64
+199 156 64
+200 156 64
+201 156 64
+202 156 64
+203 156 64
+204 156 64
+205 156 64
+206 156 64
+207 156 64
+208 156 64
+209 156 64
+210 156 64
+211 156 64
+212 156 64
+213 156 64
+214 156 64
+215 156 64
+216 156 64
+217 156 64
+218 156 64
+219 156 64
+220 156 64
+221 156 64
+222 156 64
+223 156 64
+224 156 64
+225 156 64
+226 156 64
+227 156 64
+228 156 64
+229 156 64
+230 156 64
+231 156 64
+232 156 64
+233 156 64
+234 156 64
+235 156 64
+236 156 64
+237 156 64
+238 156 64
+239 156 64
+240 156 64
+241 156 64
+242 156 64
+243 156 64
+244 156 64
+245 156 64
+246 156 64
+247 156 64
+248 156 64
+249 156 64
+250 156 64
+251 156 64
+252 156 64
+253 156 64
+254 156 64
+255 156 64
+0 155 64
+1 155 64
+2 155 64
+3 155 64
+4 155 64
+5 155 64
+6 155 64
+7 155 64
+8 155 64
+9 155 64
+10 155 64
+11 155 64
+12 155 64
+13 155 64
+14 155 64
+15 155 64
+16 155 64
+17 155 64
+18 155 64
+19 155 64
+20 155 64
+21 155 64
+22 155 64
+23 155 64
+24 155 64
+25 155 64
+26 155 64
+27 155 64
+28 155 64
+29 155 64
+30 155 64
+31 155 64
+32 155 64
+33 155 64
+34 155 64
+35 155 64
+36 155 64
+37 155 64
+38 155 64
+39 155 64
+40 155 64
+41 155 64
+42 155 64
+43 155 64
+44 155 64
+45 155 64
+46 155 64
+47 155 64
+48 155 64
+49 155 64
+50 155 64
+51 155 64
+52 155 64
+53 155 64
+54 155 64
+55 155 64
+56 155 64
+57 155 64
+58 155 64
+59 155 64
+60 155 64
+61 155 64
+62 155 64
+63 155 64
+64 155 64
+65 155 64
+66 155 64
+67 155 64
+68 155 64
+69 155 64
+70 155 64
+71 155 64
+72 155 64
+73 155 64
+74 155 64
+75 155 64
+76 155 64
+77 155 64
+78 155 64
+79 155 64
+80 155 64
+81 155 64
+82 155 64
+83 155 64
+84 155 64
+85 155 64
+86 155 64
+87 155 64
+88 155 64
+89 155 64
+90 155 64
+91 155 64
+92 155 64
+93 155 64
+94 155 64
+95 155 64
+96 155 64
+97 155 64
+98 155 64
+99 155 64
+100 155 64
+101 155 64
+102 155 64
+103 155 64
+104 155 64
+105 155 64
+106 155 64
+107 155 64
+108 155 64
+109 155 64
+110 155 64
+111 155 64
+112 155 64
+113 155 64
+114 155 64
+115 155 64
+116 155 64
+117 155 64
+118 155 64
+119 155 64
+120 155 64
+121 155 64
+122 155 64
+123 155 64
+124 155 64
+125 155 64
+126 155 64
+127 155 64
+128 155 64
+129 155 64
+130 155 64
+131 155 64
+132 155 64
+133 155 64
+134 155 64
+135 155 64
+136 155 64
+137 155 64
+138 155 64
+139 155 64
+140 155 64
+141 155 64
+142 155 64
+143 155 64
+144 155 64
+145 155 64
+146 155 64
+147 155 64
+148 155 64
+149 155 64
+150 155 64
+151 155 64
+152 155 64
+153 155 64
+154 155 64
+155 155 64
+156 155 64
+157 155 64
+158 155 64
+159 155 64
+160 155 64
+161 155 64
+162 155 64
+163 155 64
+164 155 64
+165 155 64
+166 155 64
+167 155 64
+168 155 64
+169 155 64
+170 155 64
+171 155 64
+172 155 64
+173 155 64
+174 155 64
+175 155 64
+176 155 64
+177 155 64
+178 155 64
+179 155 64
+180 155 64
+181 155 64
+182 155 64
+183 155 64
+184 155 64
+185 155 64
+186 155 64
+187 155 64
+188 155 64
+189 155 64
+190 155 64
+191 155 64
+192 155 64
+193 155 64
+194 155 64
+195 155 64
+196 155 64
+197 155 64
+198 155 64
+199 155 64
+200 155 64
+201 155 64
+202 155 64
+203 155 64
+204 155 64
+205 155 64
+206 155 64
+207 155 64
+208 155 64
+209 155 64
+210 155 64
+211 155 64
+212 155 64
+213 155 64
+214 155 64
+215 155 64
+216 155 64
+217 155 64
+218 155 64
+219 155 64
+220 155 64
+221 155 64
+222 155 64
+223 155 64
+224 155 64
+225 155 64
+226 155 64
+227 155 64
+228 155 64
+229 155 64
+230 155 64
+231 155 64
+232 155 64
+233 155 64
+234 155 64
+235 155 64
+236 155 64
+237 155 64
+238 155 64
+239 155 64
+240 155 64
+241 155 64
+242 155 64
+243 155 64
+244 155 64
+245 155 64
+246 155 64
+247 155 64
+248 155 64
+249 155 64
+250 155 64
+251 155 64
+252 155 64
+253 155 64
+254 155 64
+255 155 64
+0 154 64
+1 154 64
+2 154 64
+3 154 64
+4 154 64
+5 154 64
+6 154 64
+7 154 64
+8 154 64
+9 154 64
+10 154 64
+11 154 64
+12 154 64
+13 154 64
+14 154 64
+15 154 64
+16 154 64
+17 154 64
+18 154 64
+19 154 64
+20 154 64
+21 154 64
+22 154 64
+23 154 64
+24 154 64
+25 154 64
+26 154 64
+27 154 64
+28 154 64
+29 154 64
+30 154 64
+31 154 64
+32 154 64
+33 154 64
+34 154 64
+35 154 64
+36 154 64
+37 154 64
+38 154 64
+39 154 64
+40 154 64
+41 154 64
+42 154 64
+43 154 64
+44 154 64
+45 154 64
+46 154 64
+47 154 64
+48 154 64
+49 154 64
+50 154 64
+51 154 64
+52 154 64
+53 154 64
+54 154 64
+55 154 64
+56 154 64
+57 154 64
+58 154 64
+59 154 64
+60 154 64
+61 154 64
+62 154 64
+63 154 64
+64 154 64
+65 154 64
+66 154 64
+67 154 64
+68 154 64
+69 154 64
+70 154 64
+71 154 64
+72 154 64
+73 154 64
+74 154 64
+75 154 64
+76 154 64
+77 154 64
+78 154 64
+79 154 64
+80 154 64
+81 154 64
+82 154 64
+83 154 64
+84 154 64
+85 154 64
+86 154 64
+87 154 64
+88 154 64
+89 154 64
+90 154 64
+91 154 64
+92 154 64
+93 154 64
+94 154 64
+95 154 64
+96 154 64
+97 154 64
+98 154 64
+99 154 64
+100 154 64
+101 154 64
+102 154 64
+103 154 64
+104 154 64
+105 154 64
+106 154 64
+107 154 64
+108 154 64
+109 154 64
+110 154 64
+111 154 64
+112 154 64
+113 154 64
+114 154 64
+115 154 64
+116 154 64
+117 154 64
+118 154 64
+119 154 64
+120 154 64
+121 154 64
+122 154 64
+123 154 64
+124 154 64
+125 154 64
+126 154 64
+127 154 64
+128 154 64
+129 154 64
+130 154 64
+131 154 64
+132 154 64
+133 154 64
+134 154 64
+135 154 64
+136 154 64
+137 154 64
+138 154 64
+139 154 64
+140 154 64
+141 154 64
+142 154 64
+143 154 64
+144 154 64
+145 154 64
+146 154 64
+147 154 64
+148 154 64
+149 154 64
+150 154 64
+151 154 64
+152 154 64
+153 154 64
+154 154 64
+155 154 64
+156 154 64
+157 154 64
+158 154 64
+159 154 64
+160 154 64
+161 154 64
+162 154 64
+163 154 64
+164 154 64
+165 154 64
+166 154 64
+167 154 64
+168 154 64
+169 154 64
+170 154 64
+171 154 64
+172 154 64
+173 154 64
+174 154 64
+175 154 64
+176 154 64
+177 154 64
+178 154 64
+179 154 64
+180 154 64
+181 154 64
+182 154 64
+183 154 64
+184 154 64
+185 154 64
+186 154 64
+187 154 64
+188 154 64
+189 154 64
+190 154 64
+191 154 64
+192 154 64
+193 154 64
+194 154 64
+195 154 64
+196 154 64
+197 154 64
+198 154 64
+199 154 64
+200 154 64
+201 154 64
+202 154 64
+203 154 64
+204 154 64
+205 154 64
+206 154 64
+207 154 64
+208 154 64
+209 154 64
+210 154 64
+211 154 64
+212 154 64
+213 154 64
+214 154 64
+215 154 64
+216 154 64
+217 154 64
+218 154 64
+219 154 64
+220 154 64
+221 154 64
+222 154 64
+223 154 64
+224 154 64
+225 154 64
+226 154 64
+227 154 64
+228 154 64
+229 154 64
+230 154 64
+231 154 64
+232 154 64
+233 154 64
+234 154 64
+235 154 64
+236 154 64
+237 154 64
+238 154 64
+239 154 64
+240 154 64
+241 154 64
+242 154 64
+243 154 64
+244 154 64
+245 154 64
+246 154 64
+247 154 64
+248 154 64
+249 154 64
+250 154 64
+251 154 64
+252 154 64
+253 154 64
+254 154 64
+255 154 64
+0 153 64
+1 153 64
+2 153 64
+3 153 64
+4 153 64
+5 153 64
+6 153 64
+7 153 64
+8 153 64
+9 153 64
+10 153 64
+11 153 64
+12 153 64
+13 153 64
+14 153 64
+15 153 64
+16 153 64
+17 153 64
+18 153 64
+19 153 64
+20 153 64
+21 153 64
+22 153 64
+23 153 64
+24 153 64
+25 153 64
+26 153 64
+27 153 64
+28 153 64
+29 153 64
+30 153 64
+31 153 64
+32 153 64
+33 153 64
+34 153 64
+35 153 64
+36 153 64
+37 153 64
+38 153 64
+39 153 64
+40 153 64
+41 153 64
+42 153 64
+43 153 64
+44 153 64
+45 153 64
+46 153 64
+47 153 64
+48 153 64
+49 153 64
+50 153 64
+51 153 64
+52 153 64
+53 153 64
+54 153 64
+55 153 64
+56 153 64
+57 153 64
+58 153 64
+59 153 64
+60 153 64
+61 153 64
+62 153 64
+63 153 64
+64 153 64
+65 153 64
+66 153 64
+67 153 64
+68 153 64
+69 153 64
+70 153 64
+71 153 64
+72 153 64
+73 153 64
+74 153 64
+75 153 64
+76 153 64
+77 153 64
+78 153 64
+79 153 64
+80 153 64
+81 153 64
+82 153 64
+83 153 64
+84 153 64
+85 153 64
+86 153 64
+87 153 64
+88 153 64
+89 153 64
+90 153 64
+91 153 64
+92 153 64
+93 153 64
+94 153 64
+95 153 64
+96 153 64
+97 153 64
+98 153 64
+99 153 64
+100 153 64
+101 153 64
+102 153 64
+103 153 64
+104 153 64
+105 153 64
+106 153 64
+107 153 64
+108 153 64
+109 153 64
+110 153 64
+111 153 64
+112 153 64
+113 153 64
+114 153 64
+115 153 64
+116 153 64
+117 153 64
+118 153 64
+119 153 64
+120 153 64
+121 153 64
+122 153 64
+123 153 64
+124 153 64
+125 153 64
+126 153 64
+127 153 64
+128 153 64
+129 153 64
+130 153 64
+131 153 64
+132 153 64
+133 153 64
+134 153 64
+135 153 64
+136 153 64
+137 153 64
+138 153 64
+139 153 64
+140 153 64
+141 153 64
+142 153 64
+143 153 64
+144 153 64
+145 153 64
+146 153 64
+147 153 64
+148 153 64
+149 153 64
+150 153 64
+151 153 64
+152 153 64
+153 153 64
+154 153 64
+155 153 64
+156 153 64
+157 153 64
+158 153 64
+159 153 64
+160 153 64
+161 153 64
+162 153 64
+163 153 64
+164 153 64
+165 153 64
+166 153 64
+167 153 64
+168 153 64
+169 153 64
+170 153 64
+171 153 64
+172 153 64
+173 153 64
+174 153 64
+175 153 64
+176 153 64
+177 153 64
+178 153 64
+179 153 64
+180 153 64
+181 153 64
+182 153 64
+183 153 64
+184 153 64
+185 153 64
+186 153 64
+187 153 64
+188 153 64
+189 153 64
+190 153 64
+191 153 64
+192 153 64
+193 153 64
+194 153 64
+195 153 64
+196 153 64
+197 153 64
+198 153 64
+199 153 64
+200 153 64
+201 153 64
+202 153 64
+203 153 64
+204 153 64
+205 153 64
+206 153 64
+207 153 64
+208 153 64
+209 153 64
+210 153 64
+211 153 64
+212 153 64
+213 153 64
+214 153 64
+215 153 64
+216 153 64
+217 153 64
+218 153 64
+219 153 64
+220 153 64
+221 153 64
+222 153 64
+223 153 64
+224 153 64
+225 153 64
+226 153 64
+227 153 64
+228 153 64
+229 153 64
+230 153 64
+231 153 64
+232 153 64
+233 153 64
+234 153 64
+235 153 64
+236 153 64
+237 153 64
+238 153 64
+239 153 64
+240 153 64
+241 153 64
+242 153 64
+243 153 64
+244 153 64
+245 153 64
+246 153 64
+247 153 64
+248 153 64
+249 153 64
+250 153 64
+251 153 64
+252 153 64
+253 153 64
+254 153 64
+255 153 64
+0 152 64
+1 152 64
+2 152 64
+3 152 64
+4 152 64
+5 152 64
+6 152 64
+7 152 64
+8 152 64
+9 152 64
+10 152 64
+11 152 64
+12 152 64
+13 152 64
+14 152 64
+15 152 64
+16 152 64
+17 152 64
+18 152 64
+19 152 64
+20 152 64
+21 152 64
+22 152 64
+23 152 64
+24 152 64
+25 152 64
+26 152 64
+27 152 64
+28 152 64
+29 152 64
+30 152 64
+31 152 64
+32 152 64
+33 152 64
+34 152 64
+35 152 64
+36 152 64
+37 152 64
+38 152 64
+39 152 64
+40 152 64
+41 152 64
+42 152 64
+43 152 64
+44 152 64
+45 152 64
+46 152 64
+47 152 64
+48 152 64
+49 152 64
+50 152 64
+51 152 64
+52 152 64
+53 152 64
+54 152 64
+55 152 64
+56 152 64
+57 152 64
+58 152 64
+59 152 64
+60 152 64
+61 152 64
+62 152 64
+63 152 64
+64 152 64
+65 152 64
+66 152 64
+67 152 64
+68 152 64
+69 152 64
+70 152 64
+71 152 64
+72 152 64
+73 152 64
+74 152 64
+75 152 64
+76 152 64
+77 152 64
+78 152 64
+79 152 64
+80 152 64
+81 152 64
+82 152 64
+83 152 64
+84 152 64
+85 152 64
+86 152 64
+87 152 64
+88 152 64
+89 152 64
+90 152 64
+91 152 64
+92 152 64
+93 152 64
+94 152 64
+95 152 64
+96 152 64
+97 152 64
+98 152 64
+99 152 64
+100 152 64
+101 152 64
+102 152 64
+103 152 64
+104 152 64
+105 152 64
+106 152 64
+107 152 64
+108 152 64
+109 152 64
+110 152 64
+111 152 64
+112 152 64
+113 152 64
+114 152 64
+115 152 64
+116 152 64
+117 152 64
+118 152 64
+119 152 64
+120 152 64
+121 152 64
+122 152 64
+123 152 64
+124 152 64
+125 152 64
+126 152 64
+127 152 64
+128 152 64
+129 152 64
+130 152 64
+131 152 64
+132 152 64
+133 152 64
+134 152 64
+135 152 64
+136 152 64
+137 152 64
+138 152 64
+139 152 64
+140 152 64
+141 152 64
+142 152 64
+143 152 64
+144 152 64
+145 152 64
+146 152 64
+147 152 64
+148 152 64
+149 152 64
+150 152 64
+151 152 64
+152 152 64
+153 152 64
+154 152 64
+155 152 64
+156 152 64
+157 152 64
+158 152 64
+159 152 64
+160 152 64
+161 152 64
+162 152 64
+163 152 64
+164 152 64
+165 152 64
+166 152 64
+167 152 64
+168 152 64
+169 152 64
+170 152 64
+171 152 64
+172 152 64
+173 152 64
+174 152 64
+175 152 64
+176 152 64
+177 152 64
+178 152 64
+179 152 64
+180 152 64
+181 152 64
+182 152 64
+183 152 64
+184 152 64
+185 152 64
+186 152 64
+187 152 64
+188 152 64
+189 152 64
+190 152 64
+191 152 64
+192 152 64
+193 152 64
+194 152 64
+195 152 64
+196 152 64
+197 152 64
+198 152 64
+199 152 64
+200 152 64
+201 152 64
+202 152 64
+203 152 64
+204 152 64
+205 152 64
+206 152 64
+207 152 64
+208 152 64
+209 152 64
+210 152 64
+211 152 64
+212 152 64
+213 152 64
+214 152 64
+215 152 64
+216 152 64
+217 152 64
+218 152 64
+219 152 64
+220 152 64
+221 152 64
+222 152 64
+223 152 64
+224 152 64
+225 152 64
+226 152 64
+227 152 64
+228 152 64
+229 152 64
+230 152 64
+231 152 64
+232 152 64
+233 152 64
+234 152 64
+235 152 64
+236 152 64
+237 152 64
+238 152 64
+239 152 64
+240 152 64
+241 152 64
+242 152 64
+243 152 64
+244 152 64
+245 152 64
+246 152 64
+247 152 64
+248 152 64
+249 152 64
+250 152 64
+251 152 64
+252 152 64
+253 152 64
+254 152 64
+255 152 64
+0 151 64
+1 151 64
+2 151 64
+3 151 64
+4 151 64
+5 151 64
+6 151 64
+7 151 64
+8 151 64
+9 151 64
+10 151 64
+11 151 64
+12 151 64
+13 151 64
+14 151 64
+15 151 64
+16 151 64
+17 151 64
+18 151 64
+19 151 64
+20 151 64
+21 151 64
+22 151 64
+23 151 64
+24 151 64
+25 151 64
+26 151 64
+27 151 64
+28 151 64
+29 151 64
+30 151 64
+31 151 64
+32 151 64
+33 151 64
+34 151 64
+35 151 64
+36 151 64
+37 151 64
+38 151 64
+39 151 64
+40 151 64
+41 151 64
+42 151 64
+43 151 64
+44 151 64
+45 151 64
+46 151 64
+47 151 64
+48 151 64
+49 151 64
+50 151 64
+51 151 64
+52 151 64
+53 151 64
+54 151 64
+55 151 64
+56 151 64
+57 151 64
+58 151 64
+59 151 64
+60 151 64
+61 151 64
+62 151 64
+63 151 64
+64 151 64
+65 151 64
+66 151 64
+67 151 64
+68 151 64
+69 151 64
+70 151 64
+71 151 64
+72 151 64
+73 151 64
+74 151 64
+75 151 64
+76 151 64
+77 151 64
+78 151 64
+79 151 64
+80 151 64
+81 151 64
+82 151 64
+83 151 64
+84 151 64
+85 151 64
+86 151 64
+87 151 64
+88 151 64
+89 151 64
+90 151 64
+91 151 64
+92 151 64
+93 151 64
+94 151 64
+95 151 64
+96 151 64
+97 151 64
+98 151 64
+99 151 64
+100 151 64
+101 151 64
+102 151 64
+103 151 64
+104 151 64
+105 151 64
+106 151 64
+107 151 64
+108 151 64
+109 151 64
+110 151 64
+111 151 64
+112 151 64
+113 151 64
+114 151 64
+115 151 64
+116 151 64
+117 151 64
+118 151 64
+119 151 64
+120 151 64
+121 151 64
+122 151 64
+123 151 64
+124 151 64
+125 151 64
+126 151 64
+127 151 64
+128 151 64
+129 151 64
+130 151 64
+131 151 64
+132 151 64
+133 151 64
+134 151 64
+135 151 64
+136 151 64
+137 151 64
+138 151 64
+139 151 64
+140 151 64
+141 151 64
+142 151 64
+143 151 64
+144 151 64
+145 151 64
+146 151 64
+147 151 64
+148 151 64
+149 151 64
+150 151 64
+151 151 64
+152 151 64
+153 151 64
+154 151 64
+155 151 64
+156 151 64
+157 151 64
+158 151 64
+159 151 64
+160 151 64
+161 151 64
+162 151 64
+163 151 64
+164 151 64
+165 151 64
+166 151 64
+167 151 64
+168 151 64
+169 151 64
+170 151 64
+171 151 64
+172 151 64
+173 151 64
+174 151 64
+175 151 64
+176 151 64
+177 151 64
+178 151 64
+179 151 64
+180 151 64
+181 151 64
+182 151 64
+183 151 64
+184 151 64
+185 151 64
+186 151 64
+187 151 64
+188 151 64
+189 151 64
+190 151 64
+191 151 64
+192 151 64
+193 151 64
+194 151 64
+195 151 64
+196 151 64
+197 151 64
+198 151 64
+199 151 64
+200 151 64
+201 151 64
+202 151 64
+203 151 64
+204 151 64
+205 151 64
+206 151 64
+207 151 64
+208 151 64
+209 151 64
+210 151 64
+211 151 64
+212 151 64
+213 151 64
+214 151 64
+215 151 64
+216 151 64
+217 151 64
+218 151 64
+219 151 64
+220 151 64
+221 151 64
+222 151 64
+223 151 64
+224 151 64
+225 151 64
+226 151 64
+227 151 64
+228 151 64
+229 151 64
+230 151 64
+231 151 64
+232 151 64
+233 151 64
+234 151 64
+235 151 64
+236 151 64
+237 151 64
+238 151 64
+239 151 64
+240 151 64
+241 151 64
+242 151 64
+243 151 64
+244 151 64
+245 151 64
+246 151 64
+247 151 64
+248 151 64
+249 151 64
+250 151 64
+251 151 64
+252 151 64
+253 151 64
+254 151 64
+255 151 64
+0 150 64
+1 150 64
+2 150 64
+3 150 64
+4 150 64
+5 150 64
+6 150 64
+7 150 64
+8 150 64
+9 150 64
+10 150 64
+11 150 64
+12 150 64
+13 150 64
+14 150 64
+15 150 64
+16 150 64
+17 150 64
+18 150 64
+19 150 64
+20 150 64
+21 150 64
+22 150 64
+23 150 64
+24 150 64
+25 150 64
+26 150 64
+27 150 64
+28 150 64
+29 150 64
+30 150 64
+31 150 64
+32 150 64
+33 150 64
+34 150 64
+35 150 64
+36 150 64
+37 150 64
+38 150 64
+39 150 64
+40 150 64
+41 150 64
+42 150 64
+43 150 64
+44 150 64
+45 150 64
+46 150 64
+47 150 64
+48 150 64
+49 150 64
+50 150 64
+51 150 64
+52 150 64
+53 150 64
+54 150 64
+55 150 64
+56 150 64
+57 150 64
+58 150 64
+59 150 64
+60 150 64
+61 150 64
+62 150 64
+63 150 64
+64 150 64
+65 150 64
+66 150 64
+67 150 64
+68 150 64
+69 150 64
+70 150 64
+71 150 64
+72 150 64
+73 150 64
+74 150 64
+75 150 64
+76 150 64
+77 150 64
+78 150 64
+79 150 64
+80 150 64
+81 150 64
+82 150 64
+83 150 64
+84 150 64
+85 150 64
+86 150 64
+87 150 64
+88 150 64
+89 150 64
+90 150 64
+91 150 64
+92 150 64
+93 150 64
+94 150 64
+95 150 64
+96 150 64
+97 150 64
+98 150 64
+99 150 64
+100 150 64
+101 150 64
+102 150 64
+103 150 64
+104 150 64
+105 150 64
+106 150 64
+107 150 64
+108 150 64
+109 150 64
+110 150 64
+111 150 64
+112 150 64
+113 150 64
+114 150 64
+115 150 64
+116 150 64
+117 150 64
+118 150 64
+119 150 64
+120 150 64
+121 150 64
+122 150 64
+123 150 64
+124 150 64
+125 150 64
+126 150 64
+127 150 64
+128 150 64
+129 150 64
+130 150 64
+131 150 64
+132 150 64
+133 150 64
+134 150 64
+135 150 64
+136 150 64
+137 150 64
+138 150 64
+139 150 64
+140 150 64
+141 150 64
+142 150 64
+143 150 64
+144 150 64
+145 150 64
+146 150 64
+147 150 64
+148 150 64
+149 150 64
+150 150 64
+151 150 64
+152 150 64
+153 150 64
+154 150 64
+155 150 64
+156 150 64
+157 150 64
+158 150 64
+159 150 64
+160 150 64
+161 150 64
+162 150 64
+163 150 64
+164 150 64
+165 150 64
+166 150 64
+167 150 64
+168 150 64
+169 150 64
+170 150 64
+171 150 64
+172 150 64
+173 150 64
+174 150 64
+175 150 64
+176 150 64
+177 150 64
+178 150 64
+179 150 64
+180 150 64
+181 150 64
+182 150 64
+183 150 64
+184 150 64
+185 150 64
+186 150 64
+187 150 64
+188 150 64
+189 150 64
+190 150 64
+191 150 64
+192 150 64
+193 150 64
+194 150 64
+195 150 64
+196 150 64
+197 150 64
+198 150 64
+199 150 64
+200 150 64
+201 150 64
+202 150 64
+203 150 64
+204 150 64
+205 150 64
+206 150 64
+207 150 64
+208 150 64
+209 150 64
+210 150 64
+211 150 64
+212 150 64
+213 150 64
+214 150 64
+215 150 64
+216 150 64
+217 150 64
+218 150 64
+219 150 64
+220 150 64
+221 150 64
+222 150 64
+223 150 64
+224 150 64
+225 150 64
+226 150 64
+227 150 64
+228 150 64
+229 150 64
+230 150 64
+231 150 64
+232 150 64
+233 150 64
+234 150 64
+235 150 64
+236 150 64
+237 150 64
+238 150 64
+239 150 64
+240 150 64
+241 150 64
+242 150 64
+243 150 64
+244 150 64
+245 150 64
+246 150 64
+247 150 64
+248 150 64
+249 150 64
+250 150 64
+251 150 64
+252 150 64
+253 150 64
+254 150 64
+255 150 64
+0 149 64
+1 149 64
+2 149 64
+3 149 64
+4 149 64
+5 149 64
+6 149 64
+7 149 64
+8 149 64
+9 149 64
+10 149 64
+11 149 64
+12 149 64
+13 149 64
+14 149 64
+15 149 64
+16 149 64
+17 149 64
+18 149 64
+19 149 64
+20 149 64
+21 149 64
+22 149 64
+23 149 64
+24 149 64
+25 149 64
+26 149 64
+27 149 64
+28 149 64
+29 149 64
+30 149 64
+31 149 64
+32 149 64
+33 149 64
+34 149 64
+35 149 64
+36 149 64
+37 149 64
+38 149 64
+39 149 64
+40 149 64
+41 149 64
+42 149 64
+43 149 64
+44 149 64
+45 149 64
+46 149 64
+47 149 64
+48 149 64
+49 149 64
+50 149 64
+51 149 64
+52 149 64
+53 149 64
+54 149 64
+55 149 64
+56 149 64
+57 149 64
+58 149 64
+59 149 64
+60 149 64
+61 149 64
+62 149 64
+63 149 64
+64 149 64
+65 149 64
+66 149 64
+67 149 64
+68 149 64
+69 149 64
+70 149 64
+71 149 64
+72 149 64
+73 149 64
+74 149 64
+75 149 64
+76 149 64
+77 149 64
+78 149 64
+79 149 64
+80 149 64
+81 149 64
+82 149 64
+83 149 64
+84 149 64
+85 149 64
+86 149 64
+87 149 64
+88 149 64
+89 149 64
+90 149 64
+91 149 64
+92 149 64
+93 149 64
+94 149 64
+95 149 64
+96 149 64
+97 149 64
+98 149 64
+99 149 64
+100 149 64
+101 149 64
+102 149 64
+103 149 64
+104 149 64
+105 149 64
+106 149 64
+107 149 64
+108 149 64
+109 149 64
+110 149 64
+111 149 64
+112 149 64
+113 149 64
+114 149 64
+115 149 64
+116 149 64
+117 149 64
+118 149 64
+119 149 64
+120 149 64
+121 149 64
+122 149 64
+123 149 64
+124 149 64
+125 149 64
+126 149 64
+127 149 64
+128 149 64
+129 149 64
+130 149 64
+131 149 64
+132 149 64
+133 149 64
+134 149 64
+135 149 64
+136 149 64
+137 149 64
+138 149 64
+139 149 64
+140 149 64
+141 149 64
+142 149 64
+143 149 64
+144 149 64
+145 149 64
+146 149 64
+147 149 64
+148 149 64
+149 149 64
+150 149 64
+151 149 64
+152 149 64
+153 149 64
+154 149 64
+155 149 64
+156 149 64
+157 149 64
+158 149 64
+159 149 64
+160 149 64
+161 149 64
+162 149 64
+163 149 64
+164 149 64
+165 149 64
+166 149 64
+167 149 64
+168 149 64
+169 149 64
+170 149 64
+171 149 64
+172 149 64
+173 149 64
+174 149 64
+175 149 64
+176 149 64
+177 149 64
+178 149 64
+179 149 64
+180 149 64
+181 149 64
+182 149 64
+183 149 64
+184 149 64
+185 149 64
+186 149 64
+187 149 64
+188 149 64
+189 149 64
+190 149 64
+191 149 64
+192 149 64
+193 149 64
+194 149 64
+195 149 64
+196 149 64
+197 149 64
+198 149 64
+199 149 64
+200 149 64
+201 149 64
+202 149 64
+203 149 64
+204 149 64
+205 149 64
+206 149 64
+207 149 64
+208 149 64
+209 149 64
+210 149 64
+211 149 64
+212 149 64
+213 149 64
+214 149 64
+215 149 64
+216 149 64
+217 149 64
+218 149 64
+219 149 64
+220 149 64
+221 149 64
+222 149 64
+223 149 64
+224 149 64
+225 149 64
+226 149 64
+227 149 64
+228 149 64
+229 149 64
+230 149 64
+231 149 64
+232 149 64
+233 149 64
+234 149 64
+235 149 64
+236 149 64
+237 149 64
+238 149 64
+239 149 64
+240 149 64
+241 149 64
+242 149 64
+243 149 64
+244 149 64
+245 149 64
+246 149 64
+247 149 64
+248 149 64
+249 149 64
+250 149 64
+251 149 64
+252 149 64
+253 149 64
+254 149 64
+255 149 64
+0 148 64
+1 148 64
+2 148 64
+3 148 64
+4 148 64
+5 148 64
+6 148 64
+7 148 64
+8 148 64
+9 148 64
+10 148 64
+11 148 64
+12 148 64
+13 148 64
+14 148 64
+15 148 64
+16 148 64
+17 148 64
+18 148 64
+19 148 64
+20 148 64
+21 148 64
+22 148 64
+23 148 64
+24 148 64
+25 148 64
+26 148 64
+27 148 64
+28 148 64
+29 148 64
+30 148 64
+31 148 64
+32 148 64
+33 148 64
+34 148 64
+35 148 64
+36 148 64
+37 148 64
+38 148 64
+39 148 64
+40 148 64
+41 148 64
+42 148 64
+43 148 64
+44 148 64
+45 148 64
+46 148 64
+47 148 64
+48 148 64
+49 148 64
+50 148 64
+51 148 64
+52 148 64
+53 148 64
+54 148 64
+55 148 64
+56 148 64
+57 148 64
+58 148 64
+59 148 64
+60 148 64
+61 148 64
+62 148 64
+63 148 64
+64 148 64
+65 148 64
+66 148 64
+67 148 64
+68 148 64
+69 148 64
+70 148 64
+71 148 64
+72 148 64
+73 148 64
+74 148 64
+75 148 64
+76 148 64
+77 148 64
+78 148 64
+79 148 64
+80 148 64
+81 148 64
+82 148 64
+83 148 64
+84 148 64
+85 148 64
+86 148 64
+87 148 64
+88 148 64
+89 148 64
+90 148 64
+91 148 64
+92 148 64
+93 148 64
+94 148 64
+95 148 64
+96 148 64
+97 148 64
+98 148 64
+99 148 64
+100 148 64
+101 148 64
+102 148 64
+103 148 64
+104 148 64
+105 148 64
+106 148 64
+107 148 64
+108 148 64
+109 148 64
+110 148 64
+111 148 64
+112 148 64
+113 148 64
+114 148 64
+115 148 64
+116 148 64
+117 148 64
+118 148 64
+119 148 64
+120 148 64
+121 148 64
+122 148 64
+123 148 64
+124 148 64
+125 148 64
+126 148 64
+127 148 64
+128 148 64
+129 148 64
+130 148 64
+131 148 64
+132 148 64
+133 148 64
+134 148 64
+135 148 64
+136 148 64
+137 148 64
+138 148 64
+139 148 64
+140 148 64
+141 148 64
+142 148 64
+143 148 64
+144 148 64
+145 148 64
+146 148 64
+147 148 64
+148 148 64
+149 148 64
+150 148 64
+151 148 64
+152 148 64
+153 148 64
+154 148 64
+155 148 64
+156 148 64
+157 148 64
+158 148 64
+159 148 64
+160 148 64
+161 148 64
+162 148 64
+163 148 64
+164 148 64
+165 148 64
+166 148 64
+167 148 64
+168 148 64
+169 148 64
+170 148 64
+171 148 64
+172 148 64
+173 148 64
+174 148 64
+175 148 64
+176 148 64
+177 148 64
+178 148 64
+179 148 64
+180 148 64
+181 148 64
+182 148 64
+183 148 64
+184 148 64
+185 148 64
+186 148 64
+187 148 64
+188 148 64
+189 148 64
+190 148 64
+191 148 64
+192 148 64
+193 148 64
+194 148 64
+195 148 64
+196 148 64
+197 148 64
+198 148 64
+199 148 64
+200 148 64
+201 148 64
+202 148 64
+203 148 64
+204 148 64
+205 148 64
+206 148 64
+207 148 64
+208 148 64
+209 148 64
+210 148 64
+211 148 64
+212 148 64
+213 148 64
+214 148 64
+215 148 64
+216 148 64
+217 148 64
+218 148 64
+219 148 64
+220 148 64
+221 148 64
+222 148 64
+223 148 64
+224 148 64
+225 148 64
+226 148 64
+227 148 64
+228 148 64
+229 148 64
+230 148 64
+231 148 64
+232 148 64
+233 148 64
+234 148 64
+235 148 64
+236 148 64
+237 148 64
+238 148 64
+239 148 64
+240 148 64
+241 148 64
+242 148 64
+243 148 64
+244 148 64
+245 148 64
+246 148 64
+247 148 64
+248 148 64
+249 148 64
+250 148 64
+251 148 64
+252 148 64
+253 148 64
+254 148 64
+255 148 64
+0 147 64
+1 147 64
+2 147 64
+3 147 64
+4 147 64
+5 147 64
+6 147 64
+7 147 64
+8 147 64
+9 147 64
+10 147 64
+11 147 64
+12 147 64
+13 147 64
+14 147 64
+15 147 64
+16 147 64
+17 147 64
+18 147 64
+19 147 64
+20 147 64
+21 147 64
+22 147 64
+23 147 64
+24 147 64
+25 147 64
+26 147 64
+27 147 64
+28 147 64
+29 147 64
+30 147 64
+31 147 64
+32 147 64
+33 147 64
+34 147 64
+35 147 64
+36 147 64
+37 147 64
+38 147 64
+39 147 64
+40 147 64
+41 147 64
+42 147 64
+43 147 64
+44 147 64
+45 147 64
+46 147 64
+47 147 64
+48 147 64
+49 147 64
+50 147 64
+51 147 64
+52 147 64
+53 147 64
+54 147 64
+55 147 64
+56 147 64
+57 147 64
+58 147 64
+59 147 64
+60 147 64
+61 147 64
+62 147 64
+63 147 64
+64 147 64
+65 147 64
+66 147 64
+67 147 64
+68 147 64
+69 147 64
+70 147 64
+71 147 64
+72 147 64
+73 147 64
+74 147 64
+75 147 64
+76 147 64
+77 147 64
+78 147 64
+79 147 64
+80 147 64
+81 147 64
+82 147 64
+83 147 64
+84 147 64
+85 147 64
+86 147 64
+87 147 64
+88 147 64
+89 147 64
+90 147 64
+91 147 64
+92 147 64
+93 147 64
+94 147 64
+95 147 64
+96 147 64
+97 147 64
+98 147 64
+99 147 64
+100 147 64
+101 147 64
+102 147 64
+103 147 64
+104 147 64
+105 147 64
+106 147 64
+107 147 64
+108 147 64
+109 147 64
+110 147 64
+111 147 64
+112 147 64
+113 147 64
+114 147 64
+115 147 64
+116 147 64
+117 147 64
+118 147 64
+119 147 64
+120 147 64
+121 147 64
+122 147 64
+123 147 64
+124 147 64
+125 147 64
+126 147 64
+127 147 64
+128 147 64
+129 147 64
+130 147 64
+131 147 64
+132 147 64
+133 147 64
+134 147 64
+135 147 64
+136 147 64
+137 147 64
+138 147 64
+139 147 64
+140 147 64
+141 147 64
+142 147 64
+143 147 64
+144 147 64
+145 147 64
+146 147 64
+147 147 64
+148 147 64
+149 147 64
+150 147 64
+151 147 64
+152 147 64
+153 147 64
+154 147 64
+155 147 64
+156 147 64
+157 147 64
+158 147 64
+159 147 64
+160 147 64
+161 147 64
+162 147 64
+163 147 64
+164 147 64
+165 147 64
+166 147 64
+167 147 64
+168 147 64
+169 147 64
+170 147 64
+171 147 64
+172 147 64
+173 147 64
+174 147 64
+175 147 64
+176 147 64
+177 147 64
+178 147 64
+179 147 64
+180 147 64
+181 147 64
+182 147 64
+183 147 64
+184 147 64
+185 147 64
+186 147 64
+187 147 64
+188 147 64
+189 147 64
+190 147 64
+191 147 64
+192 147 64
+193 147 64
+194 147 64
+195 147 64
+196 147 64
+197 147 64
+198 147 64
+199 147 64
+200 147 64
+201 147 64
+202 147 64
+203 147 64
+204 147 64
+205 147 64
+206 147 64
+207 147 64
+208 147 64
+209 147 64
+210 147 64
+211 147 64
+212 147 64
+213 147 64
+214 147 64
+215 147 64
+216 147 64
+217 147 64
+218 147 64
+219 147 64
+220 147 64
+221 147 64
+222 147 64
+223 147 64
+224 147 64
+225 147 64
+226 147 64
+227 147 64
+228 147 64
+229 147 64
+230 147 64
+231 147 64
+232 147 64
+233 147 64
+234 147 64
+235 147 64
+236 147 64
+237 147 64
+238 147 64
+239 147 64
+240 147 64
+241 147 64
+242 147 64
+243 147 64
+244 147 64
+245 147 64
+246 147 64
+247 147 64
+248 147 64
+249 147 64
+250 147 64
+251 147 64
+252 147 64
+253 147 64
+254 147 64
+255 147 64
+0 146 64
+1 146 64
+2 146 64
+3 146 64
+4 146 64
+5 146 64
+6 146 64
+7 146 64
+8 146 64
+9 146 64
+10 146 64
+11 146 64
+12 146 64
+13 146 64
+14 146 64
+15 146 64
+16 146 64
+17 146 64
+18 146 64
+19 146 64
+20 146 64
+21 146 64
+22 146 64
+23 146 64
+24 146 64
+25 146 64
+26 146 64
+27 146 64
+28 146 64
+29 146 64
+30 146 64
+31 146 64
+32 146 64
+33 146 64
+34 146 64
+35 146 64
+36 146 64
+37 146 64
+38 146 64
+39 146 64
+40 146 64
+41 146 64
+42 146 64
+43 146 64
+44 146 64
+45 146 64
+46 146 64
+47 146 64
+48 146 64
+49 146 64
+50 146 64
+51 146 64
+52 146 64
+53 146 64
+54 146 64
+55 146 64
+56 146 64
+57 146 64
+58 146 64
+59 146 64
+60 146 64
+61 146 64
+62 146 64
+63 146 64
+64 146 64
+65 146 64
+66 146 64
+67 146 64
+68 146 64
+69 146 64
+70 146 64
+71 146 64
+72 146 64
+73 146 64
+74 146 64
+75 146 64
+76 146 64
+77 146 64
+78 146 64
+79 146 64
+80 146 64
+81 146 64
+82 146 64
+83 146 64
+84 146 64
+85 146 64
+86 146 64
+87 146 64
+88 146 64
+89 146 64
+90 146 64
+91 146 64
+92 146 64
+93 146 64
+94 146 64
+95 146 64
+96 146 64
+97 146 64
+98 146 64
+99 146 64
+100 146 64
+101 146 64
+102 146 64
+103 146 64
+104 146 64
+105 146 64
+106 146 64
+107 146 64
+108 146 64
+109 146 64
+110 146 64
+111 146 64
+112 146 64
+113 146 64
+114 146 64
+115 146 64
+116 146 64
+117 146 64
+118 146 64
+119 146 64
+120 146 64
+121 146 64
+122 146 64
+123 146 64
+124 146 64
+125 146 64
+126 146 64
+127 146 64
+128 146 64
+129 146 64
+130 146 64
+131 146 64
+132 146 64
+133 146 64
+134 146 64
+135 146 64
+136 146 64
+137 146 64
+138 146 64
+139 146 64
+140 146 64
+141 146 64
+142 146 64
+143 146 64
+144 146 64
+145 146 64
+146 146 64
+147 146 64
+148 146 64
+149 146 64
+150 146 64
+151 146 64
+152 146 64
+153 146 64
+154 146 64
+155 146 64
+156 146 64
+157 146 64
+158 146 64
+159 146 64
+160 146 64
+161 146 64
+162 146 64
+163 146 64
+164 146 64
+165 146 64
+166 146 64
+167 146 64
+168 146 64
+169 146 64
+170 146 64
+171 146 64
+172 146 64
+173 146 64
+174 146 64
+175 146 64
+176 146 64
+177 146 64
+178 146 64
+179 146 64
+180 146 64
+181 146 64
+182 146 64
+183 146 64
+184 146 64
+185 146 64
+186 146 64
+187 146 64
+188 146 64
+189 146 64
+190 146 64
+191 146 64
+192 146 64
+193 146 64
+194 146 64
+195 146 64
+196 146 64
+197 146 64
+198 146 64
+199 146 64
+200 146 64
+201 146 64
+202 146 64
+203 146 64
+204 146 64
+205 146 64
+206 146 64
+207 146 64
+208 146 64
+209 146 64
+210 146 64
+211 146 64
+212 146 64
+213 146 64
+214 146 64
+215 146 64
+216 146 64
+217 146 64
+218 146 64
+219 146 64
+220 146 64
+221 146 64
+222 146 64
+223 146 64
+224 146 64
+225 146 64
+226 146 64
+227 146 64
+228 146 64
+229 146 64
+230 146 64
+231 146 64
+232 146 64
+233 146 64
+234 146 64
+235 146 64
+236 146 64
+237 146 64
+238 146 64
+239 146 64
+240 146 64
+241 146 64
+242 146 64
+243 146 64
+244 146 64
+245 146 64
+246 146 64
+247 146 64
+248 146 64
+249 146 64
+250 146 64
+251 146 64
+252 146 64
+253 146 64
+254 146 64
+255 146 64
+0 145 64
+1 145 64
+2 145 64
+3 145 64
+4 145 64
+5 145 64
+6 145 64
+7 145 64
+8 145 64
+9 145 64
+10 145 64
+11 145 64
+12 145 64
+13 145 64
+14 145 64
+15 145 64
+16 145 64
+17 145 64
+18 145 64
+19 145 64
+20 145 64
+21 145 64
+22 145 64
+23 145 64
+24 145 64
+25 145 64
+26 145 64
+27 145 64
+28 145 64
+29 145 64
+30 145 64
+31 145 64
+32 145 64
+33 145 64
+34 145 64
+35 145 64
+36 145 64
+37 145 64
+38 145 64
+39 145 64
+40 145 64
+41 145 64
+42 145 64
+43 145 64
+44 145 64
+45 145 64
+46 145 64
+47 145 64
+48 145 64
+49 145 64
+50 145 64
+51 145 64
+52 145 64
+53 145 64
+54 145 64
+55 145 64
+56 145 64
+57 145 64
+58 145 64
+59 145 64
+60 145 64
+61 145 64
+62 145 64
+63 145 64
+64 145 64
+65 145 64
+66 145 64
+67 145 64
+68 145 64
+69 145 64
+70 145 64
+71 145 64
+72 145 64
+73 145 64
+74 145 64
+75 145 64
+76 145 64
+77 145 64
+78 145 64
+79 145 64
+80 145 64
+81 145 64
+82 145 64
+83 145 64
+84 145 64
+85 145 64
+86 145 64
+87 145 64
+88 145 64
+89 145 64
+90 145 64
+91 145 64
+92 145 64
+93 145 64
+94 145 64
+95 145 64
+96 145 64
+97 145 64
+98 145 64
+99 145 64
+100 145 64
+101 145 64
+102 145 64
+103 145 64
+104 145 64
+105 145 64
+106 145 64
+107 145 64
+108 145 64
+109 145 64
+110 145 64
+111 145 64
+112 145 64
+113 145 64
+114 145 64
+115 145 64
+116 145 64
+117 145 64
+118 145 64
+119 145 64
+120 145 64
+121 145 64
+122 145 64
+123 145 64
+124 145 64
+125 145 64
+126 145 64
+127 145 64
+128 145 64
+129 145 64
+130 145 64
+131 145 64
+132 145 64
+133 145 64
+134 145 64
+135 145 64
+136 145 64
+137 145 64
+138 145 64
+139 145 64
+140 145 64
+141 145 64
+142 145 64
+143 145 64
+144 145 64
+145 145 64
+146 145 64
+147 145 64
+148 145 64
+149 145 64
+150 145 64
+151 145 64
+152 145 64
+153 145 64
+154 145 64
+155 145 64
+156 145 64
+157 145 64
+158 145 64
+159 145 64
+160 145 64
+161 145 64
+162 145 64
+163 145 64
+164 145 64
+165 145 64
+166 145 64
+167 145 64
+168 145 64
+169 145 64
+170 145 64
+171 145 64
+172 145 64
+173 145 64
+174 145 64
+175 145 64
+176 145 64
+177 145 64
+178 145 64
+179 145 64
+180 145 64
+181 145 64
+182 145 64
+183 145 64
+184 145 64
+185 145 64
+186 145 64
+187 145 64
+188 145 64
+189 145 64
+190 145 64
+191 145 64
+192 145 64
+193 145 64
+194 145 64
+195 145 64
+196 145 64
+197 145 64
+198 145 64
+199 145 64
+200 145 64
+201 145 64
+202 145 64
+203 145 64
+204 145 64
+205 145 64
+206 145 64
+207 145 64
+208 145 64
+209 145 64
+210 145 64
+211 145 64
+212 145 64
+213 145 64
+214 145 64
+215 145 64
+216 145 64
+217 145 64
+218 145 64
+219 145 64
+220 145 64
+221 145 64
+222 145 64
+223 145 64
+224 145 64
+225 145 64
+226 145 64
+227 145 64
+228 145 64
+229 145 64
+230 145 64
+231 145 64
+232 145 64
+233 145 64
+234 145 64
+235 145 64
+236 145 64
+237 145 64
+238 145 64
+239 145 64
+240 145 64
+241 145 64
+242 145 64
+243 145 64
+244 145 64
+245 145 64
+246 145 64
+247 145 64
+248 145 64
+249 145 64
+250 145 64
+251 145 64
+252 145 64
+253 145 64
+254 145 64
+255 145 64
+0 144 64
+1 144 64
+2 144 64
+3 144 64
+4 144 64
+5 144 64
+6 144 64
+7 144 64
+8 144 64
+9 144 64
+10 144 64
+11 144 64
+12 144 64
+13 144 64
+14 144 64
+15 144 64
+16 144 64
+17 144 64
+18 144 64
+19 144 64
+20 144 64
+21 144 64
+22 144 64
+23 144 64
+24 144 64
+25 144 64
+26 144 64
+27 144 64
+28 144 64
+29 144 64
+30 144 64
+31 144 64
+32 144 64
+33 144 64
+34 144 64
+35 144 64
+36 144 64
+37 144 64
+38 144 64
+39 144 64
+40 144 64
+41 144 64
+42 144 64
+43 144 64
+44 144 64
+45 144 64
+46 144 64
+47 144 64
+48 144 64
+49 144 64
+50 144 64
+51 144 64
+52 144 64
+53 144 64
+54 144 64
+55 144 64
+56 144 64
+57 144 64
+58 144 64
+59 144 64
+60 144 64
+61 144 64
+62 144 64
+63 144 64
+64 144 64
+65 144 64
+66 144 64
+67 144 64
+68 144 64
+69 144 64
+70 144 64
+71 144 64
+72 144 64
+73 144 64
+74 144 64
+75 144 64
+76 144 64
+77 144 64
+78 144 64
+79 144 64
+80 144 64
+81 144 64
+82 144 64
+83 144 64
+84 144 64
+85 144 64
+86 144 64
+87 144 64
+88 144 64
+89 144 64
+90 144 64
+91 144 64
+92 144 64
+93 144 64
+94 144 64
+95 144 64
+96 144 64
+97 144 64
+98 144 64
+99 144 64
+100 144 64
+101 144 64
+102 144 64
+103 144 64
+104 144 64
+105 144 64
+106 144 64
+107 144 64
+108 144 64
+109 144 64
+110 144 64
+111 144 64
+112 144 64
+113 144 64
+114 144 64
+115 144 64
+116 144 64
+117 144 64
+118 144 64
+119 144 64
+120 144 64
+121 144 64
+122 144 64
+123 144 64
+124 144 64
+125 144 64
+126 144 64
+127 144 64
+128 144 64
+129 144 64
+130 144 64
+131 144 64
+132 144 64
+133 144 64
+134 144 64
+135 144 64
+136 144 64
+137 144 64
+138 144 64
+139 144 64
+140 144 64
+141 144 64
+142 144 64
+143 144 64
+144 144 64
+145 144 64
+146 144 64
+147 144 64
+148 144 64
+149 144 64
+150 144 64
+151 144 64
+152 144 64
+153 144 64
+154 144 64
+155 144 64
+156 144 64
+157 144 64
+158 144 64
+159 144 64
+160 144 64
+161 144 64
+162 144 64
+163 144 64
+164 144 64
+165 144 64
+166 144 64
+167 144 64
+168 144 64
+169 144 64
+170 144 64
+171 144 64
+172 144 64
+173 144 64
+174 144 64
+175 144 64
+176 144 64
+177 144 64
+178 144 64
+179 144 64
+180 144 64
+181 144 64
+182 144 64
+183 144 64
+184 144 64
+185 144 64
+186 144 64
+187 144 64
+188 144 64
+189 144 64
+190 144 64
+191 144 64
+192 144 64
+193 144 64
+194 144 64
+195 144 64
+196 144 64
+197 144 64
+198 144 64
+199 144 64
+200 144 64
+201 144 64
+202 144 64
+203 144 64
+204 144 64
+205 144 64
+206 144 64
+207 144 64
+208 144 64
+209 144 64
+210 144 64
+211 144 64
+212 144 64
+213 144 64
+214 144 64
+215 144 64
+216 144 64
+217 144 64
+218 144 64
+219 144 64
+220 144 64
+221 144 64
+222 144 64
+223 144 64
+224 144 64
+225 144 64
+226 144 64
+227 144 64
+228 144 64
+229 144 64
+230 144 64
+231 144 64
+232 144 64
+233 144 64
+234 144 64
+235 144 64
+236 144 64
+237 144 64
+238 144 64
+239 144 64
+240 144 64
+241 144 64
+242 144 64
+243 144 64
+244 144 64
+245 144 64
+246 144 64
+247 144 64
+248 144 64
+249 144 64
+250 144 64
+251 144 64
+252 144 64
+253 144 64
+254 144 64
+255 144 64
+0 143 64
+1 143 64
+2 143 64
+3 143 64
+4 143 64
+5 143 64
+6 143 64
+7 143 64
+8 143 64
+9 143 64
+10 143 64
+11 143 64
+12 143 64
+13 143 64
+14 143 64
+15 143 64
+16 143 64
+17 143 64
+18 143 64
+19 143 64
+20 143 64
+21 143 64
+22 143 64
+23 143 64
+24 143 64
+25 143 64
+26 143 64
+27 143 64
+28 143 64
+29 143 64
+30 143 64
+31 143 64
+32 143 64
+33 143 64
+34 143 64
+35 143 64
+36 143 64
+37 143 64
+38 143 64
+39 143 64
+40 143 64
+41 143 64
+42 143 64
+43 143 64
+44 143 64
+45 143 64
+46 143 64
+47 143 64
+48 143 64
+49 143 64
+50 143 64
+51 143 64
+52 143 64
+53 143 64
+54 143 64
+55 143 64
+56 143 64
+57 143 64
+58 143 64
+59 143 64
+60 143 64
+61 143 64
+62 143 64
+63 143 64
+64 143 64
+65 143 64
+66 143 64
+67 143 64
+68 143 64
+69 143 64
+70 143 64
+71 143 64
+72 143 64
+73 143 64
+74 143 64
+75 143 64
+76 143 64
+77 143 64
+78 143 64
+79 143 64
+80 143 64
+81 143 64
+82 143 64
+83 143 64
+84 143 64
+85 143 64
+86 143 64
+87 143 64
+88 143 64
+89 143 64
+90 143 64
+91 143 64
+92 143 64
+93 143 64
+94 143 64
+95 143 64
+96 143 64
+97 143 64
+98 143 64
+99 143 64
+100 143 64
+101 143 64
+102 143 64
+103 143 64
+104 143 64
+105 143 64
+106 143 64
+107 143 64
+108 143 64
+109 143 64
+110 143 64
+111 143 64
+112 143 64
+113 143 64
+114 143 64
+115 143 64
+116 143 64
+117 143 64
+118 143 64
+119 143 64
+120 143 64
+121 143 64
+122 143 64
+123 143 64
+124 143 64
+125 143 64
+126 143 64
+127 143 64
+128 143 64
+129 143 64
+130 143 64
+131 143 64
+132 143 64
+133 143 64
+134 143 64
+135 143 64
+136 143 64
+137 143 64
+138 143 64
+139 143 64
+140 143 64
+141 143 64
+142 143 64
+143 143 64
+144 143 64
+145 143 64
+146 143 64
+147 143 64
+148 143 64
+149 143 64
+150 143 64
+151 143 64
+152 143 64
+153 143 64
+154 143 64
+155 143 64
+156 143 64
+157 143 64
+158 143 64
+159 143 64
+160 143 64
+161 143 64
+162 143 64
+163 143 64
+164 143 64
+165 143 64
+166 143 64
+167 143 64
+168 143 64
+169 143 64
+170 143 64
+171 143 64
+172 143 64
+173 143 64
+174 143 64
+175 143 64
+176 143 64
+177 143 64
+178 143 64
+179 143 64
+180 143 64
+181 143 64
+182 143 64
+183 143 64
+184 143 64
+185 143 64
+186 143 64
+187 143 64
+188 143 64
+189 143 64
+190 143 64
+191 143 64
+192 143 64
+193 143 64
+194 143 64
+195 143 64
+196 143 64
+197 143 64
+198 143 64
+199 143 64
+200 143 64
+201 143 64
+202 143 64
+203 143 64
+204 143 64
+205 143 64
+206 143 64
+207 143 64
+208 143 64
+209 143 64
+210 143 64
+211 143 64
+212 143 64
+213 143 64
+214 143 64
+215 143 64
+216 143 64
+217 143 64
+218 143 64
+219 143 64
+220 143 64
+221 143 64
+222 143 64
+223 143 64
+224 143 64
+225 143 64
+226 143 64
+227 143 64
+228 143 64
+229 143 64
+230 143 64
+231 143 64
+232 143 64
+233 143 64
+234 143 64
+235 143 64
+236 143 64
+237 143 64
+238 143 64
+239 143 64
+240 143 64
+241 143 64
+242 143 64
+243 143 64
+244 143 64
+245 143 64
+246 143 64
+247 143 64
+248 143 64
+249 143 64
+250 143 64
+251 143 64
+252 143 64
+253 143 64
+254 143 64
+255 143 64
+0 142 64
+1 142 64
+2 142 64
+3 142 64
+4 142 64
+5 142 64
+6 142 64
+7 142 64
+8 142 64
+9 142 64
+10 142 64
+11 142 64
+12 142 64
+13 142 64
+14 142 64
+15 142 64
+16 142 64
+17 142 64
+18 142 64
+19 142 64
+20 142 64
+21 142 64
+22 142 64
+23 142 64
+24 142 64
+25 142 64
+26 142 64
+27 142 64
+28 142 64
+29 142 64
+30 142 64
+31 142 64
+32 142 64
+33 142 64
+34 142 64
+35 142 64
+36 142 64
+37 142 64
+38 142 64
+39 142 64
+40 142 64
+41 142 64
+42 142 64
+43 142 64
+44 142 64
+45 142 64
+46 142 64
+47 142 64
+48 142 64
+49 142 64
+50 142 64
+51 142 64
+52 142 64
+53 142 64
+54 142 64
+55 142 64
+56 142 64
+57 142 64
+58 142 64
+59 142 64
+60 142 64
+61 142 64
+62 142 64
+63 142 64
+64 142 64
+65 142 64
+66 142 64
+67 142 64
+68 142 64
+69 142 64
+70 142 64
+71 142 64
+72 142 64
+73 142 64
+74 142 64
+75 142 64
+76 142 64
+77 142 64
+78 142 64
+79 142 64
+80 142 64
+81 142 64
+82 142 64
+83 142 64
+84 142 64
+85 142 64
+86 142 64
+87 142 64
+88 142 64
+89 142 64
+90 142 64
+91 142 64
+92 142 64
+93 142 64
+94 142 64
+95 142 64
+96 142 64
+97 142 64
+98 142 64
+99 142 64
+100 142 64
+101 142 64
+102 142 64
+103 142 64
+104 142 64
+105 142 64
+106 142 64
+107 142 64
+108 142 64
+109 142 64
+110 142 64
+111 142 64
+112 142 64
+113 142 64
+114 142 64
+115 142 64
+116 142 64
+117 142 64
+118 142 64
+119 142 64
+120 142 64
+121 142 64
+122 142 64
+123 142 64
+124 142 64
+125 142 64
+126 142 64
+127 142 64
+128 142 64
+129 142 64
+130 142 64
+131 142 64
+132 142 64
+133 142 64
+134 142 64
+135 142 64
+136 142 64
+137 142 64
+138 142 64
+139 142 64
+140 142 64
+141 142 64
+142 142 64
+143 142 64
+144 142 64
+145 142 64
+146 142 64
+147 142 64
+148 142 64
+149 142 64
+150 142 64
+151 142 64
+152 142 64
+153 142 64
+154 142 64
+155 142 64
+156 142 64
+157 142 64
+158 142 64
+159 142 64
+160 142 64
+161 142 64
+162 142 64
+163 142 64
+164 142 64
+165 142 64
+166 142 64
+167 142 64
+168 142 64
+169 142 64
+170 142 64
+171 142 64
+172 142 64
+173 142 64
+174 142 64
+175 142 64
+176 142 64
+177 142 64
+178 142 64
+179 142 64
+180 142 64
+181 142 64
+182 142 64
+183 142 64
+184 142 64
+185 142 64
+186 142 64
+187 142 64
+188 142 64
+189 142 64
+190 142 64
+191 142 64
+192 142 64
+193 142 64
+194 142 64
+195 142 64
+196 142 64
+197 142 64
+198 142 64
+199 142 64
+200 142 64
+201 142 64
+202 142 64
+203 142 64
+204 142 64
+205 142 64
+206 142 64
+207 142 64
+208 142 64
+209 142 64
+210 142 64
+211 142 64
+212 142 64
+213 142 64
+214 142 64
+215 142 64
+216 142 64
+217 142 64
+218 142 64
+219 142 64
+220 142 64
+221 142 64
+222 142 64
+223 142 64
+224 142 64
+225 142 64
+226 142 64
+227 142 64
+228 142 64
+229 142 64
+230 142 64
+231 142 64
+232 142 64
+233 142 64
+234 142 64
+235 142 64
+236 142 64
+237 142 64
+238 142 64
+239 142 64
+240 142 64
+241 142 64
+242 142 64
+243 142 64
+244 142 64
+245 142 64
+246 142 64
+247 142 64
+248 142 64
+249 142 64
+250 142 64
+251 142 64
+252 142 64
+253 142 64
+254 142 64
+255 142 64
+0 141 64
+1 141 64
+2 141 64
+3 141 64
+4 141 64
+5 141 64
+6 141 64
+7 141 64
+8 141 64
+9 141 64
+10 141 64
+11 141 64
+12 141 64
+13 141 64
+14 141 64
+15 141 64
+16 141 64
+17 141 64
+18 141 64
+19 141 64
+20 141 64
+21 141 64
+22 141 64
+23 141 64
+24 141 64
+25 141 64
+26 141 64
+27 141 64
+28 141 64
+29 141 64
+30 141 64
+31 141 64
+32 141 64
+33 141 64
+34 141 64
+35 141 64
+36 141 64
+37 141 64
+38 141 64
+39 141 64
+40 141 64
+41 141 64
+42 141 64
+43 141 64
+44 141 64
+45 141 64
+46 141 64
+47 141 64
+48 141 64
+49 141 64
+50 141 64
+51 141 64
+52 141 64
+53 141 64
+54 141 64
+55 141 64
+56 141 64
+57 141 64
+58 141 64
+59 141 64
+60 141 64
+61 141 64
+62 141 64
+63 141 64
+64 141 64
+65 141 64
+66 141 64
+67 141 64
+68 141 64
+69 141 64
+70 141 64
+71 141 64
+72 141 64
+73 141 64
+74 141 64
+75 141 64
+76 141 64
+77 141 64
+78 141 64
+79 141 64
+80 141 64
+81 141 64
+82 141 64
+83 141 64
+84 141 64
+85 141 64
+86 141 64
+87 141 64
+88 141 64
+89 141 64
+90 141 64
+91 141 64
+92 141 64
+93 141 64
+94 141 64
+95 141 64
+96 141 64
+97 141 64
+98 141 64
+99 141 64
+100 141 64
+101 141 64
+102 141 64
+103 141 64
+104 141 64
+105 141 64
+106 141 64
+107 141 64
+108 141 64
+109 141 64
+110 141 64
+111 141 64
+112 141 64
+113 141 64
+114 141 64
+115 141 64
+116 141 64
+117 141 64
+118 141 64
+119 141 64
+120 141 64
+121 141 64
+122 141 64
+123 141 64
+124 141 64
+125 141 64
+126 141 64
+127 141 64
+128 141 64
+129 141 64
+130 141 64
+131 141 64
+132 141 64
+133 141 64
+134 141 64
+135 141 64
+136 141 64
+137 141 64
+138 141 64
+139 141 64
+140 141 64
+141 141 64
+142 141 64
+143 141 64
+144 141 64
+145 141 64
+146 141 64
+147 141 64
+148 141 64
+149 141 64
+150 141 64
+151 141 64
+152 141 64
+153 141 64
+154 141 64
+155 141 64
+156 141 64
+157 141 64
+158 141 64
+159 141 64
+160 141 64
+161 141 64
+162 141 64
+163 141 64
+164 141 64
+165 141 64
+166 141 64
+167 141 64
+168 141 64
+169 141 64
+170 141 64
+171 141 64
+172 141 64
+173 141 64
+174 141 64
+175 141 64
+176 141 64
+177 141 64
+178 141 64
+179 141 64
+180 141 64
+181 141 64
+182 141 64
+183 141 64
+184 141 64
+185 141 64
+186 141 64
+187 141 64
+188 141 64
+189 141 64
+190 141 64
+191 141 64
+192 141 64
+193 141 64
+194 141 64
+195 141 64
+196 141 64
+197 141 64
+198 141 64
+199 141 64
+200 141 64
+201 141 64
+202 141 64
+203 141 64
+204 141 64
+205 141 64
+206 141 64
+207 141 64
+208 141 64
+209 141 64
+210 141 64
+211 141 64
+212 141 64
+213 141 64
+214 141 64
+215 141 64
+216 141 64
+217 141 64
+218 141 64
+219 141 64
+220 141 64
+221 141 64
+222 141 64
+223 141 64
+224 141 64
+225 141 64
+226 141 64
+227 141 64
+228 141 64
+229 141 64
+230 141 64
+231 141 64
+232 141 64
+233 141 64
+234 141 64
+235 141 64
+236 141 64
+237 141 64
+238 141 64
+239 141 64
+240 141 64
+241 141 64
+242 141 64
+243 141 64
+244 141 64
+245 141 64
+246 141 64
+247 141 64
+248 141 64
+249 141 64
+250 141 64
+251 141 64
+252 141 64
+253 141 64
+254 141 64
+255 141 64
+0 140 64
+1 140 64
+2 140 64
+3 140 64
+4 140 64
+5 140 64
+6 140 64
+7 140 64
+8 140 64
+9 140 64
+10 140 64
+11 140 64
+12 140 64
+13 140 64
+14 140 64
+15 140 64
+16 140 64
+17 140 64
+18 140 64
+19 140 64
+20 140 64
+21 140 64
+22 140 64
+23 140 64
+24 140 64
+25 140 64
+26 140 64
+27 140 64
+28 140 64
+29 140 64
+30 140 64
+31 140 64
+32 140 64
+33 140 64
+34 140 64
+35 140 64
+36 140 64
+37 140 64
+38 140 64
+39 140 64
+40 140 64
+41 140 64
+42 140 64
+43 140 64
+44 140 64
+45 140 64
+46 140 64
+47 140 64
+48 140 64
+49 140 64
+50 140 64
+51 140 64
+52 140 64
+53 140 64
+54 140 64
+55 140 64
+56 140 64
+57 140 64
+58 140 64
+59 140 64
+60 140 64
+61 140 64
+62 140 64
+63 140 64
+64 140 64
+65 140 64
+66 140 64
+67 140 64
+68 140 64
+69 140 64
+70 140 64
+71 140 64
+72 140 64
+73 140 64
+74 140 64
+75 140 64
+76 140 64
+77 140 64
+78 140 64
+79 140 64
+80 140 64
+81 140 64
+82 140 64
+83 140 64
+84 140 64
+85 140 64
+86 140 64
+87 140 64
+88 140 64
+89 140 64
+90 140 64
+91 140 64
+92 140 64
+93 140 64
+94 140 64
+95 140 64
+96 140 64
+97 140 64
+98 140 64
+99 140 64
+100 140 64
+101 140 64
+102 140 64
+103 140 64
+104 140 64
+105 140 64
+106 140 64
+107 140 64
+108 140 64
+109 140 64
+110 140 64
+111 140 64
+112 140 64
+113 140 64
+114 140 64
+115 140 64
+116 140 64
+117 140 64
+118 140 64
+119 140 64
+120 140 64
+121 140 64
+122 140 64
+123 140 64
+124 140 64
+125 140 64
+126 140 64
+127 140 64
+128 140 64
+129 140 64
+130 140 64
+131 140 64
+132 140 64
+133 140 64
+134 140 64
+135 140 64
+136 140 64
+137 140 64
+138 140 64
+139 140 64
+140 140 64
+141 140 64
+142 140 64
+143 140 64
+144 140 64
+145 140 64
+146 140 64
+147 140 64
+148 140 64
+149 140 64
+150 140 64
+151 140 64
+152 140 64
+153 140 64
+154 140 64
+155 140 64
+156 140 64
+157 140 64
+158 140 64
+159 140 64
+160 140 64
+161 140 64
+162 140 64
+163 140 64
+164 140 64
+165 140 64
+166 140 64
+167 140 64
+168 140 64
+169 140 64
+170 140 64
+171 140 64
+172 140 64
+173 140 64
+174 140 64
+175 140 64
+176 140 64
+177 140 64
+178 140 64
+179 140 64
+180 140 64
+181 140 64
+182 140 64
+183 140 64
+184 140 64
+185 140 64
+186 140 64
+187 140 64
+188 140 64
+189 140 64
+190 140 64
+191 140 64
+192 140 64
+193 140 64
+194 140 64
+195 140 64
+196 140 64
+197 140 64
+198 140 64
+199 140 64
+200 140 64
+201 140 64
+202 140 64
+203 140 64
+204 140 64
+205 140 64
+206 140 64
+207 140 64
+208 140 64
+209 140 64
+210 140 64
+211 140 64
+212 140 64
+213 140 64
+214 140 64
+215 140 64
+216 140 64
+217 140 64
+218 140 64
+219 140 64
+220 140 64
+221 140 64
+222 140 64
+223 140 64
+224 140 64
+225 140 64
+226 140 64
+227 140 64
+228 140 64
+229 140 64
+230 140 64
+231 140 64
+232 140 64
+233 140 64
+234 140 64
+235 140 64
+236 140 64
+237 140 64
+238 140 64
+239 140 64
+240 140 64
+241 140 64
+242 140 64
+243 140 64
+244 140 64
+245 140 64
+246 140 64
+247 140 64
+248 140 64
+249 140 64
+250 140 64
+251 140 64
+252 140 64
+253 140 64
+254 140 64
+255 140 64
+0 139 64
+1 139 64
+2 139 64
+3 139 64
+4 139 64
+5 139 64
+6 139 64
+7 139 64
+8 139 64
+9 139 64
+10 139 64
+11 139 64
+12 139 64
+13 139 64
+14 139 64
+15 139 64
+16 139 64
+17 139 64
+18 139 64
+19 139 64
+20 139 64
+21 139 64
+22 139 64
+23 139 64
+24 139 64
+25 139 64
+26 139 64
+27 139 64
+28 139 64
+29 139 64
+30 139 64
+31 139 64
+32 139 64
+33 139 64
+34 139 64
+35 139 64
+36 139 64
+37 139 64
+38 139 64
+39 139 64
+40 139 64
+41 139 64
+42 139 64
+43 139 64
+44 139 64
+45 139 64
+46 139 64
+47 139 64
+48 139 64
+49 139 64
+50 139 64
+51 139 64
+52 139 64
+53 139 64
+54 139 64
+55 139 64
+56 139 64
+57 139 64
+58 139 64
+59 139 64
+60 139 64
+61 139 64
+62 139 64
+63 139 64
+64 139 64
+65 139 64
+66 139 64
+67 139 64
+68 139 64
+69 139 64
+70 139 64
+71 139 64
+72 139 64
+73 139 64
+74 139 64
+75 139 64
+76 139 64
+77 139 64
+78 139 64
+79 139 64
+80 139 64
+81 139 64
+82 139 64
+83 139 64
+84 139 64
+85 139 64
+86 139 64
+87 139 64
+88 139 64
+89 139 64
+90 139 64
+91 139 64
+92 139 64
+93 139 64
+94 139 64
+95 139 64
+96 139 64
+97 139 64
+98 139 64
+99 139 64
+100 139 64
+101 139 64
+102 139 64
+103 139 64
+104 139 64
+105 139 64
+106 139 64
+107 139 64
+108 139 64
+109 139 64
+110 139 64
+111 139 64
+112 139 64
+113 139 64
+114 139 64
+115 139 64
+116 139 64
+117 139 64
+118 139 64
+119 139 64
+120 139 64
+121 139 64
+122 139 64
+123 139 64
+124 139 64
+125 139 64
+126 139 64
+127 139 64
+128 139 64
+129 139 64
+130 139 64
+131 139 64
+132 139 64
+133 139 64
+134 139 64
+135 139 64
+136 139 64
+137 139 64
+138 139 64
+139 139 64
+140 139 64
+141 139 64
+142 139 64
+143 139 64
+144 139 64
+145 139 64
+146 139 64
+147 139 64
+148 139 64
+149 139 64
+150 139 64
+151 139 64
+152 139 64
+153 139 64
+154 139 64
+155 139 64
+156 139 64
+157 139 64
+158 139 64
+159 139 64
+160 139 64
+161 139 64
+162 139 64
+163 139 64
+164 139 64
+165 139 64
+166 139 64
+167 139 64
+168 139 64
+169 139 64
+170 139 64
+171 139 64
+172 139 64
+173 139 64
+174 139 64
+175 139 64
+176 139 64
+177 139 64
+178 139 64
+179 139 64
+180 139 64
+181 139 64
+182 139 64
+183 139 64
+184 139 64
+185 139 64
+186 139 64
+187 139 64
+188 139 64
+189 139 64
+190 139 64
+191 139 64
+192 139 64
+193 139 64
+194 139 64
+195 139 64
+196 139 64
+197 139 64
+198 139 64
+199 139 64
+200 139 64
+201 139 64
+202 139 64
+203 139 64
+204 139 64
+205 139 64
+206 139 64
+207 139 64
+208 139 64
+209 139 64
+210 139 64
+211 139 64
+212 139 64
+213 139 64
+214 139 64
+215 139 64
+216 139 64
+217 139 64
+218 139 64
+219 139 64
+220 139 64
+221 139 64
+222 139 64
+223 139 64
+224 139 64
+225 139 64
+226 139 64
+227 139 64
+228 139 64
+229 139 64
+230 139 64
+231 139 64
+232 139 64
+233 139 64
+234 139 64
+235 139 64
+236 139 64
+237 139 64
+238 139 64
+239 139 64
+240 139 64
+241 139 64
+242 139 64
+243 139 64
+244 139 64
+245 139 64
+246 139 64
+247 139 64
+248 139 64
+249 139 64
+250 139 64
+251 139 64
+252 139 64
+253 139 64
+254 139 64
+255 139 64
+0 138 64
+1 138 64
+2 138 64
+3 138 64
+4 138 64
+5 138 64
+6 138 64
+7 138 64
+8 138 64
+9 138 64
+10 138 64
+11 138 64
+12 138 64
+13 138 64
+14 138 64
+15 138 64
+16 138 64
+17 138 64
+18 138 64
+19 138 64
+20 138 64
+21 138 64
+22 138 64
+23 138 64
+24 138 64
+25 138 64
+26 138 64
+27 138 64
+28 138 64
+29 138 64
+30 138 64
+31 138 64
+32 138 64
+33 138 64
+34 138 64
+35 138 64
+36 138 64
+37 138 64
+38 138 64
+39 138 64
+40 138 64
+41 138 64
+42 138 64
+43 138 64
+44 138 64
+45 138 64
+46 138 64
+47 138 64
+48 138 64
+49 138 64
+50 138 64
+51 138 64
+52 138 64
+53 138 64
+54 138 64
+55 138 64
+56 138 64
+57 138 64
+58 138 64
+59 138 64
+60 138 64
+61 138 64
+62 138 64
+63 138 64
+64 138 64
+65 138 64
+66 138 64
+67 138 64
+68 138 64
+69 138 64
+70 138 64
+71 138 64
+72 138 64
+73 138 64
+74 138 64
+75 138 64
+76 138 64
+77 138 64
+78 138 64
+79 138 64
+80 138 64
+81 138 64
+82 138 64
+83 138 64
+84 138 64
+85 138 64
+86 138 64
+87 138 64
+88 138 64
+89 138 64
+90 138 64
+91 138 64
+92 138 64
+93 138 64
+94 138 64
+95 138 64
+96 138 64
+97 138 64
+98 138 64
+99 138 64
+100 138 64
+101 138 64
+102 138 64
+103 138 64
+104 138 64
+105 138 64
+106 138 64
+107 138 64
+108 138 64
+109 138 64
+110 138 64
+111 138 64
+112 138 64
+113 138 64
+114 138 64
+115 138 64
+116 138 64
+117 138 64
+118 138 64
+119 138 64
+120 138 64
+121 138 64
+122 138 64
+123 138 64
+124 138 64
+125 138 64
+126 138 64
+127 138 64
+128 138 64
+129 138 64
+130 138 64
+131 138 64
+132 138 64
+133 138 64
+134 138 64
+135 138 64
+136 138 64
+137 138 64
+138 138 64
+139 138 64
+140 138 64
+141 138 64
+142 138 64
+143 138 64
+144 138 64
+145 138 64
+146 138 64
+147 138 64
+148 138 64
+149 138 64
+150 138 64
+151 138 64
+152 138 64
+153 138 64
+154 138 64
+155 138 64
+156 138 64
+157 138 64
+158 138 64
+159 138 64
+160 138 64
+161 138 64
+162 138 64
+163 138 64
+164 138 64
+165 138 64
+166 138 64
+167 138 64
+168 138 64
+169 138 64
+170 138 64
+171 138 64
+172 138 64
+173 138 64
+174 138 64
+175 138 64
+176 138 64
+177 138 64
+178 138 64
+179 138 64
+180 138 64
+181 138 64
+182 138 64
+183 138 64
+184 138 64
+185 138 64
+186 138 64
+187 138 64
+188 138 64
+189 138 64
+190 138 64
+191 138 64
+192 138 64
+193 138 64
+194 138 64
+195 138 64
+196 138 64
+197 138 64
+198 138 64
+199 138 64
+200 138 64
+201 138 64
+202 138 64
+203 138 64
+204 138 64
+205 138 64
+206 138 64
+207 138 64
+208 138 64
+209 138 64
+210 138 64
+211 138 64
+212 138 64
+213 138 64
+214 138 64
+215 138 64
+216 138 64
+217 138 64
+218 138 64
+219 138 64
+220 138 64
+221 138 64
+222 138 64
+223 138 64
+224 138 64
+225 138 64
+226 138 64
+227 138 64
+228 138 64
+229 138 64
+230 138 64
+231 138 64
+232 138 64
+233 138 64
+234 138 64
+235 138 64
+236 138 64
+237 138 64
+238 138 64
+239 138 64
+240 138 64
+241 138 64
+242 138 64
+243 138 64
+244 138 64
+245 138 64
+246 138 64
+247 138 64
+248 138 64
+249 138 64
+250 138 64
+251 138 64
+252 138 64
+253 138 64
+254 138 64
+255 138 64
+0 137 64
+1 137 64
+2 137 64
+3 137 64
+4 137 64
+5 137 64
+6 137 64
+7 137 64
+8 137 64
+9 137 64
+10 137 64
+11 137 64
+12 137 64
+13 137 64
+14 137 64
+15 137 64
+16 137 64
+17 137 64
+18 137 64
+19 137 64
+20 137 64
+21 137 64
+22 137 64
+23 137 64
+24 137 64
+25 137 64
+26 137 64
+27 137 64
+28 137 64
+29 137 64
+30 137 64
+31 137 64
+32 137 64
+33 137 64
+34 137 64
+35 137 64
+36 137 64
+37 137 64
+38 137 64
+39 137 64
+40 137 64
+41 137 64
+42 137 64
+43 137 64
+44 137 64
+45 137 64
+46 137 64
+47 137 64
+48 137 64
+49 137 64
+50 137 64
+51 137 64
+52 137 64
+53 137 64
+54 137 64
+55 137 64
+56 137 64
+57 137 64
+58 137 64
+59 137 64
+60 137 64
+61 137 64
+62 137 64
+63 137 64
+64 137 64
+65 137 64
+66 137 64
+67 137 64
+68 137 64
+69 137 64
+70 137 64
+71 137 64
+72 137 64
+73 137 64
+74 137 64
+75 137 64
+76 137 64
+77 137 64
+78 137 64
+79 137 64
+80 137 64
+81 137 64
+82 137 64
+83 137 64
+84 137 64
+85 137 64
+86 137 64
+87 137 64
+88 137 64
+89 137 64
+90 137 64
+91 137 64
+92 137 64
+93 137 64
+94 137 64
+95 137 64
+96 137 64
+97 137 64
+98 137 64
+99 137 64
+100 137 64
+101 137 64
+102 137 64
+103 137 64
+104 137 64
+105 137 64
+106 137 64
+107 137 64
+108 137 64
+109 137 64
+110 137 64
+111 137 64
+112 137 64
+113 137 64
+114 137 64
+115 137 64
+116 137 64
+117 137 64
+118 137 64
+119 137 64
+120 137 64
+121 137 64
+122 137 64
+123 137 64
+124 137 64
+125 137 64
+126 137 64
+127 137 64
+128 137 64
+129 137 64
+130 137 64
+131 137 64
+132 137 64
+133 137 64
+134 137 64
+135 137 64
+136 137 64
+137 137 64
+138 137 64
+139 137 64
+140 137 64
+141 137 64
+142 137 64
+143 137 64
+144 137 64
+145 137 64
+146 137 64
+147 137 64
+148 137 64
+149 137 64
+150 137 64
+151 137 64
+152 137 64
+153 137 64
+154 137 64
+155 137 64
+156 137 64
+157 137 64
+158 137 64
+159 137 64
+160 137 64
+161 137 64
+162 137 64
+163 137 64
+164 137 64
+165 137 64
+166 137 64
+167 137 64
+168 137 64
+169 137 64
+170 137 64
+171 137 64
+172 137 64
+173 137 64
+174 137 64
+175 137 64
+176 137 64
+177 137 64
+178 137 64
+179 137 64
+180 137 64
+181 137 64
+182 137 64
+183 137 64
+184 137 64
+185 137 64
+186 137 64
+187 137 64
+188 137 64
+189 137 64
+190 137 64
+191 137 64
+192 137 64
+193 137 64
+194 137 64
+195 137 64
+196 137 64
+197 137 64
+198 137 64
+199 137 64
+200 137 64
+201 137 64
+202 137 64
+203 137 64
+204 137 64
+205 137 64
+206 137 64
+207 137 64
+208 137 64
+209 137 64
+210 137 64
+211 137 64
+212 137 64
+213 137 64
+214 137 64
+215 137 64
+216 137 64
+217 137 64
+218 137 64
+219 137 64
+220 137 64
+221 137 64
+222 137 64
+223 137 64
+224 137 64
+225 137 64
+226 137 64
+227 137 64
+228 137 64
+229 137 64
+230 137 64
+231 137 64
+232 137 64
+233 137 64
+234 137 64
+235 137 64
+236 137 64
+237 137 64
+238 137 64
+239 137 64
+240 137 64
+241 137 64
+242 137 64
+243 137 64
+244 137 64
+245 137 64
+246 137 64
+247 137 64
+248 137 64
+249 137 64
+250 137 64
+251 137 64
+252 137 64
+253 137 64
+254 137 64
+255 137 64
+0 136 64
+1 136 64
+2 136 64
+3 136 64
+4 136 64
+5 136 64
+6 136 64
+7 136 64
+8 136 64
+9 136 64
+10 136 64
+11 136 64
+12 136 64
+13 136 64
+14 136 64
+15 136 64
+16 136 64
+17 136 64
+18 136 64
+19 136 64
+20 136 64
+21 136 64
+22 136 64
+23 136 64
+24 136 64
+25 136 64
+26 136 64
+27 136 64
+28 136 64
+29 136 64
+30 136 64
+31 136 64
+32 136 64
+33 136 64
+34 136 64
+35 136 64
+36 136 64
+37 136 64
+38 136 64
+39 136 64
+40 136 64
+41 136 64
+42 136 64
+43 136 64
+44 136 64
+45 136 64
+46 136 64
+47 136 64
+48 136 64
+49 136 64
+50 136 64
+51 136 64
+52 136 64
+53 136 64
+54 136 64
+55 136 64
+56 136 64
+57 136 64
+58 136 64
+59 136 64
+60 136 64
+61 136 64
+62 136 64
+63 136 64
+64 136 64
+65 136 64
+66 136 64
+67 136 64
+68 136 64
+69 136 64
+70 136 64
+71 136 64
+72 136 64
+73 136 64
+74 136 64
+75 136 64
+76 136 64
+77 136 64
+78 136 64
+79 136 64
+80 136 64
+81 136 64
+82 136 64
+83 136 64
+84 136 64
+85 136 64
+86 136 64
+87 136 64
+88 136 64
+89 136 64
+90 136 64
+91 136 64
+92 136 64
+93 136 64
+94 136 64
+95 136 64
+96 136 64
+97 136 64
+98 136 64
+99 136 64
+100 136 64
+101 136 64
+102 136 64
+103 136 64
+104 136 64
+105 136 64
+106 136 64
+107 136 64
+108 136 64
+109 136 64
+110 136 64
+111 136 64
+112 136 64
+113 136 64
+114 136 64
+115 136 64
+116 136 64
+117 136 64
+118 136 64
+119 136 64
+120 136 64
+121 136 64
+122 136 64
+123 136 64
+124 136 64
+125 136 64
+126 136 64
+127 136 64
+128 136 64
+129 136 64
+130 136 64
+131 136 64
+132 136 64
+133 136 64
+134 136 64
+135 136 64
+136 136 64
+137 136 64
+138 136 64
+139 136 64
+140 136 64
+141 136 64
+142 136 64
+143 136 64
+144 136 64
+145 136 64
+146 136 64
+147 136 64
+148 136 64
+149 136 64
+150 136 64
+151 136 64
+152 136 64
+153 136 64
+154 136 64
+155 136 64
+156 136 64
+157 136 64
+158 136 64
+159 136 64
+160 136 64
+161 136 64
+162 136 64
+163 136 64
+164 136 64
+165 136 64
+166 136 64
+167 136 64
+168 136 64
+169 136 64
+170 136 64
+171 136 64
+172 136 64
+173 136 64
+174 136 64
+175 136 64
+176 136 64
+177 136 64
+178 136 64
+179 136 64
+180 136 64
+181 136 64
+182 136 64
+183 136 64
+184 136 64
+185 136 64
+186 136 64
+187 136 64
+188 136 64
+189 136 64
+190 136 64
+191 136 64
+192 136 64
+193 136 64
+194 136 64
+195 136 64
+196 136 64
+197 136 64
+198 136 64
+199 136 64
+200 136 64
+201 136 64
+202 136 64
+203 136 64
+204 136 64
+205 136 64
+206 136 64
+207 136 64
+208 136 64
+209 136 64
+210 136 64
+211 136 64
+212 136 64
+213 136 64
+214 136 64
+215 136 64
+216 136 64
+217 136 64
+218 136 64
+219 136 64
+220 136 64
+221 136 64
+222 136 64
+223 136 64
+224 136 64
+225 136 64
+226 136 64
+227 136 64
+228 136 64
+229 136 64
+230 136 64
+231 136 64
+232 136 64
+233 136 64
+234 136 64
+235 136 64
+236 136 64
+237 136 64
+238 136 64
+239 136 64
+240 136 64
+241 136 64
+242 136 64
+243 136 64
+244 136 64
+245 136 64
+246 136 64
+247 136 64
+248 136 64
+249 136 64
+250 136 64
+251 136 64
+252 136 64
+253 136 64
+254 136 64
+255 136 64
+0 135 64
+1 135 64
+2 135 64
+3 135 64
+4 135 64
+5 135 64
+6 135 64
+7 135 64
+8 135 64
+9 135 64
+10 135 64
+11 135 64
+12 135 64
+13 135 64
+14 135 64
+15 135 64
+16 135 64
+17 135 64
+18 135 64
+19 135 64
+20 135 64
+21 135 64
+22 135 64
+23 135 64
+24 135 64
+25 135 64
+26 135 64
+27 135 64
+28 135 64
+29 135 64
+30 135 64
+31 135 64
+32 135 64
+33 135 64
+34 135 64
+35 135 64
+36 135 64
+37 135 64
+38 135 64
+39 135 64
+40 135 64
+41 135 64
+42 135 64
+43 135 64
+44 135 64
+45 135 64
+46 135 64
+47 135 64
+48 135 64
+49 135 64
+50 135 64
+51 135 64
+52 135 64
+53 135 64
+54 135 64
+55 135 64
+56 135 64
+57 135 64
+58 135 64
+59 135 64
+60 135 64
+61 135 64
+62 135 64
+63 135 64
+64 135 64
+65 135 64
+66 135 64
+67 135 64
+68 135 64
+69 135 64
+70 135 64
+71 135 64
+72 135 64
+73 135 64
+74 135 64
+75 135 64
+76 135 64
+77 135 64
+78 135 64
+79 135 64
+80 135 64
+81 135 64
+82 135 64
+83 135 64
+84 135 64
+85 135 64
+86 135 64
+87 135 64
+88 135 64
+89 135 64
+90 135 64
+91 135 64
+92 135 64
+93 135 64
+94 135 64
+95 135 64
+96 135 64
+97 135 64
+98 135 64
+99 135 64
+100 135 64
+101 135 64
+102 135 64
+103 135 64
+104 135 64
+105 135 64
+106 135 64
+107 135 64
+108 135 64
+109 135 64
+110 135 64
+111 135 64
+112 135 64
+113 135 64
+114 135 64
+115 135 64
+116 135 64
+117 135 64
+118 135 64
+119 135 64
+120 135 64
+121 135 64
+122 135 64
+123 135 64
+124 135 64
+125 135 64
+126 135 64
+127 135 64
+128 135 64
+129 135 64
+130 135 64
+131 135 64
+132 135 64
+133 135 64
+134 135 64
+135 135 64
+136 135 64
+137 135 64
+138 135 64
+139 135 64
+140 135 64
+141 135 64
+142 135 64
+143 135 64
+144 135 64
+145 135 64
+146 135 64
+147 135 64
+148 135 64
+149 135 64
+150 135 64
+151 135 64
+152 135 64
+153 135 64
+154 135 64
+155 135 64
+156 135 64
+157 135 64
+158 135 64
+159 135 64
+160 135 64
+161 135 64
+162 135 64
+163 135 64
+164 135 64
+165 135 64
+166 135 64
+167 135 64
+168 135 64
+169 135 64
+170 135 64
+171 135 64
+172 135 64
+173 135 64
+174 135 64
+175 135 64
+176 135 64
+177 135 64
+178 135 64
+179 135 64
+180 135 64
+181 135 64
+182 135 64
+183 135 64
+184 135 64
+185 135 64
+186 135 64
+187 135 64
+188 135 64
+189 135 64
+190 135 64
+191 135 64
+192 135 64
+193 135 64
+194 135 64
+195 135 64
+196 135 64
+197 135 64
+198 135 64
+199 135 64
+200 135 64
+201 135 64
+202 135 64
+203 135 64
+204 135 64
+205 135 64
+206 135 64
+207 135 64
+208 135 64
+209 135 64
+210 135 64
+211 135 64
+212 135 64
+213 135 64
+214 135 64
+215 135 64
+216 135 64
+217 135 64
+218 135 64
+219 135 64
+220 135 64
+221 135 64
+222 135 64
+223 135 64
+224 135 64
+225 135 64
+226 135 64
+227 135 64
+228 135 64
+229 135 64
+230 135 64
+231 135 64
+232 135 64
+233 135 64
+234 135 64
+235 135 64
+236 135 64
+237 135 64
+238 135 64
+239 135 64
+240 135 64
+241 135 64
+242 135 64
+243 135 64
+244 135 64
+245 135 64
+246 135 64
+247 135 64
+248 135 64
+249 135 64
+250 135 64
+251 135 64
+252 135 64
+253 135 64
+254 135 64
+255 135 64
+0 134 64
+1 134 64
+2 134 64
+3 134 64
+4 134 64
+5 134 64
+6 134 64
+7 134 64
+8 134 64
+9 134 64
+10 134 64
+11 134 64
+12 134 64
+13 134 64
+14 134 64
+15 134 64
+16 134 64
+17 134 64
+18 134 64
+19 134 64
+20 134 64
+21 134 64
+22 134 64
+23 134 64
+24 134 64
+25 134 64
+26 134 64
+27 134 64
+28 134 64
+29 134 64
+30 134 64
+31 134 64
+32 134 64
+33 134 64
+34 134 64
+35 134 64
+36 134 64
+37 134 64
+38 134 64
+39 134 64
+40 134 64
+41 134 64
+42 134 64
+43 134 64
+44 134 64
+45 134 64
+46 134 64
+47 134 64
+48 134 64
+49 134 64
+50 134 64
+51 134 64
+52 134 64
+53 134 64
+54 134 64
+55 134 64
+56 134 64
+57 134 64
+58 134 64
+59 134 64
+60 134 64
+61 134 64
+62 134 64
+63 134 64
+64 134 64
+65 134 64
+66 134 64
+67 134 64
+68 134 64
+69 134 64
+70 134 64
+71 134 64
+72 134 64
+73 134 64
+74 134 64
+75 134 64
+76 134 64
+77 134 64
+78 134 64
+79 134 64
+80 134 64
+81 134 64
+82 134 64
+83 134 64
+84 134 64
+85 134 64
+86 134 64
+87 134 64
+88 134 64
+89 134 64
+90 134 64
+91 134 64
+92 134 64
+93 134 64
+94 134 64
+95 134 64
+96 134 64
+97 134 64
+98 134 64
+99 134 64
+100 134 64
+101 134 64
+102 134 64
+103 134 64
+104 134 64
+105 134 64
+106 134 64
+107 134 64
+108 134 64
+109 134 64
+110 134 64
+111 134 64
+112 134 64
+113 134 64
+114 134 64
+115 134 64
+116 134 64
+117 134 64
+118 134 64
+119 134 64
+120 134 64
+121 134 64
+122 134 64
+123 134 64
+124 134 64
+125 134 64
+126 134 64
+127 134 64
+128 134 64
+129 134 64
+130 134 64
+131 134 64
+132 134 64
+133 134 64
+134 134 64
+135 134 64
+136 134 64
+137 134 64
+138 134 64
+139 134 64
+140 134 64
+141 134 64
+142 134 64
+143 134 64
+144 134 64
+145 134 64
+146 134 64
+147 134 64
+148 134 64
+149 134 64
+150 134 64
+151 134 64
+152 134 64
+153 134 64
+154 134 64
+155 134 64
+156 134 64
+157 134 64
+158 134 64
+159 134 64
+160 134 64
+161 134 64
+162 134 64
+163 134 64
+164 134 64
+165 134 64
+166 134 64
+167 134 64
+168 134 64
+169 134 64
+170 134 64
+171 134 64
+172 134 64
+173 134 64
+174 134 64
+175 134 64
+176 134 64
+177 134 64
+178 134 64
+179 134 64
+180 134 64
+181 134 64
+182 134 64
+183 134 64
+184 134 64
+185 134 64
+186 134 64
+187 134 64
+188 134 64
+189 134 64
+190 134 64
+191 134 64
+192 134 64
+193 134 64
+194 134 64
+195 134 64
+196 134 64
+197 134 64
+198 134 64
+199 134 64
+200 134 64
+201 134 64
+202 134 64
+203 134 64
+204 134 64
+205 134 64
+206 134 64
+207 134 64
+208 134 64
+209 134 64
+210 134 64
+211 134 64
+212 134 64
+213 134 64
+214 134 64
+215 134 64
+216 134 64
+217 134 64
+218 134 64
+219 134 64
+220 134 64
+221 134 64
+222 134 64
+223 134 64
+224 134 64
+225 134 64
+226 134 64
+227 134 64
+228 134 64
+229 134 64
+230 134 64
+231 134 64
+232 134 64
+233 134 64
+234 134 64
+235 134 64
+236 134 64
+237 134 64
+238 134 64
+239 134 64
+240 134 64
+241 134 64
+242 134 64
+243 134 64
+244 134 64
+245 134 64
+246 134 64
+247 134 64
+248 134 64
+249 134 64
+250 134 64
+251 134 64
+252 134 64
+253 134 64
+254 134 64
+255 134 64
+0 133 64
+1 133 64
+2 133 64
+3 133 64
+4 133 64
+5 133 64
+6 133 64
+7 133 64
+8 133 64
+9 133 64
+10 133 64
+11 133 64
+12 133 64
+13 133 64
+14 133 64
+15 133 64
+16 133 64
+17 133 64
+18 133 64
+19 133 64
+20 133 64
+21 133 64
+22 133 64
+23 133 64
+24 133 64
+25 133 64
+26 133 64
+27 133 64
+28 133 64
+29 133 64
+30 133 64
+31 133 64
+32 133 64
+33 133 64
+34 133 64
+35 133 64
+36 133 64
+37 133 64
+38 133 64
+39 133 64
+40 133 64
+41 133 64
+42 133 64
+43 133 64
+44 133 64
+45 133 64
+46 133 64
+47 133 64
+48 133 64
+49 133 64
+50 133 64
+51 133 64
+52 133 64
+53 133 64
+54 133 64
+55 133 64
+56 133 64
+57 133 64
+58 133 64
+59 133 64
+60 133 64
+61 133 64
+62 133 64
+63 133 64
+64 133 64
+65 133 64
+66 133 64
+67 133 64
+68 133 64
+69 133 64
+70 133 64
+71 133 64
+72 133 64
+73 133 64
+74 133 64
+75 133 64
+76 133 64
+77 133 64
+78 133 64
+79 133 64
+80 133 64
+81 133 64
+82 133 64
+83 133 64
+84 133 64
+85 133 64
+86 133 64
+87 133 64
+88 133 64
+89 133 64
+90 133 64
+91 133 64
+92 133 64
+93 133 64
+94 133 64
+95 133 64
+96 133 64
+97 133 64
+98 133 64
+99 133 64
+100 133 64
+101 133 64
+102 133 64
+103 133 64
+104 133 64
+105 133 64
+106 133 64
+107 133 64
+108 133 64
+109 133 64
+110 133 64
+111 133 64
+112 133 64
+113 133 64
+114 133 64
+115 133 64
+116 133 64
+117 133 64
+118 133 64
+119 133 64
+120 133 64
+121 133 64
+122 133 64
+123 133 64
+124 133 64
+125 133 64
+126 133 64
+127 133 64
+128 133 64
+129 133 64
+130 133 64
+131 133 64
+132 133 64
+133 133 64
+134 133 64
+135 133 64
+136 133 64
+137 133 64
+138 133 64
+139 133 64
+140 133 64
+141 133 64
+142 133 64
+143 133 64
+144 133 64
+145 133 64
+146 133 64
+147 133 64
+148 133 64
+149 133 64
+150 133 64
+151 133 64
+152 133 64
+153 133 64
+154 133 64
+155 133 64
+156 133 64
+157 133 64
+158 133 64
+159 133 64
+160 133 64
+161 133 64
+162 133 64
+163 133 64
+164 133 64
+165 133 64
+166 133 64
+167 133 64
+168 133 64
+169 133 64
+170 133 64
+171 133 64
+172 133 64
+173 133 64
+174 133 64
+175 133 64
+176 133 64
+177 133 64
+178 133 64
+179 133 64
+180 133 64
+181 133 64
+182 133 64
+183 133 64
+184 133 64
+185 133 64
+186 133 64
+187 133 64
+188 133 64
+189 133 64
+190 133 64
+191 133 64
+192 133 64
+193 133 64
+194 133 64
+195 133 64
+196 133 64
+197 133 64
+198 133 64
+199 133 64
+200 133 64
+201 133 64
+202 133 64
+203 133 64
+204 133 64
+205 133 64
+206 133 64
+207 133 64
+208 133 64
+209 133 64
+210 133 64
+211 133 64
+212 133 64
+213 133 64
+214 133 64
+215 133 64
+216 133 64
+217 133 64
+218 133 64
+219 133 64
+220 133 64
+221 133 64
+222 133 64
+223 133 64
+224 133 64
+225 133 64
+226 133 64
+227 133 64
+228 133 64
+229 133 64
+230 133 64
+231 133 64
+232 133 64
+233 133 64
+234 133 64
+235 133 64
+236 133 64
+237 133 64
+238 133 64
+239 133 64
+240 133 64
+241 133 64
+242 133 64
+243 133 64
+244 133 64
+245 133 64
+246 133 64
+247 133 64
+248 133 64
+249 133 64
+250 133 64
+251 133 64
+252 133 64
+253 133 64
+254 133 64
+255 133 64
+0 132 64
+1 132 64
+2 132 64
+3 132 64
+4 132 64
+5 132 64
+6 132 64
+7 132 64
+8 132 64
+9 132 64
+10 132 64
+11 132 64
+12 132 64
+13 132 64
+14 132 64
+15 132 64
+16 132 64
+17 132 64
+18 132 64
+19 132 64
+20 132 64
+21 132 64
+22 132 64
+23 132 64
+24 132 64
+25 132 64
+26 132 64
+27 132 64
+28 132 64
+29 132 64
+30 132 64
+31 132 64
+32 132 64
+33 132 64
+34 132 64
+35 132 64
+36 132 64
+37 132 64
+38 132 64
+39 132 64
+40 132 64
+41 132 64
+42 132 64
+43 132 64
+44 132 64
+45 132 64
+46 132 64
+47 132 64
+48 132 64
+49 132 64
+50 132 64
+51 132 64
+52 132 64
+53 132 64
+54 132 64
+55 132 64
+56 132 64
+57 132 64
+58 132 64
+59 132 64
+60 132 64
+61 132 64
+62 132 64
+63 132 64
+64 132 64
+65 132 64
+66 132 64
+67 132 64
+68 132 64
+69 132 64
+70 132 64
+71 132 64
+72 132 64
+73 132 64
+74 132 64
+75 132 64
+76 132 64
+77 132 64
+78 132 64
+79 132 64
+80 132 64
+81 132 64
+82 132 64
+83 132 64
+84 132 64
+85 132 64
+86 132 64
+87 132 64
+88 132 64
+89 132 64
+90 132 64
+91 132 64
+92 132 64
+93 132 64
+94 132 64
+95 132 64
+96 132 64
+97 132 64
+98 132 64
+99 132 64
+100 132 64
+101 132 64
+102 132 64
+103 132 64
+104 132 64
+105 132 64
+106 132 64
+107 132 64
+108 132 64
+109 132 64
+110 132 64
+111 132 64
+112 132 64
+113 132 64
+114 132 64
+115 132 64
+116 132 64
+117 132 64
+118 132 64
+119 132 64
+120 132 64
+121 132 64
+122 132 64
+123 132 64
+124 132 64
+125 132 64
+126 132 64
+127 132 64
+128 132 64
+129 132 64
+130 132 64
+131 132 64
+132 132 64
+133 132 64
+134 132 64
+135 132 64
+136 132 64
+137 132 64
+138 132 64
+139 132 64
+140 132 64
+141 132 64
+142 132 64
+143 132 64
+144 132 64
+145 132 64
+146 132 64
+147 132 64
+148 132 64
+149 132 64
+150 132 64
+151 132 64
+152 132 64
+153 132 64
+154 132 64
+155 132 64
+156 132 64
+157 132 64
+158 132 64
+159 132 64
+160 132 64
+161 132 64
+162 132 64
+163 132 64
+164 132 64
+165 132 64
+166 132 64
+167 132 64
+168 132 64
+169 132 64
+170 132 64
+171 132 64
+172 132 64
+173 132 64
+174 132 64
+175 132 64
+176 132 64
+177 132 64
+178 132 64
+179 132 64
+180 132 64
+181 132 64
+182 132 64
+183 132 64
+184 132 64
+185 132 64
+186 132 64
+187 132 64
+188 132 64
+189 132 64
+190 132 64
+191 132 64
+192 132 64
+193 132 64
+194 132 64
+195 132 64
+196 132 64
+197 132 64
+198 132 64
+199 132 64
+200 132 64
+201 132 64
+202 132 64
+203 132 64
+204 132 64
+205 132 64
+206 132 64
+207 132 64
+208 132 64
+209 132 64
+210 132 64
+211 132 64
+212 132 64
+213 132 64
+214 132 64
+215 132 64
+216 132 64
+217 132 64
+218 132 64
+219 132 64
+220 132 64
+221 132 64
+222 132 64
+223 132 64
+224 132 64
+225 132 64
+226 132 64
+227 132 64
+228 132 64
+229 132 64
+230 132 64
+231 132 64
+232 132 64
+233 132 64
+234 132 64
+235 132 64
+236 132 64
+237 132 64
+238 132 64
+239 132 64
+240 132 64
+241 132 64
+242 132 64
+243 132 64
+244 132 64
+245 132 64
+246 132 64
+247 132 64
+248 132 64
+249 132 64
+250 132 64
+251 132 64
+252 132 64
+253 132 64
+254 132 64
+255 132 64
+0 131 64
+1 131 64
+2 131 64
+3 131 64
+4 131 64
+5 131 64
+6 131 64
+7 131 64
+8 131 64
+9 131 64
+10 131 64
+11 131 64
+12 131 64
+13 131 64
+14 131 64
+15 131 64
+16 131 64
+17 131 64
+18 131 64
+19 131 64
+20 131 64
+21 131 64
+22 131 64
+23 131 64
+24 131 64
+25 131 64
+26 131 64
+27 131 64
+28 131 64
+29 131 64
+30 131 64
+31 131 64
+32 131 64
+33 131 64
+34 131 64
+35 131 64
+36 131 64
+37 131 64
+38 131 64
+39 131 64
+40 131 64
+41 131 64
+42 131 64
+43 131 64
+44 131 64
+45 131 64
+46 131 64
+47 131 64
+48 131 64
+49 131 64
+50 131 64
+51 131 64
+52 131 64
+53 131 64
+54 131 64
+55 131 64
+56 131 64
+57 131 64
+58 131 64
+59 131 64
+60 131 64
+61 131 64
+62 131 64
+63 131 64
+64 131 64
+65 131 64
+66 131 64
+67 131 64
+68 131 64
+69 131 64
+70 131 64
+71 131 64
+72 131 64
+73 131 64
+74 131 64
+75 131 64
+76 131 64
+77 131 64
+78 131 64
+79 131 64
+80 131 64
+81 131 64
+82 131 64
+83 131 64
+84 131 64
+85 131 64
+86 131 64
+87 131 64
+88 131 64
+89 131 64
+90 131 64
+91 131 64
+92 131 64
+93 131 64
+94 131 64
+95 131 64
+96 131 64
+97 131 64
+98 131 64
+99 131 64
+100 131 64
+101 131 64
+102 131 64
+103 131 64
+104 131 64
+105 131 64
+106 131 64
+107 131 64
+108 131 64
+109 131 64
+110 131 64
+111 131 64
+112 131 64
+113 131 64
+114 131 64
+115 131 64
+116 131 64
+117 131 64
+118 131 64
+119 131 64
+120 131 64
+121 131 64
+122 131 64
+123 131 64
+124 131 64
+125 131 64
+126 131 64
+127 131 64
+128 131 64
+129 131 64
+130 131 64
+131 131 64
+132 131 64
+133 131 64
+134 131 64
+135 131 64
+136 131 64
+137 131 64
+138 131 64
+139 131 64
+140 131 64
+141 131 64
+142 131 64
+143 131 64
+144 131 64
+145 131 64
+146 131 64
+147 131 64
+148 131 64
+149 131 64
+150 131 64
+151 131 64
+152 131 64
+153 131 64
+154 131 64
+155 131 64
+156 131 64
+157 131 64
+158 131 64
+159 131 64
+160 131 64
+161 131 64
+162 131 64
+163 131 64
+164 131 64
+165 131 64
+166 131 64
+167 131 64
+168 131 64
+169 131 64
+170 131 64
+171 131 64
+172 131 64
+173 131 64
+174 131 64
+175 131 64
+176 131 64
+177 131 64
+178 131 64
+179 131 64
+180 131 64
+181 131 64
+182 131 64
+183 131 64
+184 131 64
+185 131 64
+186 131 64
+187 131 64
+188 131 64
+189 131 64
+190 131 64
+191 131 64
+192 131 64
+193 131 64
+194 131 64
+195 131 64
+196 131 64
+197 131 64
+198 131 64
+199 131 64
+200 131 64
+201 131 64
+202 131 64
+203 131 64
+204 131 64
+205 131 64
+206 131 64
+207 131 64
+208 131 64
+209 131 64
+210 131 64
+211 131 64
+212 131 64
+213 131 64
+214 131 64
+215 131 64
+216 131 64
+217 131 64
+218 131 64
+219 131 64
+220 131 64
+221 131 64
+222 131 64
+223 131 64
+224 131 64
+225 131 64
+226 131 64
+227 131 64
+228 131 64
+229 131 64
+230 131 64
+231 131 64
+232 131 64
+233 131 64
+234 131 64
+235 131 64
+236 131 64
+237 131 64
+238 131 64
+239 131 64
+240 131 64
+241 131 64
+242 131 64
+243 131 64
+244 131 64
+245 131 64
+246 131 64
+247 131 64
+248 131 64
+249 131 64
+250 131 64
+251 131 64
+252 131 64
+253 131 64
+254 131 64
+255 131 64
+0 130 64
+1 130 64
+2 130 64
+3 130 64
+4 130 64
+5 130 64
+6 130 64
+7 130 64
+8 130 64
+9 130 64
+10 130 64
+11 130 64
+12 130 64
+13 130 64
+14 130 64
+15 130 64
+16 130 64
+17 130 64
+18 130 64
+19 130 64
+20 130 64
+21 130 64
+22 130 64
+23 130 64
+24 130 64
+25 130 64
+26 130 64
+27 130 64
+28 130 64
+29 130 64
+30 130 64
+31 130 64
+32 130 64
+33 130 64
+34 130 64
+35 130 64
+36 130 64
+37 130 64
+38 130 64
+39 130 64
+40 130 64
+41 130 64
+42 130 64
+43 130 64
+44 130 64
+45 130 64
+46 130 64
+47 130 64
+48 130 64
+49 130 64
+50 130 64
+51 130 64
+52 130 64
+53 130 64
+54 130 64
+55 130 64
+56 130 64
+57 130 64
+58 130 64
+59 130 64
+60 130 64
+61 130 64
+62 130 64
+63 130 64
+64 130 64
+65 130 64
+66 130 64
+67 130 64
+68 130 64
+69 130 64
+70 130 64
+71 130 64
+72 130 64
+73 130 64
+74 130 64
+75 130 64
+76 130 64
+77 130 64
+78 130 64
+79 130 64
+80 130 64
+81 130 64
+82 130 64
+83 130 64
+84 130 64
+85 130 64
+86 130 64
+87 130 64
+88 130 64
+89 130 64
+90 130 64
+91 130 64
+92 130 64
+93 130 64
+94 130 64
+95 130 64
+96 130 64
+97 130 64
+98 130 64
+99 130 64
+100 130 64
+101 130 64
+102 130 64
+103 130 64
+104 130 64
+105 130 64
+106 130 64
+107 130 64
+108 130 64
+109 130 64
+110 130 64
+111 130 64
+112 130 64
+113 130 64
+114 130 64
+115 130 64
+116 130 64
+117 130 64
+118 130 64
+119 130 64
+120 130 64
+121 130 64
+122 130 64
+123 130 64
+124 130 64
+125 130 64
+126 130 64
+127 130 64
+128 130 64
+129 130 64
+130 130 64
+131 130 64
+132 130 64
+133 130 64
+134 130 64
+135 130 64
+136 130 64
+137 130 64
+138 130 64
+139 130 64
+140 130 64
+141 130 64
+142 130 64
+143 130 64
+144 130 64
+145 130 64
+146 130 64
+147 130 64
+148 130 64
+149 130 64
+150 130 64
+151 130 64
+152 130 64
+153 130 64
+154 130 64
+155 130 64
+156 130 64
+157 130 64
+158 130 64
+159 130 64
+160 130 64
+161 130 64
+162 130 64
+163 130 64
+164 130 64
+165 130 64
+166 130 64
+167 130 64
+168 130 64
+169 130 64
+170 130 64
+171 130 64
+172 130 64
+173 130 64
+174 130 64
+175 130 64
+176 130 64
+177 130 64
+178 130 64
+179 130 64
+180 130 64
+181 130 64
+182 130 64
+183 130 64
+184 130 64
+185 130 64
+186 130 64
+187 130 64
+188 130 64
+189 130 64
+190 130 64
+191 130 64
+192 130 64
+193 130 64
+194 130 64
+195 130 64
+196 130 64
+197 130 64
+198 130 64
+199 130 64
+200 130 64
+201 130 64
+202 130 64
+203 130 64
+204 130 64
+205 130 64
+206 130 64
+207 130 64
+208 130 64
+209 130 64
+210 130 64
+211 130 64
+212 130 64
+213 130 64
+214 130 64
+215 130 64
+216 130 64
+217 130 64
+218 130 64
+219 130 64
+220 130 64
+221 130 64
+222 130 64
+223 130 64
+224 130 64
+225 130 64
+226 130 64
+227 130 64
+228 130 64
+229 130 64
+230 130 64
+231 130 64
+232 130 64
+233 130 64
+234 130 64
+235 130 64
+236 130 64
+237 130 64
+238 130 64
+239 130 64
+240 130 64
+241 130 64
+242 130 64
+243 130 64
+244 130 64
+245 130 64
+246 130 64
+247 130 64
+248 130 64
+249 130 64
+250 130 64
+251 130 64
+252 130 64
+253 130 64
+254 130 64
+255 130 64
+0 129 64
+1 129 64
+2 129 64
+3 129 64
+4 129 64
+5 129 64
+6 129 64
+7 129 64
+8 129 64
+9 129 64
+10 129 64
+11 129 64
+12 129 64
+13 129 64
+14 129 64
+15 129 64
+16 129 64
+17 129 64
+18 129 64
+19 129 64
+20 129 64
+21 129 64
+22 129 64
+23 129 64
+24 129 64
+25 129 64
+26 129 64
+27 129 64
+28 129 64
+29 129 64
+30 129 64
+31 129 64
+32 129 64
+33 129 64
+34 129 64
+35 129 64
+36 129 64
+37 129 64
+38 129 64
+39 129 64
+40 129 64
+41 129 64
+42 129 64
+43 129 64
+44 129 64
+45 129 64
+46 129 64
+47 129 64
+48 129 64
+49 129 64
+50 129 64
+51 129 64
+52 129 64
+53 129 64
+54 129 64
+55 129 64
+56 129 64
+57 129 64
+58 129 64
+59 129 64
+60 129 64
+61 129 64
+62 129 64
+63 129 64
+64 129 64
+65 129 64
+66 129 64
+67 129 64
+68 129 64
+69 129 64
+70 129 64
+71 129 64
+72 129 64
+73 129 64
+74 129 64
+75 129 64
+76 129 64
+77 129 64
+78 129 64
+79 129 64
+80 129 64
+81 129 64
+82 129 64
+83 129 64
+84 129 64
+85 129 64
+86 129 64
+87 129 64
+88 129 64
+89 129 64
+90 129 64
+91 129 64
+92 129 64
+93 129 64
+94 129 64
+95 129 64
+96 129 64
+97 129 64
+98 129 64
+99 129 64
+100 129 64
+101 129 64
+102 129 64
+103 129 64
+104 129 64
+105 129 64
+106 129 64
+107 129 64
+108 129 64
+109 129 64
+110 129 64
+111 129 64
+112 129 64
+113 129 64
+114 129 64
+115 129 64
+116 129 64
+117 129 64
+118 129 64
+119 129 64
+120 129 64
+121 129 64
+122 129 64
+123 129 64
+124 129 64
+125 129 64
+126 129 64
+127 129 64
+128 129 64
+129 129 64
+130 129 64
+131 129 64
+132 129 64
+133 129 64
+134 129 64
+135 129 64
+136 129 64
+137 129 64
+138 129 64
+139 129 64
+140 129 64
+141 129 64
+142 129 64
+143 129 64
+144 129 64
+145 129 64
+146 129 64
+147 129 64
+148 129 64
+149 129 64
+150 129 64
+151 129 64
+152 129 64
+153 129 64
+154 129 64
+155 129 64
+156 129 64
+157 129 64
+158 129 64
+159 129 64
+160 129 64
+161 129 64
+162 129 64
+163 129 64
+164 129 64
+165 129 64
+166 129 64
+167 129 64
+168 129 64
+169 129 64
+170 129 64
+171 129 64
+172 129 64
+173 129 64
+174 129 64
+175 129 64
+176 129 64
+177 129 64
+178 129 64
+179 129 64
+180 129 64
+181 129 64
+182 129 64
+183 129 64
+184 129 64
+185 129 64
+186 129 64
+187 129 64
+188 129 64
+189 129 64
+190 129 64
+191 129 64
+192 129 64
+193 129 64
+194 129 64
+195 129 64
+196 129 64
+197 129 64
+198 129 64
+199 129 64
+200 129 64
+201 129 64
+202 129 64
+203 129 64
+204 129 64
+205 129 64
+206 129 64
+207 129 64
+208 129 64
+209 129 64
+210 129 64
+211 129 64
+212 129 64
+213 129 64
+214 129 64
+215 129 64
+216 129 64
+217 129 64
+218 129 64
+219 129 64
+220 129 64
+221 129 64
+222 129 64
+223 129 64
+224 129 64
+225 129 64
+226 129 64
+227 129 64
+228 129 64
+229 129 64
+230 129 64
+231 129 64
+232 129 64
+233 129 64
+234 129 64
+235 129 64
+236 129 64
+237 129 64
+238 129 64
+239 129 64
+240 129 64
+241 129 64
+242 129 64
+243 129 64
+244 129 64
+245 129 64
+246 129 64
+247 129 64
+248 129 64
+249 129 64
+250 129 64
+251 129 64
+252 129 64
+253 129 64
+254 129 64
+255 129 64
+0 128 64
+1 128 64
+2 128 64
+3 128 64
+4 128 64
+5 128 64
+6 128 64
+7 128 64
+8 128 64
+9 128 64
+10 128 64
+11 128 64
+12 128 64
+13 128 64
+14 128 64
+15 128 64
+16 128 64
+17 128 64
+18 128 64
+19 128 64
+20 128 64
+21 128 64
+22 128 64
+23 128 64
+24 128 64
+25 128 64
+26 128 64
+27 128 64
+28 128 64
+29 128 64
+30 128 64
+31 128 64
+32 128 64
+33 128 64
+34 128 64
+35 128 64
+36 128 64
+37 128 64
+38 128 64
+39 128 64
+40 128 64
+41 128 64
+42 128 64
+43 128 64
+44 128 64
+45 128 64
+46 128 64
+47 128 64
+48 128 64
+49 128 64
+50 128 64
+51 128 64
+52 128 64
+53 128 64
+54 128 64
+55 128 64
+56 128 64
+57 128 64
+58 128 64
+59 128 64
+60 128 64
+61 128 64
+62 128 64
+63 128 64
+64 128 64
+65 128 64
+66 128 64
+67 128 64
+68 128 64
+69 128 64
+70 128 64
+71 128 64
+72 128 64
+73 128 64
+74 128 64
+75 128 64
+76 128 64
+77 128 64
+78 128 64
+79 128 64
+80 128 64
+81 128 64
+82 128 64
+83 128 64
+84 128 64
+85 128 64
+86 128 64
+87 128 64
+88 128 64
+89 128 64
+90 128 64
+91 128 64
+92 128 64
+93 128 64
+94 128 64
+95 128 64
+96 128 64
+97 128 64
+98 128 64
+99 128 64
+100 128 64
+101 128 64
+102 128 64
+103 128 64
+104 128 64
+105 128 64
+106 128 64
+107 128 64
+108 128 64
+109 128 64
+110 128 64
+111 128 64
+112 128 64
+113 128 64
+114 128 64
+115 128 64
+116 128 64
+117 128 64
+118 128 64
+119 128 64
+120 128 64
+121 128 64
+122 128 64
+123 128 64
+124 128 64
+125 128 64
+126 128 64
+127 128 64
+128 128 64
+129 128 64
+130 128 64
+131 128 64
+132 128 64
+133 128 64
+134 128 64
+135 128 64
+136 128 64
+137 128 64
+138 128 64
+139 128 64
+140 128 64
+141 128 64
+142 128 64
+143 128 64
+144 128 64
+145 128 64
+146 128 64
+147 128 64
+148 128 64
+149 128 64
+150 128 64
+151 128 64
+152 128 64
+153 128 64
+154 128 64
+155 128 64
+156 128 64
+157 128 64
+158 128 64
+159 128 64
+160 128 64
+161 128 64
+162 128 64
+163 128 64
+164 128 64
+165 128 64
+166 128 64
+167 128 64
+168 128 64
+169 128 64
+170 128 64
+171 128 64
+172 128 64
+173 128 64
+174 128 64
+175 128 64
+176 128 64
+177 128 64
+178 128 64
+179 128 64
+180 128 64
+181 128 64
+182 128 64
+183 128 64
+184 128 64
+185 128 64
+186 128 64
+187 128 64
+188 128 64
+189 128 64
+190 128 64
+191 128 64
+192 128 64
+193 128 64
+194 128 64
+195 128 64
+196 128 64
+197 128 64
+198 128 64
+199 128 64
+200 128 64
+201 128 64
+202 128 64
+203 128 64
+204 128 64
+205 128 64
+206 128 64
+207 128 64
+208 128 64
+209 128 64
+210 128 64
+211 128 64
+212 128 64
+213 128 64
+214 128 64
+215 128 64
+216 128 64
+217 128 64
+218 128 64
+219 128 64
+220 128 64
+221 128 64
+222 128 64
+223 128 64
+224 128 64
+225 128 64
+226 128 64
+227 128 64
+228 128 64
+229 128 64
+230 128 64
+231 128 64
+232 128 64
+233 128 64
+234 128 64
+235 128 64
+236 128 64
+237 128 64
+238 128 64
+239 128 64
+240 128 64
+241 128 64
+242 128 64
+243 128 64
+244 128 64
+245 128 64
+246 128 64
+247 128 64
+248 128 64
+249 128 64
+250 128 64
+251 128 64
+252 128 64
+253 128 64
+254 128 64
+255 128 64
+0 127 64
+1 127 64
+2 127 64
+3 127 64
+4 127 64
+5 127 64
+6 127 64
+7 127 64
+8 127 64
+9 127 64
+10 127 64
+11 127 64
+12 127 64
+13 127 64
+14 127 64
+15 127 64
+16 127 64
+17 127 64
+18 127 64
+19 127 64
+20 127 64
+21 127 64
+22 127 64
+23 127 64
+24 127 64
+25 127 64
+26 127 64
+27 127 64
+28 127 64
+29 127 64
+30 127 64
+31 127 64
+32 127 64
+33 127 64
+34 127 64
+35 127 64
+36 127 64
+37 127 64
+38 127 64
+39 127 64
+40 127 64
+41 127 64
+42 127 64
+43 127 64
+44 127 64
+45 127 64
+46 127 64
+47 127 64
+48 127 64
+49 127 64
+50 127 64
+51 127 64
+52 127 64
+53 127 64
+54 127 64
+55 127 64
+56 127 64
+57 127 64
+58 127 64
+59 127 64
+60 127 64
+61 127 64
+62 127 64
+63 127 64
+64 127 64
+65 127 64
+66 127 64
+67 127 64
+68 127 64
+69 127 64
+70 127 64
+71 127 64
+72 127 64
+73 127 64
+74 127 64
+75 127 64
+76 127 64
+77 127 64
+78 127 64
+79 127 64
+80 127 64
+81 127 64
+82 127 64
+83 127 64
+84 127 64
+85 127 64
+86 127 64
+87 127 64
+88 127 64
+89 127 64
+90 127 64
+91 127 64
+92 127 64
+93 127 64
+94 127 64
+95 127 64
+96 127 64
+97 127 64
+98 127 64
+99 127 64
+100 127 64
+101 127 64
+102 127 64
+103 127 64
+104 127 64
+105 127 64
+106 127 64
+107 127 64
+108 127 64
+109 127 64
+110 127 64
+111 127 64
+112 127 64
+113 127 64
+114 127 64
+115 127 64
+116 127 64
+117 127 64
+118 127 64
+119 127 64
+120 127 64
+121 127 64
+122 127 64
+123 127 64
+124 127 64
+125 127 64
+126 127 64
+127 127 64
+128 127 64
+129 127 64
+130 127 64
+131 127 64
+132 127 64
+133 127 64
+134 127 64
+135 127 64
+136 127 64
+137 127 64
+138 127 64
+139 127 64
+140 127 64
+141 127 64
+142 127 64
+143 127 64
+144 127 64
+145 127 64
+146 127 64
+147 127 64
+148 127 64
+149 127 64
+150 127 64
+151 127 64
+152 127 64
+153 127 64
+154 127 64
+155 127 64
+156 127 64
+157 127 64
+158 127 64
+159 127 64
+160 127 64
+161 127 64
+162 127 64
+163 127 64
+164 127 64
+165 127 64
+166 127 64
+167 127 64
+168 127 64
+169 127 64
+170 127 64
+171 127 64
+172 127 64
+173 127 64
+174 127 64
+175 127 64
+176 127 64
+177 127 64
+178 127 64
+179 127 64
+180 127 64
+181 127 64
+182 127 64
+183 127 64
+184 127 64
+185 127 64
+186 127 64
+187 127 64
+188 127 64
+189 127 64
+190 127 64
+191 127 64
+192 127 64
+193 127 64
+194 127 64
+195 127 64
+196 127 64
+197 127 64
+198 127 64
+199 127 64
+200 127 64
+201 127 64
+202 127 64
+203 127 64
+204 127 64
+205 127 64
+206 127 64
+207 127 64
+208 127 64
+209 127 64
+210 127 64
+211 127 64
+212 127 64
+213 127 64
+214 127 64
+215 127 64
+216 127 64
+217 127 64
+218 127 64
+219 127 64
+220 127 64
+221 127 64
+222 127 64
+223 127 64
+224 127 64
+225 127 64
+226 127 64
+227 127 64
+228 127 64
+229 127 64
+230 127 64
+231 127 64
+232 127 64
+233 127 64
+234 127 64
+235 127 64
+236 127 64
+237 127 64
+238 127 64
+239 127 64
+240 127 64
+241 127 64
+242 127 64
+243 127 64
+244 127 64
+245 127 64
+246 127 64
+247 127 64
+248 127 64
+249 127 64
+250 127 64
+251 127 64
+252 127 64
+253 127 64
+254 127 64
+255 127 64
+0 126 64
+1 126 64
+2 126 64
+3 126 64
+4 126 64
+5 126 64
+6 126 64
+7 126 64
+8 126 64
+9 126 64
+10 126 64
+11 126 64
+12 126 64
+13 126 64
+14 126 64
+15 126 64
+16 126 64
+17 126 64
+18 126 64
+19 126 64
+20 126 64
+21 126 64
+22 126 64
+23 126 64
+24 126 64
+25 126 64
+26 126 64
+27 126 64
+28 126 64
+29 126 64
+30 126 64
+31 126 64
+32 126 64
+33 126 64
+34 126 64
+35 126 64
+36 126 64
+37 126 64
+38 126 64
+39 126 64
+40 126 64
+41 126 64
+42 126 64
+43 126 64
+44 126 64
+45 126 64
+46 126 64
+47 126 64
+48 126 64
+49 126 64
+50 126 64
+51 126 64
+52 126 64
+53 126 64
+54 126 64
+55 126 64
+56 126 64
+57 126 64
+58 126 64
+59 126 64
+60 126 64
+61 126 64
+62 126 64
+63 126 64
+64 126 64
+65 126 64
+66 126 64
+67 126 64
+68 126 64
+69 126 64
+70 126 64
+71 126 64
+72 126 64
+73 126 64
+74 126 64
+75 126 64
+76 126 64
+77 126 64
+78 126 64
+79 126 64
+80 126 64
+81 126 64
+82 126 64
+83 126 64
+84 126 64
+85 126 64
+86 126 64
+87 126 64
+88 126 64
+89 126 64
+90 126 64
+91 126 64
+92 126 64
+93 126 64
+94 126 64
+95 126 64
+96 126 64
+97 126 64
+98 126 64
+99 126 64
+100 126 64
+101 126 64
+102 126 64
+103 126 64
+104 126 64
+105 126 64
+106 126 64
+107 126 64
+108 126 64
+109 126 64
+110 126 64
+111 126 64
+112 126 64
+113 126 64
+114 126 64
+115 126 64
+116 126 64
+117 126 64
+118 126 64
+119 126 64
+120 126 64
+121 126 64
+122 126 64
+123 126 64
+124 126 64
+125 126 64
+126 126 64
+127 126 64
+128 126 64
+129 126 64
+130 126 64
+131 126 64
+132 126 64
+133 126 64
+134 126 64
+135 126 64
+136 126 64
+137 126 64
+138 126 64
+139 126 64
+140 126 64
+141 126 64
+142 126 64
+143 126 64
+144 126 64
+145 126 64
+146 126 64
+147 126 64
+148 126 64
+149 126 64
+150 126 64
+151 126 64
+152 126 64
+153 126 64
+154 126 64
+155 126 64
+156 126 64
+157 126 64
+158 126 64
+159 126 64
+160 126 64
+161 126 64
+162 126 64
+163 126 64
+164 126 64
+165 126 64
+166 126 64
+167 126 64
+168 126 64
+169 126 64
+170 126 64
+171 126 64
+172 126 64
+173 126 64
+174 126 64
+175 126 64
+176 126 64
+177 126 64
+178 126 64
+179 126 64
+180 126 64
+181 126 64
+182 126 64
+183 126 64
+184 126 64
+185 126 64
+186 126 64
+187 126 64
+188 126 64
+189 126 64
+190 126 64
+191 126 64
+192 126 64
+193 126 64
+194 126 64
+195 126 64
+196 126 64
+197 126 64
+198 126 64
+199 126 64
+200 126 64
+201 126 64
+202 126 64
+203 126 64
+204 126 64
+205 126 64
+206 126 64
+207 126 64
+208 126 64
+209 126 64
+210 126 64
+211 126 64
+212 126 64
+213 126 64
+214 126 64
+215 126 64
+216 126 64
+217 126 64
+218 126 64
+219 126 64
+220 126 64
+221 126 64
+222 126 64
+223 126 64
+224 126 64
+225 126 64
+226 126 64
+227 126 64
+228 126 64
+229 126 64
+230 126 64
+231 126 64
+232 126 64
+233 126 64
+234 126 64
+235 126 64
+236 126 64
+237 126 64
+238 126 64
+239 126 64
+240 126 64
+241 126 64
+242 126 64
+243 126 64
+244 126 64
+245 126 64
+246 126 64
+247 126 64
+248 126 64
+249 126 64
+250 126 64
+251 126 64
+252 126 64
+253 126 64
+254 126 64
+255 126 64
+0 125 64
+1 125 64
+2 125 64
+3 125 64
+4 125 64
+5 125 64
+6 125 64
+7 125 64
+8 125 64
+9 125 64
+10 125 64
+11 125 64
+12 125 64
+13 125 64
+14 125 64
+15 125 64
+16 125 64
+17 125 64
+18 125 64
+19 125 64
+20 125 64
+21 125 64
+22 125 64
+23 125 64
+24 125 64
+25 125 64
+26 125 64
+27 125 64
+28 125 64
+29 125 64
+30 125 64
+31 125 64
+32 125 64
+33 125 64
+34 125 64
+35 125 64
+36 125 64
+37 125 64
+38 125 64
+39 125 64
+40 125 64
+41 125 64
+42 125 64
+43 125 64
+44 125 64
+45 125 64
+46 125 64
+47 125 64
+48 125 64
+49 125 64
+50 125 64
+51 125 64
+52 125 64
+53 125 64
+54 125 64
+55 125 64
+56 125 64
+57 125 64
+58 125 64
+59 125 64
+60 125 64
+61 125 64
+62 125 64
+63 125 64
+64 125 64
+65 125 64
+66 125 64
+67 125 64
+68 125 64
+69 125 64
+70 125 64
+71 125 64
+72 125 64
+73 125 64
+74 125 64
+75 125 64
+76 125 64
+77 125 64
+78 125 64
+79 125 64
+80 125 64
+81 125 64
+82 125 64
+83 125 64
+84 125 64
+85 125 64
+86 125 64
+87 125 64
+88 125 64
+89 125 64
+90 125 64
+91 125 64
+92 125 64
+93 125 64
+94 125 64
+95 125 64
+96 125 64
+97 125 64
+98 125 64
+99 125 64
+100 125 64
+101 125 64
+102 125 64
+103 125 64
+104 125 64
+105 125 64
+106 125 64
+107 125 64
+108 125 64
+109 125 64
+110 125 64
+111 125 64
+112 125 64
+113 125 64
+114 125 64
+115 125 64
+116 125 64
+117 125 64
+118 125 64
+119 125 64
+120 125 64
+121 125 64
+122 125 64
+123 125 64
+124 125 64
+125 125 64
+126 125 64
+127 125 64
+128 125 64
+129 125 64
+130 125 64
+131 125 64
+132 125 64
+133 125 64
+134 125 64
+135 125 64
+136 125 64
+137 125 64
+138 125 64
+139 125 64
+140 125 64
+141 125 64
+142 125 64
+143 125 64
+144 125 64
+145 125 64
+146 125 64
+147 125 64
+148 125 64
+149 125 64
+150 125 64
+151 125 64
+152 125 64
+153 125 64
+154 125 64
+155 125 64
+156 125 64
+157 125 64
+158 125 64
+159 125 64
+160 125 64
+161 125 64
+162 125 64
+163 125 64
+164 125 64
+165 125 64
+166 125 64
+167 125 64
+168 125 64
+169 125 64
+170 125 64
+171 125 64
+172 125 64
+173 125 64
+174 125 64
+175 125 64
+176 125 64
+177 125 64
+178 125 64
+179 125 64
+180 125 64
+181 125 64
+182 125 64
+183 125 64
+184 125 64
+185 125 64
+186 125 64
+187 125 64
+188 125 64
+189 125 64
+190 125 64
+191 125 64
+192 125 64
+193 125 64
+194 125 64
+195 125 64
+196 125 64
+197 125 64
+198 125 64
+199 125 64
+200 125 64
+201 125 64
+202 125 64
+203 125 64
+204 125 64
+205 125 64
+206 125 64
+207 125 64
+208 125 64
+209 125 64
+210 125 64
+211 125 64
+212 125 64
+213 125 64
+214 125 64
+215 125 64
+216 125 64
+217 125 64
+218 125 64
+219 125 64
+220 125 64
+221 125 64
+222 125 64
+223 125 64
+224 125 64
+225 125 64
+226 125 64
+227 125 64
+228 125 64
+229 125 64
+230 125 64
+231 125 64
+232 125 64
+233 125 64
+234 125 64
+235 125 64
+236 125 64
+237 125 64
+238 125 64
+239 125 64
+240 125 64
+241 125 64
+242 125 64
+243 125 64
+244 125 64
+245 125 64
+246 125 64
+247 125 64
+248 125 64
+249 125 64
+250 125 64
+251 125 64
+252 125 64
+253 125 64
+254 125 64
+255 125 64
+0 124 64
+1 124 64
+2 124 64
+3 124 64
+4 124 64
+5 124 64
+6 124 64
+7 124 64
+8 124 64
+9 124 64
+10 124 64
+11 124 64
+12 124 64
+13 124 64
+14 124 64
+15 124 64
+16 124 64
+17 124 64
+18 124 64
+19 124 64
+20 124 64
+21 124 64
+22 124 64
+23 124 64
+24 124 64
+25 124 64
+26 124 64
+27 124 64
+28 124 64
+29 124 64
+30 124 64
+31 124 64
+32 124 64
+33 124 64
+34 124 64
+35 124 64
+36 124 64
+37 124 64
+38 124 64
+39 124 64
+40 124 64
+41 124 64
+42 124 64
+43 124 64
+44 124 64
+45 124 64
+46 124 64
+47 124 64
+48 124 64
+49 124 64
+50 124 64
+51 124 64
+52 124 64
+53 124 64
+54 124 64
+55 124 64
+56 124 64
+57 124 64
+58 124 64
+59 124 64
+60 124 64
+61 124 64
+62 124 64
+63 124 64
+64 124 64
+65 124 64
+66 124 64
+67 124 64
+68 124 64
+69 124 64
+70 124 64
+71 124 64
+72 124 64
+73 124 64
+74 124 64
+75 124 64
+76 124 64
+77 124 64
+78 124 64
+79 124 64
+80 124 64
+81 124 64
+82 124 64
+83 124 64
+84 124 64
+85 124 64
+86 124 64
+87 124 64
+88 124 64
+89 124 64
+90 124 64
+91 124 64
+92 124 64
+93 124 64
+94 124 64
+95 124 64
+96 124 64
+97 124 64
+98 124 64
+99 124 64
+100 124 64
+101 124 64
+102 124 64
+103 124 64
+104 124 64
+105 124 64
+106 124 64
+107 124 64
+108 124 64
+109 124 64
+110 124 64
+111 124 64
+112 124 64
+113 124 64
+114 124 64
+115 124 64
+116 124 64
+117 124 64
+118 124 64
+119 124 64
+120 124 64
+121 124 64
+122 124 64
+123 124 64
+124 124 64
+125 124 64
+126 124 64
+127 124 64
+128 124 64
+129 124 64
+130 124 64
+131 124 64
+132 124 64
+133 124 64
+134 124 64
+135 124 64
+136 124 64
+137 124 64
+138 124 64
+139 124 64
+140 124 64
+141 124 64
+142 124 64
+143 124 64
+144 124 64
+145 124 64
+146 124 64
+147 124 64
+148 124 64
+149 124 64
+150 124 64
+151 124 64
+152 124 64
+153 124 64
+154 124 64
+155 124 64
+156 124 64
+157 124 64
+158 124 64
+159 124 64
+160 124 64
+161 124 64
+162 124 64
+163 124 64
+164 124 64
+165 124 64
+166 124 64
+167 124 64
+168 124 64
+169 124 64
+170 124 64
+171 124 64
+172 124 64
+173 124 64
+174 124 64
+175 124 64
+176 124 64
+177 124 64
+178 124 64
+179 124 64
+180 124 64
+181 124 64
+182 124 64
+183 124 64
+184 124 64
+185 124 64
+186 124 64
+187 124 64
+188 124 64
+189 124 64
+190 124 64
+191 124 64
+192 124 64
+193 124 64
+194 124 64
+195 124 64
+196 124 64
+197 124 64
+198 124 64
+199 124 64
+200 124 64
+201 124 64
+202 124 64
+203 124 64
+204 124 64
+205 124 64
+206 124 64
+207 124 64
+208 124 64
+209 124 64
+210 124 64
+211 124 64
+212 124 64
+213 124 64
+214 124 64
+215 124 64
+216 124 64
+217 124 64
+218 124 64
+219 124 64
+220 124 64
+221 124 64
+222 124 64
+223 124 64
+224 124 64
+225 124 64
+226 124 64
+227 124 64
+228 124 64
+229 124 64
+230 124 64
+231 124 64
+232 124 64
+233 124 64
+234 124 64
+235 124 64
+236 124 64
+237 124 64
+238 124 64
+239 124 64
+240 124 64
+241 124 64
+242 124 64
+243 124 64
+244 124 64
+245 124 64
+246 124 64
+247 124 64
+248 124 64
+249 124 64
+250 124 64
+251 124 64
+252 124 64
+253 124 64
+254 124 64
+255 124 64
+0 123 64
+1 123 64
+2 123 64
+3 123 64
+4 123 64
+5 123 64
+6 123 64
+7 123 64
+8 123 64
+9 123 64
+10 123 64
+11 123 64
+12 123 64
+13 123 64
+14 123 64
+15 123 64
+16 123 64
+17 123 64
+18 123 64
+19 123 64
+20 123 64
+21 123 64
+22 123 64
+23 123 64
+24 123 64
+25 123 64
+26 123 64
+27 123 64
+28 123 64
+29 123 64
+30 123 64
+31 123 64
+32 123 64
+33 123 64
+34 123 64
+35 123 64
+36 123 64
+37 123 64
+38 123 64
+39 123 64
+40 123 64
+41 123 64
+42 123 64
+43 123 64
+44 123 64
+45 123 64
+46 123 64
+47 123 64
+48 123 64
+49 123 64
+50 123 64
+51 123 64
+52 123 64
+53 123 64
+54 123 64
+55 123 64
+56 123 64
+57 123 64
+58 123 64
+59 123 64
+60 123 64
+61 123 64
+62 123 64
+63 123 64
+64 123 64
+65 123 64
+66 123 64
+67 123 64
+68 123 64
+69 123 64
+70 123 64
+71 123 64
+72 123 64
+73 123 64
+74 123 64
+75 123 64
+76 123 64
+77 123 64
+78 123 64
+79 123 64
+80 123 64
+81 123 64
+82 123 64
+83 123 64
+84 123 64
+85 123 64
+86 123 64
+87 123 64
+88 123 64
+89 123 64
+90 123 64
+91 123 64
+92 123 64
+93 123 64
+94 123 64
+95 123 64
+96 123 64
+97 123 64
+98 123 64
+99 123 64
+100 123 64
+101 123 64
+102 123 64
+103 123 64
+104 123 64
+105 123 64
+106 123 64
+107 123 64
+108 123 64
+109 123 64
+110 123 64
+111 123 64
+112 123 64
+113 123 64
+114 123 64
+115 123 64
+116 123 64
+117 123 64
+118 123 64
+119 123 64
+120 123 64
+121 123 64
+122 123 64
+123 123 64
+124 123 64
+125 123 64
+126 123 64
+127 123 64
+128 123 64
+129 123 64
+130 123 64
+131 123 64
+132 123 64
+133 123 64
+134 123 64
+135 123 64
+136 123 64
+137 123 64
+138 123 64
+139 123 64
+140 123 64
+141 123 64
+142 123 64
+143 123 64
+144 123 64
+145 123 64
+146 123 64
+147 123 64
+148 123 64
+149 123 64
+150 123 64
+151 123 64
+152 123 64
+153 123 64
+154 123 64
+155 123 64
+156 123 64
+157 123 64
+158 123 64
+159 123 64
+160 123 64
+161 123 64
+162 123 64
+163 123 64
+164 123 64
+165 123 64
+166 123 64
+167 123 64
+168 123 64
+169 123 64
+170 123 64
+171 123 64
+172 123 64
+173 123 64
+174 123 64
+175 123 64
+176 123 64
+177 123 64
+178 123 64
+179 123 64
+180 123 64
+181 123 64
+182 123 64
+183 123 64
+184 123 64
+185 123 64
+186 123 64
+187 123 64
+188 123 64
+189 123 64
+190 123 64
+191 123 64
+192 123 64
+193 123 64
+194 123 64
+195 123 64
+196 123 64
+197 123 64
+198 123 64
+199 123 64
+200 123 64
+201 123 64
+202 123 64
+203 123 64
+204 123 64
+205 123 64
+206 123 64
+207 123 64
+208 123 64
+209 123 64
+210 123 64
+211 123 64
+212 123 64
+213 123 64
+214 123 64
+215 123 64
+216 123 64
+217 123 64
+218 123 64
+219 123 64
+220 123 64
+221 123 64
+222 123 64
+223 123 64
+224 123 64
+225 123 64
+226 123 64
+227 123 64
+228 123 64
+229 123 64
+230 123 64
+231 123 64
+232 123 64
+233 123 64
+234 123 64
+235 123 64
+236 123 64
+237 123 64
+238 123 64
+239 123 64
+240 123 64
+241 123 64
+242 123 64
+243 123 64
+244 123 64
+245 123 64
+246 123 64
+247 123 64
+248 123 64
+249 123 64
+250 123 64
+251 123 64
+252 123 64
+253 123 64
+254 123 64
+255 123 64
+0 122 64
+1 122 64
+2 122 64
+3 122 64
+4 122 64
+5 122 64
+6 122 64
+7 122 64
+8 122 64
+9 122 64
+10 122 64
+11 122 64
+12 122 64
+13 122 64
+14 122 64
+15 122 64
+16 122 64
+17 122 64
+18 122 64
+19 122 64
+20 122 64
+21 122 64
+22 122 64
+23 122 64
+24 122 64
+25 122 64
+26 122 64
+27 122 64
+28 122 64
+29 122 64
+30 122 64
+31 122 64
+32 122 64
+33 122 64
+34 122 64
+35 122 64
+36 122 64
+37 122 64
+38 122 64
+39 122 64
+40 122 64
+41 122 64
+42 122 64
+43 122 64
+44 122 64
+45 122 64
+46 122 64
+47 122 64
+48 122 64
+49 122 64
+50 122 64
+51 122 64
+52 122 64
+53 122 64
+54 122 64
+55 122 64
+56 122 64
+57 122 64
+58 122 64
+59 122 64
+60 122 64
+61 122 64
+62 122 64
+63 122 64
+64 122 64
+65 122 64
+66 122 64
+67 122 64
+68 122 64
+69 122 64
+70 122 64
+71 122 64
+72 122 64
+73 122 64
+74 122 64
+75 122 64
+76 122 64
+77 122 64
+78 122 64
+79 122 64
+80 122 64
+81 122 64
+82 122 64
+83 122 64
+84 122 64
+85 122 64
+86 122 64
+87 122 64
+88 122 64
+89 122 64
+90 122 64
+91 122 64
+92 122 64
+93 122 64
+94 122 64
+95 122 64
+96 122 64
+97 122 64
+98 122 64
+99 122 64
+100 122 64
+101 122 64
+102 122 64
+103 122 64
+104 122 64
+105 122 64
+106 122 64
+107 122 64
+108 122 64
+109 122 64
+110 122 64
+111 122 64
+112 122 64
+113 122 64
+114 122 64
+115 122 64
+116 122 64
+117 122 64
+118 122 64
+119 122 64
+120 122 64
+121 122 64
+122 122 64
+123 122 64
+124 122 64
+125 122 64
+126 122 64
+127 122 64
+128 122 64
+129 122 64
+130 122 64
+131 122 64
+132 122 64
+133 122 64
+134 122 64
+135 122 64
+136 122 64
+137 122 64
+138 122 64
+139 122 64
+140 122 64
+141 122 64
+142 122 64
+143 122 64
+144 122 64
+145 122 64
+146 122 64
+147 122 64
+148 122 64
+149 122 64
+150 122 64
+151 122 64
+152 122 64
+153 122 64
+154 122 64
+155 122 64
+156 122 64
+157 122 64
+158 122 64
+159 122 64
+160 122 64
+161 122 64
+162 122 64
+163 122 64
+164 122 64
+165 122 64
+166 122 64
+167 122 64
+168 122 64
+169 122 64
+170 122 64
+171 122 64
+172 122 64
+173 122 64
+174 122 64
+175 122 64
+176 122 64
+177 122 64
+178 122 64
+179 122 64
+180 122 64
+181 122 64
+182 122 64
+183 122 64
+184 122 64
+185 122 64
+186 122 64
+187 122 64
+188 122 64
+189 122 64
+190 122 64
+191 122 64
+192 122 64
+193 122 64
+194 122 64
+195 122 64
+196 122 64
+197 122 64
+198 122 64
+199 122 64
+200 122 64
+201 122 64
+202 122 64
+203 122 64
+204 122 64
+205 122 64
+206 122 64
+207 122 64
+208 122 64
+209 122 64
+210 122 64
+211 122 64
+212 122 64
+213 122 64
+214 122 64
+215 122 64
+216 122 64
+217 122 64
+218 122 64
+219 122 64
+220 122 64
+221 122 64
+222 122 64
+223 122 64
+224 122 64
+225 122 64
+226 122 64
+227 122 64
+228 122 64
+229 122 64
+230 122 64
+231 122 64
+232 122 64
+233 122 64
+234 122 64
+235 122 64
+236 122 64
+237 122 64
+238 122 64
+239 122 64
+240 122 64
+241 122 64
+242 122 64
+243 122 64
+244 122 64
+245 122 64
+246 122 64
+247 122 64
+248 122 64
+249 122 64
+250 122 64
+251 122 64
+252 122 64
+253 122 64
+254 122 64
+255 122 64
+0 121 64
+1 121 64
+2 121 64
+3 121 64
+4 121 64
+5 121 64
+6 121 64
+7 121 64
+8 121 64
+9 121 64
+10 121 64
+11 121 64
+12 121 64
+13 121 64
+14 121 64
+15 121 64
+16 121 64
+17 121 64
+18 121 64
+19 121 64
+20 121 64
+21 121 64
+22 121 64
+23 121 64
+24 121 64
+25 121 64
+26 121 64
+27 121 64
+28 121 64
+29 121 64
+30 121 64
+31 121 64
+32 121 64
+33 121 64
+34 121 64
+35 121 64
+36 121 64
+37 121 64
+38 121 64
+39 121 64
+40 121 64
+41 121 64
+42 121 64
+43 121 64
+44 121 64
+45 121 64
+46 121 64
+47 121 64
+48 121 64
+49 121 64
+50 121 64
+51 121 64
+52 121 64
+53 121 64
+54 121 64
+55 121 64
+56 121 64
+57 121 64
+58 121 64
+59 121 64
+60 121 64
+61 121 64
+62 121 64
+63 121 64
+64 121 64
+65 121 64
+66 121 64
+67 121 64
+68 121 64
+69 121 64
+70 121 64
+71 121 64
+72 121 64
+73 121 64
+74 121 64
+75 121 64
+76 121 64
+77 121 64
+78 121 64
+79 121 64
+80 121 64
+81 121 64
+82 121 64
+83 121 64
+84 121 64
+85 121 64
+86 121 64
+87 121 64
+88 121 64
+89 121 64
+90 121 64
+91 121 64
+92 121 64
+93 121 64
+94 121 64
+95 121 64
+96 121 64
+97 121 64
+98 121 64
+99 121 64
+100 121 64
+101 121 64
+102 121 64
+103 121 64
+104 121 64
+105 121 64
+106 121 64
+107 121 64
+108 121 64
+109 121 64
+110 121 64
+111 121 64
+112 121 64
+113 121 64
+114 121 64
+115 121 64
+116 121 64
+117 121 64
+118 121 64
+119 121 64
+120 121 64
+121 121 64
+122 121 64
+123 121 64
+124 121 64
+125 121 64
+126 121 64
+127 121 64
+128 121 64
+129 121 64
+130 121 64
+131 121 64
+132 121 64
+133 121 64
+134 121 64
+135 121 64
+136 121 64
+137 121 64
+138 121 64
+139 121 64
+140 121 64
+141 121 64
+142 121 64
+143 121 64
+144 121 64
+145 121 64
+146 121 64
+147 121 64
+148 121 64
+149 121 64
+150 121 64
+151 121 64
+152 121 64
+153 121 64
+154 121 64
+155 121 64
+156 121 64
+157 121 64
+158 121 64
+159 121 64
+160 121 64
+161 121 64
+162 121 64
+163 121 64
+164 121 64
+165 121 64
+166 121 64
+167 121 64
+168 121 64
+169 121 64
+170 121 64
+171 121 64
+172 121 64
+173 121 64
+174 121 64
+175 121 64
+176 121 64
+177 121 64
+178 121 64
+179 121 64
+180 121 64
+181 121 64
+182 121 64
+183 121 64
+184 121 64
+185 121 64
+186 121 64
+187 121 64
+188 121 64
+189 121 64
+190 121 64
+191 121 64
+192 121 64
+193 121 64
+194 121 64
+195 121 64
+196 121 64
+197 121 64
+198 121 64
+199 121 64
+200 121 64
+201 121 64
+202 121 64
+203 121 64
+204 121 64
+205 121 64
+206 121 64
+207 121 64
+208 121 64
+209 121 64
+210 121 64
+211 121 64
+212 121 64
+213 121 64
+214 121 64
+215 121 64
+216 121 64
+217 121 64
+218 121 64
+219 121 64
+220 121 64
+221 121 64
+222 121 64
+223 121 64
+224 121 64
+225 121 64
+226 121 64
+227 121 64
+228 121 64
+229 121 64
+230 121 64
+231 121 64
+232 121 64
+233 121 64
+234 121 64
+235 121 64
+236 121 64
+237 121 64
+238 121 64
+239 121 64
+240 121 64
+241 121 64
+242 121 64
+243 121 64
+244 121 64
+245 121 64
+246 121 64
+247 121 64
+248 121 64
+249 121 64
+250 121 64
+251 121 64
+252 121 64
+253 121 64
+254 121 64
+255 121 64
+0 120 64
+1 120 64
+2 120 64
+3 120 64
+4 120 64
+5 120 64
+6 120 64
+7 120 64
+8 120 64
+9 120 64
+10 120 64
+11 120 64
+12 120 64
+13 120 64
+14 120 64
+15 120 64
+16 120 64
+17 120 64
+18 120 64
+19 120 64
+20 120 64
+21 120 64
+22 120 64
+23 120 64
+24 120 64
+25 120 64
+26 120 64
+27 120 64
+28 120 64
+29 120 64
+30 120 64
+31 120 64
+32 120 64
+33 120 64
+34 120 64
+35 120 64
+36 120 64
+37 120 64
+38 120 64
+39 120 64
+40 120 64
+41 120 64
+42 120 64
+43 120 64
+44 120 64
+45 120 64
+46 120 64
+47 120 64
+48 120 64
+49 120 64
+50 120 64
+51 120 64
+52 120 64
+53 120 64
+54 120 64
+55 120 64
+56 120 64
+57 120 64
+58 120 64
+59 120 64
+60 120 64
+61 120 64
+62 120 64
+63 120 64
+64 120 64
+65 120 64
+66 120 64
+67 120 64
+68 120 64
+69 120 64
+70 120 64
+71 120 64
+72 120 64
+73 120 64
+74 120 64
+75 120 64
+76 120 64
+77 120 64
+78 120 64
+79 120 64
+80 120 64
+81 120 64
+82 120 64
+83 120 64
+84 120 64
+85 120 64
+86 120 64
+87 120 64
+88 120 64
+89 120 64
+90 120 64
+91 120 64
+92 120 64
+93 120 64
+94 120 64
+95 120 64
+96 120 64
+97 120 64
+98 120 64
+99 120 64
+100 120 64
+101 120 64
+102 120 64
+103 120 64
+104 120 64
+105 120 64
+106 120 64
+107 120 64
+108 120 64
+109 120 64
+110 120 64
+111 120 64
+112 120 64
+113 120 64
+114 120 64
+115 120 64
+116 120 64
+117 120 64
+118 120 64
+119 120 64
+120 120 64
+121 120 64
+122 120 64
+123 120 64
+124 120 64
+125 120 64
+126 120 64
+127 120 64
+128 120 64
+129 120 64
+130 120 64
+131 120 64
+132 120 64
+133 120 64
+134 120 64
+135 120 64
+136 120 64
+137 120 64
+138 120 64
+139 120 64
+140 120 64
+141 120 64
+142 120 64
+143 120 64
+144 120 64
+145 120 64
+146 120 64
+147 120 64
+148 120 64
+149 120 64
+150 120 64
+151 120 64
+152 120 64
+153 120 64
+154 120 64
+155 120 64
+156 120 64
+157 120 64
+158 120 64
+159 120 64
+160 120 64
+161 120 64
+162 120 64
+163 120 64
+164 120 64
+165 120 64
+166 120 64
+167 120 64
+168 120 64
+169 120 64
+170 120 64
+171 120 64
+172 120 64
+173 120 64
+174 120 64
+175 120 64
+176 120 64
+177 120 64
+178 120 64
+179 120 64
+180 120 64
+181 120 64
+182 120 64
+183 120 64
+184 120 64
+185 120 64
+186 120 64
+187 120 64
+188 120 64
+189 120 64
+190 120 64
+191 120 64
+192 120 64
+193 120 64
+194 120 64
+195 120 64
+196 120 64
+197 120 64
+198 120 64
+199 120 64
+200 120 64
+201 120 64
+202 120 64
+203 120 64
+204 120 64
+205 120 64
+206 120 64
+207 120 64
+208 120 64
+209 120 64
+210 120 64
+211 120 64
+212 120 64
+213 120 64
+214 120 64
+215 120 64
+216 120 64
+217 120 64
+218 120 64
+219 120 64
+220 120 64
+221 120 64
+222 120 64
+223 120 64
+224 120 64
+225 120 64
+226 120 64
+227 120 64
+228 120 64
+229 120 64
+230 120 64
+231 120 64
+232 120 64
+233 120 64
+234 120 64
+235 120 64
+236 120 64
+237 120 64
+238 120 64
+239 120 64
+240 120 64
+241 120 64
+242 120 64
+243 120 64
+244 120 64
+245 120 64
+246 120 64
+247 120 64
+248 120 64
+249 120 64
+250 120 64
+251 120 64
+252 120 64
+253 120 64
+254 120 64
+255 120 64
+0 119 64
+1 119 64
+2 119 64
+3 119 64
+4 119 64
+5 119 64
+6 119 64
+7 119 64
+8 119 64
+9 119 64
+10 119 64
+11 119 64
+12 119 64
+13 119 64
+14 119 64
+15 119 64
+16 119 64
+17 119 64
+18 119 64
+19 119 64
+20 119 64
+21 119 64
+22 119 64
+23 119 64
+24 119 64
+25 119 64
+26 119 64
+27 119 64
+28 119 64
+29 119 64
+30 119 64
+31 119 64
+32 119 64
+33 119 64
+34 119 64
+35 119 64
+36 119 64
+37 119 64
+38 119 64
+39 119 64
+40 119 64
+41 119 64
+42 119 64
+43 119 64
+44 119 64
+45 119 64
+46 119 64
+47 119 64
+48 119 64
+49 119 64
+50 119 64
+51 119 64
+52 119 64
+53 119 64
+54 119 64
+55 119 64
+56 119 64
+57 119 64
+58 119 64
+59 119 64
+60 119 64
+61 119 64
+62 119 64
+63 119 64
+64 119 64
+65 119 64
+66 119 64
+67 119 64
+68 119 64
+69 119 64
+70 119 64
+71 119 64
+72 119 64
+73 119 64
+74 119 64
+75 119 64
+76 119 64
+77 119 64
+78 119 64
+79 119 64
+80 119 64
+81 119 64
+82 119 64
+83 119 64
+84 119 64
+85 119 64
+86 119 64
+87 119 64
+88 119 64
+89 119 64
+90 119 64
+91 119 64
+92 119 64
+93 119 64
+94 119 64
+95 119 64
+96 119 64
+97 119 64
+98 119 64
+99 119 64
+100 119 64
+101 119 64
+102 119 64
+103 119 64
+104 119 64
+105 119 64
+106 119 64
+107 119 64
+108 119 64
+109 119 64
+110 119 64
+111 119 64
+112 119 64
+113 119 64
+114 119 64
+115 119 64
+116 119 64
+117 119 64
+118 119 64
+119 119 64
+120 119 64
+121 119 64
+122 119 64
+123 119 64
+124 119 64
+125 119 64
+126 119 64
+127 119 64
+128 119 64
+129 119 64
+130 119 64
+131 119 64
+132 119 64
+133 119 64
+134 119 64
+135 119 64
+136 119 64
+137 119 64
+138 119 64
+139 119 64
+140 119 64
+141 119 64
+142 119 64
+143 119 64
+144 119 64
+145 119 64
+146 119 64
+147 119 64
+148 119 64
+149 119 64
+150 119 64
+151 119 64
+152 119 64
+153 119 64
+154 119 64
+155 119 64
+156 119 64
+157 119 64
+158 119 64
+159 119 64
+160 119 64
+161 119 64
+162 119 64
+163 119 64
+164 119 64
+165 119 64
+166 119 64
+167 119 64
+168 119 64
+169 119 64
+170 119 64
+171 119 64
+172 119 64
+173 119 64
+174 119 64
+175 119 64
+176 119 64
+177 119 64
+178 119 64
+179 119 64
+180 119 64
+181 119 64
+182 119 64
+183 119 64
+184 119 64
+185 119 64
+186 119 64
+187 119 64
+188 119 64
+189 119 64
+190 119 64
+191 119 64
+192 119 64
+193 119 64
+194 119 64
+195 119 64
+196 119 64
+197 119 64
+198 119 64
+199 119 64
+200 119 64
+201 119 64
+202 119 64
+203 119 64
+204 119 64
+205 119 64
+206 119 64
+207 119 64
+208 119 64
+209 119 64
+210 119 64
+211 119 64
+212 119 64
+213 119 64
+214 119 64
+215 119 64
+216 119 64
+217 119 64
+218 119 64
+219 119 64
+220 119 64
+221 119 64
+222 119 64
+223 119 64
+224 119 64
+225 119 64
+226 119 64
+227 119 64
+228 119 64
+229 119 64
+230 119 64
+231 119 64
+232 119 64
+233 119 64
+234 119 64
+235 119 64
+236 119 64
+237 119 64
+238 119 64
+239 119 64
+240 119 64
+241 119 64
+242 119 64
+243 119 64
+244 119 64
+245 119 64
+246 119 64
+247 119 64
+248 119 64
+249 119 64
+250 119 64
+251 119 64
+252 119 64
+253 119 64
+254 119 64
+255 119 64
+0 118 64
+1 118 64
+2 118 64
+3 118 64
+4 118 64
+5 118 64
+6 118 64
+7 118 64
+8 118 64
+9 118 64
+10 118 64
+11 118 64
+12 118 64
+13 118 64
+14 118 64
+15 118 64
+16 118 64
+17 118 64
+18 118 64
+19 118 64
+20 118 64
+21 118 64
+22 118 64
+23 118 64
+24 118 64
+25 118 64
+26 118 64
+27 118 64
+28 118 64
+29 118 64
+30 118 64
+31 118 64
+32 118 64
+33 118 64
+34 118 64
+35 118 64
+36 118 64
+37 118 64
+38 118 64
+39 118 64
+40 118 64
+41 118 64
+42 118 64
+43 118 64
+44 118 64
+45 118 64
+46 118 64
+47 118 64
+48 118 64
+49 118 64
+50 118 64
+51 118 64
+52 118 64
+53 118 64
+54 118 64
+55 118 64
+56 118 64
+57 118 64
+58 118 64
+59 118 64
+60 118 64
+61 118 64
+62 118 64
+63 118 64
+64 118 64
+65 118 64
+66 118 64
+67 118 64
+68 118 64
+69 118 64
+70 118 64
+71 118 64
+72 118 64
+73 118 64
+74 118 64
+75 118 64
+76 118 64
+77 118 64
+78 118 64
+79 118 64
+80 118 64
+81 118 64
+82 118 64
+83 118 64
+84 118 64
+85 118 64
+86 118 64
+87 118 64
+88 118 64
+89 118 64
+90 118 64
+91 118 64
+92 118 64
+93 118 64
+94 118 64
+95 118 64
+96 118 64
+97 118 64
+98 118 64
+99 118 64
+100 118 64
+101 118 64
+102 118 64
+103 118 64
+104 118 64
+105 118 64
+106 118 64
+107 118 64
+108 118 64
+109 118 64
+110 118 64
+111 118 64
+112 118 64
+113 118 64
+114 118 64
+115 118 64
+116 118 64
+117 118 64
+118 118 64
+119 118 64
+120 118 64
+121 118 64
+122 118 64
+123 118 64
+124 118 64
+125 118 64
+126 118 64
+127 118 64
+128 118 64
+129 118 64
+130 118 64
+131 118 64
+132 118 64
+133 118 64
+134 118 64
+135 118 64
+136 118 64
+137 118 64
+138 118 64
+139 118 64
+140 118 64
+141 118 64
+142 118 64
+143 118 64
+144 118 64
+145 118 64
+146 118 64
+147 118 64
+148 118 64
+149 118 64
+150 118 64
+151 118 64
+152 118 64
+153 118 64
+154 118 64
+155 118 64
+156 118 64
+157 118 64
+158 118 64
+159 118 64
+160 118 64
+161 118 64
+162 118 64
+163 118 64
+164 118 64
+165 118 64
+166 118 64
+167 118 64
+168 118 64
+169 118 64
+170 118 64
+171 118 64
+172 118 64
+173 118 64
+174 118 64
+175 118 64
+176 118 64
+177 118 64
+178 118 64
+179 118 64
+180 118 64
+181 118 64
+182 118 64
+183 118 64
+184 118 64
+185 118 64
+186 118 64
+187 118 64
+188 118 64
+189 118 64
+190 118 64
+191 118 64
+192 118 64
+193 118 64
+194 118 64
+195 118 64
+196 118 64
+197 118 64
+198 118 64
+199 118 64
+200 118 64
+201 118 64
+202 118 64
+203 118 64
+204 118 64
+205 118 64
+206 118 64
+207 118 64
+208 118 64
+209 118 64
+210 118 64
+211 118 64
+212 118 64
+213 118 64
+214 118 64
+215 118 64
+216 118 64
+217 118 64
+218 118 64
+219 118 64
+220 118 64
+221 118 64
+222 118 64
+223 118 64
+224 118 64
+225 118 64
+226 118 64
+227 118 64
+228 118 64
+229 118 64
+230 118 64
+231 118 64
+232 118 64
+233 118 64
+234 118 64
+235 118 64
+236 118 64
+237 118 64
+238 118 64
+239 118 64
+240 118 64
+241 118 64
+242 118 64
+243 118 64
+244 118 64
+245 118 64
+246 118 64
+247 118 64
+248 118 64
+249 118 64
+250 118 64
+251 118 64
+252 118 64
+253 118 64
+254 118 64
+255 118 64
+0 117 64
+1 117 64
+2 117 64
+3 117 64
+4 117 64
+5 117 64
+6 117 64
+7 117 64
+8 117 64
+9 117 64
+10 117 64
+11 117 64
+12 117 64
+13 117 64
+14 117 64
+15 117 64
+16 117 64
+17 117 64
+18 117 64
+19 117 64
+20 117 64
+21 117 64
+22 117 64
+23 117 64
+24 117 64
+25 117 64
+26 117 64
+27 117 64
+28 117 64
+29 117 64
+30 117 64
+31 117 64
+32 117 64
+33 117 64
+34 117 64
+35 117 64
+36 117 64
+37 117 64
+38 117 64
+39 117 64
+40 117 64
+41 117 64
+42 117 64
+43 117 64
+44 117 64
+45 117 64
+46 117 64
+47 117 64
+48 117 64
+49 117 64
+50 117 64
+51 117 64
+52 117 64
+53 117 64
+54 117 64
+55 117 64
+56 117 64
+57 117 64
+58 117 64
+59 117 64
+60 117 64
+61 117 64
+62 117 64
+63 117 64
+64 117 64
+65 117 64
+66 117 64
+67 117 64
+68 117 64
+69 117 64
+70 117 64
+71 117 64
+72 117 64
+73 117 64
+74 117 64
+75 117 64
+76 117 64
+77 117 64
+78 117 64
+79 117 64
+80 117 64
+81 117 64
+82 117 64
+83 117 64
+84 117 64
+85 117 64
+86 117 64
+87 117 64
+88 117 64
+89 117 64
+90 117 64
+91 117 64
+92 117 64
+93 117 64
+94 117 64
+95 117 64
+96 117 64
+97 117 64
+98 117 64
+99 117 64
+100 117 64
+101 117 64
+102 117 64
+103 117 64
+104 117 64
+105 117 64
+106 117 64
+107 117 64
+108 117 64
+109 117 64
+110 117 64
+111 117 64
+112 117 64
+113 117 64
+114 117 64
+115 117 64
+116 117 64
+117 117 64
+118 117 64
+119 117 64
+120 117 64
+121 117 64
+122 117 64
+123 117 64
+124 117 64
+125 117 64
+126 117 64
+127 117 64
+128 117 64
+129 117 64
+130 117 64
+131 117 64
+132 117 64
+133 117 64
+134 117 64
+135 117 64
+136 117 64
+137 117 64
+138 117 64
+139 117 64
+140 117 64
+141 117 64
+142 117 64
+143 117 64
+144 117 64
+145 117 64
+146 117 64
+147 117 64
+148 117 64
+149 117 64
+150 117 64
+151 117 64
+152 117 64
+153 117 64
+154 117 64
+155 117 64
+156 117 64
+157 117 64
+158 117 64
+159 117 64
+160 117 64
+161 117 64
+162 117 64
+163 117 64
+164 117 64
+165 117 64
+166 117 64
+167 117 64
+168 117 64
+169 117 64
+170 117 64
+171 117 64
+172 117 64
+173 117 64
+174 117 64
+175 117 64
+176 117 64
+177 117 64
+178 117 64
+179 117 64
+180 117 64
+181 117 64
+182 117 64
+183 117 64
+184 117 64
+185 117 64
+186 117 64
+187 117 64
+188 117 64
+189 117 64
+190 117 64
+191 117 64
+192 117 64
+193 117 64
+194 117 64
+195 117 64
+196 117 64
+197 117 64
+198 117 64
+199 117 64
+200 117 64
+201 117 64
+202 117 64
+203 117 64
+204 117 64
+205 117 64
+206 117 64
+207 117 64
+208 117 64
+209 117 64
+210 117 64
+211 117 64
+212 117 64
+213 117 64
+214 117 64
+215 117 64
+216 117 64
+217 117 64
+218 117 64
+219 117 64
+220 117 64
+221 117 64
+222 117 64
+223 117 64
+224 117 64
+225 117 64
+226 117 64
+227 117 64
+228 117 64
+229 117 64
+230 117 64
+231 117 64
+232 117 64
+233 117 64
+234 117 64
+235 117 64
+236 117 64
+237 117 64
+238 117 64
+239 117 64
+240 117 64
+241 117 64
+242 117 64
+243 117 64
+244 117 64
+245 117 64
+246 117 64
+247 117 64
+248 117 64
+249 117 64
+250 117 64
+251 117 64
+252 117 64
+253 117 64
+254 117 64
+255 117 64
+0 116 64
+1 116 64
+2 116 64
+3 116 64
+4 116 64
+5 116 64
+6 116 64
+7 116 64
+8 116 64
+9 116 64
+10 116 64
+11 116 64
+12 116 64
+13 116 64
+14 116 64
+15 116 64
+16 116 64
+17 116 64
+18 116 64
+19 116 64
+20 116 64
+21 116 64
+22 116 64
+23 116 64
+24 116 64
+25 116 64
+26 116 64
+27 116 64
+28 116 64
+29 116 64
+30 116 64
+31 116 64
+32 116 64
+33 116 64
+34 116 64
+35 116 64
+36 116 64
+37 116 64
+38 116 64
+39 116 64
+40 116 64
+41 116 64
+42 116 64
+43 116 64
+44 116 64
+45 116 64
+46 116 64
+47 116 64
+48 116 64
+49 116 64
+50 116 64
+51 116 64
+52 116 64
+53 116 64
+54 116 64
+55 116 64
+56 116 64
+57 116 64
+58 116 64
+59 116 64
+60 116 64
+61 116 64
+62 116 64
+63 116 64
+64 116 64
+65 116 64
+66 116 64
+67 116 64
+68 116 64
+69 116 64
+70 116 64
+71 116 64
+72 116 64
+73 116 64
+74 116 64
+75 116 64
+76 116 64
+77 116 64
+78 116 64
+79 116 64
+80 116 64
+81 116 64
+82 116 64
+83 116 64
+84 116 64
+85 116 64
+86 116 64
+87 116 64
+88 116 64
+89 116 64
+90 116 64
+91 116 64
+92 116 64
+93 116 64
+94 116 64
+95 116 64
+96 116 64
+97 116 64
+98 116 64
+99 116 64
+100 116 64
+101 116 64
+102 116 64
+103 116 64
+104 116 64
+105 116 64
+106 116 64
+107 116 64
+108 116 64
+109 116 64
+110 116 64
+111 116 64
+112 116 64
+113 116 64
+114 116 64
+115 116 64
+116 116 64
+117 116 64
+118 116 64
+119 116 64
+120 116 64
+121 116 64
+122 116 64
+123 116 64
+124 116 64
+125 116 64
+126 116 64
+127 116 64
+128 116 64
+129 116 64
+130 116 64
+131 116 64
+132 116 64
+133 116 64
+134 116 64
+135 116 64
+136 116 64
+137 116 64
+138 116 64
+139 116 64
+140 116 64
+141 116 64
+142 116 64
+143 116 64
+144 116 64
+145 116 64
+146 116 64
+147 116 64
+148 116 64
+149 116 64
+150 116 64
+151 116 64
+152 116 64
+153 116 64
+154 116 64
+155 116 64
+156 116 64
+157 116 64
+158 116 64
+159 116 64
+160 116 64
+161 116 64
+162 116 64
+163 116 64
+164 116 64
+165 116 64
+166 116 64
+167 116 64
+168 116 64
+169 116 64
+170 116 64
+171 116 64
+172 116 64
+173 116 64
+174 116 64
+175 116 64
+176 116 64
+177 116 64
+178 116 64
+179 116 64
+180 116 64
+181 116 64
+182 116 64
+183 116 64
+184 116 64
+185 116 64
+186 116 64
+187 116 64
+188 116 64
+189 116 64
+190 116 64
+191 116 64
+192 116 64
+193 116 64
+194 116 64
+195 116 64
+196 116 64
+197 116 64
+198 116 64
+199 116 64
+200 116 64
+201 116 64
+202 116 64
+203 116 64
+204 116 64
+205 116 64
+206 116 64
+207 116 64
+208 116 64
+209 116 64
+210 116 64
+211 116 64
+212 116 64
+213 116 64
+214 116 64
+215 116 64
+216 116 64
+217 116 64
+218 116 64
+219 116 64
+220 116 64
+221 116 64
+222 116 64
+223 116 64
+224 116 64
+225 116 64
+226 116 64
+227 116 64
+228 116 64
+229 116 64
+230 116 64
+231 116 64
+232 116 64
+233 116 64
+234 116 64
+235 116 64
+236 116 64
+237 116 64
+238 116 64
+239 116 64
+240 116 64
+241 116 64
+242 116 64
+243 116 64
+244 116 64
+245 116 64
+246 116 64
+247 116 64
+248 116 64
+249 116 64
+250 116 64
+251 116 64
+252 116 64
+253 116 64
+254 116 64
+255 116 64
+0 115 64
+1 115 64
+2 115 64
+3 115 64
+4 115 64
+5 115 64
+6 115 64
+7 115 64
+8 115 64
+9 115 64
+10 115 64
+11 115 64
+12 115 64
+13 115 64
+14 115 64
+15 115 64
+16 115 64
+17 115 64
+18 115 64
+19 115 64
+20 115 64
+21 115 64
+22 115 64
+23 115 64
+24 115 64
+25 115 64
+26 115 64
+27 115 64
+28 115 64
+29 115 64
+30 115 64
+31 115 64
+32 115 64
+33 115 64
+34 115 64
+35 115 64
+36 115 64
+37 115 64
+38 115 64
+39 115 64
+40 115 64
+41 115 64
+42 115 64
+43 115 64
+44 115 64
+45 115 64
+46 115 64
+47 115 64
+48 115 64
+49 115 64
+50 115 64
+51 115 64
+52 115 64
+53 115 64
+54 115 64
+55 115 64
+56 115 64
+57 115 64
+58 115 64
+59 115 64
+60 115 64
+61 115 64
+62 115 64
+63 115 64
+64 115 64
+65 115 64
+66 115 64
+67 115 64
+68 115 64
+69 115 64
+70 115 64
+71 115 64
+72 115 64
+73 115 64
+74 115 64
+75 115 64
+76 115 64
+77 115 64
+78 115 64
+79 115 64
+80 115 64
+81 115 64
+82 115 64
+83 115 64
+84 115 64
+85 115 64
+86 115 64
+87 115 64
+88 115 64
+89 115 64
+90 115 64
+91 115 64
+92 115 64
+93 115 64
+94 115 64
+95 115 64
+96 115 64
+97 115 64
+98 115 64
+99 115 64
+100 115 64
+101 115 64
+102 115 64
+103 115 64
+104 115 64
+105 115 64
+106 115 64
+107 115 64
+108 115 64
+109 115 64
+110 115 64
+111 115 64
+112 115 64
+113 115 64
+114 115 64
+115 115 64
+116 115 64
+117 115 64
+118 115 64
+119 115 64
+120 115 64
+121 115 64
+122 115 64
+123 115 64
+124 115 64
+125 115 64
+126 115 64
+127 115 64
+128 115 64
+129 115 64
+130 115 64
+131 115 64
+132 115 64
+133 115 64
+134 115 64
+135 115 64
+136 115 64
+137 115 64
+138 115 64
+139 115 64
+140 115 64
+141 115 64
+142 115 64
+143 115 64
+144 115 64
+145 115 64
+146 115 64
+147 115 64
+148 115 64
+149 115 64
+150 115 64
+151 115 64
+152 115 64
+153 115 64
+154 115 64
+155 115 64
+156 115 64
+157 115 64
+158 115 64
+159 115 64
+160 115 64
+161 115 64
+162 115 64
+163 115 64
+164 115 64
+165 115 64
+166 115 64
+167 115 64
+168 115 64
+169 115 64
+170 115 64
+171 115 64
+172 115 64
+173 115 64
+174 115 64
+175 115 64
+176 115 64
+177 115 64
+178 115 64
+179 115 64
+180 115 64
+181 115 64
+182 115 64
+183 115 64
+184 115 64
+185 115 64
+186 115 64
+187 115 64
+188 115 64
+189 115 64
+190 115 64
+191 115 64
+192 115 64
+193 115 64
+194 115 64
+195 115 64
+196 115 64
+197 115 64
+198 115 64
+199 115 64
+200 115 64
+201 115 64
+202 115 64
+203 115 64
+204 115 64
+205 115 64
+206 115 64
+207 115 64
+208 115 64
+209 115 64
+210 115 64
+211 115 64
+212 115 64
+213 115 64
+214 115 64
+215 115 64
+216 115 64
+217 115 64
+218 115 64
+219 115 64
+220 115 64
+221 115 64
+222 115 64
+223 115 64
+224 115 64
+225 115 64
+226 115 64
+227 115 64
+228 115 64
+229 115 64
+230 115 64
+231 115 64
+232 115 64
+233 115 64
+234 115 64
+235 115 64
+236 115 64
+237 115 64
+238 115 64
+239 115 64
+240 115 64
+241 115 64
+242 115 64
+243 115 64
+244 115 64
+245 115 64
+246 115 64
+247 115 64
+248 115 64
+249 115 64
+250 115 64
+251 115 64
+252 115 64
+253 115 64
+254 115 64
+255 115 64
+0 114 64
+1 114 64
+2 114 64
+3 114 64
+4 114 64
+5 114 64
+6 114 64
+7 114 64
+8 114 64
+9 114 64
+10 114 64
+11 114 64
+12 114 64
+13 114 64
+14 114 64
+15 114 64
+16 114 64
+17 114 64
+18 114 64
+19 114 64
+20 114 64
+21 114 64
+22 114 64
+23 114 64
+24 114 64
+25 114 64
+26 114 64
+27 114 64
+28 114 64
+29 114 64
+30 114 64
+31 114 64
+32 114 64
+33 114 64
+34 114 64
+35 114 64
+36 114 64
+37 114 64
+38 114 64
+39 114 64
+40 114 64
+41 114 64
+42 114 64
+43 114 64
+44 114 64
+45 114 64
+46 114 64
+47 114 64
+48 114 64
+49 114 64
+50 114 64
+51 114 64
+52 114 64
+53 114 64
+54 114 64
+55 114 64
+56 114 64
+57 114 64
+58 114 64
+59 114 64
+60 114 64
+61 114 64
+62 114 64
+63 114 64
+64 114 64
+65 114 64
+66 114 64
+67 114 64
+68 114 64
+69 114 64
+70 114 64
+71 114 64
+72 114 64
+73 114 64
+74 114 64
+75 114 64
+76 114 64
+77 114 64
+78 114 64
+79 114 64
+80 114 64
+81 114 64
+82 114 64
+83 114 64
+84 114 64
+85 114 64
+86 114 64
+87 114 64
+88 114 64
+89 114 64
+90 114 64
+91 114 64
+92 114 64
+93 114 64
+94 114 64
+95 114 64
+96 114 64
+97 114 64
+98 114 64
+99 114 64
+100 114 64
+101 114 64
+102 114 64
+103 114 64
+104 114 64
+105 114 64
+106 114 64
+107 114 64
+108 114 64
+109 114 64
+110 114 64
+111 114 64
+112 114 64
+113 114 64
+114 114 64
+115 114 64
+116 114 64
+117 114 64
+118 114 64
+119 114 64
+120 114 64
+121 114 64
+122 114 64
+123 114 64
+124 114 64
+125 114 64
+126 114 64
+127 114 64
+128 114 64
+129 114 64
+130 114 64
+131 114 64
+132 114 64
+133 114 64
+134 114 64
+135 114 64
+136 114 64
+137 114 64
+138 114 64
+139 114 64
+140 114 64
+141 114 64
+142 114 64
+143 114 64
+144 114 64
+145 114 64
+146 114 64
+147 114 64
+148 114 64
+149 114 64
+150 114 64
+151 114 64
+152 114 64
+153 114 64
+154 114 64
+155 114 64
+156 114 64
+157 114 64
+158 114 64
+159 114 64
+160 114 64
+161 114 64
+162 114 64
+163 114 64
+164 114 64
+165 114 64
+166 114 64
+167 114 64
+168 114 64
+169 114 64
+170 114 64
+171 114 64
+172 114 64
+173 114 64
+174 114 64
+175 114 64
+176 114 64
+177 114 64
+178 114 64
+179 114 64
+180 114 64
+181 114 64
+182 114 64
+183 114 64
+184 114 64
+185 114 64
+186 114 64
+187 114 64
+188 114 64
+189 114 64
+190 114 64
+191 114 64
+192 114 64
+193 114 64
+194 114 64
+195 114 64
+196 114 64
+197 114 64
+198 114 64
+199 114 64
+200 114 64
+201 114 64
+202 114 64
+203 114 64
+204 114 64
+205 114 64
+206 114 64
+207 114 64
+208 114 64
+209 114 64
+210 114 64
+211 114 64
+212 114 64
+213 114 64
+214 114 64
+215 114 64
+216 114 64
+217 114 64
+218 114 64
+219 114 64
+220 114 64
+221 114 64
+222 114 64
+223 114 64
+224 114 64
+225 114 64
+226 114 64
+227 114 64
+228 114 64
+229 114 64
+230 114 64
+231 114 64
+232 114 64
+233 114 64
+234 114 64
+235 114 64
+236 114 64
+237 114 64
+238 114 64
+239 114 64
+240 114 64
+241 114 64
+242 114 64
+243 114 64
+244 114 64
+245 114 64
+246 114 64
+247 114 64
+248 114 64
+249 114 64
+250 114 64
+251 114 64
+252 114 64
+253 114 64
+254 114 64
+255 114 64
+0 113 64
+1 113 64
+2 113 64
+3 113 64
+4 113 64
+5 113 64
+6 113 64
+7 113 64
+8 113 64
+9 113 64
+10 113 64
+11 113 64
+12 113 64
+13 113 64
+14 113 64
+15 113 64
+16 113 64
+17 113 64
+18 113 64
+19 113 64
+20 113 64
+21 113 64
+22 113 64
+23 113 64
+24 113 64
+25 113 64
+26 113 64
+27 113 64
+28 113 64
+29 113 64
+30 113 64
+31 113 64
+32 113 64
+33 113 64
+34 113 64
+35 113 64
+36 113 64
+37 113 64
+38 113 64
+39 113 64
+40 113 64
+41 113 64
+42 113 64
+43 113 64
+44 113 64
+45 113 64
+46 113 64
+47 113 64
+48 113 64
+49 113 64
+50 113 64
+51 113 64
+52 113 64
+53 113 64
+54 113 64
+55 113 64
+56 113 64
+57 113 64
+58 113 64
+59 113 64
+60 113 64
+61 113 64
+62 113 64
+63 113 64
+64 113 64
+65 113 64
+66 113 64
+67 113 64
+68 113 64
+69 113 64
+70 113 64
+71 113 64
+72 113 64
+73 113 64
+74 113 64
+75 113 64
+76 113 64
+77 113 64
+78 113 64
+79 113 64
+80 113 64
+81 113 64
+82 113 64
+83 113 64
+84 113 64
+85 113 64
+86 113 64
+87 113 64
+88 113 64
+89 113 64
+90 113 64
+91 113 64
+92 113 64
+93 113 64
+94 113 64
+95 113 64
+96 113 64
+97 113 64
+98 113 64
+99 113 64
+100 113 64
+101 113 64
+102 113 64
+103 113 64
+104 113 64
+105 113 64
+106 113 64
+107 113 64
+108 113 64
+109 113 64
+110 113 64
+111 113 64
+112 113 64
+113 113 64
+114 113 64
+115 113 64
+116 113 64
+117 113 64
+118 113 64
+119 113 64
+120 113 64
+121 113 64
+122 113 64
+123 113 64
+124 113 64
+125 113 64
+126 113 64
+127 113 64
+128 113 64
+129 113 64
+130 113 64
+131 113 64
+132 113 64
+133 113 64
+134 113 64
+135 113 64
+136 113 64
+137 113 64
+138 113 64
+139 113 64
+140 113 64
+141 113 64
+142 113 64
+143 113 64
+144 113 64
+145 113 64
+146 113 64
+147 113 64
+148 113 64
+149 113 64
+150 113 64
+151 113 64
+152 113 64
+153 113 64
+154 113 64
+155 113 64
+156 113 64
+157 113 64
+158 113 64
+159 113 64
+160 113 64
+161 113 64
+162 113 64
+163 113 64
+164 113 64
+165 113 64
+166 113 64
+167 113 64
+168 113 64
+169 113 64
+170 113 64
+171 113 64
+172 113 64
+173 113 64
+174 113 64
+175 113 64
+176 113 64
+177 113 64
+178 113 64
+179 113 64
+180 113 64
+181 113 64
+182 113 64
+183 113 64
+184 113 64
+185 113 64
+186 113 64
+187 113 64
+188 113 64
+189 113 64
+190 113 64
+191 113 64
+192 113 64
+193 113 64
+194 113 64
+195 113 64
+196 113 64
+197 113 64
+198 113 64
+199 113 64
+200 113 64
+201 113 64
+202 113 64
+203 113 64
+204 113 64
+205 113 64
+206 113 64
+207 113 64
+208 113 64
+209 113 64
+210 113 64
+211 113 64
+212 113 64
+213 113 64
+214 113 64
+215 113 64
+216 113 64
+217 113 64
+218 113 64
+219 113 64
+220 113 64
+221 113 64
+222 113 64
+223 113 64
+224 113 64
+225 113 64
+226 113 64
+227 113 64
+228 113 64
+229 113 64
+230 113 64
+231 113 64
+232 113 64
+233 113 64
+234 113 64
+235 113 64
+236 113 64
+237 113 64
+238 113 64
+239 113 64
+240 113 64
+241 113 64
+242 113 64
+243 113 64
+244 113 64
+245 113 64
+246 113 64
+247 113 64
+248 113 64
+249 113 64
+250 113 64
+251 113 64
+252 113 64
+253 113 64
+254 113 64
+255 113 64
+0 112 64
+1 112 64
+2 112 64
+3 112 64
+4 112 64
+5 112 64
+6 112 64
+7 112 64
+8 112 64
+9 112 64
+10 112 64
+11 112 64
+12 112 64
+13 112 64
+14 112 64
+15 112 64
+16 112 64
+17 112 64
+18 112 64
+19 112 64
+20 112 64
+21 112 64
+22 112 64
+23 112 64
+24 112 64
+25 112 64
+26 112 64
+27 112 64
+28 112 64
+29 112 64
+30 112 64
+31 112 64
+32 112 64
+33 112 64
+34 112 64
+35 112 64
+36 112 64
+37 112 64
+38 112 64
+39 112 64
+40 112 64
+41 112 64
+42 112 64
+43 112 64
+44 112 64
+45 112 64
+46 112 64
+47 112 64
+48 112 64
+49 112 64
+50 112 64
+51 112 64
+52 112 64
+53 112 64
+54 112 64
+55 112 64
+56 112 64
+57 112 64
+58 112 64
+59 112 64
+60 112 64
+61 112 64
+62 112 64
+63 112 64
+64 112 64
+65 112 64
+66 112 64
+67 112 64
+68 112 64
+69 112 64
+70 112 64
+71 112 64
+72 112 64
+73 112 64
+74 112 64
+75 112 64
+76 112 64
+77 112 64
+78 112 64
+79 112 64
+80 112 64
+81 112 64
+82 112 64
+83 112 64
+84 112 64
+85 112 64
+86 112 64
+87 112 64
+88 112 64
+89 112 64
+90 112 64
+91 112 64
+92 112 64
+93 112 64
+94 112 64
+95 112 64
+96 112 64
+97 112 64
+98 112 64
+99 112 64
+100 112 64
+101 112 64
+102 112 64
+103 112 64
+104 112 64
+105 112 64
+106 112 64
+107 112 64
+108 112 64
+109 112 64
+110 112 64
+111 112 64
+112 112 64
+113 112 64
+114 112 64
+115 112 64
+116 112 64
+117 112 64
+118 112 64
+119 112 64
+120 112 64
+121 112 64
+122 112 64
+123 112 64
+124 112 64
+125 112 64
+126 112 64
+127 112 64
+128 112 64
+129 112 64
+130 112 64
+131 112 64
+132 112 64
+133 112 64
+134 112 64
+135 112 64
+136 112 64
+137 112 64
+138 112 64
+139 112 64
+140 112 64
+141 112 64
+142 112 64
+143 112 64
+144 112 64
+145 112 64
+146 112 64
+147 112 64
+148 112 64
+149 112 64
+150 112 64
+151 112 64
+152 112 64
+153 112 64
+154 112 64
+155 112 64
+156 112 64
+157 112 64
+158 112 64
+159 112 64
+160 112 64
+161 112 64
+162 112 64
+163 112 64
+164 112 64
+165 112 64
+166 112 64
+167 112 64
+168 112 64
+169 112 64
+170 112 64
+171 112 64
+172 112 64
+173 112 64
+174 112 64
+175 112 64
+176 112 64
+177 112 64
+178 112 64
+179 112 64
+180 112 64
+181 112 64
+182 112 64
+183 112 64
+184 112 64
+185 112 64
+186 112 64
+187 112 64
+188 112 64
+189 112 64
+190 112 64
+191 112 64
+192 112 64
+193 112 64
+194 112 64
+195 112 64
+196 112 64
+197 112 64
+198 112 64
+199 112 64
+200 112 64
+201 112 64
+202 112 64
+203 112 64
+204 112 64
+205 112 64
+206 112 64
+207 112 64
+208 112 64
+209 112 64
+210 112 64
+211 112 64
+212 112 64
+213 112 64
+214 112 64
+215 112 64
+216 112 64
+217 112 64
+218 112 64
+219 112 64
+220 112 64
+221 112 64
+222 112 64
+223 112 64
+224 112 64
+225 112 64
+226 112 64
+227 112 64
+228 112 64
+229 112 64
+230 112 64
+231 112 64
+232 112 64
+233 112 64
+234 112 64
+235 112 64
+236 112 64
+237 112 64
+238 112 64
+239 112 64
+240 112 64
+241 112 64
+242 112 64
+243 112 64
+244 112 64
+245 112 64
+246 112 64
+247 112 64
+248 112 64
+249 112 64
+250 112 64
+251 112 64
+252 112 64
+253 112 64
+254 112 64
+255 112 64
+0 111 64
+1 111 64
+2 111 64
+3 111 64
+4 111 64
+5 111 64
+6 111 64
+7 111 64
+8 111 64
+9 111 64
+10 111 64
+11 111 64
+12 111 64
+13 111 64
+14 111 64
+15 111 64
+16 111 64
+17 111 64
+18 111 64
+19 111 64
+20 111 64
+21 111 64
+22 111 64
+23 111 64
+24 111 64
+25 111 64
+26 111 64
+27 111 64
+28 111 64
+29 111 64
+30 111 64
+31 111 64
+32 111 64
+33 111 64
+34 111 64
+35 111 64
+36 111 64
+37 111 64
+38 111 64
+39 111 64
+40 111 64
+41 111 64
+42 111 64
+43 111 64
+44 111 64
+45 111 64
+46 111 64
+47 111 64
+48 111 64
+49 111 64
+50 111 64
+51 111 64
+52 111 64
+53 111 64
+54 111 64
+55 111 64
+56 111 64
+57 111 64
+58 111 64
+59 111 64
+60 111 64
+61 111 64
+62 111 64
+63 111 64
+64 111 64
+65 111 64
+66 111 64
+67 111 64
+68 111 64
+69 111 64
+70 111 64
+71 111 64
+72 111 64
+73 111 64
+74 111 64
+75 111 64
+76 111 64
+77 111 64
+78 111 64
+79 111 64
+80 111 64
+81 111 64
+82 111 64
+83 111 64
+84 111 64
+85 111 64
+86 111 64
+87 111 64
+88 111 64
+89 111 64
+90 111 64
+91 111 64
+92 111 64
+93 111 64
+94 111 64
+95 111 64
+96 111 64
+97 111 64
+98 111 64
+99 111 64
+100 111 64
+101 111 64
+102 111 64
+103 111 64
+104 111 64
+105 111 64
+106 111 64
+107 111 64
+108 111 64
+109 111 64
+110 111 64
+111 111 64
+112 111 64
+113 111 64
+114 111 64
+115 111 64
+116 111 64
+117 111 64
+118 111 64
+119 111 64
+120 111 64
+121 111 64
+122 111 64
+123 111 64
+124 111 64
+125 111 64
+126 111 64
+127 111 64
+128 111 64
+129 111 64
+130 111 64
+131 111 64
+132 111 64
+133 111 64
+134 111 64
+135 111 64
+136 111 64
+137 111 64
+138 111 64
+139 111 64
+140 111 64
+141 111 64
+142 111 64
+143 111 64
+144 111 64
+145 111 64
+146 111 64
+147 111 64
+148 111 64
+149 111 64
+150 111 64
+151 111 64
+152 111 64
+153 111 64
+154 111 64
+155 111 64
+156 111 64
+157 111 64
+158 111 64
+159 111 64
+160 111 64
+161 111 64
+162 111 64
+163 111 64
+164 111 64
+165 111 64
+166 111 64
+167 111 64
+168 111 64
+169 111 64
+170 111 64
+171 111 64
+172 111 64
+173 111 64
+174 111 64
+175 111 64
+176 111 64
+177 111 64
+178 111 64
+179 111 64
+180 111 64
+181 111 64
+182 111 64
+183 111 64
+184 111 64
+185 111 64
+186 111 64
+187 111 64
+188 111 64
+189 111 64
+190 111 64
+191 111 64
+192 111 64
+193 111 64
+194 111 64
+195 111 64
+196 111 64
+197 111 64
+198 111 64
+199 111 64
+200 111 64
+201 111 64
+202 111 64
+203 111 64
+204 111 64
+205 111 64
+206 111 64
+207 111 64
+208 111 64
+209 111 64
+210 111 64
+211 111 64
+212 111 64
+213 111 64
+214 111 64
+215 111 64
+216 111 64
+217 111 64
+218 111 64
+219 111 64
+220 111 64
+221 111 64
+222 111 64
+223 111 64
+224 111 64
+225 111 64
+226 111 64
+227 111 64
+228 111 64
+229 111 64
+230 111 64
+231 111 64
+232 111 64
+233 111 64
+234 111 64
+235 111 64
+236 111 64
+237 111 64
+238 111 64
+239 111 64
+240 111 64
+241 111 64
+242 111 64
+243 111 64
+244 111 64
+245 111 64
+246 111 64
+247 111 64
+248 111 64
+249 111 64
+250 111 64
+251 111 64
+252 111 64
+253 111 64
+254 111 64
+255 111 64
+0 110 64
+1 110 64
+2 110 64
+3 110 64
+4 110 64
+5 110 64
+6 110 64
+7 110 64
+8 110 64
+9 110 64
+10 110 64
+11 110 64
+12 110 64
+13 110 64
+14 110 64
+15 110 64
+16 110 64
+17 110 64
+18 110 64
+19 110 64
+20 110 64
+21 110 64
+22 110 64
+23 110 64
+24 110 64
+25 110 64
+26 110 64
+27 110 64
+28 110 64
+29 110 64
+30 110 64
+31 110 64
+32 110 64
+33 110 64
+34 110 64
+35 110 64
+36 110 64
+37 110 64
+38 110 64
+39 110 64
+40 110 64
+41 110 64
+42 110 64
+43 110 64
+44 110 64
+45 110 64
+46 110 64
+47 110 64
+48 110 64
+49 110 64
+50 110 64
+51 110 64
+52 110 64
+53 110 64
+54 110 64
+55 110 64
+56 110 64
+57 110 64
+58 110 64
+59 110 64
+60 110 64
+61 110 64
+62 110 64
+63 110 64
+64 110 64
+65 110 64
+66 110 64
+67 110 64
+68 110 64
+69 110 64
+70 110 64
+71 110 64
+72 110 64
+73 110 64
+74 110 64
+75 110 64
+76 110 64
+77 110 64
+78 110 64
+79 110 64
+80 110 64
+81 110 64
+82 110 64
+83 110 64
+84 110 64
+85 110 64
+86 110 64
+87 110 64
+88 110 64
+89 110 64
+90 110 64
+91 110 64
+92 110 64
+93 110 64
+94 110 64
+95 110 64
+96 110 64
+97 110 64
+98 110 64
+99 110 64
+100 110 64
+101 110 64
+102 110 64
+103 110 64
+104 110 64
+105 110 64
+106 110 64
+107 110 64
+108 110 64
+109 110 64
+110 110 64
+111 110 64
+112 110 64
+113 110 64
+114 110 64
+115 110 64
+116 110 64
+117 110 64
+118 110 64
+119 110 64
+120 110 64
+121 110 64
+122 110 64
+123 110 64
+124 110 64
+125 110 64
+126 110 64
+127 110 64
+128 110 64
+129 110 64
+130 110 64
+131 110 64
+132 110 64
+133 110 64
+134 110 64
+135 110 64
+136 110 64
+137 110 64
+138 110 64
+139 110 64
+140 110 64
+141 110 64
+142 110 64
+143 110 64
+144 110 64
+145 110 64
+146 110 64
+147 110 64
+148 110 64
+149 110 64
+150 110 64
+151 110 64
+152 110 64
+153 110 64
+154 110 64
+155 110 64
+156 110 64
+157 110 64
+158 110 64
+159 110 64
+160 110 64
+161 110 64
+162 110 64
+163 110 64
+164 110 64
+165 110 64
+166 110 64
+167 110 64
+168 110 64
+169 110 64
+170 110 64
+171 110 64
+172 110 64
+173 110 64
+174 110 64
+175 110 64
+176 110 64
+177 110 64
+178 110 64
+179 110 64
+180 110 64
+181 110 64
+182 110 64
+183 110 64
+184 110 64
+185 110 64
+186 110 64
+187 110 64
+188 110 64
+189 110 64
+190 110 64
+191 110 64
+192 110 64
+193 110 64
+194 110 64
+195 110 64
+196 110 64
+197 110 64
+198 110 64
+199 110 64
+200 110 64
+201 110 64
+202 110 64
+203 110 64
+204 110 64
+205 110 64
+206 110 64
+207 110 64
+208 110 64
+209 110 64
+210 110 64
+211 110 64
+212 110 64
+213 110 64
+214 110 64
+215 110 64
+216 110 64
+217 110 64
+218 110 64
+219 110 64
+220 110 64
+221 110 64
+222 110 64
+223 110 64
+224 110 64
+225 110 64
+226 110 64
+227 110 64
+228 110 64
+229 110 64
+230 110 64
+231 110 64
+232 110 64
+233 110 64
+234 110 64
+235 110 64
+236 110 64
+237 110 64
+238 110 64
+239 110 64
+240 110 64
+241 110 64
+242 110 64
+243 110 64
+244 110 64
+245 110 64
+246 110 64
+247 110 64
+248 110 64
+249 110 64
+250 110 64
+251 110 64
+252 110 64
+253 110 64
+254 110 64
+255 110 64
+0 109 64
+1 109 64
+2 109 64
+3 109 64
+4 109 64
+5 109 64
+6 109 64
+7 109 64
+8 109 64
+9 109 64
+10 109 64
+11 109 64
+12 109 64
+13 109 64
+14 109 64
+15 109 64
+16 109 64
+17 109 64
+18 109 64
+19 109 64
+20 109 64
+21 109 64
+22 109 64
+23 109 64
+24 109 64
+25 109 64
+26 109 64
+27 109 64
+28 109 64
+29 109 64
+30 109 64
+31 109 64
+32 109 64
+33 109 64
+34 109 64
+35 109 64
+36 109 64
+37 109 64
+38 109 64
+39 109 64
+40 109 64
+41 109 64
+42 109 64
+43 109 64
+44 109 64
+45 109 64
+46 109 64
+47 109 64
+48 109 64
+49 109 64
+50 109 64
+51 109 64
+52 109 64
+53 109 64
+54 109 64
+55 109 64
+56 109 64
+57 109 64
+58 109 64
+59 109 64
+60 109 64
+61 109 64
+62 109 64
+63 109 64
+64 109 64
+65 109 64
+66 109 64
+67 109 64
+68 109 64
+69 109 64
+70 109 64
+71 109 64
+72 109 64
+73 109 64
+74 109 64
+75 109 64
+76 109 64
+77 109 64
+78 109 64
+79 109 64
+80 109 64
+81 109 64
+82 109 64
+83 109 64
+84 109 64
+85 109 64
+86 109 64
+87 109 64
+88 109 64
+89 109 64
+90 109 64
+91 109 64
+92 109 64
+93 109 64
+94 109 64
+95 109 64
+96 109 64
+97 109 64
+98 109 64
+99 109 64
+100 109 64
+101 109 64
+102 109 64
+103 109 64
+104 109 64
+105 109 64
+106 109 64
+107 109 64
+108 109 64
+109 109 64
+110 109 64
+111 109 64
+112 109 64
+113 109 64
+114 109 64
+115 109 64
+116 109 64
+117 109 64
+118 109 64
+119 109 64
+120 109 64
+121 109 64
+122 109 64
+123 109 64
+124 109 64
+125 109 64
+126 109 64
+127 109 64
+128 109 64
+129 109 64
+130 109 64
+131 109 64
+132 109 64
+133 109 64
+134 109 64
+135 109 64
+136 109 64
+137 109 64
+138 109 64
+139 109 64
+140 109 64
+141 109 64
+142 109 64
+143 109 64
+144 109 64
+145 109 64
+146 109 64
+147 109 64
+148 109 64
+149 109 64
+150 109 64
+151 109 64
+152 109 64
+153 109 64
+154 109 64
+155 109 64
+156 109 64
+157 109 64
+158 109 64
+159 109 64
+160 109 64
+161 109 64
+162 109 64
+163 109 64
+164 109 64
+165 109 64
+166 109 64
+167 109 64
+168 109 64
+169 109 64
+170 109 64
+171 109 64
+172 109 64
+173 109 64
+174 109 64
+175 109 64
+176 109 64
+177 109 64
+178 109 64
+179 109 64
+180 109 64
+181 109 64
+182 109 64
+183 109 64
+184 109 64
+185 109 64
+186 109 64
+187 109 64
+188 109 64
+189 109 64
+190 109 64
+191 109 64
+192 109 64
+193 109 64
+194 109 64
+195 109 64
+196 109 64
+197 109 64
+198 109 64
+199 109 64
+200 109 64
+201 109 64
+202 109 64
+203 109 64
+204 109 64
+205 109 64
+206 109 64
+207 109 64
+208 109 64
+209 109 64
+210 109 64
+211 109 64
+212 109 64
+213 109 64
+214 109 64
+215 109 64
+216 109 64
+217 109 64
+218 109 64
+219 109 64
+220 109 64
+221 109 64
+222 109 64
+223 109 64
+224 109 64
+225 109 64
+226 109 64
+227 109 64
+228 109 64
+229 109 64
+230 109 64
+231 109 64
+232 109 64
+233 109 64
+234 109 64
+235 109 64
+236 109 64
+237 109 64
+238 109 64
+239 109 64
+240 109 64
+241 109 64
+242 109 64
+243 109 64
+244 109 64
+245 109 64
+246 109 64
+247 109 64
+248 109 64
+249 109 64
+250 109 64
+251 109 64
+252 109 64
+253 109 64
+254 109 64
+255 109 64
+0 108 64
+1 108 64
+2 108 64
+3 108 64
+4 108 64
+5 108 64
+6 108 64
+7 108 64
+8 108 64
+9 108 64
+10 108 64
+11 108 64
+12 108 64
+13 108 64
+14 108 64
+15 108 64
+16 108 64
+17 108 64
+18 108 64
+19 108 64
+20 108 64
+21 108 64
+22 108 64
+23 108 64
+24 108 64
+25 108 64
+26 108 64
+27 108 64
+28 108 64
+29 108 64
+30 108 64
+31 108 64
+32 108 64
+33 108 64
+34 108 64
+35 108 64
+36 108 64
+37 108 64
+38 108 64
+39 108 64
+40 108 64
+41 108 64
+42 108 64
+43 108 64
+44 108 64
+45 108 64
+46 108 64
+47 108 64
+48 108 64
+49 108 64
+50 108 64
+51 108 64
+52 108 64
+53 108 64
+54 108 64
+55 108 64
+56 108 64
+57 108 64
+58 108 64
+59 108 64
+60 108 64
+61 108 64
+62 108 64
+63 108 64
+64 108 64
+65 108 64
+66 108 64
+67 108 64
+68 108 64
+69 108 64
+70 108 64
+71 108 64
+72 108 64
+73 108 64
+74 108 64
+75 108 64
+76 108 64
+77 108 64
+78 108 64
+79 108 64
+80 108 64
+81 108 64
+82 108 64
+83 108 64
+84 108 64
+85 108 64
+86 108 64
+87 108 64
+88 108 64
+89 108 64
+90 108 64
+91 108 64
+92 108 64
+93 108 64
+94 108 64
+95 108 64
+96 108 64
+97 108 64
+98 108 64
+99 108 64
+100 108 64
+101 108 64
+102 108 64
+103 108 64
+104 108 64
+105 108 64
+106 108 64
+107 108 64
+108 108 64
+109 108 64
+110 108 64
+111 108 64
+112 108 64
+113 108 64
+114 108 64
+115 108 64
+116 108 64
+117 108 64
+118 108 64
+119 108 64
+120 108 64
+121 108 64
+122 108 64
+123 108 64
+124 108 64
+125 108 64
+126 108 64
+127 108 64
+128 108 64
+129 108 64
+130 108 64
+131 108 64
+132 108 64
+133 108 64
+134 108 64
+135 108 64
+136 108 64
+137 108 64
+138 108 64
+139 108 64
+140 108 64
+141 108 64
+142 108 64
+143 108 64
+144 108 64
+145 108 64
+146 108 64
+147 108 64
+148 108 64
+149 108 64
+150 108 64
+151 108 64
+152 108 64
+153 108 64
+154 108 64
+155 108 64
+156 108 64
+157 108 64
+158 108 64
+159 108 64
+160 108 64
+161 108 64
+162 108 64
+163 108 64
+164 108 64
+165 108 64
+166 108 64
+167 108 64
+168 108 64
+169 108 64
+170 108 64
+171 108 64
+172 108 64
+173 108 64
+174 108 64
+175 108 64
+176 108 64
+177 108 64
+178 108 64
+179 108 64
+180 108 64
+181 108 64
+182 108 64
+183 108 64
+184 108 64
+185 108 64
+186 108 64
+187 108 64
+188 108 64
+189 108 64
+190 108 64
+191 108 64
+192 108 64
+193 108 64
+194 108 64
+195 108 64
+196 108 64
+197 108 64
+198 108 64
+199 108 64
+200 108 64
+201 108 64
+202 108 64
+203 108 64
+204 108 64
+205 108 64
+206 108 64
+207 108 64
+208 108 64
+209 108 64
+210 108 64
+211 108 64
+212 108 64
+213 108 64
+214 108 64
+215 108 64
+216 108 64
+217 108 64
+218 108 64
+219 108 64
+220 108 64
+221 108 64
+222 108 64
+223 108 64
+224 108 64
+225 108 64
+226 108 64
+227 108 64
+228 108 64
+229 108 64
+230 108 64
+231 108 64
+232 108 64
+233 108 64
+234 108 64
+235 108 64
+236 108 64
+237 108 64
+238 108 64
+239 108 64
+240 108 64
+241 108 64
+242 108 64
+243 108 64
+244 108 64
+245 108 64
+246 108 64
+247 108 64
+248 108 64
+249 108 64
+250 108 64
+251 108 64
+252 108 64
+253 108 64
+254 108 64
+255 108 64
+0 107 64
+1 107 64
+2 107 64
+3 107 64
+4 107 64
+5 107 64
+6 107 64
+7 107 64
+8 107 64
+9 107 64
+10 107 64
+11 107 64
+12 107 64
+13 107 64
+14 107 64
+15 107 64
+16 107 64
+17 107 64
+18 107 64
+19 107 64
+20 107 64
+21 107 64
+22 107 64
+23 107 64
+24 107 64
+25 107 64
+26 107 64
+27 107 64
+28 107 64
+29 107 64
+30 107 64
+31 107 64
+32 107 64
+33 107 64
+34 107 64
+35 107 64
+36 107 64
+37 107 64
+38 107 64
+39 107 64
+40 107 64
+41 107 64
+42 107 64
+43 107 64
+44 107 64
+45 107 64
+46 107 64
+47 107 64
+48 107 64
+49 107 64
+50 107 64
+51 107 64
+52 107 64
+53 107 64
+54 107 64
+55 107 64
+56 107 64
+57 107 64
+58 107 64
+59 107 64
+60 107 64
+61 107 64
+62 107 64
+63 107 64
+64 107 64
+65 107 64
+66 107 64
+67 107 64
+68 107 64
+69 107 64
+70 107 64
+71 107 64
+72 107 64
+73 107 64
+74 107 64
+75 107 64
+76 107 64
+77 107 64
+78 107 64
+79 107 64
+80 107 64
+81 107 64
+82 107 64
+83 107 64
+84 107 64
+85 107 64
+86 107 64
+87 107 64
+88 107 64
+89 107 64
+90 107 64
+91 107 64
+92 107 64
+93 107 64
+94 107 64
+95 107 64
+96 107 64
+97 107 64
+98 107 64
+99 107 64
+100 107 64
+101 107 64
+102 107 64
+103 107 64
+104 107 64
+105 107 64
+106 107 64
+107 107 64
+108 107 64
+109 107 64
+110 107 64
+111 107 64
+112 107 64
+113 107 64
+114 107 64
+115 107 64
+116 107 64
+117 107 64
+118 107 64
+119 107 64
+120 107 64
+121 107 64
+122 107 64
+123 107 64
+124 107 64
+125 107 64
+126 107 64
+127 107 64
+128 107 64
+129 107 64
+130 107 64
+131 107 64
+132 107 64
+133 107 64
+134 107 64
+135 107 64
+136 107 64
+137 107 64
+138 107 64
+139 107 64
+140 107 64
+141 107 64
+142 107 64
+143 107 64
+144 107 64
+145 107 64
+146 107 64
+147 107 64
+148 107 64
+149 107 64
+150 107 64
+151 107 64
+152 107 64
+153 107 64
+154 107 64
+155 107 64
+156 107 64
+157 107 64
+158 107 64
+159 107 64
+160 107 64
+161 107 64
+162 107 64
+163 107 64
+164 107 64
+165 107 64
+166 107 64
+167 107 64
+168 107 64
+169 107 64
+170 107 64
+171 107 64
+172 107 64
+173 107 64
+174 107 64
+175 107 64
+176 107 64
+177 107 64
+178 107 64
+179 107 64
+180 107 64
+181 107 64
+182 107 64
+183 107 64
+184 107 64
+185 107 64
+186 107 64
+187 107 64
+188 107 64
+189 107 64
+190 107 64
+191 107 64
+192 107 64
+193 107 64
+194 107 64
+195 107 64
+196 107 64
+197 107 64
+198 107 64
+199 107 64
+200 107 64
+201 107 64
+202 107 64
+203 107 64
+204 107 64
+205 107 64
+206 107 64
+207 107 64
+208 107 64
+209 107 64
+210 107 64
+211 107 64
+212 107 64
+213 107 64
+214 107 64
+215 107 64
+216 107 64
+217 107 64
+218 107 64
+219 107 64
+220 107 64
+221 107 64
+222 107 64
+223 107 64
+224 107 64
+225 107 64
+226 107 64
+227 107 64
+228 107 64
+229 107 64
+230 107 64
+231 107 64
+232 107 64
+233 107 64
+234 107 64
+235 107 64
+236 107 64
+237 107 64
+238 107 64
+239 107 64
+240 107 64
+241 107 64
+242 107 64
+243 107 64
+244 107 64
+245 107 64
+246 107 64
+247 107 64
+248 107 64
+249 107 64
+250 107 64
+251 107 64
+252 107 64
+253 107 64
+254 107 64
+255 107 64
+0 106 64
+1 106 64
+2 106 64
+3 106 64
+4 106 64
+5 106 64
+6 106 64
+7 106 64
+8 106 64
+9 106 64
+10 106 64
+11 106 64
+12 106 64
+13 106 64
+14 106 64
+15 106 64
+16 106 64
+17 106 64
+18 106 64
+19 106 64
+20 106 64
+21 106 64
+22 106 64
+23 106 64
+24 106 64
+25 106 64
+26 106 64
+27 106 64
+28 106 64
+29 106 64
+30 106 64
+31 106 64
+32 106 64
+33 106 64
+34 106 64
+35 106 64
+36 106 64
+37 106 64
+38 106 64
+39 106 64
+40 106 64
+41 106 64
+42 106 64
+43 106 64
+44 106 64
+45 106 64
+46 106 64
+47 106 64
+48 106 64
+49 106 64
+50 106 64
+51 106 64
+52 106 64
+53 106 64
+54 106 64
+55 106 64
+56 106 64
+57 106 64
+58 106 64
+59 106 64
+60 106 64
+61 106 64
+62 106 64
+63 106 64
+64 106 64
+65 106 64
+66 106 64
+67 106 64
+68 106 64
+69 106 64
+70 106 64
+71 106 64
+72 106 64
+73 106 64
+74 106 64
+75 106 64
+76 106 64
+77 106 64
+78 106 64
+79 106 64
+80 106 64
+81 106 64
+82 106 64
+83 106 64
+84 106 64
+85 106 64
+86 106 64
+87 106 64
+88 106 64
+89 106 64
+90 106 64
+91 106 64
+92 106 64
+93 106 64
+94 106 64
+95 106 64
+96 106 64
+97 106 64
+98 106 64
+99 106 64
+100 106 64
+101 106 64
+102 106 64
+103 106 64
+104 106 64
+105 106 64
+106 106 64
+107 106 64
+108 106 64
+109 106 64
+110 106 64
+111 106 64
+112 106 64
+113 106 64
+114 106 64
+115 106 64
+116 106 64
+117 106 64
+118 106 64
+119 106 64
+120 106 64
+121 106 64
+122 106 64
+123 106 64
+124 106 64
+125 106 64
+126 106 64
+127 106 64
+128 106 64
+129 106 64
+130 106 64
+131 106 64
+132 106 64
+133 106 64
+134 106 64
+135 106 64
+136 106 64
+137 106 64
+138 106 64
+139 106 64
+140 106 64
+141 106 64
+142 106 64
+143 106 64
+144 106 64
+145 106 64
+146 106 64
+147 106 64
+148 106 64
+149 106 64
+150 106 64
+151 106 64
+152 106 64
+153 106 64
+154 106 64
+155 106 64
+156 106 64
+157 106 64
+158 106 64
+159 106 64
+160 106 64
+161 106 64
+162 106 64
+163 106 64
+164 106 64
+165 106 64
+166 106 64
+167 106 64
+168 106 64
+169 106 64
+170 106 64
+171 106 64
+172 106 64
+173 106 64
+174 106 64
+175 106 64
+176 106 64
+177 106 64
+178 106 64
+179 106 64
+180 106 64
+181 106 64
+182 106 64
+183 106 64
+184 106 64
+185 106 64
+186 106 64
+187 106 64
+188 106 64
+189 106 64
+190 106 64
+191 106 64
+192 106 64
+193 106 64
+194 106 64
+195 106 64
+196 106 64
+197 106 64
+198 106 64
+199 106 64
+200 106 64
+201 106 64
+202 106 64
+203 106 64
+204 106 64
+205 106 64
+206 106 64
+207 106 64
+208 106 64
+209 106 64
+210 106 64
+211 106 64
+212 106 64
+213 106 64
+214 106 64
+215 106 64
+216 106 64
+217 106 64
+218 106 64
+219 106 64
+220 106 64
+221 106 64
+222 106 64
+223 106 64
+224 106 64
+225 106 64
+226 106 64
+227 106 64
+228 106 64
+229 106 64
+230 106 64
+231 106 64
+232 106 64
+233 106 64
+234 106 64
+235 106 64
+236 106 64
+237 106 64
+238 106 64
+239 106 64
+240 106 64
+241 106 64
+242 106 64
+243 106 64
+244 106 64
+245 106 64
+246 106 64
+247 106 64
+248 106 64
+249 106 64
+250 106 64
+251 106 64
+252 106 64
+253 106 64
+254 106 64
+255 106 64
+0 105 64
+1 105 64
+2 105 64
+3 105 64
+4 105 64
+5 105 64
+6 105 64
+7 105 64
+8 105 64
+9 105 64
+10 105 64
+11 105 64
+12 105 64
+13 105 64
+14 105 64
+15 105 64
+16 105 64
+17 105 64
+18 105 64
+19 105 64
+20 105 64
+21 105 64
+22 105 64
+23 105 64
+24 105 64
+25 105 64
+26 105 64
+27 105 64
+28 105 64
+29 105 64
+30 105 64
+31 105 64
+32 105 64
+33 105 64
+34 105 64
+35 105 64
+36 105 64
+37 105 64
+38 105 64
+39 105 64
+40 105 64
+41 105 64
+42 105 64
+43 105 64
+44 105 64
+45 105 64
+46 105 64
+47 105 64
+48 105 64
+49 105 64
+50 105 64
+51 105 64
+52 105 64
+53 105 64
+54 105 64
+55 105 64
+56 105 64
+57 105 64
+58 105 64
+59 105 64
+60 105 64
+61 105 64
+62 105 64
+63 105 64
+64 105 64
+65 105 64
+66 105 64
+67 105 64
+68 105 64
+69 105 64
+70 105 64
+71 105 64
+72 105 64
+73 105 64
+74 105 64
+75 105 64
+76 105 64
+77 105 64
+78 105 64
+79 105 64
+80 105 64
+81 105 64
+82 105 64
+83 105 64
+84 105 64
+85 105 64
+86 105 64
+87 105 64
+88 105 64
+89 105 64
+90 105 64
+91 105 64
+92 105 64
+93 105 64
+94 105 64
+95 105 64
+96 105 64
+97 105 64
+98 105 64
+99 105 64
+100 105 64
+101 105 64
+102 105 64
+103 105 64
+104 105 64
+105 105 64
+106 105 64
+107 105 64
+108 105 64
+109 105 64
+110 105 64
+111 105 64
+112 105 64
+113 105 64
+114 105 64
+115 105 64
+116 105 64
+117 105 64
+118 105 64
+119 105 64
+120 105 64
+121 105 64
+122 105 64
+123 105 64
+124 105 64
+125 105 64
+126 105 64
+127 105 64
+128 105 64
+129 105 64
+130 105 64
+131 105 64
+132 105 64
+133 105 64
+134 105 64
+135 105 64
+136 105 64
+137 105 64
+138 105 64
+139 105 64
+140 105 64
+141 105 64
+142 105 64
+143 105 64
+144 105 64
+145 105 64
+146 105 64
+147 105 64
+148 105 64
+149 105 64
+150 105 64
+151 105 64
+152 105 64
+153 105 64
+154 105 64
+155 105 64
+156 105 64
+157 105 64
+158 105 64
+159 105 64
+160 105 64
+161 105 64
+162 105 64
+163 105 64
+164 105 64
+165 105 64
+166 105 64
+167 105 64
+168 105 64
+169 105 64
+170 105 64
+171 105 64
+172 105 64
+173 105 64
+174 105 64
+175 105 64
+176 105 64
+177 105 64
+178 105 64
+179 105 64
+180 105 64
+181 105 64
+182 105 64
+183 105 64
+184 105 64
+185 105 64
+186 105 64
+187 105 64
+188 105 64
+189 105 64
+190 105 64
+191 105 64
+192 105 64
+193 105 64
+194 105 64
+195 105 64
+196 105 64
+197 105 64
+198 105 64
+199 105 64
+200 105 64
+201 105 64
+202 105 64
+203 105 64
+204 105 64
+205 105 64
+206 105 64
+207 105 64
+208 105 64
+209 105 64
+210 105 64
+211 105 64
+212 105 64
+213 105 64
+214 105 64
+215 105 64
+216 105 64
+217 105 64
+218 105 64
+219 105 64
+220 105 64
+221 105 64
+222 105 64
+223 105 64
+224 105 64
+225 105 64
+226 105 64
+227 105 64
+228 105 64
+229 105 64
+230 105 64
+231 105 64
+232 105 64
+233 105 64
+234 105 64
+235 105 64
+236 105 64
+237 105 64
+238 105 64
+239 105 64
+240 105 64
+241 105 64
+242 105 64
+243 105 64
+244 105 64
+245 105 64
+246 105 64
+247 105 64
+248 105 64
+249 105 64
+250 105 64
+251 105 64
+252 105 64
+253 105 64
+254 105 64
+255 105 64
+0 104 64
+1 104 64
+2 104 64
+3 104 64
+4 104 64
+5 104 64
+6 104 64
+7 104 64
+8 104 64
+9 104 64
+10 104 64
+11 104 64
+12 104 64
+13 104 64
+14 104 64
+15 104 64
+16 104 64
+17 104 64
+18 104 64
+19 104 64
+20 104 64
+21 104 64
+22 104 64
+23 104 64
+24 104 64
+25 104 64
+26 104 64
+27 104 64
+28 104 64
+29 104 64
+30 104 64
+31 104 64
+32 104 64
+33 104 64
+34 104 64
+35 104 64
+36 104 64
+37 104 64
+38 104 64
+39 104 64
+40 104 64
+41 104 64
+42 104 64
+43 104 64
+44 104 64
+45 104 64
+46 104 64
+47 104 64
+48 104 64
+49 104 64
+50 104 64
+51 104 64
+52 104 64
+53 104 64
+54 104 64
+55 104 64
+56 104 64
+57 104 64
+58 104 64
+59 104 64
+60 104 64
+61 104 64
+62 104 64
+63 104 64
+64 104 64
+65 104 64
+66 104 64
+67 104 64
+68 104 64
+69 104 64
+70 104 64
+71 104 64
+72 104 64
+73 104 64
+74 104 64
+75 104 64
+76 104 64
+77 104 64
+78 104 64
+79 104 64
+80 104 64
+81 104 64
+82 104 64
+83 104 64
+84 104 64
+85 104 64
+86 104 64
+87 104 64
+88 104 64
+89 104 64
+90 104 64
+91 104 64
+92 104 64
+93 104 64
+94 104 64
+95 104 64
+96 104 64
+97 104 64
+98 104 64
+99 104 64
+100 104 64
+101 104 64
+102 104 64
+103 104 64
+104 104 64
+105 104 64
+106 104 64
+107 104 64
+108 104 64
+109 104 64
+110 104 64
+111 104 64
+112 104 64
+113 104 64
+114 104 64
+115 104 64
+116 104 64
+117 104 64
+118 104 64
+119 104 64
+120 104 64
+121 104 64
+122 104 64
+123 104 64
+124 104 64
+125 104 64
+126 104 64
+127 104 64
+128 104 64
+129 104 64
+130 104 64
+131 104 64
+132 104 64
+133 104 64
+134 104 64
+135 104 64
+136 104 64
+137 104 64
+138 104 64
+139 104 64
+140 104 64
+141 104 64
+142 104 64
+143 104 64
+144 104 64
+145 104 64
+146 104 64
+147 104 64
+148 104 64
+149 104 64
+150 104 64
+151 104 64
+152 104 64
+153 104 64
+154 104 64
+155 104 64
+156 104 64
+157 104 64
+158 104 64
+159 104 64
+160 104 64
+161 104 64
+162 104 64
+163 104 64
+164 104 64
+165 104 64
+166 104 64
+167 104 64
+168 104 64
+169 104 64
+170 104 64
+171 104 64
+172 104 64
+173 104 64
+174 104 64
+175 104 64
+176 104 64
+177 104 64
+178 104 64
+179 104 64
+180 104 64
+181 104 64
+182 104 64
+183 104 64
+184 104 64
+185 104 64
+186 104 64
+187 104 64
+188 104 64
+189 104 64
+190 104 64
+191 104 64
+192 104 64
+193 104 64
+194 104 64
+195 104 64
+196 104 64
+197 104 64
+198 104 64
+199 104 64
+200 104 64
+201 104 64
+202 104 64
+203 104 64
+204 104 64
+205 104 64
+206 104 64
+207 104 64
+208 104 64
+209 104 64
+210 104 64
+211 104 64
+212 104 64
+213 104 64
+214 104 64
+215 104 64
+216 104 64
+217 104 64
+218 104 64
+219 104 64
+220 104 64
+221 104 64
+222 104 64
+223 104 64
+224 104 64
+225 104 64
+226 104 64
+227 104 64
+228 104 64
+229 104 64
+230 104 64
+231 104 64
+232 104 64
+233 104 64
+234 104 64
+235 104 64
+236 104 64
+237 104 64
+238 104 64
+239 104 64
+240 104 64
+241 104 64
+242 104 64
+243 104 64
+244 104 64
+245 104 64
+246 104 64
+247 104 64
+248 104 64
+249 104 64
+250 104 64
+251 104 64
+252 104 64
+253 104 64
+254 104 64
+255 104 64
+0 103 64
+1 103 64
+2 103 64
+3 103 64
+4 103 64
+5 103 64
+6 103 64
+7 103 64
+8 103 64
+9 103 64
+10 103 64
+11 103 64
+12 103 64
+13 103 64
+14 103 64
+15 103 64
+16 103 64
+17 103 64
+18 103 64
+19 103 64
+20 103 64
+21 103 64
+22 103 64
+23 103 64
+24 103 64
+25 103 64
+26 103 64
+27 103 64
+28 103 64
+29 103 64
+30 103 64
+31 103 64
+32 103 64
+33 103 64
+34 103 64
+35 103 64
+36 103 64
+37 103 64
+38 103 64
+39 103 64
+40 103 64
+41 103 64
+42 103 64
+43 103 64
+44 103 64
+45 103 64
+46 103 64
+47 103 64
+48 103 64
+49 103 64
+50 103 64
+51 103 64
+52 103 64
+53 103 64
+54 103 64
+55 103 64
+56 103 64
+57 103 64
+58 103 64
+59 103 64
+60 103 64
+61 103 64
+62 103 64
+63 103 64
+64 103 64
+65 103 64
+66 103 64
+67 103 64
+68 103 64
+69 103 64
+70 103 64
+71 103 64
+72 103 64
+73 103 64
+74 103 64
+75 103 64
+76 103 64
+77 103 64
+78 103 64
+79 103 64
+80 103 64
+81 103 64
+82 103 64
+83 103 64
+84 103 64
+85 103 64
+86 103 64
+87 103 64
+88 103 64
+89 103 64
+90 103 64
+91 103 64
+92 103 64
+93 103 64
+94 103 64
+95 103 64
+96 103 64
+97 103 64
+98 103 64
+99 103 64
+100 103 64
+101 103 64
+102 103 64
+103 103 64
+104 103 64
+105 103 64
+106 103 64
+107 103 64
+108 103 64
+109 103 64
+110 103 64
+111 103 64
+112 103 64
+113 103 64
+114 103 64
+115 103 64
+116 103 64
+117 103 64
+118 103 64
+119 103 64
+120 103 64
+121 103 64
+122 103 64
+123 103 64
+124 103 64
+125 103 64
+126 103 64
+127 103 64
+128 103 64
+129 103 64
+130 103 64
+131 103 64
+132 103 64
+133 103 64
+134 103 64
+135 103 64
+136 103 64
+137 103 64
+138 103 64
+139 103 64
+140 103 64
+141 103 64
+142 103 64
+143 103 64
+144 103 64
+145 103 64
+146 103 64
+147 103 64
+148 103 64
+149 103 64
+150 103 64
+151 103 64
+152 103 64
+153 103 64
+154 103 64
+155 103 64
+156 103 64
+157 103 64
+158 103 64
+159 103 64
+160 103 64
+161 103 64
+162 103 64
+163 103 64
+164 103 64
+165 103 64
+166 103 64
+167 103 64
+168 103 64
+169 103 64
+170 103 64
+171 103 64
+172 103 64
+173 103 64
+174 103 64
+175 103 64
+176 103 64
+177 103 64
+178 103 64
+179 103 64
+180 103 64
+181 103 64
+182 103 64
+183 103 64
+184 103 64
+185 103 64
+186 103 64
+187 103 64
+188 103 64
+189 103 64
+190 103 64
+191 103 64
+192 103 64
+193 103 64
+194 103 64
+195 103 64
+196 103 64
+197 103 64
+198 103 64
+199 103 64
+200 103 64
+201 103 64
+202 103 64
+203 103 64
+204 103 64
+205 103 64
+206 103 64
+207 103 64
+208 103 64
+209 103 64
+210 103 64
+211 103 64
+212 103 64
+213 103 64
+214 103 64
+215 103 64
+216 103 64
+217 103 64
+218 103 64
+219 103 64
+220 103 64
+221 103 64
+222 103 64
+223 103 64
+224 103 64
+225 103 64
+226 103 64
+227 103 64
+228 103 64
+229 103 64
+230 103 64
+231 103 64
+232 103 64
+233 103 64
+234 103 64
+235 103 64
+236 103 64
+237 103 64
+238 103 64
+239 103 64
+240 103 64
+241 103 64
+242 103 64
+243 103 64
+244 103 64
+245 103 64
+246 103 64
+247 103 64
+248 103 64
+249 103 64
+250 103 64
+251 103 64
+252 103 64
+253 103 64
+254 103 64
+255 103 64
+0 102 64
+1 102 64
+2 102 64
+3 102 64
+4 102 64
+5 102 64
+6 102 64
+7 102 64
+8 102 64
+9 102 64
+10 102 64
+11 102 64
+12 102 64
+13 102 64
+14 102 64
+15 102 64
+16 102 64
+17 102 64
+18 102 64
+19 102 64
+20 102 64
+21 102 64
+22 102 64
+23 102 64
+24 102 64
+25 102 64
+26 102 64
+27 102 64
+28 102 64
+29 102 64
+30 102 64
+31 102 64
+32 102 64
+33 102 64
+34 102 64
+35 102 64
+36 102 64
+37 102 64
+38 102 64
+39 102 64
+40 102 64
+41 102 64
+42 102 64
+43 102 64
+44 102 64
+45 102 64
+46 102 64
+47 102 64
+48 102 64
+49 102 64
+50 102 64
+51 102 64
+52 102 64
+53 102 64
+54 102 64
+55 102 64
+56 102 64
+57 102 64
+58 102 64
+59 102 64
+60 102 64
+61 102 64
+62 102 64
+63 102 64
+64 102 64
+65 102 64
+66 102 64
+67 102 64
+68 102 64
+69 102 64
+70 102 64
+71 102 64
+72 102 64
+73 102 64
+74 102 64
+75 102 64
+76 102 64
+77 102 64
+78 102 64
+79 102 64
+80 102 64
+81 102 64
+82 102 64
+83 102 64
+84 102 64
+85 102 64
+86 102 64
+87 102 64
+88 102 64
+89 102 64
+90 102 64
+91 102 64
+92 102 64
+93 102 64
+94 102 64
+95 102 64
+96 102 64
+97 102 64
+98 102 64
+99 102 64
+100 102 64
+101 102 64
+102 102 64
+103 102 64
+104 102 64
+105 102 64
+106 102 64
+107 102 64
+108 102 64
+109 102 64
+110 102 64
+111 102 64
+112 102 64
+113 102 64
+114 102 64
+115 102 64
+116 102 64
+117 102 64
+118 102 64
+119 102 64
+120 102 64
+121 102 64
+122 102 64
+123 102 64
+124 102 64
+125 102 64
+126 102 64
+127 102 64
+128 102 64
+129 102 64
+130 102 64
+131 102 64
+132 102 64
+133 102 64
+134 102 64
+135 102 64
+136 102 64
+137 102 64
+138 102 64
+139 102 64
+140 102 64
+141 102 64
+142 102 64
+143 102 64
+144 102 64
+145 102 64
+146 102 64
+147 102 64
+148 102 64
+149 102 64
+150 102 64
+151 102 64
+152 102 64
+153 102 64
+154 102 64
+155 102 64
+156 102 64
+157 102 64
+158 102 64
+159 102 64
+160 102 64
+161 102 64
+162 102 64
+163 102 64
+164 102 64
+165 102 64
+166 102 64
+167 102 64
+168 102 64
+169 102 64
+170 102 64
+171 102 64
+172 102 64
+173 102 64
+174 102 64
+175 102 64
+176 102 64
+177 102 64
+178 102 64
+179 102 64
+180 102 64
+181 102 64
+182 102 64
+183 102 64
+184 102 64
+185 102 64
+186 102 64
+187 102 64
+188 102 64
+189 102 64
+190 102 64
+191 102 64
+192 102 64
+193 102 64
+194 102 64
+195 102 64
+196 102 64
+197 102 64
+198 102 64
+199 102 64
+200 102 64
+201 102 64
+202 102 64
+203 102 64
+204 102 64
+205 102 64
+206 102 64
+207 102 64
+208 102 64
+209 102 64
+210 102 64
+211 102 64
+212 102 64
+213 102 64
+214 102 64
+215 102 64
+216 102 64
+217 102 64
+218 102 64
+219 102 64
+220 102 64
+221 102 64
+222 102 64
+223 102 64
+224 102 64
+225 102 64
+226 102 64
+227 102 64
+228 102 64
+229 102 64
+230 102 64
+231 102 64
+232 102 64
+233 102 64
+234 102 64
+235 102 64
+236 102 64
+237 102 64
+238 102 64
+239 102 64
+240 102 64
+241 102 64
+242 102 64
+243 102 64
+244 102 64
+245 102 64
+246 102 64
+247 102 64
+248 102 64
+249 102 64
+250 102 64
+251 102 64
+252 102 64
+253 102 64
+254 102 64
+255 102 64
+0 101 64
+1 101 64
+2 101 64
+3 101 64
+4 101 64
+5 101 64
+6 101 64
+7 101 64
+8 101 64
+9 101 64
+10 101 64
+11 101 64
+12 101 64
+13 101 64
+14 101 64
+15 101 64
+16 101 64
+17 101 64
+18 101 64
+19 101 64
+20 101 64
+21 101 64
+22 101 64
+23 101 64
+24 101 64
+25 101 64
+26 101 64
+27 101 64
+28 101 64
+29 101 64
+30 101 64
+31 101 64
+32 101 64
+33 101 64
+34 101 64
+35 101 64
+36 101 64
+37 101 64
+38 101 64
+39 101 64
+40 101 64
+41 101 64
+42 101 64
+43 101 64
+44 101 64
+45 101 64
+46 101 64
+47 101 64
+48 101 64
+49 101 64
+50 101 64
+51 101 64
+52 101 64
+53 101 64
+54 101 64
+55 101 64
+56 101 64
+57 101 64
+58 101 64
+59 101 64
+60 101 64
+61 101 64
+62 101 64
+63 101 64
+64 101 64
+65 101 64
+66 101 64
+67 101 64
+68 101 64
+69 101 64
+70 101 64
+71 101 64
+72 101 64
+73 101 64
+74 101 64
+75 101 64
+76 101 64
+77 101 64
+78 101 64
+79 101 64
+80 101 64
+81 101 64
+82 101 64
+83 101 64
+84 101 64
+85 101 64
+86 101 64
+87 101 64
+88 101 64
+89 101 64
+90 101 64
+91 101 64
+92 101 64
+93 101 64
+94 101 64
+95 101 64
+96 101 64
+97 101 64
+98 101 64
+99 101 64
+100 101 64
+101 101 64
+102 101 64
+103 101 64
+104 101 64
+105 101 64
+106 101 64
+107 101 64
+108 101 64
+109 101 64
+110 101 64
+111 101 64
+112 101 64
+113 101 64
+114 101 64
+115 101 64
+116 101 64
+117 101 64
+118 101 64
+119 101 64
+120 101 64
+121 101 64
+122 101 64
+123 101 64
+124 101 64
+125 101 64
+126 101 64
+127 101 64
+128 101 64
+129 101 64
+130 101 64
+131 101 64
+132 101 64
+133 101 64
+134 101 64
+135 101 64
+136 101 64
+137 101 64
+138 101 64
+139 101 64
+140 101 64
+141 101 64
+142 101 64
+143 101 64
+144 101 64
+145 101 64
+146 101 64
+147 101 64
+148 101 64
+149 101 64
+150 101 64
+151 101 64
+152 101 64
+153 101 64
+154 101 64
+155 101 64
+156 101 64
+157 101 64
+158 101 64
+159 101 64
+160 101 64
+161 101 64
+162 101 64
+163 101 64
+164 101 64
+165 101 64
+166 101 64
+167 101 64
+168 101 64
+169 101 64
+170 101 64
+171 101 64
+172 101 64
+173 101 64
+174 101 64
+175 101 64
+176 101 64
+177 101 64
+178 101 64
+179 101 64
+180 101 64
+181 101 64
+182 101 64
+183 101 64
+184 101 64
+185 101 64
+186 101 64
+187 101 64
+188 101 64
+189 101 64
+190 101 64
+191 101 64
+192 101 64
+193 101 64
+194 101 64
+195 101 64
+196 101 64
+197 101 64
+198 101 64
+199 101 64
+200 101 64
+201 101 64
+202 101 64
+203 101 64
+204 101 64
+205 101 64
+206 101 64
+207 101 64
+208 101 64
+209 101 64
+210 101 64
+211 101 64
+212 101 64
+213 101 64
+214 101 64
+215 101 64
+216 101 64
+217 101 64
+218 101 64
+219 101 64
+220 101 64
+221 101 64
+222 101 64
+223 101 64
+224 101 64
+225 101 64
+226 101 64
+227 101 64
+228 101 64
+229 101 64
+230 101 64
+231 101 64
+232 101 64
+233 101 64
+234 101 64
+235 101 64
+236 101 64
+237 101 64
+238 101 64
+239 101 64
+240 101 64
+241 101 64
+242 101 64
+243 101 64
+244 101 64
+245 101 64
+246 101 64
+247 101 64
+248 101 64
+249 101 64
+250 101 64
+251 101 64
+252 101 64
+253 101 64
+254 101 64
+255 101 64
+0 100 64
+1 100 64
+2 100 64
+3 100 64
+4 100 64
+5 100 64
+6 100 64
+7 100 64
+8 100 64
+9 100 64
+10 100 64
+11 100 64
+12 100 64
+13 100 64
+14 100 64
+15 100 64
+16 100 64
+17 100 64
+18 100 64
+19 100 64
+20 100 64
+21 100 64
+22 100 64
+23 100 64
+24 100 64
+25 100 64
+26 100 64
+27 100 64
+28 100 64
+29 100 64
+30 100 64
+31 100 64
+32 100 64
+33 100 64
+34 100 64
+35 100 64
+36 100 64
+37 100 64
+38 100 64
+39 100 64
+40 100 64
+41 100 64
+42 100 64
+43 100 64
+44 100 64
+45 100 64
+46 100 64
+47 100 64
+48 100 64
+49 100 64
+50 100 64
+51 100 64
+52 100 64
+53 100 64
+54 100 64
+55 100 64
+56 100 64
+57 100 64
+58 100 64
+59 100 64
+60 100 64
+61 100 64
+62 100 64
+63 100 64
+64 100 64
+65 100 64
+66 100 64
+67 100 64
+68 100 64
+69 100 64
+70 100 64
+71 100 64
+72 100 64
+73 100 64
+74 100 64
+75 100 64
+76 100 64
+77 100 64
+78 100 64
+79 100 64
+80 100 64
+81 100 64
+82 100 64
+83 100 64
+84 100 64
+85 100 64
+86 100 64
+87 100 64
+88 100 64
+89 100 64
+90 100 64
+91 100 64
+92 100 64
+93 100 64
+94 100 64
+95 100 64
+96 100 64
+97 100 64
+98 100 64
+99 100 64
+100 100 64
+101 100 64
+102 100 64
+103 100 64
+104 100 64
+105 100 64
+106 100 64
+107 100 64
+108 100 64
+109 100 64
+110 100 64
+111 100 64
+112 100 64
+113 100 64
+114 100 64
+115 100 64
+116 100 64
+117 100 64
+118 100 64
+119 100 64
+120 100 64
+121 100 64
+122 100 64
+123 100 64
+124 100 64
+125 100 64
+126 100 64
+127 100 64
+128 100 64
+129 100 64
+130 100 64
+131 100 64
+132 100 64
+133 100 64
+134 100 64
+135 100 64
+136 100 64
+137 100 64
+138 100 64
+139 100 64
+140 100 64
+141 100 64
+142 100 64
+143 100 64
+144 100 64
+145 100 64
+146 100 64
+147 100 64
+148 100 64
+149 100 64
+150 100 64
+151 100 64
+152 100 64
+153 100 64
+154 100 64
+155 100 64
+156 100 64
+157 100 64
+158 100 64
+159 100 64
+160 100 64
+161 100 64
+162 100 64
+163 100 64
+164 100 64
+165 100 64
+166 100 64
+167 100 64
+168 100 64
+169 100 64
+170 100 64
+171 100 64
+172 100 64
+173 100 64
+174 100 64
+175 100 64
+176 100 64
+177 100 64
+178 100 64
+179 100 64
+180 100 64
+181 100 64
+182 100 64
+183 100 64
+184 100 64
+185 100 64
+186 100 64
+187 100 64
+188 100 64
+189 100 64
+190 100 64
+191 100 64
+192 100 64
+193 100 64
+194 100 64
+195 100 64
+196 100 64
+197 100 64
+198 100 64
+199 100 64
+200 100 64
+201 100 64
+202 100 64
+203 100 64
+204 100 64
+205 100 64
+206 100 64
+207 100 64
+208 100 64
+209 100 64
+210 100 64
+211 100 64
+212 100 64
+213 100 64
+214 100 64
+215 100 64
+216 100 64
+217 100 64
+218 100 64
+219 100 64
+220 100 64
+221 100 64
+222 100 64
+223 100 64
+224 100 64
+225 100 64
+226 100 64
+227 100 64
+228 100 64
+229 100 64
+230 100 64
+231 100 64
+232 100 64
+233 100 64
+234 100 64
+235 100 64
+236 100 64
+237 100 64
+238 100 64
+239 100 64
+240 100 64
+241 100 64
+242 100 64
+243 100 64
+244 100 64
+245 100 64
+246 100 64
+247 100 64
+248 100 64
+249 100 64
+250 100 64
+251 100 64
+252 100 64
+253 100 64
+254 100 64
+255 100 64
+0 99 64
+1 99 64
+2 99 64
+3 99 64
+4 99 64
+5 99 64
+6 99 64
+7 99 64
+8 99 64
+9 99 64
+10 99 64
+11 99 64
+12 99 64
+13 99 64
+14 99 64
+15 99 64
+16 99 64
+17 99 64
+18 99 64
+19 99 64
+20 99 64
+21 99 64
+22 99 64
+23 99 64
+24 99 64
+25 99 64
+26 99 64
+27 99 64
+28 99 64
+29 99 64
+30 99 64
+31 99 64
+32 99 64
+33 99 64
+34 99 64
+35 99 64
+36 99 64
+37 99 64
+38 99 64
+39 99 64
+40 99 64
+41 99 64
+42 99 64
+43 99 64
+44 99 64
+45 99 64
+46 99 64
+47 99 64
+48 99 64
+49 99 64
+50 99 64
+51 99 64
+52 99 64
+53 99 64
+54 99 64
+55 99 64
+56 99 64
+57 99 64
+58 99 64
+59 99 64
+60 99 64
+61 99 64
+62 99 64
+63 99 64
+64 99 64
+65 99 64
+66 99 64
+67 99 64
+68 99 64
+69 99 64
+70 99 64
+71 99 64
+72 99 64
+73 99 64
+74 99 64
+75 99 64
+76 99 64
+77 99 64
+78 99 64
+79 99 64
+80 99 64
+81 99 64
+82 99 64
+83 99 64
+84 99 64
+85 99 64
+86 99 64
+87 99 64
+88 99 64
+89 99 64
+90 99 64
+91 99 64
+92 99 64
+93 99 64
+94 99 64
+95 99 64
+96 99 64
+97 99 64
+98 99 64
+99 99 64
+100 99 64
+101 99 64
+102 99 64
+103 99 64
+104 99 64
+105 99 64
+106 99 64
+107 99 64
+108 99 64
+109 99 64
+110 99 64
+111 99 64
+112 99 64
+113 99 64
+114 99 64
+115 99 64
+116 99 64
+117 99 64
+118 99 64
+119 99 64
+120 99 64
+121 99 64
+122 99 64
+123 99 64
+124 99 64
+125 99 64
+126 99 64
+127 99 64
+128 99 64
+129 99 64
+130 99 64
+131 99 64
+132 99 64
+133 99 64
+134 99 64
+135 99 64
+136 99 64
+137 99 64
+138 99 64
+139 99 64
+140 99 64
+141 99 64
+142 99 64
+143 99 64
+144 99 64
+145 99 64
+146 99 64
+147 99 64
+148 99 64
+149 99 64
+150 99 64
+151 99 64
+152 99 64
+153 99 64
+154 99 64
+155 99 64
+156 99 64
+157 99 64
+158 99 64
+159 99 64
+160 99 64
+161 99 64
+162 99 64
+163 99 64
+164 99 64
+165 99 64
+166 99 64
+167 99 64
+168 99 64
+169 99 64
+170 99 64
+171 99 64
+172 99 64
+173 99 64
+174 99 64
+175 99 64
+176 99 64
+177 99 64
+178 99 64
+179 99 64
+180 99 64
+181 99 64
+182 99 64
+183 99 64
+184 99 64
+185 99 64
+186 99 64
+187 99 64
+188 99 64
+189 99 64
+190 99 64
+191 99 64
+192 99 64
+193 99 64
+194 99 64
+195 99 64
+196 99 64
+197 99 64
+198 99 64
+199 99 64
+200 99 64
+201 99 64
+202 99 64
+203 99 64
+204 99 64
+205 99 64
+206 99 64
+207 99 64
+208 99 64
+209 99 64
+210 99 64
+211 99 64
+212 99 64
+213 99 64
+214 99 64
+215 99 64
+216 99 64
+217 99 64
+218 99 64
+219 99 64
+220 99 64
+221 99 64
+222 99 64
+223 99 64
+224 99 64
+225 99 64
+226 99 64
+227 99 64
+228 99 64
+229 99 64
+230 99 64
+231 99 64
+232 99 64
+233 99 64
+234 99 64
+235 99 64
+236 99 64
+237 99 64
+238 99 64
+239 99 64
+240 99 64
+241 99 64
+242 99 64
+243 99 64
+244 99 64
+245 99 64
+246 99 64
+247 99 64
+248 99 64
+249 99 64
+250 99 64
+251 99 64
+252 99 64
+253 99 64
+254 99 64
+255 99 64
+0 98 64
+1 98 64
+2 98 64
+3 98 64
+4 98 64
+5 98 64
+6 98 64
+7 98 64
+8 98 64
+9 98 64
+10 98 64
+11 98 64
+12 98 64
+13 98 64
+14 98 64
+15 98 64
+16 98 64
+17 98 64
+18 98 64
+19 98 64
+20 98 64
+21 98 64
+22 98 64
+23 98 64
+24 98 64
+25 98 64
+26 98 64
+27 98 64
+28 98 64
+29 98 64
+30 98 64
+31 98 64
+32 98 64
+33 98 64
+34 98 64
+35 98 64
+36 98 64
+37 98 64
+38 98 64
+39 98 64
+40 98 64
+41 98 64
+42 98 64
+43 98 64
+44 98 64
+45 98 64
+46 98 64
+47 98 64
+48 98 64
+49 98 64
+50 98 64
+51 98 64
+52 98 64
+53 98 64
+54 98 64
+55 98 64
+56 98 64
+57 98 64
+58 98 64
+59 98 64
+60 98 64
+61 98 64
+62 98 64
+63 98 64
+64 98 64
+65 98 64
+66 98 64
+67 98 64
+68 98 64
+69 98 64
+70 98 64
+71 98 64
+72 98 64
+73 98 64
+74 98 64
+75 98 64
+76 98 64
+77 98 64
+78 98 64
+79 98 64
+80 98 64
+81 98 64
+82 98 64
+83 98 64
+84 98 64
+85 98 64
+86 98 64
+87 98 64
+88 98 64
+89 98 64
+90 98 64
+91 98 64
+92 98 64
+93 98 64
+94 98 64
+95 98 64
+96 98 64
+97 98 64
+98 98 64
+99 98 64
+100 98 64
+101 98 64
+102 98 64
+103 98 64
+104 98 64
+105 98 64
+106 98 64
+107 98 64
+108 98 64
+109 98 64
+110 98 64
+111 98 64
+112 98 64
+113 98 64
+114 98 64
+115 98 64
+116 98 64
+117 98 64
+118 98 64
+119 98 64
+120 98 64
+121 98 64
+122 98 64
+123 98 64
+124 98 64
+125 98 64
+126 98 64
+127 98 64
+128 98 64
+129 98 64
+130 98 64
+131 98 64
+132 98 64
+133 98 64
+134 98 64
+135 98 64
+136 98 64
+137 98 64
+138 98 64
+139 98 64
+140 98 64
+141 98 64
+142 98 64
+143 98 64
+144 98 64
+145 98 64
+146 98 64
+147 98 64
+148 98 64
+149 98 64
+150 98 64
+151 98 64
+152 98 64
+153 98 64
+154 98 64
+155 98 64
+156 98 64
+157 98 64
+158 98 64
+159 98 64
+160 98 64
+161 98 64
+162 98 64
+163 98 64
+164 98 64
+165 98 64
+166 98 64
+167 98 64
+168 98 64
+169 98 64
+170 98 64
+171 98 64
+172 98 64
+173 98 64
+174 98 64
+175 98 64
+176 98 64
+177 98 64
+178 98 64
+179 98 64
+180 98 64
+181 98 64
+182 98 64
+183 98 64
+184 98 64
+185 98 64
+186 98 64
+187 98 64
+188 98 64
+189 98 64
+190 98 64
+191 98 64
+192 98 64
+193 98 64
+194 98 64
+195 98 64
+196 98 64
+197 98 64
+198 98 64
+199 98 64
+200 98 64
+201 98 64
+202 98 64
+203 98 64
+204 98 64
+205 98 64
+206 98 64
+207 98 64
+208 98 64
+209 98 64
+210 98 64
+211 98 64
+212 98 64
+213 98 64
+214 98 64
+215 98 64
+216 98 64
+217 98 64
+218 98 64
+219 98 64
+220 98 64
+221 98 64
+222 98 64
+223 98 64
+224 98 64
+225 98 64
+226 98 64
+227 98 64
+228 98 64
+229 98 64
+230 98 64
+231 98 64
+232 98 64
+233 98 64
+234 98 64
+235 98 64
+236 98 64
+237 98 64
+238 98 64
+239 98 64
+240 98 64
+241 98 64
+242 98 64
+243 98 64
+244 98 64
+245 98 64
+246 98 64
+247 98 64
+248 98 64
+249 98 64
+250 98 64
+251 98 64
+252 98 64
+253 98 64
+254 98 64
+255 98 64
+0 97 64
+1 97 64
+2 97 64
+3 97 64
+4 97 64
+5 97 64
+6 97 64
+7 97 64
+8 97 64
+9 97 64
+10 97 64
+11 97 64
+12 97 64
+13 97 64
+14 97 64
+15 97 64
+16 97 64
+17 97 64
+18 97 64
+19 97 64
+20 97 64
+21 97 64
+22 97 64
+23 97 64
+24 97 64
+25 97 64
+26 97 64
+27 97 64
+28 97 64
+29 97 64
+30 97 64
+31 97 64
+32 97 64
+33 97 64
+34 97 64
+35 97 64
+36 97 64
+37 97 64
+38 97 64
+39 97 64
+40 97 64
+41 97 64
+42 97 64
+43 97 64
+44 97 64
+45 97 64
+46 97 64
+47 97 64
+48 97 64
+49 97 64
+50 97 64
+51 97 64
+52 97 64
+53 97 64
+54 97 64
+55 97 64
+56 97 64
+57 97 64
+58 97 64
+59 97 64
+60 97 64
+61 97 64
+62 97 64
+63 97 64
+64 97 64
+65 97 64
+66 97 64
+67 97 64
+68 97 64
+69 97 64
+70 97 64
+71 97 64
+72 97 64
+73 97 64
+74 97 64
+75 97 64
+76 97 64
+77 97 64
+78 97 64
+79 97 64
+80 97 64
+81 97 64
+82 97 64
+83 97 64
+84 97 64
+85 97 64
+86 97 64
+87 97 64
+88 97 64
+89 97 64
+90 97 64
+91 97 64
+92 97 64
+93 97 64
+94 97 64
+95 97 64
+96 97 64
+97 97 64
+98 97 64
+99 97 64
+100 97 64
+101 97 64
+102 97 64
+103 97 64
+104 97 64
+105 97 64
+106 97 64
+107 97 64
+108 97 64
+109 97 64
+110 97 64
+111 97 64
+112 97 64
+113 97 64
+114 97 64
+115 97 64
+116 97 64
+117 97 64
+118 97 64
+119 97 64
+120 97 64
+121 97 64
+122 97 64
+123 97 64
+124 97 64
+125 97 64
+126 97 64
+127 97 64
+128 97 64
+129 97 64
+130 97 64
+131 97 64
+132 97 64
+133 97 64
+134 97 64
+135 97 64
+136 97 64
+137 97 64
+138 97 64
+139 97 64
+140 97 64
+141 97 64
+142 97 64
+143 97 64
+144 97 64
+145 97 64
+146 97 64
+147 97 64
+148 97 64
+149 97 64
+150 97 64
+151 97 64
+152 97 64
+153 97 64
+154 97 64
+155 97 64
+156 97 64
+157 97 64
+158 97 64
+159 97 64
+160 97 64
+161 97 64
+162 97 64
+163 97 64
+164 97 64
+165 97 64
+166 97 64
+167 97 64
+168 97 64
+169 97 64
+170 97 64
+171 97 64
+172 97 64
+173 97 64
+174 97 64
+175 97 64
+176 97 64
+177 97 64
+178 97 64
+179 97 64
+180 97 64
+181 97 64
+182 97 64
+183 97 64
+184 97 64
+185 97 64
+186 97 64
+187 97 64
+188 97 64
+189 97 64
+190 97 64
+191 97 64
+192 97 64
+193 97 64
+194 97 64
+195 97 64
+196 97 64
+197 97 64
+198 97 64
+199 97 64
+200 97 64
+201 97 64
+202 97 64
+203 97 64
+204 97 64
+205 97 64
+206 97 64
+207 97 64
+208 97 64
+209 97 64
+210 97 64
+211 97 64
+212 97 64
+213 97 64
+214 97 64
+215 97 64
+216 97 64
+217 97 64
+218 97 64
+219 97 64
+220 97 64
+221 97 64
+222 97 64
+223 97 64
+224 97 64
+225 97 64
+226 97 64
+227 97 64
+228 97 64
+229 97 64
+230 97 64
+231 97 64
+232 97 64
+233 97 64
+234 97 64
+235 97 64
+236 97 64
+237 97 64
+238 97 64
+239 97 64
+240 97 64
+241 97 64
+242 97 64
+243 97 64
+244 97 64
+245 97 64
+246 97 64
+247 97 64
+248 97 64
+249 97 64
+250 97 64
+251 97 64
+252 97 64
+253 97 64
+254 97 64
+255 97 64
+0 96 64
+1 96 64
+2 96 64
+3 96 64
+4 96 64
+5 96 64
+6 96 64
+7 96 64
+8 96 64
+9 96 64
+10 96 64
+11 96 64
+12 96 64
+13 96 64
+14 96 64
+15 96 64
+16 96 64
+17 96 64
+18 96 64
+19 96 64
+20 96 64
+21 96 64
+22 96 64
+23 96 64
+24 96 64
+25 96 64
+26 96 64
+27 96 64
+28 96 64
+29 96 64
+30 96 64
+31 96 64
+32 96 64
+33 96 64
+34 96 64
+35 96 64
+36 96 64
+37 96 64
+38 96 64
+39 96 64
+40 96 64
+41 96 64
+42 96 64
+43 96 64
+44 96 64
+45 96 64
+46 96 64
+47 96 64
+48 96 64
+49 96 64
+50 96 64
+51 96 64
+52 96 64
+53 96 64
+54 96 64
+55 96 64
+56 96 64
+57 96 64
+58 96 64
+59 96 64
+60 96 64
+61 96 64
+62 96 64
+63 96 64
+64 96 64
+65 96 64
+66 96 64
+67 96 64
+68 96 64
+69 96 64
+70 96 64
+71 96 64
+72 96 64
+73 96 64
+74 96 64
+75 96 64
+76 96 64
+77 96 64
+78 96 64
+79 96 64
+80 96 64
+81 96 64
+82 96 64
+83 96 64
+84 96 64
+85 96 64
+86 96 64
+87 96 64
+88 96 64
+89 96 64
+90 96 64
+91 96 64
+92 96 64
+93 96 64
+94 96 64
+95 96 64
+96 96 64
+97 96 64
+98 96 64
+99 96 64
+100 96 64
+101 96 64
+102 96 64
+103 96 64
+104 96 64
+105 96 64
+106 96 64
+107 96 64
+108 96 64
+109 96 64
+110 96 64
+111 96 64
+112 96 64
+113 96 64
+114 96 64
+115 96 64
+116 96 64
+117 96 64
+118 96 64
+119 96 64
+120 96 64
+121 96 64
+122 96 64
+123 96 64
+124 96 64
+125 96 64
+126 96 64
+127 96 64
+128 96 64
+129 96 64
+130 96 64
+131 96 64
+132 96 64
+133 96 64
+134 96 64
+135 96 64
+136 96 64
+137 96 64
+138 96 64
+139 96 64
+140 96 64
+141 96 64
+142 96 64
+143 96 64
+144 96 64
+145 96 64
+146 96 64
+147 96 64
+148 96 64
+149 96 64
+150 96 64
+151 96 64
+152 96 64
+153 96 64
+154 96 64
+155 96 64
+156 96 64
+157 96 64
+158 96 64
+159 96 64
+160 96 64
+161 96 64
+162 96 64
+163 96 64
+164 96 64
+165 96 64
+166 96 64
+167 96 64
+168 96 64
+169 96 64
+170 96 64
+171 96 64
+172 96 64
+173 96 64
+174 96 64
+175 96 64
+176 96 64
+177 96 64
+178 96 64
+179 96 64
+180 96 64
+181 96 64
+182 96 64
+183 96 64
+184 96 64
+185 96 64
+186 96 64
+187 96 64
+188 96 64
+189 96 64
+190 96 64
+191 96 64
+192 96 64
+193 96 64
+194 96 64
+195 96 64
+196 96 64
+197 96 64
+198 96 64
+199 96 64
+200 96 64
+201 96 64
+202 96 64
+203 96 64
+204 96 64
+205 96 64
+206 96 64
+207 96 64
+208 96 64
+209 96 64
+210 96 64
+211 96 64
+212 96 64
+213 96 64
+214 96 64
+215 96 64
+216 96 64
+217 96 64
+218 96 64
+219 96 64
+220 96 64
+221 96 64
+222 96 64
+223 96 64
+224 96 64
+225 96 64
+226 96 64
+227 96 64
+228 96 64
+229 96 64
+230 96 64
+231 96 64
+232 96 64
+233 96 64
+234 96 64
+235 96 64
+236 96 64
+237 96 64
+238 96 64
+239 96 64
+240 96 64
+241 96 64
+242 96 64
+243 96 64
+244 96 64
+245 96 64
+246 96 64
+247 96 64
+248 96 64
+249 96 64
+250 96 64
+251 96 64
+252 96 64
+253 96 64
+254 96 64
+255 96 64
+0 95 64
+1 95 64
+2 95 64
+3 95 64
+4 95 64
+5 95 64
+6 95 64
+7 95 64
+8 95 64
+9 95 64
+10 95 64
+11 95 64
+12 95 64
+13 95 64
+14 95 64
+15 95 64
+16 95 64
+17 95 64
+18 95 64
+19 95 64
+20 95 64
+21 95 64
+22 95 64
+23 95 64
+24 95 64
+25 95 64
+26 95 64
+27 95 64
+28 95 64
+29 95 64
+30 95 64
+31 95 64
+32 95 64
+33 95 64
+34 95 64
+35 95 64
+36 95 64
+37 95 64
+38 95 64
+39 95 64
+40 95 64
+41 95 64
+42 95 64
+43 95 64
+44 95 64
+45 95 64
+46 95 64
+47 95 64
+48 95 64
+49 95 64
+50 95 64
+51 95 64
+52 95 64
+53 95 64
+54 95 64
+55 95 64
+56 95 64
+57 95 64
+58 95 64
+59 95 64
+60 95 64
+61 95 64
+62 95 64
+63 95 64
+64 95 64
+65 95 64
+66 95 64
+67 95 64
+68 95 64
+69 95 64
+70 95 64
+71 95 64
+72 95 64
+73 95 64
+74 95 64
+75 95 64
+76 95 64
+77 95 64
+78 95 64
+79 95 64
+80 95 64
+81 95 64
+82 95 64
+83 95 64
+84 95 64
+85 95 64
+86 95 64
+87 95 64
+88 95 64
+89 95 64
+90 95 64
+91 95 64
+92 95 64
+93 95 64
+94 95 64
+95 95 64
+96 95 64
+97 95 64
+98 95 64
+99 95 64
+100 95 64
+101 95 64
+102 95 64
+103 95 64
+104 95 64
+105 95 64
+106 95 64
+107 95 64
+108 95 64
+109 95 64
+110 95 64
+111 95 64
+112 95 64
+113 95 64
+114 95 64
+115 95 64
+116 95 64
+117 95 64
+118 95 64
+119 95 64
+120 95 64
+121 95 64
+122 95 64
+123 95 64
+124 95 64
+125 95 64
+126 95 64
+127 95 64
+128 95 64
+129 95 64
+130 95 64
+131 95 64
+132 95 64
+133 95 64
+134 95 64
+135 95 64
+136 95 64
+137 95 64
+138 95 64
+139 95 64
+140 95 64
+141 95 64
+142 95 64
+143 95 64
+144 95 64
+145 95 64
+146 95 64
+147 95 64
+148 95 64
+149 95 64
+150 95 64
+151 95 64
+152 95 64
+153 95 64
+154 95 64
+155 95 64
+156 95 64
+157 95 64
+158 95 64
+159 95 64
+160 95 64
+161 95 64
+162 95 64
+163 95 64
+164 95 64
+165 95 64
+166 95 64
+167 95 64
+168 95 64
+169 95 64
+170 95 64
+171 95 64
+172 95 64
+173 95 64
+174 95 64
+175 95 64
+176 95 64
+177 95 64
+178 95 64
+179 95 64
+180 95 64
+181 95 64
+182 95 64
+183 95 64
+184 95 64
+185 95 64
+186 95 64
+187 95 64
+188 95 64
+189 95 64
+190 95 64
+191 95 64
+192 95 64
+193 95 64
+194 95 64
+195 95 64
+196 95 64
+197 95 64
+198 95 64
+199 95 64
+200 95 64
+201 95 64
+202 95 64
+203 95 64
+204 95 64
+205 95 64
+206 95 64
+207 95 64
+208 95 64
+209 95 64
+210 95 64
+211 95 64
+212 95 64
+213 95 64
+214 95 64
+215 95 64
+216 95 64
+217 95 64
+218 95 64
+219 95 64
+220 95 64
+221 95 64
+222 95 64
+223 95 64
+224 95 64
+225 95 64
+226 95 64
+227 95 64
+228 95 64
+229 95 64
+230 95 64
+231 95 64
+232 95 64
+233 95 64
+234 95 64
+235 95 64
+236 95 64
+237 95 64
+238 95 64
+239 95 64
+240 95 64
+241 95 64
+242 95 64
+243 95 64
+244 95 64
+245 95 64
+246 95 64
+247 95 64
+248 95 64
+249 95 64
+250 95 64
+251 95 64
+252 95 64
+253 95 64
+254 95 64
+255 95 64
+0 94 64
+1 94 64
+2 94 64
+3 94 64
+4 94 64
+5 94 64
+6 94 64
+7 94 64
+8 94 64
+9 94 64
+10 94 64
+11 94 64
+12 94 64
+13 94 64
+14 94 64
+15 94 64
+16 94 64
+17 94 64
+18 94 64
+19 94 64
+20 94 64
+21 94 64
+22 94 64
+23 94 64
+24 94 64
+25 94 64
+26 94 64
+27 94 64
+28 94 64
+29 94 64
+30 94 64
+31 94 64
+32 94 64
+33 94 64
+34 94 64
+35 94 64
+36 94 64
+37 94 64
+38 94 64
+39 94 64
+40 94 64
+41 94 64
+42 94 64
+43 94 64
+44 94 64
+45 94 64
+46 94 64
+47 94 64
+48 94 64
+49 94 64
+50 94 64
+51 94 64
+52 94 64
+53 94 64
+54 94 64
+55 94 64
+56 94 64
+57 94 64
+58 94 64
+59 94 64
+60 94 64
+61 94 64
+62 94 64
+63 94 64
+64 94 64
+65 94 64
+66 94 64
+67 94 64
+68 94 64
+69 94 64
+70 94 64
+71 94 64
+72 94 64
+73 94 64
+74 94 64
+75 94 64
+76 94 64
+77 94 64
+78 94 64
+79 94 64
+80 94 64
+81 94 64
+82 94 64
+83 94 64
+84 94 64
+85 94 64
+86 94 64
+87 94 64
+88 94 64
+89 94 64
+90 94 64
+91 94 64
+92 94 64
+93 94 64
+94 94 64
+95 94 64
+96 94 64
+97 94 64
+98 94 64
+99 94 64
+100 94 64
+101 94 64
+102 94 64
+103 94 64
+104 94 64
+105 94 64
+106 94 64
+107 94 64
+108 94 64
+109 94 64
+110 94 64
+111 94 64
+112 94 64
+113 94 64
+114 94 64
+115 94 64
+116 94 64
+117 94 64
+118 94 64
+119 94 64
+120 94 64
+121 94 64
+122 94 64
+123 94 64
+124 94 64
+125 94 64
+126 94 64
+127 94 64
+128 94 64
+129 94 64
+130 94 64
+131 94 64
+132 94 64
+133 94 64
+134 94 64
+135 94 64
+136 94 64
+137 94 64
+138 94 64
+139 94 64
+140 94 64
+141 94 64
+142 94 64
+143 94 64
+144 94 64
+145 94 64
+146 94 64
+147 94 64
+148 94 64
+149 94 64
+150 94 64
+151 94 64
+152 94 64
+153 94 64
+154 94 64
+155 94 64
+156 94 64
+157 94 64
+158 94 64
+159 94 64
+160 94 64
+161 94 64
+162 94 64
+163 94 64
+164 94 64
+165 94 64
+166 94 64
+167 94 64
+168 94 64
+169 94 64
+170 94 64
+171 94 64
+172 94 64
+173 94 64
+174 94 64
+175 94 64
+176 94 64
+177 94 64
+178 94 64
+179 94 64
+180 94 64
+181 94 64
+182 94 64
+183 94 64
+184 94 64
+185 94 64
+186 94 64
+187 94 64
+188 94 64
+189 94 64
+190 94 64
+191 94 64
+192 94 64
+193 94 64
+194 94 64
+195 94 64
+196 94 64
+197 94 64
+198 94 64
+199 94 64
+200 94 64
+201 94 64
+202 94 64
+203 94 64
+204 94 64
+205 94 64
+206 94 64
+207 94 64
+208 94 64
+209 94 64
+210 94 64
+211 94 64
+212 94 64
+213 94 64
+214 94 64
+215 94 64
+216 94 64
+217 94 64
+218 94 64
+219 94 64
+220 94 64
+221 94 64
+222 94 64
+223 94 64
+224 94 64
+225 94 64
+226 94 64
+227 94 64
+228 94 64
+229 94 64
+230 94 64
+231 94 64
+232 94 64
+233 94 64
+234 94 64
+235 94 64
+236 94 64
+237 94 64
+238 94 64
+239 94 64
+240 94 64
+241 94 64
+242 94 64
+243 94 64
+244 94 64
+245 94 64
+246 94 64
+247 94 64
+248 94 64
+249 94 64
+250 94 64
+251 94 64
+252 94 64
+253 94 64
+254 94 64
+255 94 64
+0 93 64
+1 93 64
+2 93 64
+3 93 64
+4 93 64
+5 93 64
+6 93 64
+7 93 64
+8 93 64
+9 93 64
+10 93 64
+11 93 64
+12 93 64
+13 93 64
+14 93 64
+15 93 64
+16 93 64
+17 93 64
+18 93 64
+19 93 64
+20 93 64
+21 93 64
+22 93 64
+23 93 64
+24 93 64
+25 93 64
+26 93 64
+27 93 64
+28 93 64
+29 93 64
+30 93 64
+31 93 64
+32 93 64
+33 93 64
+34 93 64
+35 93 64
+36 93 64
+37 93 64
+38 93 64
+39 93 64
+40 93 64
+41 93 64
+42 93 64
+43 93 64
+44 93 64
+45 93 64
+46 93 64
+47 93 64
+48 93 64
+49 93 64
+50 93 64
+51 93 64
+52 93 64
+53 93 64
+54 93 64
+55 93 64
+56 93 64
+57 93 64
+58 93 64
+59 93 64
+60 93 64
+61 93 64
+62 93 64
+63 93 64
+64 93 64
+65 93 64
+66 93 64
+67 93 64
+68 93 64
+69 93 64
+70 93 64
+71 93 64
+72 93 64
+73 93 64
+74 93 64
+75 93 64
+76 93 64
+77 93 64
+78 93 64
+79 93 64
+80 93 64
+81 93 64
+82 93 64
+83 93 64
+84 93 64
+85 93 64
+86 93 64
+87 93 64
+88 93 64
+89 93 64
+90 93 64
+91 93 64
+92 93 64
+93 93 64
+94 93 64
+95 93 64
+96 93 64
+97 93 64
+98 93 64
+99 93 64
+100 93 64
+101 93 64
+102 93 64
+103 93 64
+104 93 64
+105 93 64
+106 93 64
+107 93 64
+108 93 64
+109 93 64
+110 93 64
+111 93 64
+112 93 64
+113 93 64
+114 93 64
+115 93 64
+116 93 64
+117 93 64
+118 93 64
+119 93 64
+120 93 64
+121 93 64
+122 93 64
+123 93 64
+124 93 64
+125 93 64
+126 93 64
+127 93 64
+128 93 64
+129 93 64
+130 93 64
+131 93 64
+132 93 64
+133 93 64
+134 93 64
+135 93 64
+136 93 64
+137 93 64
+138 93 64
+139 93 64
+140 93 64
+141 93 64
+142 93 64
+143 93 64
+144 93 64
+145 93 64
+146 93 64
+147 93 64
+148 93 64
+149 93 64
+150 93 64
+151 93 64
+152 93 64
+153 93 64
+154 93 64
+155 93 64
+156 93 64
+157 93 64
+158 93 64
+159 93 64
+160 93 64
+161 93 64
+162 93 64
+163 93 64
+164 93 64
+165 93 64
+166 93 64
+167 93 64
+168 93 64
+169 93 64
+170 93 64
+171 93 64
+172 93 64
+173 93 64
+174 93 64
+175 93 64
+176 93 64
+177 93 64
+178 93 64
+179 93 64
+180 93 64
+181 93 64
+182 93 64
+183 93 64
+184 93 64
+185 93 64
+186 93 64
+187 93 64
+188 93 64
+189 93 64
+190 93 64
+191 93 64
+192 93 64
+193 93 64
+194 93 64
+195 93 64
+196 93 64
+197 93 64
+198 93 64
+199 93 64
+200 93 64
+201 93 64
+202 93 64
+203 93 64
+204 93 64
+205 93 64
+206 93 64
+207 93 64
+208 93 64
+209 93 64
+210 93 64
+211 93 64
+212 93 64
+213 93 64
+214 93 64
+215 93 64
+216 93 64
+217 93 64
+218 93 64
+219 93 64
+220 93 64
+221 93 64
+222 93 64
+223 93 64
+224 93 64
+225 93 64
+226 93 64
+227 93 64
+228 93 64
+229 93 64
+230 93 64
+231 93 64
+232 93 64
+233 93 64
+234 93 64
+235 93 64
+236 93 64
+237 93 64
+238 93 64
+239 93 64
+240 93 64
+241 93 64
+242 93 64
+243 93 64
+244 93 64
+245 93 64
+246 93 64
+247 93 64
+248 93 64
+249 93 64
+250 93 64
+251 93 64
+252 93 64
+253 93 64
+254 93 64
+255 93 64
+0 92 64
+1 92 64
+2 92 64
+3 92 64
+4 92 64
+5 92 64
+6 92 64
+7 92 64
+8 92 64
+9 92 64
+10 92 64
+11 92 64
+12 92 64
+13 92 64
+14 92 64
+15 92 64
+16 92 64
+17 92 64
+18 92 64
+19 92 64
+20 92 64
+21 92 64
+22 92 64
+23 92 64
+24 92 64
+25 92 64
+26 92 64
+27 92 64
+28 92 64
+29 92 64
+30 92 64
+31 92 64
+32 92 64
+33 92 64
+34 92 64
+35 92 64
+36 92 64
+37 92 64
+38 92 64
+39 92 64
+40 92 64
+41 92 64
+42 92 64
+43 92 64
+44 92 64
+45 92 64
+46 92 64
+47 92 64
+48 92 64
+49 92 64
+50 92 64
+51 92 64
+52 92 64
+53 92 64
+54 92 64
+55 92 64
+56 92 64
+57 92 64
+58 92 64
+59 92 64
+60 92 64
+61 92 64
+62 92 64
+63 92 64
+64 92 64
+65 92 64
+66 92 64
+67 92 64
+68 92 64
+69 92 64
+70 92 64
+71 92 64
+72 92 64
+73 92 64
+74 92 64
+75 92 64
+76 92 64
+77 92 64
+78 92 64
+79 92 64
+80 92 64
+81 92 64
+82 92 64
+83 92 64
+84 92 64
+85 92 64
+86 92 64
+87 92 64
+88 92 64
+89 92 64
+90 92 64
+91 92 64
+92 92 64
+93 92 64
+94 92 64
+95 92 64
+96 92 64
+97 92 64
+98 92 64
+99 92 64
+100 92 64
+101 92 64
+102 92 64
+103 92 64
+104 92 64
+105 92 64
+106 92 64
+107 92 64
+108 92 64
+109 92 64
+110 92 64
+111 92 64
+112 92 64
+113 92 64
+114 92 64
+115 92 64
+116 92 64
+117 92 64
+118 92 64
+119 92 64
+120 92 64
+121 92 64
+122 92 64
+123 92 64
+124 92 64
+125 92 64
+126 92 64
+127 92 64
+128 92 64
+129 92 64
+130 92 64
+131 92 64
+132 92 64
+133 92 64
+134 92 64
+135 92 64
+136 92 64
+137 92 64
+138 92 64
+139 92 64
+140 92 64
+141 92 64
+142 92 64
+143 92 64
+144 92 64
+145 92 64
+146 92 64
+147 92 64
+148 92 64
+149 92 64
+150 92 64
+151 92 64
+152 92 64
+153 92 64
+154 92 64
+155 92 64
+156 92 64
+157 92 64
+158 92 64
+159 92 64
+160 92 64
+161 92 64
+162 92 64
+163 92 64
+164 92 64
+165 92 64
+166 92 64
+167 92 64
+168 92 64
+169 92 64
+170 92 64
+171 92 64
+172 92 64
+173 92 64
+174 92 64
+175 92 64
+176 92 64
+177 92 64
+178 92 64
+179 92 64
+180 92 64
+181 92 64
+182 92 64
+183 92 64
+184 92 64
+185 92 64
+186 92 64
+187 92 64
+188 92 64
+189 92 64
+190 92 64
+191 92 64
+192 92 64
+193 92 64
+194 92 64
+195 92 64
+196 92 64
+197 92 64
+198 92 64
+199 92 64
+200 92 64
+201 92 64
+202 92 64
+203 92 64
+204 92 64
+205 92 64
+206 92 64
+207 92 64
+208 92 64
+209 92 64
+210 92 64
+211 92 64
+212 92 64
+213 92 64
+214 92 64
+215 92 64
+216 92 64
+217 92 64
+218 92 64
+219 92 64
+220 92 64
+221 92 64
+222 92 64
+223 92 64
+224 92 64
+225 92 64
+226 92 64
+227 92 64
+228 92 64
+229 92 64
+230 92 64
+231 92 64
+232 92 64
+233 92 64
+234 92 64
+235 92 64
+236 92 64
+237 92 64
+238 92 64
+239 92 64
+240 92 64
+241 92 64
+242 92 64
+243 92 64
+244 92 64
+245 92 64
+246 92 64
+247 92 64
+248 92 64
+249 92 64
+250 92 64
+251 92 64
+252 92 64
+253 92 64
+254 92 64
+255 92 64
+0 91 64
+1 91 64
+2 91 64
+3 91 64
+4 91 64
+5 91 64
+6 91 64
+7 91 64
+8 91 64
+9 91 64
+10 91 64
+11 91 64
+12 91 64
+13 91 64
+14 91 64
+15 91 64
+16 91 64
+17 91 64
+18 91 64
+19 91 64
+20 91 64
+21 91 64
+22 91 64
+23 91 64
+24 91 64
+25 91 64
+26 91 64
+27 91 64
+28 91 64
+29 91 64
+30 91 64
+31 91 64
+32 91 64
+33 91 64
+34 91 64
+35 91 64
+36 91 64
+37 91 64
+38 91 64
+39 91 64
+40 91 64
+41 91 64
+42 91 64
+43 91 64
+44 91 64
+45 91 64
+46 91 64
+47 91 64
+48 91 64
+49 91 64
+50 91 64
+51 91 64
+52 91 64
+53 91 64
+54 91 64
+55 91 64
+56 91 64
+57 91 64
+58 91 64
+59 91 64
+60 91 64
+61 91 64
+62 91 64
+63 91 64
+64 91 64
+65 91 64
+66 91 64
+67 91 64
+68 91 64
+69 91 64
+70 91 64
+71 91 64
+72 91 64
+73 91 64
+74 91 64
+75 91 64
+76 91 64
+77 91 64
+78 91 64
+79 91 64
+80 91 64
+81 91 64
+82 91 64
+83 91 64
+84 91 64
+85 91 64
+86 91 64
+87 91 64
+88 91 64
+89 91 64
+90 91 64
+91 91 64
+92 91 64
+93 91 64
+94 91 64
+95 91 64
+96 91 64
+97 91 64
+98 91 64
+99 91 64
+100 91 64
+101 91 64
+102 91 64
+103 91 64
+104 91 64
+105 91 64
+106 91 64
+107 91 64
+108 91 64
+109 91 64
+110 91 64
+111 91 64
+112 91 64
+113 91 64
+114 91 64
+115 91 64
+116 91 64
+117 91 64
+118 91 64
+119 91 64
+120 91 64
+121 91 64
+122 91 64
+123 91 64
+124 91 64
+125 91 64
+126 91 64
+127 91 64
+128 91 64
+129 91 64
+130 91 64
+131 91 64
+132 91 64
+133 91 64
+134 91 64
+135 91 64
+136 91 64
+137 91 64
+138 91 64
+139 91 64
+140 91 64
+141 91 64
+142 91 64
+143 91 64
+144 91 64
+145 91 64
+146 91 64
+147 91 64
+148 91 64
+149 91 64
+150 91 64
+151 91 64
+152 91 64
+153 91 64
+154 91 64
+155 91 64
+156 91 64
+157 91 64
+158 91 64
+159 91 64
+160 91 64
+161 91 64
+162 91 64
+163 91 64
+164 91 64
+165 91 64
+166 91 64
+167 91 64
+168 91 64
+169 91 64
+170 91 64
+171 91 64
+172 91 64
+173 91 64
+174 91 64
+175 91 64
+176 91 64
+177 91 64
+178 91 64
+179 91 64
+180 91 64
+181 91 64
+182 91 64
+183 91 64
+184 91 64
+185 91 64
+186 91 64
+187 91 64
+188 91 64
+189 91 64
+190 91 64
+191 91 64
+192 91 64
+193 91 64
+194 91 64
+195 91 64
+196 91 64
+197 91 64
+198 91 64
+199 91 64
+200 91 64
+201 91 64
+202 91 64
+203 91 64
+204 91 64
+205 91 64
+206 91 64
+207 91 64
+208 91 64
+209 91 64
+210 91 64
+211 91 64
+212 91 64
+213 91 64
+214 91 64
+215 91 64
+216 91 64
+217 91 64
+218 91 64
+219 91 64
+220 91 64
+221 91 64
+222 91 64
+223 91 64
+224 91 64
+225 91 64
+226 91 64
+227 91 64
+228 91 64
+229 91 64
+230 91 64
+231 91 64
+232 91 64
+233 91 64
+234 91 64
+235 91 64
+236 91 64
+237 91 64
+238 91 64
+239 91 64
+240 91 64
+241 91 64
+242 91 64
+243 91 64
+244 91 64
+245 91 64
+246 91 64
+247 91 64
+248 91 64
+249 91 64
+250 91 64
+251 91 64
+252 91 64
+253 91 64
+254 91 64
+255 91 64
+0 90 64
+1 90 64
+2 90 64
+3 90 64
+4 90 64
+5 90 64
+6 90 64
+7 90 64
+8 90 64
+9 90 64
+10 90 64
+11 90 64
+12 90 64
+13 90 64
+14 90 64
+15 90 64
+16 90 64
+17 90 64
+18 90 64
+19 90 64
+20 90 64
+21 90 64
+22 90 64
+23 90 64
+24 90 64
+25 90 64
+26 90 64
+27 90 64
+28 90 64
+29 90 64
+30 90 64
+31 90 64
+32 90 64
+33 90 64
+34 90 64
+35 90 64
+36 90 64
+37 90 64
+38 90 64
+39 90 64
+40 90 64
+41 90 64
+42 90 64
+43 90 64
+44 90 64
+45 90 64
+46 90 64
+47 90 64
+48 90 64
+49 90 64
+50 90 64
+51 90 64
+52 90 64
+53 90 64
+54 90 64
+55 90 64
+56 90 64
+57 90 64
+58 90 64
+59 90 64
+60 90 64
+61 90 64
+62 90 64
+63 90 64
+64 90 64
+65 90 64
+66 90 64
+67 90 64
+68 90 64
+69 90 64
+70 90 64
+71 90 64
+72 90 64
+73 90 64
+74 90 64
+75 90 64
+76 90 64
+77 90 64
+78 90 64
+79 90 64
+80 90 64
+81 90 64
+82 90 64
+83 90 64
+84 90 64
+85 90 64
+86 90 64
+87 90 64
+88 90 64
+89 90 64
+90 90 64
+91 90 64
+92 90 64
+93 90 64
+94 90 64
+95 90 64
+96 90 64
+97 90 64
+98 90 64
+99 90 64
+100 90 64
+101 90 64
+102 90 64
+103 90 64
+104 90 64
+105 90 64
+106 90 64
+107 90 64
+108 90 64
+109 90 64
+110 90 64
+111 90 64
+112 90 64
+113 90 64
+114 90 64
+115 90 64
+116 90 64
+117 90 64
+118 90 64
+119 90 64
+120 90 64
+121 90 64
+122 90 64
+123 90 64
+124 90 64
+125 90 64
+126 90 64
+127 90 64
+128 90 64
+129 90 64
+130 90 64
+131 90 64
+132 90 64
+133 90 64
+134 90 64
+135 90 64
+136 90 64
+137 90 64
+138 90 64
+139 90 64
+140 90 64
+141 90 64
+142 90 64
+143 90 64
+144 90 64
+145 90 64
+146 90 64
+147 90 64
+148 90 64
+149 90 64
+150 90 64
+151 90 64
+152 90 64
+153 90 64
+154 90 64
+155 90 64
+156 90 64
+157 90 64
+158 90 64
+159 90 64
+160 90 64
+161 90 64
+162 90 64
+163 90 64
+164 90 64
+165 90 64
+166 90 64
+167 90 64
+168 90 64
+169 90 64
+170 90 64
+171 90 64
+172 90 64
+173 90 64
+174 90 64
+175 90 64
+176 90 64
+177 90 64
+178 90 64
+179 90 64
+180 90 64
+181 90 64
+182 90 64
+183 90 64
+184 90 64
+185 90 64
+186 90 64
+187 90 64
+188 90 64
+189 90 64
+190 90 64
+191 90 64
+192 90 64
+193 90 64
+194 90 64
+195 90 64
+196 90 64
+197 90 64
+198 90 64
+199 90 64
+200 90 64
+201 90 64
+202 90 64
+203 90 64
+204 90 64
+205 90 64
+206 90 64
+207 90 64
+208 90 64
+209 90 64
+210 90 64
+211 90 64
+212 90 64
+213 90 64
+214 90 64
+215 90 64
+216 90 64
+217 90 64
+218 90 64
+219 90 64
+220 90 64
+221 90 64
+222 90 64
+223 90 64
+224 90 64
+225 90 64
+226 90 64
+227 90 64
+228 90 64
+229 90 64
+230 90 64
+231 90 64
+232 90 64
+233 90 64
+234 90 64
+235 90 64
+236 90 64
+237 90 64
+238 90 64
+239 90 64
+240 90 64
+241 90 64
+242 90 64
+243 90 64
+244 90 64
+245 90 64
+246 90 64
+247 90 64
+248 90 64
+249 90 64
+250 90 64
+251 90 64
+252 90 64
+253 90 64
+254 90 64
+255 90 64
+0 89 64
+1 89 64
+2 89 64
+3 89 64
+4 89 64
+5 89 64
+6 89 64
+7 89 64
+8 89 64
+9 89 64
+10 89 64
+11 89 64
+12 89 64
+13 89 64
+14 89 64
+15 89 64
+16 89 64
+17 89 64
+18 89 64
+19 89 64
+20 89 64
+21 89 64
+22 89 64
+23 89 64
+24 89 64
+25 89 64
+26 89 64
+27 89 64
+28 89 64
+29 89 64
+30 89 64
+31 89 64
+32 89 64
+33 89 64
+34 89 64
+35 89 64
+36 89 64
+37 89 64
+38 89 64
+39 89 64
+40 89 64
+41 89 64
+42 89 64
+43 89 64
+44 89 64
+45 89 64
+46 89 64
+47 89 64
+48 89 64
+49 89 64
+50 89 64
+51 89 64
+52 89 64
+53 89 64
+54 89 64
+55 89 64
+56 89 64
+57 89 64
+58 89 64
+59 89 64
+60 89 64
+61 89 64
+62 89 64
+63 89 64
+64 89 64
+65 89 64
+66 89 64
+67 89 64
+68 89 64
+69 89 64
+70 89 64
+71 89 64
+72 89 64
+73 89 64
+74 89 64
+75 89 64
+76 89 64
+77 89 64
+78 89 64
+79 89 64
+80 89 64
+81 89 64
+82 89 64
+83 89 64
+84 89 64
+85 89 64
+86 89 64
+87 89 64
+88 89 64
+89 89 64
+90 89 64
+91 89 64
+92 89 64
+93 89 64
+94 89 64
+95 89 64
+96 89 64
+97 89 64
+98 89 64
+99 89 64
+100 89 64
+101 89 64
+102 89 64
+103 89 64
+104 89 64
+105 89 64
+106 89 64
+107 89 64
+108 89 64
+109 89 64
+110 89 64
+111 89 64
+112 89 64
+113 89 64
+114 89 64
+115 89 64
+116 89 64
+117 89 64
+118 89 64
+119 89 64
+120 89 64
+121 89 64
+122 89 64
+123 89 64
+124 89 64
+125 89 64
+126 89 64
+127 89 64
+128 89 64
+129 89 64
+130 89 64
+131 89 64
+132 89 64
+133 89 64
+134 89 64
+135 89 64
+136 89 64
+137 89 64
+138 89 64
+139 89 64
+140 89 64
+141 89 64
+142 89 64
+143 89 64
+144 89 64
+145 89 64
+146 89 64
+147 89 64
+148 89 64
+149 89 64
+150 89 64
+151 89 64
+152 89 64
+153 89 64
+154 89 64
+155 89 64
+156 89 64
+157 89 64
+158 89 64
+159 89 64
+160 89 64
+161 89 64
+162 89 64
+163 89 64
+164 89 64
+165 89 64
+166 89 64
+167 89 64
+168 89 64
+169 89 64
+170 89 64
+171 89 64
+172 89 64
+173 89 64
+174 89 64
+175 89 64
+176 89 64
+177 89 64
+178 89 64
+179 89 64
+180 89 64
+181 89 64
+182 89 64
+183 89 64
+184 89 64
+185 89 64
+186 89 64
+187 89 64
+188 89 64
+189 89 64
+190 89 64
+191 89 64
+192 89 64
+193 89 64
+194 89 64
+195 89 64
+196 89 64
+197 89 64
+198 89 64
+199 89 64
+200 89 64
+201 89 64
+202 89 64
+203 89 64
+204 89 64
+205 89 64
+206 89 64
+207 89 64
+208 89 64
+209 89 64
+210 89 64
+211 89 64
+212 89 64
+213 89 64
+214 89 64
+215 89 64
+216 89 64
+217 89 64
+218 89 64
+219 89 64
+220 89 64
+221 89 64
+222 89 64
+223 89 64
+224 89 64
+225 89 64
+226 89 64
+227 89 64
+228 89 64
+229 89 64
+230 89 64
+231 89 64
+232 89 64
+233 89 64
+234 89 64
+235 89 64
+236 89 64
+237 89 64
+238 89 64
+239 89 64
+240 89 64
+241 89 64
+242 89 64
+243 89 64
+244 89 64
+245 89 64
+246 89 64
+247 89 64
+248 89 64
+249 89 64
+250 89 64
+251 89 64
+252 89 64
+253 89 64
+254 89 64
+255 89 64
+0 88 64
+1 88 64
+2 88 64
+3 88 64
+4 88 64
+5 88 64
+6 88 64
+7 88 64
+8 88 64
+9 88 64
+10 88 64
+11 88 64
+12 88 64
+13 88 64
+14 88 64
+15 88 64
+16 88 64
+17 88 64
+18 88 64
+19 88 64
+20 88 64
+21 88 64
+22 88 64
+23 88 64
+24 88 64
+25 88 64
+26 88 64
+27 88 64
+28 88 64
+29 88 64
+30 88 64
+31 88 64
+32 88 64
+33 88 64
+34 88 64
+35 88 64
+36 88 64
+37 88 64
+38 88 64
+39 88 64
+40 88 64
+41 88 64
+42 88 64
+43 88 64
+44 88 64
+45 88 64
+46 88 64
+47 88 64
+48 88 64
+49 88 64
+50 88 64
+51 88 64
+52 88 64
+53 88 64
+54 88 64
+55 88 64
+56 88 64
+57 88 64
+58 88 64
+59 88 64
+60 88 64
+61 88 64
+62 88 64
+63 88 64
+64 88 64
+65 88 64
+66 88 64
+67 88 64
+68 88 64
+69 88 64
+70 88 64
+71 88 64
+72 88 64
+73 88 64
+74 88 64
+75 88 64
+76 88 64
+77 88 64
+78 88 64
+79 88 64
+80 88 64
+81 88 64
+82 88 64
+83 88 64
+84 88 64
+85 88 64
+86 88 64
+87 88 64
+88 88 64
+89 88 64
+90 88 64
+91 88 64
+92 88 64
+93 88 64
+94 88 64
+95 88 64
+96 88 64
+97 88 64
+98 88 64
+99 88 64
+100 88 64
+101 88 64
+102 88 64
+103 88 64
+104 88 64
+105 88 64
+106 88 64
+107 88 64
+108 88 64
+109 88 64
+110 88 64
+111 88 64
+112 88 64
+113 88 64
+114 88 64
+115 88 64
+116 88 64
+117 88 64
+118 88 64
+119 88 64
+120 88 64
+121 88 64
+122 88 64
+123 88 64
+124 88 64
+125 88 64
+126 88 64
+127 88 64
+128 88 64
+129 88 64
+130 88 64
+131 88 64
+132 88 64
+133 88 64
+134 88 64
+135 88 64
+136 88 64
+137 88 64
+138 88 64
+139 88 64
+140 88 64
+141 88 64
+142 88 64
+143 88 64
+144 88 64
+145 88 64
+146 88 64
+147 88 64
+148 88 64
+149 88 64
+150 88 64
+151 88 64
+152 88 64
+153 88 64
+154 88 64
+155 88 64
+156 88 64
+157 88 64
+158 88 64
+159 88 64
+160 88 64
+161 88 64
+162 88 64
+163 88 64
+164 88 64
+165 88 64
+166 88 64
+167 88 64
+168 88 64
+169 88 64
+170 88 64
+171 88 64
+172 88 64
+173 88 64
+174 88 64
+175 88 64
+176 88 64
+177 88 64
+178 88 64
+179 88 64
+180 88 64
+181 88 64
+182 88 64
+183 88 64
+184 88 64
+185 88 64
+186 88 64
+187 88 64
+188 88 64
+189 88 64
+190 88 64
+191 88 64
+192 88 64
+193 88 64
+194 88 64
+195 88 64
+196 88 64
+197 88 64
+198 88 64
+199 88 64
+200 88 64
+201 88 64
+202 88 64
+203 88 64
+204 88 64
+205 88 64
+206 88 64
+207 88 64
+208 88 64
+209 88 64
+210 88 64
+211 88 64
+212 88 64
+213 88 64
+214 88 64
+215 88 64
+216 88 64
+217 88 64
+218 88 64
+219 88 64
+220 88 64
+221 88 64
+222 88 64
+223 88 64
+224 88 64
+225 88 64
+226 88 64
+227 88 64
+228 88 64
+229 88 64
+230 88 64
+231 88 64
+232 88 64
+233 88 64
+234 88 64
+235 88 64
+236 88 64
+237 88 64
+238 88 64
+239 88 64
+240 88 64
+241 88 64
+242 88 64
+243 88 64
+244 88 64
+245 88 64
+246 88 64
+247 88 64
+248 88 64
+249 88 64
+250 88 64
+251 88 64
+252 88 64
+253 88 64
+254 88 64
+255 88 64
+0 87 64
+1 87 64
+2 87 64
+3 87 64
+4 87 64
+5 87 64
+6 87 64
+7 87 64
+8 87 64
+9 87 64
+10 87 64
+11 87 64
+12 87 64
+13 87 64
+14 87 64
+15 87 64
+16 87 64
+17 87 64
+18 87 64
+19 87 64
+20 87 64
+21 87 64
+22 87 64
+23 87 64
+24 87 64
+25 87 64
+26 87 64
+27 87 64
+28 87 64
+29 87 64
+30 87 64
+31 87 64
+32 87 64
+33 87 64
+34 87 64
+35 87 64
+36 87 64
+37 87 64
+38 87 64
+39 87 64
+40 87 64
+41 87 64
+42 87 64
+43 87 64
+44 87 64
+45 87 64
+46 87 64
+47 87 64
+48 87 64
+49 87 64
+50 87 64
+51 87 64
+52 87 64
+53 87 64
+54 87 64
+55 87 64
+56 87 64
+57 87 64
+58 87 64
+59 87 64
+60 87 64
+61 87 64
+62 87 64
+63 87 64
+64 87 64
+65 87 64
+66 87 64
+67 87 64
+68 87 64
+69 87 64
+70 87 64
+71 87 64
+72 87 64
+73 87 64
+74 87 64
+75 87 64
+76 87 64
+77 87 64
+78 87 64
+79 87 64
+80 87 64
+81 87 64
+82 87 64
+83 87 64
+84 87 64
+85 87 64
+86 87 64
+87 87 64
+88 87 64
+89 87 64
+90 87 64
+91 87 64
+92 87 64
+93 87 64
+94 87 64
+95 87 64
+96 87 64
+97 87 64
+98 87 64
+99 87 64
+100 87 64
+101 87 64
+102 87 64
+103 87 64
+104 87 64
+105 87 64
+106 87 64
+107 87 64
+108 87 64
+109 87 64
+110 87 64
+111 87 64
+112 87 64
+113 87 64
+114 87 64
+115 87 64
+116 87 64
+117 87 64
+118 87 64
+119 87 64
+120 87 64
+121 87 64
+122 87 64
+123 87 64
+124 87 64
+125 87 64
+126 87 64
+127 87 64
+128 87 64
+129 87 64
+130 87 64
+131 87 64
+132 87 64
+133 87 64
+134 87 64
+135 87 64
+136 87 64
+137 87 64
+138 87 64
+139 87 64
+140 87 64
+141 87 64
+142 87 64
+143 87 64
+144 87 64
+145 87 64
+146 87 64
+147 87 64
+148 87 64
+149 87 64
+150 87 64
+151 87 64
+152 87 64
+153 87 64
+154 87 64
+155 87 64
+156 87 64
+157 87 64
+158 87 64
+159 87 64
+160 87 64
+161 87 64
+162 87 64
+163 87 64
+164 87 64
+165 87 64
+166 87 64
+167 87 64
+168 87 64
+169 87 64
+170 87 64
+171 87 64
+172 87 64
+173 87 64
+174 87 64
+175 87 64
+176 87 64
+177 87 64
+178 87 64
+179 87 64
+180 87 64
+181 87 64
+182 87 64
+183 87 64
+184 87 64
+185 87 64
+186 87 64
+187 87 64
+188 87 64
+189 87 64
+190 87 64
+191 87 64
+192 87 64
+193 87 64
+194 87 64
+195 87 64
+196 87 64
+197 87 64
+198 87 64
+199 87 64
+200 87 64
+201 87 64
+202 87 64
+203 87 64
+204 87 64
+205 87 64
+206 87 64
+207 87 64
+208 87 64
+209 87 64
+210 87 64
+211 87 64
+212 87 64
+213 87 64
+214 87 64
+215 87 64
+216 87 64
+217 87 64
+218 87 64
+219 87 64
+220 87 64
+221 87 64
+222 87 64
+223 87 64
+224 87 64
+225 87 64
+226 87 64
+227 87 64
+228 87 64
+229 87 64
+230 87 64
+231 87 64
+232 87 64
+233 87 64
+234 87 64
+235 87 64
+236 87 64
+237 87 64
+238 87 64
+239 87 64
+240 87 64
+241 87 64
+242 87 64
+243 87 64
+244 87 64
+245 87 64
+246 87 64
+247 87 64
+248 87 64
+249 87 64
+250 87 64
+251 87 64
+252 87 64
+253 87 64
+254 87 64
+255 87 64
+0 86 64
+1 86 64
+2 86 64
+3 86 64
+4 86 64
+5 86 64
+6 86 64
+7 86 64
+8 86 64
+9 86 64
+10 86 64
+11 86 64
+12 86 64
+13 86 64
+14 86 64
+15 86 64
+16 86 64
+17 86 64
+18 86 64
+19 86 64
+20 86 64
+21 86 64
+22 86 64
+23 86 64
+24 86 64
+25 86 64
+26 86 64
+27 86 64
+28 86 64
+29 86 64
+30 86 64
+31 86 64
+32 86 64
+33 86 64
+34 86 64
+35 86 64
+36 86 64
+37 86 64
+38 86 64
+39 86 64
+40 86 64
+41 86 64
+42 86 64
+43 86 64
+44 86 64
+45 86 64
+46 86 64
+47 86 64
+48 86 64
+49 86 64
+50 86 64
+51 86 64
+52 86 64
+53 86 64
+54 86 64
+55 86 64
+56 86 64
+57 86 64
+58 86 64
+59 86 64
+60 86 64
+61 86 64
+62 86 64
+63 86 64
+64 86 64
+65 86 64
+66 86 64
+67 86 64
+68 86 64
+69 86 64
+70 86 64
+71 86 64
+72 86 64
+73 86 64
+74 86 64
+75 86 64
+76 86 64
+77 86 64
+78 86 64
+79 86 64
+80 86 64
+81 86 64
+82 86 64
+83 86 64
+84 86 64
+85 86 64
+86 86 64
+87 86 64
+88 86 64
+89 86 64
+90 86 64
+91 86 64
+92 86 64
+93 86 64
+94 86 64
+95 86 64
+96 86 64
+97 86 64
+98 86 64
+99 86 64
+100 86 64
+101 86 64
+102 86 64
+103 86 64
+104 86 64
+105 86 64
+106 86 64
+107 86 64
+108 86 64
+109 86 64
+110 86 64
+111 86 64
+112 86 64
+113 86 64
+114 86 64
+115 86 64
+116 86 64
+117 86 64
+118 86 64
+119 86 64
+120 86 64
+121 86 64
+122 86 64
+123 86 64
+124 86 64
+125 86 64
+126 86 64
+127 86 64
+128 86 64
+129 86 64
+130 86 64
+131 86 64
+132 86 64
+133 86 64
+134 86 64
+135 86 64
+136 86 64
+137 86 64
+138 86 64
+139 86 64
+140 86 64
+141 86 64
+142 86 64
+143 86 64
+144 86 64
+145 86 64
+146 86 64
+147 86 64
+148 86 64
+149 86 64
+150 86 64
+151 86 64
+152 86 64
+153 86 64
+154 86 64
+155 86 64
+156 86 64
+157 86 64
+158 86 64
+159 86 64
+160 86 64
+161 86 64
+162 86 64
+163 86 64
+164 86 64
+165 86 64
+166 86 64
+167 86 64
+168 86 64
+169 86 64
+170 86 64
+171 86 64
+172 86 64
+173 86 64
+174 86 64
+175 86 64
+176 86 64
+177 86 64
+178 86 64
+179 86 64
+180 86 64
+181 86 64
+182 86 64
+183 86 64
+184 86 64
+185 86 64
+186 86 64
+187 86 64
+188 86 64
+189 86 64
+190 86 64
+191 86 64
+192 86 64
+193 86 64
+194 86 64
+195 86 64
+196 86 64
+197 86 64
+198 86 64
+199 86 64
+200 86 64
+201 86 64
+202 86 64
+203 86 64
+204 86 64
+205 86 64
+206 86 64
+207 86 64
+208 86 64
+209 86 64
+210 86 64
+211 86 64
+212 86 64
+213 86 64
+214 86 64
+215 86 64
+216 86 64
+217 86 64
+218 86 64
+219 86 64
+220 86 64
+221 86 64
+222 86 64
+223 86 64
+224 86 64
+225 86 64
+226 86 64
+227 86 64
+228 86 64
+229 86 64
+230 86 64
+231 86 64
+232 86 64
+233 86 64
+234 86 64
+235 86 64
+236 86 64
+237 86 64
+238 86 64
+239 86 64
+240 86 64
+241 86 64
+242 86 64
+243 86 64
+244 86 64
+245 86 64
+246 86 64
+247 86 64
+248 86 64
+249 86 64
+250 86 64
+251 86 64
+252 86 64
+253 86 64
+254 86 64
+255 86 64
+0 85 64
+1 85 64
+2 85 64
+3 85 64
+4 85 64
+5 85 64
+6 85 64
+7 85 64
+8 85 64
+9 85 64
+10 85 64
+11 85 64
+12 85 64
+13 85 64
+14 85 64
+15 85 64
+16 85 64
+17 85 64
+18 85 64
+19 85 64
+20 85 64
+21 85 64
+22 85 64
+23 85 64
+24 85 64
+25 85 64
+26 85 64
+27 85 64
+28 85 64
+29 85 64
+30 85 64
+31 85 64
+32 85 64
+33 85 64
+34 85 64
+35 85 64
+36 85 64
+37 85 64
+38 85 64
+39 85 64
+40 85 64
+41 85 64
+42 85 64
+43 85 64
+44 85 64
+45 85 64
+46 85 64
+47 85 64
+48 85 64
+49 85 64
+50 85 64
+51 85 64
+52 85 64
+53 85 64
+54 85 64
+55 85 64
+56 85 64
+57 85 64
+58 85 64
+59 85 64
+60 85 64
+61 85 64
+62 85 64
+63 85 64
+64 85 64
+65 85 64
+66 85 64
+67 85 64
+68 85 64
+69 85 64
+70 85 64
+71 85 64
+72 85 64
+73 85 64
+74 85 64
+75 85 64
+76 85 64
+77 85 64
+78 85 64
+79 85 64
+80 85 64
+81 85 64
+82 85 64
+83 85 64
+84 85 64
+85 85 64
+86 85 64
+87 85 64
+88 85 64
+89 85 64
+90 85 64
+91 85 64
+92 85 64
+93 85 64
+94 85 64
+95 85 64
+96 85 64
+97 85 64
+98 85 64
+99 85 64
+100 85 64
+101 85 64
+102 85 64
+103 85 64
+104 85 64
+105 85 64
+106 85 64
+107 85 64
+108 85 64
+109 85 64
+110 85 64
+111 85 64
+112 85 64
+113 85 64
+114 85 64
+115 85 64
+116 85 64
+117 85 64
+118 85 64
+119 85 64
+120 85 64
+121 85 64
+122 85 64
+123 85 64
+124 85 64
+125 85 64
+126 85 64
+127 85 64
+128 85 64
+129 85 64
+130 85 64
+131 85 64
+132 85 64
+133 85 64
+134 85 64
+135 85 64
+136 85 64
+137 85 64
+138 85 64
+139 85 64
+140 85 64
+141 85 64
+142 85 64
+143 85 64
+144 85 64
+145 85 64
+146 85 64
+147 85 64
+148 85 64
+149 85 64
+150 85 64
+151 85 64
+152 85 64
+153 85 64
+154 85 64
+155 85 64
+156 85 64
+157 85 64
+158 85 64
+159 85 64
+160 85 64
+161 85 64
+162 85 64
+163 85 64
+164 85 64
+165 85 64
+166 85 64
+167 85 64
+168 85 64
+169 85 64
+170 85 64
+171 85 64
+172 85 64
+173 85 64
+174 85 64
+175 85 64
+176 85 64
+177 85 64
+178 85 64
+179 85 64
+180 85 64
+181 85 64
+182 85 64
+183 85 64
+184 85 64
+185 85 64
+186 85 64
+187 85 64
+188 85 64
+189 85 64
+190 85 64
+191 85 64
+192 85 64
+193 85 64
+194 85 64
+195 85 64
+196 85 64
+197 85 64
+198 85 64
+199 85 64
+200 85 64
+201 85 64
+202 85 64
+203 85 64
+204 85 64
+205 85 64
+206 85 64
+207 85 64
+208 85 64
+209 85 64
+210 85 64
+211 85 64
+212 85 64
+213 85 64
+214 85 64
+215 85 64
+216 85 64
+217 85 64
+218 85 64
+219 85 64
+220 85 64
+221 85 64
+222 85 64
+223 85 64
+224 85 64
+225 85 64
+226 85 64
+227 85 64
+228 85 64
+229 85 64
+230 85 64
+231 85 64
+232 85 64
+233 85 64
+234 85 64
+235 85 64
+236 85 64
+237 85 64
+238 85 64
+239 85 64
+240 85 64
+241 85 64
+242 85 64
+243 85 64
+244 85 64
+245 85 64
+246 85 64
+247 85 64
+248 85 64
+249 85 64
+250 85 64
+251 85 64
+252 85 64
+253 85 64
+254 85 64
+255 85 64
+0 84 64
+1 84 64
+2 84 64
+3 84 64
+4 84 64
+5 84 64
+6 84 64
+7 84 64
+8 84 64
+9 84 64
+10 84 64
+11 84 64
+12 84 64
+13 84 64
+14 84 64
+15 84 64
+16 84 64
+17 84 64
+18 84 64
+19 84 64
+20 84 64
+21 84 64
+22 84 64
+23 84 64
+24 84 64
+25 84 64
+26 84 64
+27 84 64
+28 84 64
+29 84 64
+30 84 64
+31 84 64
+32 84 64
+33 84 64
+34 84 64
+35 84 64
+36 84 64
+37 84 64
+38 84 64
+39 84 64
+40 84 64
+41 84 64
+42 84 64
+43 84 64
+44 84 64
+45 84 64
+46 84 64
+47 84 64
+48 84 64
+49 84 64
+50 84 64
+51 84 64
+52 84 64
+53 84 64
+54 84 64
+55 84 64
+56 84 64
+57 84 64
+58 84 64
+59 84 64
+60 84 64
+61 84 64
+62 84 64
+63 84 64
+64 84 64
+65 84 64
+66 84 64
+67 84 64
+68 84 64
+69 84 64
+70 84 64
+71 84 64
+72 84 64
+73 84 64
+74 84 64
+75 84 64
+76 84 64
+77 84 64
+78 84 64
+79 84 64
+80 84 64
+81 84 64
+82 84 64
+83 84 64
+84 84 64
+85 84 64
+86 84 64
+87 84 64
+88 84 64
+89 84 64
+90 84 64
+91 84 64
+92 84 64
+93 84 64
+94 84 64
+95 84 64
+96 84 64
+97 84 64
+98 84 64
+99 84 64
+100 84 64
+101 84 64
+102 84 64
+103 84 64
+104 84 64
+105 84 64
+106 84 64
+107 84 64
+108 84 64
+109 84 64
+110 84 64
+111 84 64
+112 84 64
+113 84 64
+114 84 64
+115 84 64
+116 84 64
+117 84 64
+118 84 64
+119 84 64
+120 84 64
+121 84 64
+122 84 64
+123 84 64
+124 84 64
+125 84 64
+126 84 64
+127 84 64
+128 84 64
+129 84 64
+130 84 64
+131 84 64
+132 84 64
+133 84 64
+134 84 64
+135 84 64
+136 84 64
+137 84 64
+138 84 64
+139 84 64
+140 84 64
+141 84 64
+142 84 64
+143 84 64
+144 84 64
+145 84 64
+146 84 64
+147 84 64
+148 84 64
+149 84 64
+150 84 64
+151 84 64
+152 84 64
+153 84 64
+154 84 64
+155 84 64
+156 84 64
+157 84 64
+158 84 64
+159 84 64
+160 84 64
+161 84 64
+162 84 64
+163 84 64
+164 84 64
+165 84 64
+166 84 64
+167 84 64
+168 84 64
+169 84 64
+170 84 64
+171 84 64
+172 84 64
+173 84 64
+174 84 64
+175 84 64
+176 84 64
+177 84 64
+178 84 64
+179 84 64
+180 84 64
+181 84 64
+182 84 64
+183 84 64
+184 84 64
+185 84 64
+186 84 64
+187 84 64
+188 84 64
+189 84 64
+190 84 64
+191 84 64
+192 84 64
+193 84 64
+194 84 64
+195 84 64
+196 84 64
+197 84 64
+198 84 64
+199 84 64
+200 84 64
+201 84 64
+202 84 64
+203 84 64
+204 84 64
+205 84 64
+206 84 64
+207 84 64
+208 84 64
+209 84 64
+210 84 64
+211 84 64
+212 84 64
+213 84 64
+214 84 64
+215 84 64
+216 84 64
+217 84 64
+218 84 64
+219 84 64
+220 84 64
+221 84 64
+222 84 64
+223 84 64
+224 84 64
+225 84 64
+226 84 64
+227 84 64
+228 84 64
+229 84 64
+230 84 64
+231 84 64
+232 84 64
+233 84 64
+234 84 64
+235 84 64
+236 84 64
+237 84 64
+238 84 64
+239 84 64
+240 84 64
+241 84 64
+242 84 64
+243 84 64
+244 84 64
+245 84 64
+246 84 64
+247 84 64
+248 84 64
+249 84 64
+250 84 64
+251 84 64
+252 84 64
+253 84 64
+254 84 64
+255 84 64
+0 83 64
+1 83 64
+2 83 64
+3 83 64
+4 83 64
+5 83 64
+6 83 64
+7 83 64
+8 83 64
+9 83 64
+10 83 64
+11 83 64
+12 83 64
+13 83 64
+14 83 64
+15 83 64
+16 83 64
+17 83 64
+18 83 64
+19 83 64
+20 83 64
+21 83 64
+22 83 64
+23 83 64
+24 83 64
+25 83 64
+26 83 64
+27 83 64
+28 83 64
+29 83 64
+30 83 64
+31 83 64
+32 83 64
+33 83 64
+34 83 64
+35 83 64
+36 83 64
+37 83 64
+38 83 64
+39 83 64
+40 83 64
+41 83 64
+42 83 64
+43 83 64
+44 83 64
+45 83 64
+46 83 64
+47 83 64
+48 83 64
+49 83 64
+50 83 64
+51 83 64
+52 83 64
+53 83 64
+54 83 64
+55 83 64
+56 83 64
+57 83 64
+58 83 64
+59 83 64
+60 83 64
+61 83 64
+62 83 64
+63 83 64
+64 83 64
+65 83 64
+66 83 64
+67 83 64
+68 83 64
+69 83 64
+70 83 64
+71 83 64
+72 83 64
+73 83 64
+74 83 64
+75 83 64
+76 83 64
+77 83 64
+78 83 64
+79 83 64
+80 83 64
+81 83 64
+82 83 64
+83 83 64
+84 83 64
+85 83 64
+86 83 64
+87 83 64
+88 83 64
+89 83 64
+90 83 64
+91 83 64
+92 83 64
+93 83 64
+94 83 64
+95 83 64
+96 83 64
+97 83 64
+98 83 64
+99 83 64
+100 83 64
+101 83 64
+102 83 64
+103 83 64
+104 83 64
+105 83 64
+106 83 64
+107 83 64
+108 83 64
+109 83 64
+110 83 64
+111 83 64
+112 83 64
+113 83 64
+114 83 64
+115 83 64
+116 83 64
+117 83 64
+118 83 64
+119 83 64
+120 83 64
+121 83 64
+122 83 64
+123 83 64
+124 83 64
+125 83 64
+126 83 64
+127 83 64
+128 83 64
+129 83 64
+130 83 64
+131 83 64
+132 83 64
+133 83 64
+134 83 64
+135 83 64
+136 83 64
+137 83 64
+138 83 64
+139 83 64
+140 83 64
+141 83 64
+142 83 64
+143 83 64
+144 83 64
+145 83 64
+146 83 64
+147 83 64
+148 83 64
+149 83 64
+150 83 64
+151 83 64
+152 83 64
+153 83 64
+154 83 64
+155 83 64
+156 83 64
+157 83 64
+158 83 64
+159 83 64
+160 83 64
+161 83 64
+162 83 64
+163 83 64
+164 83 64
+165 83 64
+166 83 64
+167 83 64
+168 83 64
+169 83 64
+170 83 64
+171 83 64
+172 83 64
+173 83 64
+174 83 64
+175 83 64
+176 83 64
+177 83 64
+178 83 64
+179 83 64
+180 83 64
+181 83 64
+182 83 64
+183 83 64
+184 83 64
+185 83 64
+186 83 64
+187 83 64
+188 83 64
+189 83 64
+190 83 64
+191 83 64
+192 83 64
+193 83 64
+194 83 64
+195 83 64
+196 83 64
+197 83 64
+198 83 64
+199 83 64
+200 83 64
+201 83 64
+202 83 64
+203 83 64
+204 83 64
+205 83 64
+206 83 64
+207 83 64
+208 83 64
+209 83 64
+210 83 64
+211 83 64
+212 83 64
+213 83 64
+214 83 64
+215 83 64
+216 83 64
+217 83 64
+218 83 64
+219 83 64
+220 83 64
+221 83 64
+222 83 64
+223 83 64
+224 83 64
+225 83 64
+226 83 64
+227 83 64
+228 83 64
+229 83 64
+230 83 64
+231 83 64
+232 83 64
+233 83 64
+234 83 64
+235 83 64
+236 83 64
+237 83 64
+238 83 64
+239 83 64
+240 83 64
+241 83 64
+242 83 64
+243 83 64
+244 83 64
+245 83 64
+246 83 64
+247 83 64
+248 83 64
+249 83 64
+250 83 64
+251 83 64
+252 83 64
+253 83 64
+254 83 64
+255 83 64
+0 82 64
+1 82 64
+2 82 64
+3 82 64
+4 82 64
+5 82 64
+6 82 64
+7 82 64
+8 82 64
+9 82 64
+10 82 64
+11 82 64
+12 82 64
+13 82 64
+14 82 64
+15 82 64
+16 82 64
+17 82 64
+18 82 64
+19 82 64
+20 82 64
+21 82 64
+22 82 64
+23 82 64
+24 82 64
+25 82 64
+26 82 64
+27 82 64
+28 82 64
+29 82 64
+30 82 64
+31 82 64
+32 82 64
+33 82 64
+34 82 64
+35 82 64
+36 82 64
+37 82 64
+38 82 64
+39 82 64
+40 82 64
+41 82 64
+42 82 64
+43 82 64
+44 82 64
+45 82 64
+46 82 64
+47 82 64
+48 82 64
+49 82 64
+50 82 64
+51 82 64
+52 82 64
+53 82 64
+54 82 64
+55 82 64
+56 82 64
+57 82 64
+58 82 64
+59 82 64
+60 82 64
+61 82 64
+62 82 64
+63 82 64
+64 82 64
+65 82 64
+66 82 64
+67 82 64
+68 82 64
+69 82 64
+70 82 64
+71 82 64
+72 82 64
+73 82 64
+74 82 64
+75 82 64
+76 82 64
+77 82 64
+78 82 64
+79 82 64
+80 82 64
+81 82 64
+82 82 64
+83 82 64
+84 82 64
+85 82 64
+86 82 64
+87 82 64
+88 82 64
+89 82 64
+90 82 64
+91 82 64
+92 82 64
+93 82 64
+94 82 64
+95 82 64
+96 82 64
+97 82 64
+98 82 64
+99 82 64
+100 82 64
+101 82 64
+102 82 64
+103 82 64
+104 82 64
+105 82 64
+106 82 64
+107 82 64
+108 82 64
+109 82 64
+110 82 64
+111 82 64
+112 82 64
+113 82 64
+114 82 64
+115 82 64
+116 82 64
+117 82 64
+118 82 64
+119 82 64
+120 82 64
+121 82 64
+122 82 64
+123 82 64
+124 82 64
+125 82 64
+126 82 64
+127 82 64
+128 82 64
+129 82 64
+130 82 64
+131 82 64
+132 82 64
+133 82 64
+134 82 64
+135 82 64
+136 82 64
+137 82 64
+138 82 64
+139 82 64
+140 82 64
+141 82 64
+142 82 64
+143 82 64
+144 82 64
+145 82 64
+146 82 64
+147 82 64
+148 82 64
+149 82 64
+150 82 64
+151 82 64
+152 82 64
+153 82 64
+154 82 64
+155 82 64
+156 82 64
+157 82 64
+158 82 64
+159 82 64
+160 82 64
+161 82 64
+162 82 64
+163 82 64
+164 82 64
+165 82 64
+166 82 64
+167 82 64
+168 82 64
+169 82 64
+170 82 64
+171 82 64
+172 82 64
+173 82 64
+174 82 64
+175 82 64
+176 82 64
+177 82 64
+178 82 64
+179 82 64
+180 82 64
+181 82 64
+182 82 64
+183 82 64
+184 82 64
+185 82 64
+186 82 64
+187 82 64
+188 82 64
+189 82 64
+190 82 64
+191 82 64
+192 82 64
+193 82 64
+194 82 64
+195 82 64
+196 82 64
+197 82 64
+198 82 64
+199 82 64
+200 82 64
+201 82 64
+202 82 64
+203 82 64
+204 82 64
+205 82 64
+206 82 64
+207 82 64
+208 82 64
+209 82 64
+210 82 64
+211 82 64
+212 82 64
+213 82 64
+214 82 64
+215 82 64
+216 82 64
+217 82 64
+218 82 64
+219 82 64
+220 82 64
+221 82 64
+222 82 64
+223 82 64
+224 82 64
+225 82 64
+226 82 64
+227 82 64
+228 82 64
+229 82 64
+230 82 64
+231 82 64
+232 82 64
+233 82 64
+234 82 64
+235 82 64
+236 82 64
+237 82 64
+238 82 64
+239 82 64
+240 82 64
+241 82 64
+242 82 64
+243 82 64
+244 82 64
+245 82 64
+246 82 64
+247 82 64
+248 82 64
+249 82 64
+250 82 64
+251 82 64
+252 82 64
+253 82 64
+254 82 64
+255 82 64
+0 81 64
+1 81 64
+2 81 64
+3 81 64
+4 81 64
+5 81 64
+6 81 64
+7 81 64
+8 81 64
+9 81 64
+10 81 64
+11 81 64
+12 81 64
+13 81 64
+14 81 64
+15 81 64
+16 81 64
+17 81 64
+18 81 64
+19 81 64
+20 81 64
+21 81 64
+22 81 64
+23 81 64
+24 81 64
+25 81 64
+26 81 64
+27 81 64
+28 81 64
+29 81 64
+30 81 64
+31 81 64
+32 81 64
+33 81 64
+34 81 64
+35 81 64
+36 81 64
+37 81 64
+38 81 64
+39 81 64
+40 81 64
+41 81 64
+42 81 64
+43 81 64
+44 81 64
+45 81 64
+46 81 64
+47 81 64
+48 81 64
+49 81 64
+50 81 64
+51 81 64
+52 81 64
+53 81 64
+54 81 64
+55 81 64
+56 81 64
+57 81 64
+58 81 64
+59 81 64
+60 81 64
+61 81 64
+62 81 64
+63 81 64
+64 81 64
+65 81 64
+66 81 64
+67 81 64
+68 81 64
+69 81 64
+70 81 64
+71 81 64
+72 81 64
+73 81 64
+74 81 64
+75 81 64
+76 81 64
+77 81 64
+78 81 64
+79 81 64
+80 81 64
+81 81 64
+82 81 64
+83 81 64
+84 81 64
+85 81 64
+86 81 64
+87 81 64
+88 81 64
+89 81 64
+90 81 64
+91 81 64
+92 81 64
+93 81 64
+94 81 64
+95 81 64
+96 81 64
+97 81 64
+98 81 64
+99 81 64
+100 81 64
+101 81 64
+102 81 64
+103 81 64
+104 81 64
+105 81 64
+106 81 64
+107 81 64
+108 81 64
+109 81 64
+110 81 64
+111 81 64
+112 81 64
+113 81 64
+114 81 64
+115 81 64
+116 81 64
+117 81 64
+118 81 64
+119 81 64
+120 81 64
+121 81 64
+122 81 64
+123 81 64
+124 81 64
+125 81 64
+126 81 64
+127 81 64
+128 81 64
+129 81 64
+130 81 64
+131 81 64
+132 81 64
+133 81 64
+134 81 64
+135 81 64
+136 81 64
+137 81 64
+138 81 64
+139 81 64
+140 81 64
+141 81 64
+142 81 64
+143 81 64
+144 81 64
+145 81 64
+146 81 64
+147 81 64
+148 81 64
+149 81 64
+150 81 64
+151 81 64
+152 81 64
+153 81 64
+154 81 64
+155 81 64
+156 81 64
+157 81 64
+158 81 64
+159 81 64
+160 81 64
+161 81 64
+162 81 64
+163 81 64
+164 81 64
+165 81 64
+166 81 64
+167 81 64
+168 81 64
+169 81 64
+170 81 64
+171 81 64
+172 81 64
+173 81 64
+174 81 64
+175 81 64
+176 81 64
+177 81 64
+178 81 64
+179 81 64
+180 81 64
+181 81 64
+182 81 64
+183 81 64
+184 81 64
+185 81 64
+186 81 64
+187 81 64
+188 81 64
+189 81 64
+190 81 64
+191 81 64
+192 81 64
+193 81 64
+194 81 64
+195 81 64
+196 81 64
+197 81 64
+198 81 64
+199 81 64
+200 81 64
+201 81 64
+202 81 64
+203 81 64
+204 81 64
+205 81 64
+206 81 64
+207 81 64
+208 81 64
+209 81 64
+210 81 64
+211 81 64
+212 81 64
+213 81 64
+214 81 64
+215 81 64
+216 81 64
+217 81 64
+218 81 64
+219 81 64
+220 81 64
+221 81 64
+222 81 64
+223 81 64
+224 81 64
+225 81 64
+226 81 64
+227 81 64
+228 81 64
+229 81 64
+230 81 64
+231 81 64
+232 81 64
+233 81 64
+234 81 64
+235 81 64
+236 81 64
+237 81 64
+238 81 64
+239 81 64
+240 81 64
+241 81 64
+242 81 64
+243 81 64
+244 81 64
+245 81 64
+246 81 64
+247 81 64
+248 81 64
+249 81 64
+250 81 64
+251 81 64
+252 81 64
+253 81 64
+254 81 64
+255 81 64
+0 80 64
+1 80 64
+2 80 64
+3 80 64
+4 80 64
+5 80 64
+6 80 64
+7 80 64
+8 80 64
+9 80 64
+10 80 64
+11 80 64
+12 80 64
+13 80 64
+14 80 64
+15 80 64
+16 80 64
+17 80 64
+18 80 64
+19 80 64
+20 80 64
+21 80 64
+22 80 64
+23 80 64
+24 80 64
+25 80 64
+26 80 64
+27 80 64
+28 80 64
+29 80 64
+30 80 64
+31 80 64
+32 80 64
+33 80 64
+34 80 64
+35 80 64
+36 80 64
+37 80 64
+38 80 64
+39 80 64
+40 80 64
+41 80 64
+42 80 64
+43 80 64
+44 80 64
+45 80 64
+46 80 64
+47 80 64
+48 80 64
+49 80 64
+50 80 64
+51 80 64
+52 80 64
+53 80 64
+54 80 64
+55 80 64
+56 80 64
+57 80 64
+58 80 64
+59 80 64
+60 80 64
+61 80 64
+62 80 64
+63 80 64
+64 80 64
+65 80 64
+66 80 64
+67 80 64
+68 80 64
+69 80 64
+70 80 64
+71 80 64
+72 80 64
+73 80 64
+74 80 64
+75 80 64
+76 80 64
+77 80 64
+78 80 64
+79 80 64
+80 80 64
+81 80 64
+82 80 64
+83 80 64
+84 80 64
+85 80 64
+86 80 64
+87 80 64
+88 80 64
+89 80 64
+90 80 64
+91 80 64
+92 80 64
+93 80 64
+94 80 64
+95 80 64
+96 80 64
+97 80 64
+98 80 64
+99 80 64
+100 80 64
+101 80 64
+102 80 64
+103 80 64
+104 80 64
+105 80 64
+106 80 64
+107 80 64
+108 80 64
+109 80 64
+110 80 64
+111 80 64
+112 80 64
+113 80 64
+114 80 64
+115 80 64
+116 80 64
+117 80 64
+118 80 64
+119 80 64
+120 80 64
+121 80 64
+122 80 64
+123 80 64
+124 80 64
+125 80 64
+126 80 64
+127 80 64
+128 80 64
+129 80 64
+130 80 64
+131 80 64
+132 80 64
+133 80 64
+134 80 64
+135 80 64
+136 80 64
+137 80 64
+138 80 64
+139 80 64
+140 80 64
+141 80 64
+142 80 64
+143 80 64
+144 80 64
+145 80 64
+146 80 64
+147 80 64
+148 80 64
+149 80 64
+150 80 64
+151 80 64
+152 80 64
+153 80 64
+154 80 64
+155 80 64
+156 80 64
+157 80 64
+158 80 64
+159 80 64
+160 80 64
+161 80 64
+162 80 64
+163 80 64
+164 80 64
+165 80 64
+166 80 64
+167 80 64
+168 80 64
+169 80 64
+170 80 64
+171 80 64
+172 80 64
+173 80 64
+174 80 64
+175 80 64
+176 80 64
+177 80 64
+178 80 64
+179 80 64
+180 80 64
+181 80 64
+182 80 64
+183 80 64
+184 80 64
+185 80 64
+186 80 64
+187 80 64
+188 80 64
+189 80 64
+190 80 64
+191 80 64
+192 80 64
+193 80 64
+194 80 64
+195 80 64
+196 80 64
+197 80 64
+198 80 64
+199 80 64
+200 80 64
+201 80 64
+202 80 64
+203 80 64
+204 80 64
+205 80 64
+206 80 64
+207 80 64
+208 80 64
+209 80 64
+210 80 64
+211 80 64
+212 80 64
+213 80 64
+214 80 64
+215 80 64
+216 80 64
+217 80 64
+218 80 64
+219 80 64
+220 80 64
+221 80 64
+222 80 64
+223 80 64
+224 80 64
+225 80 64
+226 80 64
+227 80 64
+228 80 64
+229 80 64
+230 80 64
+231 80 64
+232 80 64
+233 80 64
+234 80 64
+235 80 64
+236 80 64
+237 80 64
+238 80 64
+239 80 64
+240 80 64
+241 80 64
+242 80 64
+243 80 64
+244 80 64
+245 80 64
+246 80 64
+247 80 64
+248 80 64
+249 80 64
+250 80 64
+251 80 64
+252 80 64
+253 80 64
+254 80 64
+255 80 64
+0 79 64
+1 79 64
+2 79 64
+3 79 64
+4 79 64
+5 79 64
+6 79 64
+7 79 64
+8 79 64
+9 79 64
+10 79 64
+11 79 64
+12 79 64
+13 79 64
+14 79 64
+15 79 64
+16 79 64
+17 79 64
+18 79 64
+19 79 64
+20 79 64
+21 79 64
+22 79 64
+23 79 64
+24 79 64
+25 79 64
+26 79 64
+27 79 64
+28 79 64
+29 79 64
+30 79 64
+31 79 64
+32 79 64
+33 79 64
+34 79 64
+35 79 64
+36 79 64
+37 79 64
+38 79 64
+39 79 64
+40 79 64
+41 79 64
+42 79 64
+43 79 64
+44 79 64
+45 79 64
+46 79 64
+47 79 64
+48 79 64
+49 79 64
+50 79 64
+51 79 64
+52 79 64
+53 79 64
+54 79 64
+55 79 64
+56 79 64
+57 79 64
+58 79 64
+59 79 64
+60 79 64
+61 79 64
+62 79 64
+63 79 64
+64 79 64
+65 79 64
+66 79 64
+67 79 64
+68 79 64
+69 79 64
+70 79 64
+71 79 64
+72 79 64
+73 79 64
+74 79 64
+75 79 64
+76 79 64
+77 79 64
+78 79 64
+79 79 64
+80 79 64
+81 79 64
+82 79 64
+83 79 64
+84 79 64
+85 79 64
+86 79 64
+87 79 64
+88 79 64
+89 79 64
+90 79 64
+91 79 64
+92 79 64
+93 79 64
+94 79 64
+95 79 64
+96 79 64
+97 79 64
+98 79 64
+99 79 64
+100 79 64
+101 79 64
+102 79 64
+103 79 64
+104 79 64
+105 79 64
+106 79 64
+107 79 64
+108 79 64
+109 79 64
+110 79 64
+111 79 64
+112 79 64
+113 79 64
+114 79 64
+115 79 64
+116 79 64
+117 79 64
+118 79 64
+119 79 64
+120 79 64
+121 79 64
+122 79 64
+123 79 64
+124 79 64
+125 79 64
+126 79 64
+127 79 64
+128 79 64
+129 79 64
+130 79 64
+131 79 64
+132 79 64
+133 79 64
+134 79 64
+135 79 64
+136 79 64
+137 79 64
+138 79 64
+139 79 64
+140 79 64
+141 79 64
+142 79 64
+143 79 64
+144 79 64
+145 79 64
+146 79 64
+147 79 64
+148 79 64
+149 79 64
+150 79 64
+151 79 64
+152 79 64
+153 79 64
+154 79 64
+155 79 64
+156 79 64
+157 79 64
+158 79 64
+159 79 64
+160 79 64
+161 79 64
+162 79 64
+163 79 64
+164 79 64
+165 79 64
+166 79 64
+167 79 64
+168 79 64
+169 79 64
+170 79 64
+171 79 64
+172 79 64
+173 79 64
+174 79 64
+175 79 64
+176 79 64
+177 79 64
+178 79 64
+179 79 64
+180 79 64
+181 79 64
+182 79 64
+183 79 64
+184 79 64
+185 79 64
+186 79 64
+187 79 64
+188 79 64
+189 79 64
+190 79 64
+191 79 64
+192 79 64
+193 79 64
+194 79 64
+195 79 64
+196 79 64
+197 79 64
+198 79 64
+199 79 64
+200 79 64
+201 79 64
+202 79 64
+203 79 64
+204 79 64
+205 79 64
+206 79 64
+207 79 64
+208 79 64
+209 79 64
+210 79 64
+211 79 64
+212 79 64
+213 79 64
+214 79 64
+215 79 64
+216 79 64
+217 79 64
+218 79 64
+219 79 64
+220 79 64
+221 79 64
+222 79 64
+223 79 64
+224 79 64
+225 79 64
+226 79 64
+227 79 64
+228 79 64
+229 79 64
+230 79 64
+231 79 64
+232 79 64
+233 79 64
+234 79 64
+235 79 64
+236 79 64
+237 79 64
+238 79 64
+239 79 64
+240 79 64
+241 79 64
+242 79 64
+243 79 64
+244 79 64
+245 79 64
+246 79 64
+247 79 64
+248 79 64
+249 79 64
+250 79 64
+251 79 64
+252 79 64
+253 79 64
+254 79 64
+255 79 64
+0 78 64
+1 78 64
+2 78 64
+3 78 64
+4 78 64
+5 78 64
+6 78 64
+7 78 64
+8 78 64
+9 78 64
+10 78 64
+11 78 64
+12 78 64
+13 78 64
+14 78 64
+15 78 64
+16 78 64
+17 78 64
+18 78 64
+19 78 64
+20 78 64
+21 78 64
+22 78 64
+23 78 64
+24 78 64
+25 78 64
+26 78 64
+27 78 64
+28 78 64
+29 78 64
+30 78 64
+31 78 64
+32 78 64
+33 78 64
+34 78 64
+35 78 64
+36 78 64
+37 78 64
+38 78 64
+39 78 64
+40 78 64
+41 78 64
+42 78 64
+43 78 64
+44 78 64
+45 78 64
+46 78 64
+47 78 64
+48 78 64
+49 78 64
+50 78 64
+51 78 64
+52 78 64
+53 78 64
+54 78 64
+55 78 64
+56 78 64
+57 78 64
+58 78 64
+59 78 64
+60 78 64
+61 78 64
+62 78 64
+63 78 64
+64 78 64
+65 78 64
+66 78 64
+67 78 64
+68 78 64
+69 78 64
+70 78 64
+71 78 64
+72 78 64
+73 78 64
+74 78 64
+75 78 64
+76 78 64
+77 78 64
+78 78 64
+79 78 64
+80 78 64
+81 78 64
+82 78 64
+83 78 64
+84 78 64
+85 78 64
+86 78 64
+87 78 64
+88 78 64
+89 78 64
+90 78 64
+91 78 64
+92 78 64
+93 78 64
+94 78 64
+95 78 64
+96 78 64
+97 78 64
+98 78 64
+99 78 64
+100 78 64
+101 78 64
+102 78 64
+103 78 64
+104 78 64
+105 78 64
+106 78 64
+107 78 64
+108 78 64
+109 78 64
+110 78 64
+111 78 64
+112 78 64
+113 78 64
+114 78 64
+115 78 64
+116 78 64
+117 78 64
+118 78 64
+119 78 64
+120 78 64
+121 78 64
+122 78 64
+123 78 64
+124 78 64
+125 78 64
+126 78 64
+127 78 64
+128 78 64
+129 78 64
+130 78 64
+131 78 64
+132 78 64
+133 78 64
+134 78 64
+135 78 64
+136 78 64
+137 78 64
+138 78 64
+139 78 64
+140 78 64
+141 78 64
+142 78 64
+143 78 64
+144 78 64
+145 78 64
+146 78 64
+147 78 64
+148 78 64
+149 78 64
+150 78 64
+151 78 64
+152 78 64
+153 78 64
+154 78 64
+155 78 64
+156 78 64
+157 78 64
+158 78 64
+159 78 64
+160 78 64
+161 78 64
+162 78 64
+163 78 64
+164 78 64
+165 78 64
+166 78 64
+167 78 64
+168 78 64
+169 78 64
+170 78 64
+171 78 64
+172 78 64
+173 78 64
+174 78 64
+175 78 64
+176 78 64
+177 78 64
+178 78 64
+179 78 64
+180 78 64
+181 78 64
+182 78 64
+183 78 64
+184 78 64
+185 78 64
+186 78 64
+187 78 64
+188 78 64
+189 78 64
+190 78 64
+191 78 64
+192 78 64
+193 78 64
+194 78 64
+195 78 64
+196 78 64
+197 78 64
+198 78 64
+199 78 64
+200 78 64
+201 78 64
+202 78 64
+203 78 64
+204 78 64
+205 78 64
+206 78 64
+207 78 64
+208 78 64
+209 78 64
+210 78 64
+211 78 64
+212 78 64
+213 78 64
+214 78 64
+215 78 64
+216 78 64
+217 78 64
+218 78 64
+219 78 64
+220 78 64
+221 78 64
+222 78 64
+223 78 64
+224 78 64
+225 78 64
+226 78 64
+227 78 64
+228 78 64
+229 78 64
+230 78 64
+231 78 64
+232 78 64
+233 78 64
+234 78 64
+235 78 64
+236 78 64
+237 78 64
+238 78 64
+239 78 64
+240 78 64
+241 78 64
+242 78 64
+243 78 64
+244 78 64
+245 78 64
+246 78 64
+247 78 64
+248 78 64
+249 78 64
+250 78 64
+251 78 64
+252 78 64
+253 78 64
+254 78 64
+255 78 64
+0 77 64
+1 77 64
+2 77 64
+3 77 64
+4 77 64
+5 77 64
+6 77 64
+7 77 64
+8 77 64
+9 77 64
+10 77 64
+11 77 64
+12 77 64
+13 77 64
+14 77 64
+15 77 64
+16 77 64
+17 77 64
+18 77 64
+19 77 64
+20 77 64
+21 77 64
+22 77 64
+23 77 64
+24 77 64
+25 77 64
+26 77 64
+27 77 64
+28 77 64
+29 77 64
+30 77 64
+31 77 64
+32 77 64
+33 77 64
+34 77 64
+35 77 64
+36 77 64
+37 77 64
+38 77 64
+39 77 64
+40 77 64
+41 77 64
+42 77 64
+43 77 64
+44 77 64
+45 77 64
+46 77 64
+47 77 64
+48 77 64
+49 77 64
+50 77 64
+51 77 64
+52 77 64
+53 77 64
+54 77 64
+55 77 64
+56 77 64
+57 77 64
+58 77 64
+59 77 64
+60 77 64
+61 77 64
+62 77 64
+63 77 64
+64 77 64
+65 77 64
+66 77 64
+67 77 64
+68 77 64
+69 77 64
+70 77 64
+71 77 64
+72 77 64
+73 77 64
+74 77 64
+75 77 64
+76 77 64
+77 77 64
+78 77 64
+79 77 64
+80 77 64
+81 77 64
+82 77 64
+83 77 64
+84 77 64
+85 77 64
+86 77 64
+87 77 64
+88 77 64
+89 77 64
+90 77 64
+91 77 64
+92 77 64
+93 77 64
+94 77 64
+95 77 64
+96 77 64
+97 77 64
+98 77 64
+99 77 64
+100 77 64
+101 77 64
+102 77 64
+103 77 64
+104 77 64
+105 77 64
+106 77 64
+107 77 64
+108 77 64
+109 77 64
+110 77 64
+111 77 64
+112 77 64
+113 77 64
+114 77 64
+115 77 64
+116 77 64
+117 77 64
+118 77 64
+119 77 64
+120 77 64
+121 77 64
+122 77 64
+123 77 64
+124 77 64
+125 77 64
+126 77 64
+127 77 64
+128 77 64
+129 77 64
+130 77 64
+131 77 64
+132 77 64
+133 77 64
+134 77 64
+135 77 64
+136 77 64
+137 77 64
+138 77 64
+139 77 64
+140 77 64
+141 77 64
+142 77 64
+143 77 64
+144 77 64
+145 77 64
+146 77 64
+147 77 64
+148 77 64
+149 77 64
+150 77 64
+151 77 64
+152 77 64
+153 77 64
+154 77 64
+155 77 64
+156 77 64
+157 77 64
+158 77 64
+159 77 64
+160 77 64
+161 77 64
+162 77 64
+163 77 64
+164 77 64
+165 77 64
+166 77 64
+167 77 64
+168 77 64
+169 77 64
+170 77 64
+171 77 64
+172 77 64
+173 77 64
+174 77 64
+175 77 64
+176 77 64
+177 77 64
+178 77 64
+179 77 64
+180 77 64
+181 77 64
+182 77 64
+183 77 64
+184 77 64
+185 77 64
+186 77 64
+187 77 64
+188 77 64
+189 77 64
+190 77 64
+191 77 64
+192 77 64
+193 77 64
+194 77 64
+195 77 64
+196 77 64
+197 77 64
+198 77 64
+199 77 64
+200 77 64
+201 77 64
+202 77 64
+203 77 64
+204 77 64
+205 77 64
+206 77 64
+207 77 64
+208 77 64
+209 77 64
+210 77 64
+211 77 64
+212 77 64
+213 77 64
+214 77 64
+215 77 64
+216 77 64
+217 77 64
+218 77 64
+219 77 64
+220 77 64
+221 77 64
+222 77 64
+223 77 64
+224 77 64
+225 77 64
+226 77 64
+227 77 64
+228 77 64
+229 77 64
+230 77 64
+231 77 64
+232 77 64
+233 77 64
+234 77 64
+235 77 64
+236 77 64
+237 77 64
+238 77 64
+239 77 64
+240 77 64
+241 77 64
+242 77 64
+243 77 64
+244 77 64
+245 77 64
+246 77 64
+247 77 64
+248 77 64
+249 77 64
+250 77 64
+251 77 64
+252 77 64
+253 77 64
+254 77 64
+255 77 64
+0 76 64
+1 76 64
+2 76 64
+3 76 64
+4 76 64
+5 76 64
+6 76 64
+7 76 64
+8 76 64
+9 76 64
+10 76 64
+11 76 64
+12 76 64
+13 76 64
+14 76 64
+15 76 64
+16 76 64
+17 76 64
+18 76 64
+19 76 64
+20 76 64
+21 76 64
+22 76 64
+23 76 64
+24 76 64
+25 76 64
+26 76 64
+27 76 64
+28 76 64
+29 76 64
+30 76 64
+31 76 64
+32 76 64
+33 76 64
+34 76 64
+35 76 64
+36 76 64
+37 76 64
+38 76 64
+39 76 64
+40 76 64
+41 76 64
+42 76 64
+43 76 64
+44 76 64
+45 76 64
+46 76 64
+47 76 64
+48 76 64
+49 76 64
+50 76 64
+51 76 64
+52 76 64
+53 76 64
+54 76 64
+55 76 64
+56 76 64
+57 76 64
+58 76 64
+59 76 64
+60 76 64
+61 76 64
+62 76 64
+63 76 64
+64 76 64
+65 76 64
+66 76 64
+67 76 64
+68 76 64
+69 76 64
+70 76 64
+71 76 64
+72 76 64
+73 76 64
+74 76 64
+75 76 64
+76 76 64
+77 76 64
+78 76 64
+79 76 64
+80 76 64
+81 76 64
+82 76 64
+83 76 64
+84 76 64
+85 76 64
+86 76 64
+87 76 64
+88 76 64
+89 76 64
+90 76 64
+91 76 64
+92 76 64
+93 76 64
+94 76 64
+95 76 64
+96 76 64
+97 76 64
+98 76 64
+99 76 64
+100 76 64
+101 76 64
+102 76 64
+103 76 64
+104 76 64
+105 76 64
+106 76 64
+107 76 64
+108 76 64
+109 76 64
+110 76 64
+111 76 64
+112 76 64
+113 76 64
+114 76 64
+115 76 64
+116 76 64
+117 76 64
+118 76 64
+119 76 64
+120 76 64
+121 76 64
+122 76 64
+123 76 64
+124 76 64
+125 76 64
+126 76 64
+127 76 64
+128 76 64
+129 76 64
+130 76 64
+131 76 64
+132 76 64
+133 76 64
+134 76 64
+135 76 64
+136 76 64
+137 76 64
+138 76 64
+139 76 64
+140 76 64
+141 76 64
+142 76 64
+143 76 64
+144 76 64
+145 76 64
+146 76 64
+147 76 64
+148 76 64
+149 76 64
+150 76 64
+151 76 64
+152 76 64
+153 76 64
+154 76 64
+155 76 64
+156 76 64
+157 76 64
+158 76 64
+159 76 64
+160 76 64
+161 76 64
+162 76 64
+163 76 64
+164 76 64
+165 76 64
+166 76 64
+167 76 64
+168 76 64
+169 76 64
+170 76 64
+171 76 64
+172 76 64
+173 76 64
+174 76 64
+175 76 64
+176 76 64
+177 76 64
+178 76 64
+179 76 64
+180 76 64
+181 76 64
+182 76 64
+183 76 64
+184 76 64
+185 76 64
+186 76 64
+187 76 64
+188 76 64
+189 76 64
+190 76 64
+191 76 64
+192 76 64
+193 76 64
+194 76 64
+195 76 64
+196 76 64
+197 76 64
+198 76 64
+199 76 64
+200 76 64
+201 76 64
+202 76 64
+203 76 64
+204 76 64
+205 76 64
+206 76 64
+207 76 64
+208 76 64
+209 76 64
+210 76 64
+211 76 64
+212 76 64
+213 76 64
+214 76 64
+215 76 64
+216 76 64
+217 76 64
+218 76 64
+219 76 64
+220 76 64
+221 76 64
+222 76 64
+223 76 64
+224 76 64
+225 76 64
+226 76 64
+227 76 64
+228 76 64
+229 76 64
+230 76 64
+231 76 64
+232 76 64
+233 76 64
+234 76 64
+235 76 64
+236 76 64
+237 76 64
+238 76 64
+239 76 64
+240 76 64
+241 76 64
+242 76 64
+243 76 64
+244 76 64
+245 76 64
+246 76 64
+247 76 64
+248 76 64
+249 76 64
+250 76 64
+251 76 64
+252 76 64
+253 76 64
+254 76 64
+255 76 64
+0 75 64
+1 75 64
+2 75 64
+3 75 64
+4 75 64
+5 75 64
+6 75 64
+7 75 64
+8 75 64
+9 75 64
+10 75 64
+11 75 64
+12 75 64
+13 75 64
+14 75 64
+15 75 64
+16 75 64
+17 75 64
+18 75 64
+19 75 64
+20 75 64
+21 75 64
+22 75 64
+23 75 64
+24 75 64
+25 75 64
+26 75 64
+27 75 64
+28 75 64
+29 75 64
+30 75 64
+31 75 64
+32 75 64
+33 75 64
+34 75 64
+35 75 64
+36 75 64
+37 75 64
+38 75 64
+39 75 64
+40 75 64
+41 75 64
+42 75 64
+43 75 64
+44 75 64
+45 75 64
+46 75 64
+47 75 64
+48 75 64
+49 75 64
+50 75 64
+51 75 64
+52 75 64
+53 75 64
+54 75 64
+55 75 64
+56 75 64
+57 75 64
+58 75 64
+59 75 64
+60 75 64
+61 75 64
+62 75 64
+63 75 64
+64 75 64
+65 75 64
+66 75 64
+67 75 64
+68 75 64
+69 75 64
+70 75 64
+71 75 64
+72 75 64
+73 75 64
+74 75 64
+75 75 64
+76 75 64
+77 75 64
+78 75 64
+79 75 64
+80 75 64
+81 75 64
+82 75 64
+83 75 64
+84 75 64
+85 75 64
+86 75 64
+87 75 64
+88 75 64
+89 75 64
+90 75 64
+91 75 64
+92 75 64
+93 75 64
+94 75 64
+95 75 64
+96 75 64
+97 75 64
+98 75 64
+99 75 64
+100 75 64
+101 75 64
+102 75 64
+103 75 64
+104 75 64
+105 75 64
+106 75 64
+107 75 64
+108 75 64
+109 75 64
+110 75 64
+111 75 64
+112 75 64
+113 75 64
+114 75 64
+115 75 64
+116 75 64
+117 75 64
+118 75 64
+119 75 64
+120 75 64
+121 75 64
+122 75 64
+123 75 64
+124 75 64
+125 75 64
+126 75 64
+127 75 64
+128 75 64
+129 75 64
+130 75 64
+131 75 64
+132 75 64
+133 75 64
+134 75 64
+135 75 64
+136 75 64
+137 75 64
+138 75 64
+139 75 64
+140 75 64
+141 75 64
+142 75 64
+143 75 64
+144 75 64
+145 75 64
+146 75 64
+147 75 64
+148 75 64
+149 75 64
+150 75 64
+151 75 64
+152 75 64
+153 75 64
+154 75 64
+155 75 64
+156 75 64
+157 75 64
+158 75 64
+159 75 64
+160 75 64
+161 75 64
+162 75 64
+163 75 64
+164 75 64
+165 75 64
+166 75 64
+167 75 64
+168 75 64
+169 75 64
+170 75 64
+171 75 64
+172 75 64
+173 75 64
+174 75 64
+175 75 64
+176 75 64
+177 75 64
+178 75 64
+179 75 64
+180 75 64
+181 75 64
+182 75 64
+183 75 64
+184 75 64
+185 75 64
+186 75 64
+187 75 64
+188 75 64
+189 75 64
+190 75 64
+191 75 64
+192 75 64
+193 75 64
+194 75 64
+195 75 64
+196 75 64
+197 75 64
+198 75 64
+199 75 64
+200 75 64
+201 75 64
+202 75 64
+203 75 64
+204 75 64
+205 75 64
+206 75 64
+207 75 64
+208 75 64
+209 75 64
+210 75 64
+211 75 64
+212 75 64
+213 75 64
+214 75 64
+215 75 64
+216 75 64
+217 75 64
+218 75 64
+219 75 64
+220 75 64
+221 75 64
+222 75 64
+223 75 64
+224 75 64
+225 75 64
+226 75 64
+227 75 64
+228 75 64
+229 75 64
+230 75 64
+231 75 64
+232 75 64
+233 75 64
+234 75 64
+235 75 64
+236 75 64
+237 75 64
+238 75 64
+239 75 64
+240 75 64
+241 75 64
+242 75 64
+243 75 64
+244 75 64
+245 75 64
+246 75 64
+247 75 64
+248 75 64
+249 75 64
+250 75 64
+251 75 64
+252 75 64
+253 75 64
+254 75 64
+255 75 64
+0 74 64
+1 74 64
+2 74 64
+3 74 64
+4 74 64
+5 74 64
+6 74 64
+7 74 64
+8 74 64
+9 74 64
+10 74 64
+11 74 64
+12 74 64
+13 74 64
+14 74 64
+15 74 64
+16 74 64
+17 74 64
+18 74 64
+19 74 64
+20 74 64
+21 74 64
+22 74 64
+23 74 64
+24 74 64
+25 74 64
+26 74 64
+27 74 64
+28 74 64
+29 74 64
+30 74 64
+31 74 64
+32 74 64
+33 74 64
+34 74 64
+35 74 64
+36 74 64
+37 74 64
+38 74 64
+39 74 64
+40 74 64
+41 74 64
+42 74 64
+43 74 64
+44 74 64
+45 74 64
+46 74 64
+47 74 64
+48 74 64
+49 74 64
+50 74 64
+51 74 64
+52 74 64
+53 74 64
+54 74 64
+55 74 64
+56 74 64
+57 74 64
+58 74 64
+59 74 64
+60 74 64
+61 74 64
+62 74 64
+63 74 64
+64 74 64
+65 74 64
+66 74 64
+67 74 64
+68 74 64
+69 74 64
+70 74 64
+71 74 64
+72 74 64
+73 74 64
+74 74 64
+75 74 64
+76 74 64
+77 74 64
+78 74 64
+79 74 64
+80 74 64
+81 74 64
+82 74 64
+83 74 64
+84 74 64
+85 74 64
+86 74 64
+87 74 64
+88 74 64
+89 74 64
+90 74 64
+91 74 64
+92 74 64
+93 74 64
+94 74 64
+95 74 64
+96 74 64
+97 74 64
+98 74 64
+99 74 64
+100 74 64
+101 74 64
+102 74 64
+103 74 64
+104 74 64
+105 74 64
+106 74 64
+107 74 64
+108 74 64
+109 74 64
+110 74 64
+111 74 64
+112 74 64
+113 74 64
+114 74 64
+115 74 64
+116 74 64
+117 74 64
+118 74 64
+119 74 64
+120 74 64
+121 74 64
+122 74 64
+123 74 64
+124 74 64
+125 74 64
+126 74 64
+127 74 64
+128 74 64
+129 74 64
+130 74 64
+131 74 64
+132 74 64
+133 74 64
+134 74 64
+135 74 64
+136 74 64
+137 74 64
+138 74 64
+139 74 64
+140 74 64
+141 74 64
+142 74 64
+143 74 64
+144 74 64
+145 74 64
+146 74 64
+147 74 64
+148 74 64
+149 74 64
+150 74 64
+151 74 64
+152 74 64
+153 74 64
+154 74 64
+155 74 64
+156 74 64
+157 74 64
+158 74 64
+159 74 64
+160 74 64
+161 74 64
+162 74 64
+163 74 64
+164 74 64
+165 74 64
+166 74 64
+167 74 64
+168 74 64
+169 74 64
+170 74 64
+171 74 64
+172 74 64
+173 74 64
+174 74 64
+175 74 64
+176 74 64
+177 74 64
+178 74 64
+179 74 64
+180 74 64
+181 74 64
+182 74 64
+183 74 64
+184 74 64
+185 74 64
+186 74 64
+187 74 64
+188 74 64
+189 74 64
+190 74 64
+191 74 64
+192 74 64
+193 74 64
+194 74 64
+195 74 64
+196 74 64
+197 74 64
+198 74 64
+199 74 64
+200 74 64
+201 74 64
+202 74 64
+203 74 64
+204 74 64
+205 74 64
+206 74 64
+207 74 64
+208 74 64
+209 74 64
+210 74 64
+211 74 64
+212 74 64
+213 74 64
+214 74 64
+215 74 64
+216 74 64
+217 74 64
+218 74 64
+219 74 64
+220 74 64
+221 74 64
+222 74 64
+223 74 64
+224 74 64
+225 74 64
+226 74 64
+227 74 64
+228 74 64
+229 74 64
+230 74 64
+231 74 64
+232 74 64
+233 74 64
+234 74 64
+235 74 64
+236 74 64
+237 74 64
+238 74 64
+239 74 64
+240 74 64
+241 74 64
+242 74 64
+243 74 64
+244 74 64
+245 74 64
+246 74 64
+247 74 64
+248 74 64
+249 74 64
+250 74 64
+251 74 64
+252 74 64
+253 74 64
+254 74 64
+255 74 64
+0 73 64
+1 73 64
+2 73 64
+3 73 64
+4 73 64
+5 73 64
+6 73 64
+7 73 64
+8 73 64
+9 73 64
+10 73 64
+11 73 64
+12 73 64
+13 73 64
+14 73 64
+15 73 64
+16 73 64
+17 73 64
+18 73 64
+19 73 64
+20 73 64
+21 73 64
+22 73 64
+23 73 64
+24 73 64
+25 73 64
+26 73 64
+27 73 64
+28 73 64
+29 73 64
+30 73 64
+31 73 64
+32 73 64
+33 73 64
+34 73 64
+35 73 64
+36 73 64
+37 73 64
+38 73 64
+39 73 64
+40 73 64
+41 73 64
+42 73 64
+43 73 64
+44 73 64
+45 73 64
+46 73 64
+47 73 64
+48 73 64
+49 73 64
+50 73 64
+51 73 64
+52 73 64
+53 73 64
+54 73 64
+55 73 64
+56 73 64
+57 73 64
+58 73 64
+59 73 64
+60 73 64
+61 73 64
+62 73 64
+63 73 64
+64 73 64
+65 73 64
+66 73 64
+67 73 64
+68 73 64
+69 73 64
+70 73 64
+71 73 64
+72 73 64
+73 73 64
+74 73 64
+75 73 64
+76 73 64
+77 73 64
+78 73 64
+79 73 64
+80 73 64
+81 73 64
+82 73 64
+83 73 64
+84 73 64
+85 73 64
+86 73 64
+87 73 64
+88 73 64
+89 73 64
+90 73 64
+91 73 64
+92 73 64
+93 73 64
+94 73 64
+95 73 64
+96 73 64
+97 73 64
+98 73 64
+99 73 64
+100 73 64
+101 73 64
+102 73 64
+103 73 64
+104 73 64
+105 73 64
+106 73 64
+107 73 64
+108 73 64
+109 73 64
+110 73 64
+111 73 64
+112 73 64
+113 73 64
+114 73 64
+115 73 64
+116 73 64
+117 73 64
+118 73 64
+119 73 64
+120 73 64
+121 73 64
+122 73 64
+123 73 64
+124 73 64
+125 73 64
+126 73 64
+127 73 64
+128 73 64
+129 73 64
+130 73 64
+131 73 64
+132 73 64
+133 73 64
+134 73 64
+135 73 64
+136 73 64
+137 73 64
+138 73 64
+139 73 64
+140 73 64
+141 73 64
+142 73 64
+143 73 64
+144 73 64
+145 73 64
+146 73 64
+147 73 64
+148 73 64
+149 73 64
+150 73 64
+151 73 64
+152 73 64
+153 73 64
+154 73 64
+155 73 64
+156 73 64
+157 73 64
+158 73 64
+159 73 64
+160 73 64
+161 73 64
+162 73 64
+163 73 64
+164 73 64
+165 73 64
+166 73 64
+167 73 64
+168 73 64
+169 73 64
+170 73 64
+171 73 64
+172 73 64
+173 73 64
+174 73 64
+175 73 64
+176 73 64
+177 73 64
+178 73 64
+179 73 64
+180 73 64
+181 73 64
+182 73 64
+183 73 64
+184 73 64
+185 73 64
+186 73 64
+187 73 64
+188 73 64
+189 73 64
+190 73 64
+191 73 64
+192 73 64
+193 73 64
+194 73 64
+195 73 64
+196 73 64
+197 73 64
+198 73 64
+199 73 64
+200 73 64
+201 73 64
+202 73 64
+203 73 64
+204 73 64
+205 73 64
+206 73 64
+207 73 64
+208 73 64
+209 73 64
+210 73 64
+211 73 64
+212 73 64
+213 73 64
+214 73 64
+215 73 64
+216 73 64
+217 73 64
+218 73 64
+219 73 64
+220 73 64
+221 73 64
+222 73 64
+223 73 64
+224 73 64
+225 73 64
+226 73 64
+227 73 64
+228 73 64
+229 73 64
+230 73 64
+231 73 64
+232 73 64
+233 73 64
+234 73 64
+235 73 64
+236 73 64
+237 73 64
+238 73 64
+239 73 64
+240 73 64
+241 73 64
+242 73 64
+243 73 64
+244 73 64
+245 73 64
+246 73 64
+247 73 64
+248 73 64
+249 73 64
+250 73 64
+251 73 64
+252 73 64
+253 73 64
+254 73 64
+255 73 64
+0 72 64
+1 72 64
+2 72 64
+3 72 64
+4 72 64
+5 72 64
+6 72 64
+7 72 64
+8 72 64
+9 72 64
+10 72 64
+11 72 64
+12 72 64
+13 72 64
+14 72 64
+15 72 64
+16 72 64
+17 72 64
+18 72 64
+19 72 64
+20 72 64
+21 72 64
+22 72 64
+23 72 64
+24 72 64
+25 72 64
+26 72 64
+27 72 64
+28 72 64
+29 72 64
+30 72 64
+31 72 64
+32 72 64
+33 72 64
+34 72 64
+35 72 64
+36 72 64
+37 72 64
+38 72 64
+39 72 64
+40 72 64
+41 72 64
+42 72 64
+43 72 64
+44 72 64
+45 72 64
+46 72 64
+47 72 64
+48 72 64
+49 72 64
+50 72 64
+51 72 64
+52 72 64
+53 72 64
+54 72 64
+55 72 64
+56 72 64
+57 72 64
+58 72 64
+59 72 64
+60 72 64
+61 72 64
+62 72 64
+63 72 64
+64 72 64
+65 72 64
+66 72 64
+67 72 64
+68 72 64
+69 72 64
+70 72 64
+71 72 64
+72 72 64
+73 72 64
+74 72 64
+75 72 64
+76 72 64
+77 72 64
+78 72 64
+79 72 64
+80 72 64
+81 72 64
+82 72 64
+83 72 64
+84 72 64
+85 72 64
+86 72 64
+87 72 64
+88 72 64
+89 72 64
+90 72 64
+91 72 64
+92 72 64
+93 72 64
+94 72 64
+95 72 64
+96 72 64
+97 72 64
+98 72 64
+99 72 64
+100 72 64
+101 72 64
+102 72 64
+103 72 64
+104 72 64
+105 72 64
+106 72 64
+107 72 64
+108 72 64
+109 72 64
+110 72 64
+111 72 64
+112 72 64
+113 72 64
+114 72 64
+115 72 64
+116 72 64
+117 72 64
+118 72 64
+119 72 64
+120 72 64
+121 72 64
+122 72 64
+123 72 64
+124 72 64
+125 72 64
+126 72 64
+127 72 64
+128 72 64
+129 72 64
+130 72 64
+131 72 64
+132 72 64
+133 72 64
+134 72 64
+135 72 64
+136 72 64
+137 72 64
+138 72 64
+139 72 64
+140 72 64
+141 72 64
+142 72 64
+143 72 64
+144 72 64
+145 72 64
+146 72 64
+147 72 64
+148 72 64
+149 72 64
+150 72 64
+151 72 64
+152 72 64
+153 72 64
+154 72 64
+155 72 64
+156 72 64
+157 72 64
+158 72 64
+159 72 64
+160 72 64
+161 72 64
+162 72 64
+163 72 64
+164 72 64
+165 72 64
+166 72 64
+167 72 64
+168 72 64
+169 72 64
+170 72 64
+171 72 64
+172 72 64
+173 72 64
+174 72 64
+175 72 64
+176 72 64
+177 72 64
+178 72 64
+179 72 64
+180 72 64
+181 72 64
+182 72 64
+183 72 64
+184 72 64
+185 72 64
+186 72 64
+187 72 64
+188 72 64
+189 72 64
+190 72 64
+191 72 64
+192 72 64
+193 72 64
+194 72 64
+195 72 64
+196 72 64
+197 72 64
+198 72 64
+199 72 64
+200 72 64
+201 72 64
+202 72 64
+203 72 64
+204 72 64
+205 72 64
+206 72 64
+207 72 64
+208 72 64
+209 72 64
+210 72 64
+211 72 64
+212 72 64
+213 72 64
+214 72 64
+215 72 64
+216 72 64
+217 72 64
+218 72 64
+219 72 64
+220 72 64
+221 72 64
+222 72 64
+223 72 64
+224 72 64
+225 72 64
+226 72 64
+227 72 64
+228 72 64
+229 72 64
+230 72 64
+231 72 64
+232 72 64
+233 72 64
+234 72 64
+235 72 64
+236 72 64
+237 72 64
+238 72 64
+239 72 64
+240 72 64
+241 72 64
+242 72 64
+243 72 64
+244 72 64
+245 72 64
+246 72 64
+247 72 64
+248 72 64
+249 72 64
+250 72 64
+251 72 64
+252 72 64
+253 72 64
+254 72 64
+255 72 64
+0 71 64
+1 71 64
+2 71 64
+3 71 64
+4 71 64
+5 71 64
+6 71 64
+7 71 64
+8 71 64
+9 71 64
+10 71 64
+11 71 64
+12 71 64
+13 71 64
+14 71 64
+15 71 64
+16 71 64
+17 71 64
+18 71 64
+19 71 64
+20 71 64
+21 71 64
+22 71 64
+23 71 64
+24 71 64
+25 71 64
+26 71 64
+27 71 64
+28 71 64
+29 71 64
+30 71 64
+31 71 64
+32 71 64
+33 71 64
+34 71 64
+35 71 64
+36 71 64
+37 71 64
+38 71 64
+39 71 64
+40 71 64
+41 71 64
+42 71 64
+43 71 64
+44 71 64
+45 71 64
+46 71 64
+47 71 64
+48 71 64
+49 71 64
+50 71 64
+51 71 64
+52 71 64
+53 71 64
+54 71 64
+55 71 64
+56 71 64
+57 71 64
+58 71 64
+59 71 64
+60 71 64
+61 71 64
+62 71 64
+63 71 64
+64 71 64
+65 71 64
+66 71 64
+67 71 64
+68 71 64
+69 71 64
+70 71 64
+71 71 64
+72 71 64
+73 71 64
+74 71 64
+75 71 64
+76 71 64
+77 71 64
+78 71 64
+79 71 64
+80 71 64
+81 71 64
+82 71 64
+83 71 64
+84 71 64
+85 71 64
+86 71 64
+87 71 64
+88 71 64
+89 71 64
+90 71 64
+91 71 64
+92 71 64
+93 71 64
+94 71 64
+95 71 64
+96 71 64
+97 71 64
+98 71 64
+99 71 64
+100 71 64
+101 71 64
+102 71 64
+103 71 64
+104 71 64
+105 71 64
+106 71 64
+107 71 64
+108 71 64
+109 71 64
+110 71 64
+111 71 64
+112 71 64
+113 71 64
+114 71 64
+115 71 64
+116 71 64
+117 71 64
+118 71 64
+119 71 64
+120 71 64
+121 71 64
+122 71 64
+123 71 64
+124 71 64
+125 71 64
+126 71 64
+127 71 64
+128 71 64
+129 71 64
+130 71 64
+131 71 64
+132 71 64
+133 71 64
+134 71 64
+135 71 64
+136 71 64
+137 71 64
+138 71 64
+139 71 64
+140 71 64
+141 71 64
+142 71 64
+143 71 64
+144 71 64
+145 71 64
+146 71 64
+147 71 64
+148 71 64
+149 71 64
+150 71 64
+151 71 64
+152 71 64
+153 71 64
+154 71 64
+155 71 64
+156 71 64
+157 71 64
+158 71 64
+159 71 64
+160 71 64
+161 71 64
+162 71 64
+163 71 64
+164 71 64
+165 71 64
+166 71 64
+167 71 64
+168 71 64
+169 71 64
+170 71 64
+171 71 64
+172 71 64
+173 71 64
+174 71 64
+175 71 64
+176 71 64
+177 71 64
+178 71 64
+179 71 64
+180 71 64
+181 71 64
+182 71 64
+183 71 64
+184 71 64
+185 71 64
+186 71 64
+187 71 64
+188 71 64
+189 71 64
+190 71 64
+191 71 64
+192 71 64
+193 71 64
+194 71 64
+195 71 64
+196 71 64
+197 71 64
+198 71 64
+199 71 64
+200 71 64
+201 71 64
+202 71 64
+203 71 64
+204 71 64
+205 71 64
+206 71 64
+207 71 64
+208 71 64
+209 71 64
+210 71 64
+211 71 64
+212 71 64
+213 71 64
+214 71 64
+215 71 64
+216 71 64
+217 71 64
+218 71 64
+219 71 64
+220 71 64
+221 71 64
+222 71 64
+223 71 64
+224 71 64
+225 71 64
+226 71 64
+227 71 64
+228 71 64
+229 71 64
+230 71 64
+231 71 64
+232 71 64
+233 71 64
+234 71 64
+235 71 64
+236 71 64
+237 71 64
+238 71 64
+239 71 64
+240 71 64
+241 71 64
+242 71 64
+243 71 64
+244 71 64
+245 71 64
+246 71 64
+247 71 64
+248 71 64
+249 71 64
+250 71 64
+251 71 64
+252 71 64
+253 71 64
+254 71 64
+255 71 64
+0 70 64
+1 70 64
+2 70 64
+3 70 64
+4 70 64
+5 70 64
+6 70 64
+7 70 64
+8 70 64
+9 70 64
+10 70 64
+11 70 64
+12 70 64
+13 70 64
+14 70 64
+15 70 64
+16 70 64
+17 70 64
+18 70 64
+19 70 64
+20 70 64
+21 70 64
+22 70 64
+23 70 64
+24 70 64
+25 70 64
+26 70 64
+27 70 64
+28 70 64
+29 70 64
+30 70 64
+31 70 64
+32 70 64
+33 70 64
+34 70 64
+35 70 64
+36 70 64
+37 70 64
+38 70 64
+39 70 64
+40 70 64
+41 70 64
+42 70 64
+43 70 64
+44 70 64
+45 70 64
+46 70 64
+47 70 64
+48 70 64
+49 70 64
+50 70 64
+51 70 64
+52 70 64
+53 70 64
+54 70 64
+55 70 64
+56 70 64
+57 70 64
+58 70 64
+59 70 64
+60 70 64
+61 70 64
+62 70 64
+63 70 64
+64 70 64
+65 70 64
+66 70 64
+67 70 64
+68 70 64
+69 70 64
+70 70 64
+71 70 64
+72 70 64
+73 70 64
+74 70 64
+75 70 64
+76 70 64
+77 70 64
+78 70 64
+79 70 64
+80 70 64
+81 70 64
+82 70 64
+83 70 64
+84 70 64
+85 70 64
+86 70 64
+87 70 64
+88 70 64
+89 70 64
+90 70 64
+91 70 64
+92 70 64
+93 70 64
+94 70 64
+95 70 64
+96 70 64
+97 70 64
+98 70 64
+99 70 64
+100 70 64
+101 70 64
+102 70 64
+103 70 64
+104 70 64
+105 70 64
+106 70 64
+107 70 64
+108 70 64
+109 70 64
+110 70 64
+111 70 64
+112 70 64
+113 70 64
+114 70 64
+115 70 64
+116 70 64
+117 70 64
+118 70 64
+119 70 64
+120 70 64
+121 70 64
+122 70 64
+123 70 64
+124 70 64
+125 70 64
+126 70 64
+127 70 64
+128 70 64
+129 70 64
+130 70 64
+131 70 64
+132 70 64
+133 70 64
+134 70 64
+135 70 64
+136 70 64
+137 70 64
+138 70 64
+139 70 64
+140 70 64
+141 70 64
+142 70 64
+143 70 64
+144 70 64
+145 70 64
+146 70 64
+147 70 64
+148 70 64
+149 70 64
+150 70 64
+151 70 64
+152 70 64
+153 70 64
+154 70 64
+155 70 64
+156 70 64
+157 70 64
+158 70 64
+159 70 64
+160 70 64
+161 70 64
+162 70 64
+163 70 64
+164 70 64
+165 70 64
+166 70 64
+167 70 64
+168 70 64
+169 70 64
+170 70 64
+171 70 64
+172 70 64
+173 70 64
+174 70 64
+175 70 64
+176 70 64
+177 70 64
+178 70 64
+179 70 64
+180 70 64
+181 70 64
+182 70 64
+183 70 64
+184 70 64
+185 70 64
+186 70 64
+187 70 64
+188 70 64
+189 70 64
+190 70 64
+191 70 64
+192 70 64
+193 70 64
+194 70 64
+195 70 64
+196 70 64
+197 70 64
+198 70 64
+199 70 64
+200 70 64
+201 70 64
+202 70 64
+203 70 64
+204 70 64
+205 70 64
+206 70 64
+207 70 64
+208 70 64
+209 70 64
+210 70 64
+211 70 64
+212 70 64
+213 70 64
+214 70 64
+215 70 64
+216 70 64
+217 70 64
+218 70 64
+219 70 64
+220 70 64
+221 70 64
+222 70 64
+223 70 64
+224 70 64
+225 70 64
+226 70 64
+227 70 64
+228 70 64
+229 70 64
+230 70 64
+231 70 64
+232 70 64
+233 70 64
+234 70 64
+235 70 64
+236 70 64
+237 70 64
+238 70 64
+239 70 64
+240 70 64
+241 70 64
+242 70 64
+243 70 64
+244 70 64
+245 70 64
+246 70 64
+247 70 64
+248 70 64
+249 70 64
+250 70 64
+251 70 64
+252 70 64
+253 70 64
+254 70 64
+255 70 64
+0 69 64
+1 69 64
+2 69 64
+3 69 64
+4 69 64
+5 69 64
+6 69 64
+7 69 64
+8 69 64
+9 69 64
+10 69 64
+11 69 64
+12 69 64
+13 69 64
+14 69 64
+15 69 64
+16 69 64
+17 69 64
+18 69 64
+19 69 64
+20 69 64
+21 69 64
+22 69 64
+23 69 64
+24 69 64
+25 69 64
+26 69 64
+27 69 64
+28 69 64
+29 69 64
+30 69 64
+31 69 64
+32 69 64
+33 69 64
+34 69 64
+35 69 64
+36 69 64
+37 69 64
+38 69 64
+39 69 64
+40 69 64
+41 69 64
+42 69 64
+43 69 64
+44 69 64
+45 69 64
+46 69 64
+47 69 64
+48 69 64
+49 69 64
+50 69 64
+51 69 64
+52 69 64
+53 69 64
+54 69 64
+55 69 64
+56 69 64
+57 69 64
+58 69 64
+59 69 64
+60 69 64
+61 69 64
+62 69 64
+63 69 64
+64 69 64
+65 69 64
+66 69 64
+67 69 64
+68 69 64
+69 69 64
+70 69 64
+71 69 64
+72 69 64
+73 69 64
+74 69 64
+75 69 64
+76 69 64
+77 69 64
+78 69 64
+79 69 64
+80 69 64
+81 69 64
+82 69 64
+83 69 64
+84 69 64
+85 69 64
+86 69 64
+87 69 64
+88 69 64
+89 69 64
+90 69 64
+91 69 64
+92 69 64
+93 69 64
+94 69 64
+95 69 64
+96 69 64
+97 69 64
+98 69 64
+99 69 64
+100 69 64
+101 69 64
+102 69 64
+103 69 64
+104 69 64
+105 69 64
+106 69 64
+107 69 64
+108 69 64
+109 69 64
+110 69 64
+111 69 64
+112 69 64
+113 69 64
+114 69 64
+115 69 64
+116 69 64
+117 69 64
+118 69 64
+119 69 64
+120 69 64
+121 69 64
+122 69 64
+123 69 64
+124 69 64
+125 69 64
+126 69 64
+127 69 64
+128 69 64
+129 69 64
+130 69 64
+131 69 64
+132 69 64
+133 69 64
+134 69 64
+135 69 64
+136 69 64
+137 69 64
+138 69 64
+139 69 64
+140 69 64
+141 69 64
+142 69 64
+143 69 64
+144 69 64
+145 69 64
+146 69 64
+147 69 64
+148 69 64
+149 69 64
+150 69 64
+151 69 64
+152 69 64
+153 69 64
+154 69 64
+155 69 64
+156 69 64
+157 69 64
+158 69 64
+159 69 64
+160 69 64
+161 69 64
+162 69 64
+163 69 64
+164 69 64
+165 69 64
+166 69 64
+167 69 64
+168 69 64
+169 69 64
+170 69 64
+171 69 64
+172 69 64
+173 69 64
+174 69 64
+175 69 64
+176 69 64
+177 69 64
+178 69 64
+179 69 64
+180 69 64
+181 69 64
+182 69 64
+183 69 64
+184 69 64
+185 69 64
+186 69 64
+187 69 64
+188 69 64
+189 69 64
+190 69 64
+191 69 64
+192 69 64
+193 69 64
+194 69 64
+195 69 64
+196 69 64
+197 69 64
+198 69 64
+199 69 64
+200 69 64
+201 69 64
+202 69 64
+203 69 64
+204 69 64
+205 69 64
+206 69 64
+207 69 64
+208 69 64
+209 69 64
+210 69 64
+211 69 64
+212 69 64
+213 69 64
+214 69 64
+215 69 64
+216 69 64
+217 69 64
+218 69 64
+219 69 64
+220 69 64
+221 69 64
+222 69 64
+223 69 64
+224 69 64
+225 69 64
+226 69 64
+227 69 64
+228 69 64
+229 69 64
+230 69 64
+231 69 64
+232 69 64
+233 69 64
+234 69 64
+235 69 64
+236 69 64
+237 69 64
+238 69 64
+239 69 64
+240 69 64
+241 69 64
+242 69 64
+243 69 64
+244 69 64
+245 69 64
+246 69 64
+247 69 64
+248 69 64
+249 69 64
+250 69 64
+251 69 64
+252 69 64
+253 69 64
+254 69 64
+255 69 64
+0 68 64
+1 68 64
+2 68 64
+3 68 64
+4 68 64
+5 68 64
+6 68 64
+7 68 64
+8 68 64
+9 68 64
+10 68 64
+11 68 64
+12 68 64
+13 68 64
+14 68 64
+15 68 64
+16 68 64
+17 68 64
+18 68 64
+19 68 64
+20 68 64
+21 68 64
+22 68 64
+23 68 64
+24 68 64
+25 68 64
+26 68 64
+27 68 64
+28 68 64
+29 68 64
+30 68 64
+31 68 64
+32 68 64
+33 68 64
+34 68 64
+35 68 64
+36 68 64
+37 68 64
+38 68 64
+39 68 64
+40 68 64
+41 68 64
+42 68 64
+43 68 64
+44 68 64
+45 68 64
+46 68 64
+47 68 64
+48 68 64
+49 68 64
+50 68 64
+51 68 64
+52 68 64
+53 68 64
+54 68 64
+55 68 64
+56 68 64
+57 68 64
+58 68 64
+59 68 64
+60 68 64
+61 68 64
+62 68 64
+63 68 64
+64 68 64
+65 68 64
+66 68 64
+67 68 64
+68 68 64
+69 68 64
+70 68 64
+71 68 64
+72 68 64
+73 68 64
+74 68 64
+75 68 64
+76 68 64
+77 68 64
+78 68 64
+79 68 64
+80 68 64
+81 68 64
+82 68 64
+83 68 64
+84 68 64
+85 68 64
+86 68 64
+87 68 64
+88 68 64
+89 68 64
+90 68 64
+91 68 64
+92 68 64
+93 68 64
+94 68 64
+95 68 64
+96 68 64
+97 68 64
+98 68 64
+99 68 64
+100 68 64
+101 68 64
+102 68 64
+103 68 64
+104 68 64
+105 68 64
+106 68 64
+107 68 64
+108 68 64
+109 68 64
+110 68 64
+111 68 64
+112 68 64
+113 68 64
+114 68 64
+115 68 64
+116 68 64
+117 68 64
+118 68 64
+119 68 64
+120 68 64
+121 68 64
+122 68 64
+123 68 64
+124 68 64
+125 68 64
+126 68 64
+127 68 64
+128 68 64
+129 68 64
+130 68 64
+131 68 64
+132 68 64
+133 68 64
+134 68 64
+135 68 64
+136 68 64
+137 68 64
+138 68 64
+139 68 64
+140 68 64
+141 68 64
+142 68 64
+143 68 64
+144 68 64
+145 68 64
+146 68 64
+147 68 64
+148 68 64
+149 68 64
+150 68 64
+151 68 64
+152 68 64
+153 68 64
+154 68 64
+155 68 64
+156 68 64
+157 68 64
+158 68 64
+159 68 64
+160 68 64
+161 68 64
+162 68 64
+163 68 64
+164 68 64
+165 68 64
+166 68 64
+167 68 64
+168 68 64
+169 68 64
+170 68 64
+171 68 64
+172 68 64
+173 68 64
+174 68 64
+175 68 64
+176 68 64
+177 68 64
+178 68 64
+179 68 64
+180 68 64
+181 68 64
+182 68 64
+183 68 64
+184 68 64
+185 68 64
+186 68 64
+187 68 64
+188 68 64
+189 68 64
+190 68 64
+191 68 64
+192 68 64
+193 68 64
+194 68 64
+195 68 64
+196 68 64
+197 68 64
+198 68 64
+199 68 64
+200 68 64
+201 68 64
+202 68 64
+203 68 64
+204 68 64
+205 68 64
+206 68 64
+207 68 64
+208 68 64
+209 68 64
+210 68 64
+211 68 64
+212 68 64
+213 68 64
+214 68 64
+215 68 64
+216 68 64
+217 68 64
+218 68 64
+219 68 64
+220 68 64
+221 68 64
+222 68 64
+223 68 64
+224 68 64
+225 68 64
+226 68 64
+227 68 64
+228 68 64
+229 68 64
+230 68 64
+231 68 64
+232 68 64
+233 68 64
+234 68 64
+235 68 64
+236 68 64
+237 68 64
+238 68 64
+239 68 64
+240 68 64
+241 68 64
+242 68 64
+243 68 64
+244 68 64
+245 68 64
+246 68 64
+247 68 64
+248 68 64
+249 68 64
+250 68 64
+251 68 64
+252 68 64
+253 68 64
+254 68 64
+255 68 64
+0 67 64
+1 67 64
+2 67 64
+3 67 64
+4 67 64
+5 67 64
+6 67 64
+7 67 64
+8 67 64
+9 67 64
+10 67 64
+11 67 64
+12 67 64
+13 67 64
+14 67 64
+15 67 64
+16 67 64
+17 67 64
+18 67 64
+19 67 64
+20 67 64
+21 67 64
+22 67 64
+23 67 64
+24 67 64
+25 67 64
+26 67 64
+27 67 64
+28 67 64
+29 67 64
+30 67 64
+31 67 64
+32 67 64
+33 67 64
+34 67 64
+35 67 64
+36 67 64
+37 67 64
+38 67 64
+39 67 64
+40 67 64
+41 67 64
+42 67 64
+43 67 64
+44 67 64
+45 67 64
+46 67 64
+47 67 64
+48 67 64
+49 67 64
+50 67 64
+51 67 64
+52 67 64
+53 67 64
+54 67 64
+55 67 64
+56 67 64
+57 67 64
+58 67 64
+59 67 64
+60 67 64
+61 67 64
+62 67 64
+63 67 64
+64 67 64
+65 67 64
+66 67 64
+67 67 64
+68 67 64
+69 67 64
+70 67 64
+71 67 64
+72 67 64
+73 67 64
+74 67 64
+75 67 64
+76 67 64
+77 67 64
+78 67 64
+79 67 64
+80 67 64
+81 67 64
+82 67 64
+83 67 64
+84 67 64
+85 67 64
+86 67 64
+87 67 64
+88 67 64
+89 67 64
+90 67 64
+91 67 64
+92 67 64
+93 67 64
+94 67 64
+95 67 64
+96 67 64
+97 67 64
+98 67 64
+99 67 64
+100 67 64
+101 67 64
+102 67 64
+103 67 64
+104 67 64
+105 67 64
+106 67 64
+107 67 64
+108 67 64
+109 67 64
+110 67 64
+111 67 64
+112 67 64
+113 67 64
+114 67 64
+115 67 64
+116 67 64
+117 67 64
+118 67 64
+119 67 64
+120 67 64
+121 67 64
+122 67 64
+123 67 64
+124 67 64
+125 67 64
+126 67 64
+127 67 64
+128 67 64
+129 67 64
+130 67 64
+131 67 64
+132 67 64
+133 67 64
+134 67 64
+135 67 64
+136 67 64
+137 67 64
+138 67 64
+139 67 64
+140 67 64
+141 67 64
+142 67 64
+143 67 64
+144 67 64
+145 67 64
+146 67 64
+147 67 64
+148 67 64
+149 67 64
+150 67 64
+151 67 64
+152 67 64
+153 67 64
+154 67 64
+155 67 64
+156 67 64
+157 67 64
+158 67 64
+159 67 64
+160 67 64
+161 67 64
+162 67 64
+163 67 64
+164 67 64
+165 67 64
+166 67 64
+167 67 64
+168 67 64
+169 67 64
+170 67 64
+171 67 64
+172 67 64
+173 67 64
+174 67 64
+175 67 64
+176 67 64
+177 67 64
+178 67 64
+179 67 64
+180 67 64
+181 67 64
+182 67 64
+183 67 64
+184 67 64
+185 67 64
+186 67 64
+187 67 64
+188 67 64
+189 67 64
+190 67 64
+191 67 64
+192 67 64
+193 67 64
+194 67 64
+195 67 64
+196 67 64
+197 67 64
+198 67 64
+199 67 64
+200 67 64
+201 67 64
+202 67 64
+203 67 64
+204 67 64
+205 67 64
+206 67 64
+207 67 64
+208 67 64
+209 67 64
+210 67 64
+211 67 64
+212 67 64
+213 67 64
+214 67 64
+215 67 64
+216 67 64
+217 67 64
+218 67 64
+219 67 64
+220 67 64
+221 67 64
+222 67 64
+223 67 64
+224 67 64
+225 67 64
+226 67 64
+227 67 64
+228 67 64
+229 67 64
+230 67 64
+231 67 64
+232 67 64
+233 67 64
+234 67 64
+235 67 64
+236 67 64
+237 67 64
+238 67 64
+239 67 64
+240 67 64
+241 67 64
+242 67 64
+243 67 64
+244 67 64
+245 67 64
+246 67 64
+247 67 64
+248 67 64
+249 67 64
+250 67 64
+251 67 64
+252 67 64
+253 67 64
+254 67 64
+255 67 64
+0 66 64
+1 66 64
+2 66 64
+3 66 64
+4 66 64
+5 66 64
+6 66 64
+7 66 64
+8 66 64
+9 66 64
+10 66 64
+11 66 64
+12 66 64
+13 66 64
+14 66 64
+15 66 64
+16 66 64
+17 66 64
+18 66 64
+19 66 64
+20 66 64
+21 66 64
+22 66 64
+23 66 64
+24 66 64
+25 66 64
+26 66 64
+27 66 64
+28 66 64
+29 66 64
+30 66 64
+31 66 64
+32 66 64
+33 66 64
+34 66 64
+35 66 64
+36 66 64
+37 66 64
+38 66 64
+39 66 64
+40 66 64
+41 66 64
+42 66 64
+43 66 64
+44 66 64
+45 66 64
+46 66 64
+47 66 64
+48 66 64
+49 66 64
+50 66 64
+51 66 64
+52 66 64
+53 66 64
+54 66 64
+55 66 64
+56 66 64
+57 66 64
+58 66 64
+59 66 64
+60 66 64
+61 66 64
+62 66 64
+63 66 64
+64 66 64
+65 66 64
+66 66 64
+67 66 64
+68 66 64
+69 66 64
+70 66 64
+71 66 64
+72 66 64
+73 66 64
+74 66 64
+75 66 64
+76 66 64
+77 66 64
+78 66 64
+79 66 64
+80 66 64
+81 66 64
+82 66 64
+83 66 64
+84 66 64
+85 66 64
+86 66 64
+87 66 64
+88 66 64
+89 66 64
+90 66 64
+91 66 64
+92 66 64
+93 66 64
+94 66 64
+95 66 64
+96 66 64
+97 66 64
+98 66 64
+99 66 64
+100 66 64
+101 66 64
+102 66 64
+103 66 64
+104 66 64
+105 66 64
+106 66 64
+107 66 64
+108 66 64
+109 66 64
+110 66 64
+111 66 64
+112 66 64
+113 66 64
+114 66 64
+115 66 64
+116 66 64
+117 66 64
+118 66 64
+119 66 64
+120 66 64
+121 66 64
+122 66 64
+123 66 64
+124 66 64
+125 66 64
+126 66 64
+127 66 64
+128 66 64
+129 66 64
+130 66 64
+131 66 64
+132 66 64
+133 66 64
+134 66 64
+135 66 64
+136 66 64
+137 66 64
+138 66 64
+139 66 64
+140 66 64
+141 66 64
+142 66 64
+143 66 64
+144 66 64
+145 66 64
+146 66 64
+147 66 64
+148 66 64
+149 66 64
+150 66 64
+151 66 64
+152 66 64
+153 66 64
+154 66 64
+155 66 64
+156 66 64
+157 66 64
+158 66 64
+159 66 64
+160 66 64
+161 66 64
+162 66 64
+163 66 64
+164 66 64
+165 66 64
+166 66 64
+167 66 64
+168 66 64
+169 66 64
+170 66 64
+171 66 64
+172 66 64
+173 66 64
+174 66 64
+175 66 64
+176 66 64
+177 66 64
+178 66 64
+179 66 64
+180 66 64
+181 66 64
+182 66 64
+183 66 64
+184 66 64
+185 66 64
+186 66 64
+187 66 64
+188 66 64
+189 66 64
+190 66 64
+191 66 64
+192 66 64
+193 66 64
+194 66 64
+195 66 64
+196 66 64
+197 66 64
+198 66 64
+199 66 64
+200 66 64
+201 66 64
+202 66 64
+203 66 64
+204 66 64
+205 66 64
+206 66 64
+207 66 64
+208 66 64
+209 66 64
+210 66 64
+211 66 64
+212 66 64
+213 66 64
+214 66 64
+215 66 64
+216 66 64
+217 66 64
+218 66 64
+219 66 64
+220 66 64
+221 66 64
+222 66 64
+223 66 64
+224 66 64
+225 66 64
+226 66 64
+227 66 64
+228 66 64
+229 66 64
+230 66 64
+231 66 64
+232 66 64
+233 66 64
+234 66 64
+235 66 64
+236 66 64
+237 66 64
+238 66 64
+239 66 64
+240 66 64
+241 66 64
+242 66 64
+243 66 64
+244 66 64
+245 66 64
+246 66 64
+247 66 64
+248 66 64
+249 66 64
+250 66 64
+251 66 64
+252 66 64
+253 66 64
+254 66 64
+255 66 64
+0 65 64
+1 65 64
+2 65 64
+3 65 64
+4 65 64
+5 65 64
+6 65 64
+7 65 64
+8 65 64
+9 65 64
+10 65 64
+11 65 64
+12 65 64
+13 65 64
+14 65 64
+15 65 64
+16 65 64
+17 65 64
+18 65 64
+19 65 64
+20 65 64
+21 65 64
+22 65 64
+23 65 64
+24 65 64
+25 65 64
+26 65 64
+27 65 64
+28 65 64
+29 65 64
+30 65 64
+31 65 64
+32 65 64
+33 65 64
+34 65 64
+35 65 64
+36 65 64
+37 65 64
+38 65 64
+39 65 64
+40 65 64
+41 65 64
+42 65 64
+43 65 64
+44 65 64
+45 65 64
+46 65 64
+47 65 64
+48 65 64
+49 65 64
+50 65 64
+51 65 64
+52 65 64
+53 65 64
+54 65 64
+55 65 64
+56 65 64
+57 65 64
+58 65 64
+59 65 64
+60 65 64
+61 65 64
+62 65 64
+63 65 64
+64 65 64
+65 65 64
+66 65 64
+67 65 64
+68 65 64
+69 65 64
+70 65 64
+71 65 64
+72 65 64
+73 65 64
+74 65 64
+75 65 64
+76 65 64
+77 65 64
+78 65 64
+79 65 64
+80 65 64
+81 65 64
+82 65 64
+83 65 64
+84 65 64
+85 65 64
+86 65 64
+87 65 64
+88 65 64
+89 65 64
+90 65 64
+91 65 64
+92 65 64
+93 65 64
+94 65 64
+95 65 64
+96 65 64
+97 65 64
+98 65 64
+99 65 64
+100 65 64
+101 65 64
+102 65 64
+103 65 64
+104 65 64
+105 65 64
+106 65 64
+107 65 64
+108 65 64
+109 65 64
+110 65 64
+111 65 64
+112 65 64
+113 65 64
+114 65 64
+115 65 64
+116 65 64
+117 65 64
+118 65 64
+119 65 64
+120 65 64
+121 65 64
+122 65 64
+123 65 64
+124 65 64
+125 65 64
+126 65 64
+127 65 64
+128 65 64
+129 65 64
+130 65 64
+131 65 64
+132 65 64
+133 65 64
+134 65 64
+135 65 64
+136 65 64
+137 65 64
+138 65 64
+139 65 64
+140 65 64
+141 65 64
+142 65 64
+143 65 64
+144 65 64
+145 65 64
+146 65 64
+147 65 64
+148 65 64
+149 65 64
+150 65 64
+151 65 64
+152 65 64
+153 65 64
+154 65 64
+155 65 64
+156 65 64
+157 65 64
+158 65 64
+159 65 64
+160 65 64
+161 65 64
+162 65 64
+163 65 64
+164 65 64
+165 65 64
+166 65 64
+167 65 64
+168 65 64
+169 65 64
+170 65 64
+171 65 64
+172 65 64
+173 65 64
+174 65 64
+175 65 64
+176 65 64
+177 65 64
+178 65 64
+179 65 64
+180 65 64
+181 65 64
+182 65 64
+183 65 64
+184 65 64
+185 65 64
+186 65 64
+187 65 64
+188 65 64
+189 65 64
+190 65 64
+191 65 64
+192 65 64
+193 65 64
+194 65 64
+195 65 64
+196 65 64
+197 65 64
+198 65 64
+199 65 64
+200 65 64
+201 65 64
+202 65 64
+203 65 64
+204 65 64
+205 65 64
+206 65 64
+207 65 64
+208 65 64
+209 65 64
+210 65 64
+211 65 64
+212 65 64
+213 65 64
+214 65 64
+215 65 64
+216 65 64
+217 65 64
+218 65 64
+219 65 64
+220 65 64
+221 65 64
+222 65 64
+223 65 64
+224 65 64
+225 65 64
+226 65 64
+227 65 64
+228 65 64
+229 65 64
+230 65 64
+231 65 64
+232 65 64
+233 65 64
+234 65 64
+235 65 64
+236 65 64
+237 65 64
+238 65 64
+239 65 64
+240 65 64
+241 65 64
+242 65 64
+243 65 64
+244 65 64
+245 65 64
+246 65 64
+247 65 64
+248 65 64
+249 65 64
+250 65 64
+251 65 64
+252 65 64
+253 65 64
+254 65 64
+255 65 64
+0 64 64
+1 64 64
+2 64 64
+3 64 64
+4 64 64
+5 64 64
+6 64 64
+7 64 64
+8 64 64
+9 64 64
+10 64 64
+11 64 64
+12 64 64
+13 64 64
+14 64 64
+15 64 64
+16 64 64
+17 64 64
+18 64 64
+19 64 64
+20 64 64
+21 64 64
+22 64 64
+23 64 64
+24 64 64
+25 64 64
+26 64 64
+27 64 64
+28 64 64
+29 64 64
+30 64 64
+31 64 64
+32 64 64
+33 64 64
+34 64 64
+35 64 64
+36 64 64
+37 64 64
+38 64 64
+39 64 64
+40 64 64
+41 64 64
+42 64 64
+43 64 64
+44 64 64
+45 64 64
+46 64 64
+47 64 64
+48 64 64
+49 64 64
+50 64 64
+51 64 64
+52 64 64
+53 64 64
+54 64 64
+55 64 64
+56 64 64
+57 64 64
+58 64 64
+59 64 64
+60 64 64
+61 64 64
+62 64 64
+63 64 64
+64 64 64
+65 64 64
+66 64 64
+67 64 64
+68 64 64
+69 64 64
+70 64 64
+71 64 64
+72 64 64
+73 64 64
+74 64 64
+75 64 64
+76 64 64
+77 64 64
+78 64 64
+79 64 64
+80 64 64
+81 64 64
+82 64 64
+83 64 64
+84 64 64
+85 64 64
+86 64 64
+87 64 64
+88 64 64
+89 64 64
+90 64 64
+91 64 64
+92 64 64
+93 64 64
+94 64 64
+95 64 64
+96 64 64
+97 64 64
+98 64 64
+99 64 64
+100 64 64
+101 64 64
+102 64 64
+103 64 64
+104 64 64
+105 64 64
+106 64 64
+107 64 64
+108 64 64
+109 64 64
+110 64 64
+111 64 64
+112 64 64
+113 64 64
+114 64 64
+115 64 64
+116 64 64
+117 64 64
+118 64 64
+119 64 64
+120 64 64
+121 64 64
+122 64 64
+123 64 64
+124 64 64
+125 64 64
+126 64 64
+127 64 64
+128 64 64
+129 64 64
+130 64 64
+131 64 64
+132 64 64
+133 64 64
+134 64 64
+135 64 64
+136 64 64
+137 64 64
+138 64 64
+139 64 64
+140 64 64
+141 64 64
+142 64 64
+143 64 64
+144 64 64
+145 64 64
+146 64 64
+147 64 64
+148 64 64
+149 64 64
+150 64 64
+151 64 64
+152 64 64
+153 64 64
+154 64 64
+155 64 64
+156 64 64
+157 64 64
+158 64 64
+159 64 64
+160 64 64
+161 64 64
+162 64 64
+163 64 64
+164 64 64
+165 64 64
+166 64 64
+167 64 64
+168 64 64
+169 64 64
+170 64 64
+171 64 64
+172 64 64
+173 64 64
+174 64 64
+175 64 64
+176 64 64
+177 64 64
+178 64 64
+179 64 64
+180 64 64
+181 64 64
+182 64 64
+183 64 64
+184 64 64
+185 64 64
+186 64 64
+187 64 64
+188 64 64
+189 64 64
+190 64 64
+191 64 64
+192 64 64
+193 64 64
+194 64 64
+195 64 64
+196 64 64
+197 64 64
+198 64 64
+199 64 64
+200 64 64
+201 64 64
+202 64 64
+203 64 64
+204 64 64
+205 64 64
+206 64 64
+207 64 64
+208 64 64
+209 64 64
+210 64 64
+211 64 64
+212 64 64
+213 64 64
+214 64 64
+215 64 64
+216 64 64
+217 64 64
+218 64 64
+219 64 64
+220 64 64
+221 64 64
+222 64 64
+223 64 64
+224 64 64
+225 64 64
+226 64 64
+227 64 64
+228 64 64
+229 64 64
+230 64 64
+231 64 64
+232 64 64
+233 64 64
+234 64 64
+235 64 64
+236 64 64
+237 64 64
+238 64 64
+239 64 64
+240 64 64
+241 64 64
+242 64 64
+243 64 64
+244 64 64
+245 64 64
+246 64 64
+247 64 64
+248 64 64
+249 64 64
+250 64 64
+251 64 64
+252 64 64
+253 64 64
+254 64 64
+255 64 64
+0 63 64
+1 63 64
+2 63 64
+3 63 64
+4 63 64
+5 63 64
+6 63 64
+7 63 64
+8 63 64
+9 63 64
+10 63 64
+11 63 64
+12 63 64
+13 63 64
+14 63 64
+15 63 64
+16 63 64
+17 63 64
+18 63 64
+19 63 64
+20 63 64
+21 63 64
+22 63 64
+23 63 64
+24 63 64
+25 63 64
+26 63 64
+27 63 64
+28 63 64
+29 63 64
+30 63 64
+31 63 64
+32 63 64
+33 63 64
+34 63 64
+35 63 64
+36 63 64
+37 63 64
+38 63 64
+39 63 64
+40 63 64
+41 63 64
+42 63 64
+43 63 64
+44 63 64
+45 63 64
+46 63 64
+47 63 64
+48 63 64
+49 63 64
+50 63 64
+51 63 64
+52 63 64
+53 63 64
+54 63 64
+55 63 64
+56 63 64
+57 63 64
+58 63 64
+59 63 64
+60 63 64
+61 63 64
+62 63 64
+63 63 64
+64 63 64
+65 63 64
+66 63 64
+67 63 64
+68 63 64
+69 63 64
+70 63 64
+71 63 64
+72 63 64
+73 63 64
+74 63 64
+75 63 64
+76 63 64
+77 63 64
+78 63 64
+79 63 64
+80 63 64
+81 63 64
+82 63 64
+83 63 64
+84 63 64
+85 63 64
+86 63 64
+87 63 64
+88 63 64
+89 63 64
+90 63 64
+91 63 64
+92 63 64
+93 63 64
+94 63 64
+95 63 64
+96 63 64
+97 63 64
+98 63 64
+99 63 64
+100 63 64
+101 63 64
+102 63 64
+103 63 64
+104 63 64
+105 63 64
+106 63 64
+107 63 64
+108 63 64
+109 63 64
+110 63 64
+111 63 64
+112 63 64
+113 63 64
+114 63 64
+115 63 64
+116 63 64
+117 63 64
+118 63 64
+119 63 64
+120 63 64
+121 63 64
+122 63 64
+123 63 64
+124 63 64
+125 63 64
+126 63 64
+127 63 64
+128 63 64
+129 63 64
+130 63 64
+131 63 64
+132 63 64
+133 63 64
+134 63 64
+135 63 64
+136 63 64
+137 63 64
+138 63 64
+139 63 64
+140 63 64
+141 63 64
+142 63 64
+143 63 64
+144 63 64
+145 63 64
+146 63 64
+147 63 64
+148 63 64
+149 63 64
+150 63 64
+151 63 64
+152 63 64
+153 63 64
+154 63 64
+155 63 64
+156 63 64
+157 63 64
+158 63 64
+159 63 64
+160 63 64
+161 63 64
+162 63 64
+163 63 64
+164 63 64
+165 63 64
+166 63 64
+167 63 64
+168 63 64
+169 63 64
+170 63 64
+171 63 64
+172 63 64
+173 63 64
+174 63 64
+175 63 64
+176 63 64
+177 63 64
+178 63 64
+179 63 64
+180 63 64
+181 63 64
+182 63 64
+183 63 64
+184 63 64
+185 63 64
+186 63 64
+187 63 64
+188 63 64
+189 63 64
+190 63 64
+191 63 64
+192 63 64
+193 63 64
+194 63 64
+195 63 64
+196 63 64
+197 63 64
+198 63 64
+199 63 64
+200 63 64
+201 63 64
+202 63 64
+203 63 64
+204 63 64
+205 63 64
+206 63 64
+207 63 64
+208 63 64
+209 63 64
+210 63 64
+211 63 64
+212 63 64
+213 63 64
+214 63 64
+215 63 64
+216 63 64
+217 63 64
+218 63 64
+219 63 64
+220 63 64
+221 63 64
+222 63 64
+223 63 64
+224 63 64
+225 63 64
+226 63 64
+227 63 64
+228 63 64
+229 63 64
+230 63 64
+231 63 64
+232 63 64
+233 63 64
+234 63 64
+235 63 64
+236 63 64
+237 63 64
+238 63 64
+239 63 64
+240 63 64
+241 63 64
+242 63 64
+243 63 64
+244 63 64
+245 63 64
+246 63 64
+247 63 64
+248 63 64
+249 63 64
+250 63 64
+251 63 64
+252 63 64
+253 63 64
+254 63 64
+255 63 64
+0 62 64
+1 62 64
+2 62 64
+3 62 64
+4 62 64
+5 62 64
+6 62 64
+7 62 64
+8 62 64
+9 62 64
+10 62 64
+11 62 64
+12 62 64
+13 62 64
+14 62 64
+15 62 64
+16 62 64
+17 62 64
+18 62 64
+19 62 64
+20 62 64
+21 62 64
+22 62 64
+23 62 64
+24 62 64
+25 62 64
+26 62 64
+27 62 64
+28 62 64
+29 62 64
+30 62 64
+31 62 64
+32 62 64
+33 62 64
+34 62 64
+35 62 64
+36 62 64
+37 62 64
+38 62 64
+39 62 64
+40 62 64
+41 62 64
+42 62 64
+43 62 64
+44 62 64
+45 62 64
+46 62 64
+47 62 64
+48 62 64
+49 62 64
+50 62 64
+51 62 64
+52 62 64
+53 62 64
+54 62 64
+55 62 64
+56 62 64
+57 62 64
+58 62 64
+59 62 64
+60 62 64
+61 62 64
+62 62 64
+63 62 64
+64 62 64
+65 62 64
+66 62 64
+67 62 64
+68 62 64
+69 62 64
+70 62 64
+71 62 64
+72 62 64
+73 62 64
+74 62 64
+75 62 64
+76 62 64
+77 62 64
+78 62 64
+79 62 64
+80 62 64
+81 62 64
+82 62 64
+83 62 64
+84 62 64
+85 62 64
+86 62 64
+87 62 64
+88 62 64
+89 62 64
+90 62 64
+91 62 64
+92 62 64
+93 62 64
+94 62 64
+95 62 64
+96 62 64
+97 62 64
+98 62 64
+99 62 64
+100 62 64
+101 62 64
+102 62 64
+103 62 64
+104 62 64
+105 62 64
+106 62 64
+107 62 64
+108 62 64
+109 62 64
+110 62 64
+111 62 64
+112 62 64
+113 62 64
+114 62 64
+115 62 64
+116 62 64
+117 62 64
+118 62 64
+119 62 64
+120 62 64
+121 62 64
+122 62 64
+123 62 64
+124 62 64
+125 62 64
+126 62 64
+127 62 64
+128 62 64
+129 62 64
+130 62 64
+131 62 64
+132 62 64
+133 62 64
+134 62 64
+135 62 64
+136 62 64
+137 62 64
+138 62 64
+139 62 64
+140 62 64
+141 62 64
+142 62 64
+143 62 64
+144 62 64
+145 62 64
+146 62 64
+147 62 64
+148 62 64
+149 62 64
+150 62 64
+151 62 64
+152 62 64
+153 62 64
+154 62 64
+155 62 64
+156 62 64
+157 62 64
+158 62 64
+159 62 64
+160 62 64
+161 62 64
+162 62 64
+163 62 64
+164 62 64
+165 62 64
+166 62 64
+167 62 64
+168 62 64
+169 62 64
+170 62 64
+171 62 64
+172 62 64
+173 62 64
+174 62 64
+175 62 64
+176 62 64
+177 62 64
+178 62 64
+179 62 64
+180 62 64
+181 62 64
+182 62 64
+183 62 64
+184 62 64
+185 62 64
+186 62 64
+187 62 64
+188 62 64
+189 62 64
+190 62 64
+191 62 64
+192 62 64
+193 62 64
+194 62 64
+195 62 64
+196 62 64
+197 62 64
+198 62 64
+199 62 64
+200 62 64
+201 62 64
+202 62 64
+203 62 64
+204 62 64
+205 62 64
+206 62 64
+207 62 64
+208 62 64
+209 62 64
+210 62 64
+211 62 64
+212 62 64
+213 62 64
+214 62 64
+215 62 64
+216 62 64
+217 62 64
+218 62 64
+219 62 64
+220 62 64
+221 62 64
+222 62 64
+223 62 64
+224 62 64
+225 62 64
+226 62 64
+227 62 64
+228 62 64
+229 62 64
+230 62 64
+231 62 64
+232 62 64
+233 62 64
+234 62 64
+235 62 64
+236 62 64
+237 62 64
+238 62 64
+239 62 64
+240 62 64
+241 62 64
+242 62 64
+243 62 64
+244 62 64
+245 62 64
+246 62 64
+247 62 64
+248 62 64
+249 62 64
+250 62 64
+251 62 64
+252 62 64
+253 62 64
+254 62 64
+255 62 64
+0 61 64
+1 61 64
+2 61 64
+3 61 64
+4 61 64
+5 61 64
+6 61 64
+7 61 64
+8 61 64
+9 61 64
+10 61 64
+11 61 64
+12 61 64
+13 61 64
+14 61 64
+15 61 64
+16 61 64
+17 61 64
+18 61 64
+19 61 64
+20 61 64
+21 61 64
+22 61 64
+23 61 64
+24 61 64
+25 61 64
+26 61 64
+27 61 64
+28 61 64
+29 61 64
+30 61 64
+31 61 64
+32 61 64
+33 61 64
+34 61 64
+35 61 64
+36 61 64
+37 61 64
+38 61 64
+39 61 64
+40 61 64
+41 61 64
+42 61 64
+43 61 64
+44 61 64
+45 61 64
+46 61 64
+47 61 64
+48 61 64
+49 61 64
+50 61 64
+51 61 64
+52 61 64
+53 61 64
+54 61 64
+55 61 64
+56 61 64
+57 61 64
+58 61 64
+59 61 64
+60 61 64
+61 61 64
+62 61 64
+63 61 64
+64 61 64
+65 61 64
+66 61 64
+67 61 64
+68 61 64
+69 61 64
+70 61 64
+71 61 64
+72 61 64
+73 61 64
+74 61 64
+75 61 64
+76 61 64
+77 61 64
+78 61 64
+79 61 64
+80 61 64
+81 61 64
+82 61 64
+83 61 64
+84 61 64
+85 61 64
+86 61 64
+87 61 64
+88 61 64
+89 61 64
+90 61 64
+91 61 64
+92 61 64
+93 61 64
+94 61 64
+95 61 64
+96 61 64
+97 61 64
+98 61 64
+99 61 64
+100 61 64
+101 61 64
+102 61 64
+103 61 64
+104 61 64
+105 61 64
+106 61 64
+107 61 64
+108 61 64
+109 61 64
+110 61 64
+111 61 64
+112 61 64
+113 61 64
+114 61 64
+115 61 64
+116 61 64
+117 61 64
+118 61 64
+119 61 64
+120 61 64
+121 61 64
+122 61 64
+123 61 64
+124 61 64
+125 61 64
+126 61 64
+127 61 64
+128 61 64
+129 61 64
+130 61 64
+131 61 64
+132 61 64
+133 61 64
+134 61 64
+135 61 64
+136 61 64
+137 61 64
+138 61 64
+139 61 64
+140 61 64
+141 61 64
+142 61 64
+143 61 64
+144 61 64
+145 61 64
+146 61 64
+147 61 64
+148 61 64
+149 61 64
+150 61 64
+151 61 64
+152 61 64
+153 61 64
+154 61 64
+155 61 64
+156 61 64
+157 61 64
+158 61 64
+159 61 64
+160 61 64
+161 61 64
+162 61 64
+163 61 64
+164 61 64
+165 61 64
+166 61 64
+167 61 64
+168 61 64
+169 61 64
+170 61 64
+171 61 64
+172 61 64
+173 61 64
+174 61 64
+175 61 64
+176 61 64
+177 61 64
+178 61 64
+179 61 64
+180 61 64
+181 61 64
+182 61 64
+183 61 64
+184 61 64
+185 61 64
+186 61 64
+187 61 64
+188 61 64
+189 61 64
+190 61 64
+191 61 64
+192 61 64
+193 61 64
+194 61 64
+195 61 64
+196 61 64
+197 61 64
+198 61 64
+199 61 64
+200 61 64
+201 61 64
+202 61 64
+203 61 64
+204 61 64
+205 61 64
+206 61 64
+207 61 64
+208 61 64
+209 61 64
+210 61 64
+211 61 64
+212 61 64
+213 61 64
+214 61 64
+215 61 64
+216 61 64
+217 61 64
+218 61 64
+219 61 64
+220 61 64
+221 61 64
+222 61 64
+223 61 64
+224 61 64
+225 61 64
+226 61 64
+227 61 64
+228 61 64
+229 61 64
+230 61 64
+231 61 64
+232 61 64
+233 61 64
+234 61 64
+235 61 64
+236 61 64
+237 61 64
+238 61 64
+239 61 64
+240 61 64
+241 61 64
+242 61 64
+243 61 64
+244 61 64
+245 61 64
+246 61 64
+247 61 64
+248 61 64
+249 61 64
+250 61 64
+251 61 64
+252 61 64
+253 61 64
+254 61 64
+255 61 64
+0 60 64
+1 60 64
+2 60 64
+3 60 64
+4 60 64
+5 60 64
+6 60 64
+7 60 64
+8 60 64
+9 60 64
+10 60 64
+11 60 64
+12 60 64
+13 60 64
+14 60 64
+15 60 64
+16 60 64
+17 60 64
+18 60 64
+19 60 64
+20 60 64
+21 60 64
+22 60 64
+23 60 64
+24 60 64
+25 60 64
+26 60 64
+27 60 64
+28 60 64
+29 60 64
+30 60 64
+31 60 64
+32 60 64
+33 60 64
+34 60 64
+35 60 64
+36 60 64
+37 60 64
+38 60 64
+39 60 64
+40 60 64
+41 60 64
+42 60 64
+43 60 64
+44 60 64
+45 60 64
+46 60 64
+47 60 64
+48 60 64
+49 60 64
+50 60 64
+51 60 64
+52 60 64
+53 60 64
+54 60 64
+55 60 64
+56 60 64
+57 60 64
+58 60 64
+59 60 64
+60 60 64
+61 60 64
+62 60 64
+63 60 64
+64 60 64
+65 60 64
+66 60 64
+67 60 64
+68 60 64
+69 60 64
+70 60 64
+71 60 64
+72 60 64
+73 60 64
+74 60 64
+75 60 64
+76 60 64
+77 60 64
+78 60 64
+79 60 64
+80 60 64
+81 60 64
+82 60 64
+83 60 64
+84 60 64
+85 60 64
+86 60 64
+87 60 64
+88 60 64
+89 60 64
+90 60 64
+91 60 64
+92 60 64
+93 60 64
+94 60 64
+95 60 64
+96 60 64
+97 60 64
+98 60 64
+99 60 64
+100 60 64
+101 60 64
+102 60 64
+103 60 64
+104 60 64
+105 60 64
+106 60 64
+107 60 64
+108 60 64
+109 60 64
+110 60 64
+111 60 64
+112 60 64
+113 60 64
+114 60 64
+115 60 64
+116 60 64
+117 60 64
+118 60 64
+119 60 64
+120 60 64
+121 60 64
+122 60 64
+123 60 64
+124 60 64
+125 60 64
+126 60 64
+127 60 64
+128 60 64
+129 60 64
+130 60 64
+131 60 64
+132 60 64
+133 60 64
+134 60 64
+135 60 64
+136 60 64
+137 60 64
+138 60 64
+139 60 64
+140 60 64
+141 60 64
+142 60 64
+143 60 64
+144 60 64
+145 60 64
+146 60 64
+147 60 64
+148 60 64
+149 60 64
+150 60 64
+151 60 64
+152 60 64
+153 60 64
+154 60 64
+155 60 64
+156 60 64
+157 60 64
+158 60 64
+159 60 64
+160 60 64
+161 60 64
+162 60 64
+163 60 64
+164 60 64
+165 60 64
+166 60 64
+167 60 64
+168 60 64
+169 60 64
+170 60 64
+171 60 64
+172 60 64
+173 60 64
+174 60 64
+175 60 64
+176 60 64
+177 60 64
+178 60 64
+179 60 64
+180 60 64
+181 60 64
+182 60 64
+183 60 64
+184 60 64
+185 60 64
+186 60 64
+187 60 64
+188 60 64
+189 60 64
+190 60 64
+191 60 64
+192 60 64
+193 60 64
+194 60 64
+195 60 64
+196 60 64
+197 60 64
+198 60 64
+199 60 64
+200 60 64
+201 60 64
+202 60 64
+203 60 64
+204 60 64
+205 60 64
+206 60 64
+207 60 64
+208 60 64
+209 60 64
+210 60 64
+211 60 64
+212 60 64
+213 60 64
+214 60 64
+215 60 64
+216 60 64
+217 60 64
+218 60 64
+219 60 64
+220 60 64
+221 60 64
+222 60 64
+223 60 64
+224 60 64
+225 60 64
+226 60 64
+227 60 64
+228 60 64
+229 60 64
+230 60 64
+231 60 64
+232 60 64
+233 60 64
+234 60 64
+235 60 64
+236 60 64
+237 60 64
+238 60 64
+239 60 64
+240 60 64
+241 60 64
+242 60 64
+243 60 64
+244 60 64
+245 60 64
+246 60 64
+247 60 64
+248 60 64
+249 60 64
+250 60 64
+251 60 64
+252 60 64
+253 60 64
+254 60 64
+255 60 64
+0 59 64
+1 59 64
+2 59 64
+3 59 64
+4 59 64
+5 59 64
+6 59 64
+7 59 64
+8 59 64
+9 59 64
+10 59 64
+11 59 64
+12 59 64
+13 59 64
+14 59 64
+15 59 64
+16 59 64
+17 59 64
+18 59 64
+19 59 64
+20 59 64
+21 59 64
+22 59 64
+23 59 64
+24 59 64
+25 59 64
+26 59 64
+27 59 64
+28 59 64
+29 59 64
+30 59 64
+31 59 64
+32 59 64
+33 59 64
+34 59 64
+35 59 64
+36 59 64
+37 59 64
+38 59 64
+39 59 64
+40 59 64
+41 59 64
+42 59 64
+43 59 64
+44 59 64
+45 59 64
+46 59 64
+47 59 64
+48 59 64
+49 59 64
+50 59 64
+51 59 64
+52 59 64
+53 59 64
+54 59 64
+55 59 64
+56 59 64
+57 59 64
+58 59 64
+59 59 64
+60 59 64
+61 59 64
+62 59 64
+63 59 64
+64 59 64
+65 59 64
+66 59 64
+67 59 64
+68 59 64
+69 59 64
+70 59 64
+71 59 64
+72 59 64
+73 59 64
+74 59 64
+75 59 64
+76 59 64
+77 59 64
+78 59 64
+79 59 64
+80 59 64
+81 59 64
+82 59 64
+83 59 64
+84 59 64
+85 59 64
+86 59 64
+87 59 64
+88 59 64
+89 59 64
+90 59 64
+91 59 64
+92 59 64
+93 59 64
+94 59 64
+95 59 64
+96 59 64
+97 59 64
+98 59 64
+99 59 64
+100 59 64
+101 59 64
+102 59 64
+103 59 64
+104 59 64
+105 59 64
+106 59 64
+107 59 64
+108 59 64
+109 59 64
+110 59 64
+111 59 64
+112 59 64
+113 59 64
+114 59 64
+115 59 64
+116 59 64
+117 59 64
+118 59 64
+119 59 64
+120 59 64
+121 59 64
+122 59 64
+123 59 64
+124 59 64
+125 59 64
+126 59 64
+127 59 64
+128 59 64
+129 59 64
+130 59 64
+131 59 64
+132 59 64
+133 59 64
+134 59 64
+135 59 64
+136 59 64
+137 59 64
+138 59 64
+139 59 64
+140 59 64
+141 59 64
+142 59 64
+143 59 64
+144 59 64
+145 59 64
+146 59 64
+147 59 64
+148 59 64
+149 59 64
+150 59 64
+151 59 64
+152 59 64
+153 59 64
+154 59 64
+155 59 64
+156 59 64
+157 59 64
+158 59 64
+159 59 64
+160 59 64
+161 59 64
+162 59 64
+163 59 64
+164 59 64
+165 59 64
+166 59 64
+167 59 64
+168 59 64
+169 59 64
+170 59 64
+171 59 64
+172 59 64
+173 59 64
+174 59 64
+175 59 64
+176 59 64
+177 59 64
+178 59 64
+179 59 64
+180 59 64
+181 59 64
+182 59 64
+183 59 64
+184 59 64
+185 59 64
+186 59 64
+187 59 64
+188 59 64
+189 59 64
+190 59 64
+191 59 64
+192 59 64
+193 59 64
+194 59 64
+195 59 64
+196 59 64
+197 59 64
+198 59 64
+199 59 64
+200 59 64
+201 59 64
+202 59 64
+203 59 64
+204 59 64
+205 59 64
+206 59 64
+207 59 64
+208 59 64
+209 59 64
+210 59 64
+211 59 64
+212 59 64
+213 59 64
+214 59 64
+215 59 64
+216 59 64
+217 59 64
+218 59 64
+219 59 64
+220 59 64
+221 59 64
+222 59 64
+223 59 64
+224 59 64
+225 59 64
+226 59 64
+227 59 64
+228 59 64
+229 59 64
+230 59 64
+231 59 64
+232 59 64
+233 59 64
+234 59 64
+235 59 64
+236 59 64
+237 59 64
+238 59 64
+239 59 64
+240 59 64
+241 59 64
+242 59 64
+243 59 64
+244 59 64
+245 59 64
+246 59 64
+247 59 64
+248 59 64
+249 59 64
+250 59 64
+251 59 64
+252 59 64
+253 59 64
+254 59 64
+255 59 64
+0 58 64
+1 58 64
+2 58 64
+3 58 64
+4 58 64
+5 58 64
+6 58 64
+7 58 64
+8 58 64
+9 58 64
+10 58 64
+11 58 64
+12 58 64
+13 58 64
+14 58 64
+15 58 64
+16 58 64
+17 58 64
+18 58 64
+19 58 64
+20 58 64
+21 58 64
+22 58 64
+23 58 64
+24 58 64
+25 58 64
+26 58 64
+27 58 64
+28 58 64
+29 58 64
+30 58 64
+31 58 64
+32 58 64
+33 58 64
+34 58 64
+35 58 64
+36 58 64
+37 58 64
+38 58 64
+39 58 64
+40 58 64
+41 58 64
+42 58 64
+43 58 64
+44 58 64
+45 58 64
+46 58 64
+47 58 64
+48 58 64
+49 58 64
+50 58 64
+51 58 64
+52 58 64
+53 58 64
+54 58 64
+55 58 64
+56 58 64
+57 58 64
+58 58 64
+59 58 64
+60 58 64
+61 58 64
+62 58 64
+63 58 64
+64 58 64
+65 58 64
+66 58 64
+67 58 64
+68 58 64
+69 58 64
+70 58 64
+71 58 64
+72 58 64
+73 58 64
+74 58 64
+75 58 64
+76 58 64
+77 58 64
+78 58 64
+79 58 64
+80 58 64
+81 58 64
+82 58 64
+83 58 64
+84 58 64
+85 58 64
+86 58 64
+87 58 64
+88 58 64
+89 58 64
+90 58 64
+91 58 64
+92 58 64
+93 58 64
+94 58 64
+95 58 64
+96 58 64
+97 58 64
+98 58 64
+99 58 64
+100 58 64
+101 58 64
+102 58 64
+103 58 64
+104 58 64
+105 58 64
+106 58 64
+107 58 64
+108 58 64
+109 58 64
+110 58 64
+111 58 64
+112 58 64
+113 58 64
+114 58 64
+115 58 64
+116 58 64
+117 58 64
+118 58 64
+119 58 64
+120 58 64
+121 58 64
+122 58 64
+123 58 64
+124 58 64
+125 58 64
+126 58 64
+127 58 64
+128 58 64
+129 58 64
+130 58 64
+131 58 64
+132 58 64
+133 58 64
+134 58 64
+135 58 64
+136 58 64
+137 58 64
+138 58 64
+139 58 64
+140 58 64
+141 58 64
+142 58 64
+143 58 64
+144 58 64
+145 58 64
+146 58 64
+147 58 64
+148 58 64
+149 58 64
+150 58 64
+151 58 64
+152 58 64
+153 58 64
+154 58 64
+155 58 64
+156 58 64
+157 58 64
+158 58 64
+159 58 64
+160 58 64
+161 58 64
+162 58 64
+163 58 64
+164 58 64
+165 58 64
+166 58 64
+167 58 64
+168 58 64
+169 58 64
+170 58 64
+171 58 64
+172 58 64
+173 58 64
+174 58 64
+175 58 64
+176 58 64
+177 58 64
+178 58 64
+179 58 64
+180 58 64
+181 58 64
+182 58 64
+183 58 64
+184 58 64
+185 58 64
+186 58 64
+187 58 64
+188 58 64
+189 58 64
+190 58 64
+191 58 64
+192 58 64
+193 58 64
+194 58 64
+195 58 64
+196 58 64
+197 58 64
+198 58 64
+199 58 64
+200 58 64
+201 58 64
+202 58 64
+203 58 64
+204 58 64
+205 58 64
+206 58 64
+207 58 64
+208 58 64
+209 58 64
+210 58 64
+211 58 64
+212 58 64
+213 58 64
+214 58 64
+215 58 64
+216 58 64
+217 58 64
+218 58 64
+219 58 64
+220 58 64
+221 58 64
+222 58 64
+223 58 64
+224 58 64
+225 58 64
+226 58 64
+227 58 64
+228 58 64
+229 58 64
+230 58 64
+231 58 64
+232 58 64
+233 58 64
+234 58 64
+235 58 64
+236 58 64
+237 58 64
+238 58 64
+239 58 64
+240 58 64
+241 58 64
+242 58 64
+243 58 64
+244 58 64
+245 58 64
+246 58 64
+247 58 64
+248 58 64
+249 58 64
+250 58 64
+251 58 64
+252 58 64
+253 58 64
+254 58 64
+255 58 64
+0 57 64
+1 57 64
+2 57 64
+3 57 64
+4 57 64
+5 57 64
+6 57 64
+7 57 64
+8 57 64
+9 57 64
+10 57 64
+11 57 64
+12 57 64
+13 57 64
+14 57 64
+15 57 64
+16 57 64
+17 57 64
+18 57 64
+19 57 64
+20 57 64
+21 57 64
+22 57 64
+23 57 64
+24 57 64
+25 57 64
+26 57 64
+27 57 64
+28 57 64
+29 57 64
+30 57 64
+31 57 64
+32 57 64
+33 57 64
+34 57 64
+35 57 64
+36 57 64
+37 57 64
+38 57 64
+39 57 64
+40 57 64
+41 57 64
+42 57 64
+43 57 64
+44 57 64
+45 57 64
+46 57 64
+47 57 64
+48 57 64
+49 57 64
+50 57 64
+51 57 64
+52 57 64
+53 57 64
+54 57 64
+55 57 64
+56 57 64
+57 57 64
+58 57 64
+59 57 64
+60 57 64
+61 57 64
+62 57 64
+63 57 64
+64 57 64
+65 57 64
+66 57 64
+67 57 64
+68 57 64
+69 57 64
+70 57 64
+71 57 64
+72 57 64
+73 57 64
+74 57 64
+75 57 64
+76 57 64
+77 57 64
+78 57 64
+79 57 64
+80 57 64
+81 57 64
+82 57 64
+83 57 64
+84 57 64
+85 57 64
+86 57 64
+87 57 64
+88 57 64
+89 57 64
+90 57 64
+91 57 64
+92 57 64
+93 57 64
+94 57 64
+95 57 64
+96 57 64
+97 57 64
+98 57 64
+99 57 64
+100 57 64
+101 57 64
+102 57 64
+103 57 64
+104 57 64
+105 57 64
+106 57 64
+107 57 64
+108 57 64
+109 57 64
+110 57 64
+111 57 64
+112 57 64
+113 57 64
+114 57 64
+115 57 64
+116 57 64
+117 57 64
+118 57 64
+119 57 64
+120 57 64
+121 57 64
+122 57 64
+123 57 64
+124 57 64
+125 57 64
+126 57 64
+127 57 64
+128 57 64
+129 57 64
+130 57 64
+131 57 64
+132 57 64
+133 57 64
+134 57 64
+135 57 64
+136 57 64
+137 57 64
+138 57 64
+139 57 64
+140 57 64
+141 57 64
+142 57 64
+143 57 64
+144 57 64
+145 57 64
+146 57 64
+147 57 64
+148 57 64
+149 57 64
+150 57 64
+151 57 64
+152 57 64
+153 57 64
+154 57 64
+155 57 64
+156 57 64
+157 57 64
+158 57 64
+159 57 64
+160 57 64
+161 57 64
+162 57 64
+163 57 64
+164 57 64
+165 57 64
+166 57 64
+167 57 64
+168 57 64
+169 57 64
+170 57 64
+171 57 64
+172 57 64
+173 57 64
+174 57 64
+175 57 64
+176 57 64
+177 57 64
+178 57 64
+179 57 64
+180 57 64
+181 57 64
+182 57 64
+183 57 64
+184 57 64
+185 57 64
+186 57 64
+187 57 64
+188 57 64
+189 57 64
+190 57 64
+191 57 64
+192 57 64
+193 57 64
+194 57 64
+195 57 64
+196 57 64
+197 57 64
+198 57 64
+199 57 64
+200 57 64
+201 57 64
+202 57 64
+203 57 64
+204 57 64
+205 57 64
+206 57 64
+207 57 64
+208 57 64
+209 57 64
+210 57 64
+211 57 64
+212 57 64
+213 57 64
+214 57 64
+215 57 64
+216 57 64
+217 57 64
+218 57 64
+219 57 64
+220 57 64
+221 57 64
+222 57 64
+223 57 64
+224 57 64
+225 57 64
+226 57 64
+227 57 64
+228 57 64
+229 57 64
+230 57 64
+231 57 64
+232 57 64
+233 57 64
+234 57 64
+235 57 64
+236 57 64
+237 57 64
+238 57 64
+239 57 64
+240 57 64
+241 57 64
+242 57 64
+243 57 64
+244 57 64
+245 57 64
+246 57 64
+247 57 64
+248 57 64
+249 57 64
+250 57 64
+251 57 64
+252 57 64
+253 57 64
+254 57 64
+255 57 64
+0 56 64
+1 56 64
+2 56 64
+3 56 64
+4 56 64
+5 56 64
+6 56 64
+7 56 64
+8 56 64
+9 56 64
+10 56 64
+11 56 64
+12 56 64
+13 56 64
+14 56 64
+15 56 64
+16 56 64
+17 56 64
+18 56 64
+19 56 64
+20 56 64
+21 56 64
+22 56 64
+23 56 64
+24 56 64
+25 56 64
+26 56 64
+27 56 64
+28 56 64
+29 56 64
+30 56 64
+31 56 64
+32 56 64
+33 56 64
+34 56 64
+35 56 64
+36 56 64
+37 56 64
+38 56 64
+39 56 64
+40 56 64
+41 56 64
+42 56 64
+43 56 64
+44 56 64
+45 56 64
+46 56 64
+47 56 64
+48 56 64
+49 56 64
+50 56 64
+51 56 64
+52 56 64
+53 56 64
+54 56 64
+55 56 64
+56 56 64
+57 56 64
+58 56 64
+59 56 64
+60 56 64
+61 56 64
+62 56 64
+63 56 64
+64 56 64
+65 56 64
+66 56 64
+67 56 64
+68 56 64
+69 56 64
+70 56 64
+71 56 64
+72 56 64
+73 56 64
+74 56 64
+75 56 64
+76 56 64
+77 56 64
+78 56 64
+79 56 64
+80 56 64
+81 56 64
+82 56 64
+83 56 64
+84 56 64
+85 56 64
+86 56 64
+87 56 64
+88 56 64
+89 56 64
+90 56 64
+91 56 64
+92 56 64
+93 56 64
+94 56 64
+95 56 64
+96 56 64
+97 56 64
+98 56 64
+99 56 64
+100 56 64
+101 56 64
+102 56 64
+103 56 64
+104 56 64
+105 56 64
+106 56 64
+107 56 64
+108 56 64
+109 56 64
+110 56 64
+111 56 64
+112 56 64
+113 56 64
+114 56 64
+115 56 64
+116 56 64
+117 56 64
+118 56 64
+119 56 64
+120 56 64
+121 56 64
+122 56 64
+123 56 64
+124 56 64
+125 56 64
+126 56 64
+127 56 64
+128 56 64
+129 56 64
+130 56 64
+131 56 64
+132 56 64
+133 56 64
+134 56 64
+135 56 64
+136 56 64
+137 56 64
+138 56 64
+139 56 64
+140 56 64
+141 56 64
+142 56 64
+143 56 64
+144 56 64
+145 56 64
+146 56 64
+147 56 64
+148 56 64
+149 56 64
+150 56 64
+151 56 64
+152 56 64
+153 56 64
+154 56 64
+155 56 64
+156 56 64
+157 56 64
+158 56 64
+159 56 64
+160 56 64
+161 56 64
+162 56 64
+163 56 64
+164 56 64
+165 56 64
+166 56 64
+167 56 64
+168 56 64
+169 56 64
+170 56 64
+171 56 64
+172 56 64
+173 56 64
+174 56 64
+175 56 64
+176 56 64
+177 56 64
+178 56 64
+179 56 64
+180 56 64
+181 56 64
+182 56 64
+183 56 64
+184 56 64
+185 56 64
+186 56 64
+187 56 64
+188 56 64
+189 56 64
+190 56 64
+191 56 64
+192 56 64
+193 56 64
+194 56 64
+195 56 64
+196 56 64
+197 56 64
+198 56 64
+199 56 64
+200 56 64
+201 56 64
+202 56 64
+203 56 64
+204 56 64
+205 56 64
+206 56 64
+207 56 64
+208 56 64
+209 56 64
+210 56 64
+211 56 64
+212 56 64
+213 56 64
+214 56 64
+215 56 64
+216 56 64
+217 56 64
+218 56 64
+219 56 64
+220 56 64
+221 56 64
+222 56 64
+223 56 64
+224 56 64
+225 56 64
+226 56 64
+227 56 64
+228 56 64
+229 56 64
+230 56 64
+231 56 64
+232 56 64
+233 56 64
+234 56 64
+235 56 64
+236 56 64
+237 56 64
+238 56 64
+239 56 64
+240 56 64
+241 56 64
+242 56 64
+243 56 64
+244 56 64
+245 56 64
+246 56 64
+247 56 64
+248 56 64
+249 56 64
+250 56 64
+251 56 64
+252 56 64
+253 56 64
+254 56 64
+255 56 64
+0 55 64
+1 55 64
+2 55 64
+3 55 64
+4 55 64
+5 55 64
+6 55 64
+7 55 64
+8 55 64
+9 55 64
+10 55 64
+11 55 64
+12 55 64
+13 55 64
+14 55 64
+15 55 64
+16 55 64
+17 55 64
+18 55 64
+19 55 64
+20 55 64
+21 55 64
+22 55 64
+23 55 64
+24 55 64
+25 55 64
+26 55 64
+27 55 64
+28 55 64
+29 55 64
+30 55 64
+31 55 64
+32 55 64
+33 55 64
+34 55 64
+35 55 64
+36 55 64
+37 55 64
+38 55 64
+39 55 64
+40 55 64
+41 55 64
+42 55 64
+43 55 64
+44 55 64
+45 55 64
+46 55 64
+47 55 64
+48 55 64
+49 55 64
+50 55 64
+51 55 64
+52 55 64
+53 55 64
+54 55 64
+55 55 64
+56 55 64
+57 55 64
+58 55 64
+59 55 64
+60 55 64
+61 55 64
+62 55 64
+63 55 64
+64 55 64
+65 55 64
+66 55 64
+67 55 64
+68 55 64
+69 55 64
+70 55 64
+71 55 64
+72 55 64
+73 55 64
+74 55 64
+75 55 64
+76 55 64
+77 55 64
+78 55 64
+79 55 64
+80 55 64
+81 55 64
+82 55 64
+83 55 64
+84 55 64
+85 55 64
+86 55 64
+87 55 64
+88 55 64
+89 55 64
+90 55 64
+91 55 64
+92 55 64
+93 55 64
+94 55 64
+95 55 64
+96 55 64
+97 55 64
+98 55 64
+99 55 64
+100 55 64
+101 55 64
+102 55 64
+103 55 64
+104 55 64
+105 55 64
+106 55 64
+107 55 64
+108 55 64
+109 55 64
+110 55 64
+111 55 64
+112 55 64
+113 55 64
+114 55 64
+115 55 64
+116 55 64
+117 55 64
+118 55 64
+119 55 64
+120 55 64
+121 55 64
+122 55 64
+123 55 64
+124 55 64
+125 55 64
+126 55 64
+127 55 64
+128 55 64
+129 55 64
+130 55 64
+131 55 64
+132 55 64
+133 55 64
+134 55 64
+135 55 64
+136 55 64
+137 55 64
+138 55 64
+139 55 64
+140 55 64
+141 55 64
+142 55 64
+143 55 64
+144 55 64
+145 55 64
+146 55 64
+147 55 64
+148 55 64
+149 55 64
+150 55 64
+151 55 64
+152 55 64
+153 55 64
+154 55 64
+155 55 64
+156 55 64
+157 55 64
+158 55 64
+159 55 64
+160 55 64
+161 55 64
+162 55 64
+163 55 64
+164 55 64
+165 55 64
+166 55 64
+167 55 64
+168 55 64
+169 55 64
+170 55 64
+171 55 64
+172 55 64
+173 55 64
+174 55 64
+175 55 64
+176 55 64
+177 55 64
+178 55 64
+179 55 64
+180 55 64
+181 55 64
+182 55 64
+183 55 64
+184 55 64
+185 55 64
+186 55 64
+187 55 64
+188 55 64
+189 55 64
+190 55 64
+191 55 64
+192 55 64
+193 55 64
+194 55 64
+195 55 64
+196 55 64
+197 55 64
+198 55 64
+199 55 64
+200 55 64
+201 55 64
+202 55 64
+203 55 64
+204 55 64
+205 55 64
+206 55 64
+207 55 64
+208 55 64
+209 55 64
+210 55 64
+211 55 64
+212 55 64
+213 55 64
+214 55 64
+215 55 64
+216 55 64
+217 55 64
+218 55 64
+219 55 64
+220 55 64
+221 55 64
+222 55 64
+223 55 64
+224 55 64
+225 55 64
+226 55 64
+227 55 64
+228 55 64
+229 55 64
+230 55 64
+231 55 64
+232 55 64
+233 55 64
+234 55 64
+235 55 64
+236 55 64
+237 55 64
+238 55 64
+239 55 64
+240 55 64
+241 55 64
+242 55 64
+243 55 64
+244 55 64
+245 55 64
+246 55 64
+247 55 64
+248 55 64
+249 55 64
+250 55 64
+251 55 64
+252 55 64
+253 55 64
+254 55 64
+255 55 64
+0 54 64
+1 54 64
+2 54 64
+3 54 64
+4 54 64
+5 54 64
+6 54 64
+7 54 64
+8 54 64
+9 54 64
+10 54 64
+11 54 64
+12 54 64
+13 54 64
+14 54 64
+15 54 64
+16 54 64
+17 54 64
+18 54 64
+19 54 64
+20 54 64
+21 54 64
+22 54 64
+23 54 64
+24 54 64
+25 54 64
+26 54 64
+27 54 64
+28 54 64
+29 54 64
+30 54 64
+31 54 64
+32 54 64
+33 54 64
+34 54 64
+35 54 64
+36 54 64
+37 54 64
+38 54 64
+39 54 64
+40 54 64
+41 54 64
+42 54 64
+43 54 64
+44 54 64
+45 54 64
+46 54 64
+47 54 64
+48 54 64
+49 54 64
+50 54 64
+51 54 64
+52 54 64
+53 54 64
+54 54 64
+55 54 64
+56 54 64
+57 54 64
+58 54 64
+59 54 64
+60 54 64
+61 54 64
+62 54 64
+63 54 64
+64 54 64
+65 54 64
+66 54 64
+67 54 64
+68 54 64
+69 54 64
+70 54 64
+71 54 64
+72 54 64
+73 54 64
+74 54 64
+75 54 64
+76 54 64
+77 54 64
+78 54 64
+79 54 64
+80 54 64
+81 54 64
+82 54 64
+83 54 64
+84 54 64
+85 54 64
+86 54 64
+87 54 64
+88 54 64
+89 54 64
+90 54 64
+91 54 64
+92 54 64
+93 54 64
+94 54 64
+95 54 64
+96 54 64
+97 54 64
+98 54 64
+99 54 64
+100 54 64
+101 54 64
+102 54 64
+103 54 64
+104 54 64
+105 54 64
+106 54 64
+107 54 64
+108 54 64
+109 54 64
+110 54 64
+111 54 64
+112 54 64
+113 54 64
+114 54 64
+115 54 64
+116 54 64
+117 54 64
+118 54 64
+119 54 64
+120 54 64
+121 54 64
+122 54 64
+123 54 64
+124 54 64
+125 54 64
+126 54 64
+127 54 64
+128 54 64
+129 54 64
+130 54 64
+131 54 64
+132 54 64
+133 54 64
+134 54 64
+135 54 64
+136 54 64
+137 54 64
+138 54 64
+139 54 64
+140 54 64
+141 54 64
+142 54 64
+143 54 64
+144 54 64
+145 54 64
+146 54 64
+147 54 64
+148 54 64
+149 54 64
+150 54 64
+151 54 64
+152 54 64
+153 54 64
+154 54 64
+155 54 64
+156 54 64
+157 54 64
+158 54 64
+159 54 64
+160 54 64
+161 54 64
+162 54 64
+163 54 64
+164 54 64
+165 54 64
+166 54 64
+167 54 64
+168 54 64
+169 54 64
+170 54 64
+171 54 64
+172 54 64
+173 54 64
+174 54 64
+175 54 64
+176 54 64
+177 54 64
+178 54 64
+179 54 64
+180 54 64
+181 54 64
+182 54 64
+183 54 64
+184 54 64
+185 54 64
+186 54 64
+187 54 64
+188 54 64
+189 54 64
+190 54 64
+191 54 64
+192 54 64
+193 54 64
+194 54 64
+195 54 64
+196 54 64
+197 54 64
+198 54 64
+199 54 64
+200 54 64
+201 54 64
+202 54 64
+203 54 64
+204 54 64
+205 54 64
+206 54 64
+207 54 64
+208 54 64
+209 54 64
+210 54 64
+211 54 64
+212 54 64
+213 54 64
+214 54 64
+215 54 64
+216 54 64
+217 54 64
+218 54 64
+219 54 64
+220 54 64
+221 54 64
+222 54 64
+223 54 64
+224 54 64
+225 54 64
+226 54 64
+227 54 64
+228 54 64
+229 54 64
+230 54 64
+231 54 64
+232 54 64
+233 54 64
+234 54 64
+235 54 64
+236 54 64
+237 54 64
+238 54 64
+239 54 64
+240 54 64
+241 54 64
+242 54 64
+243 54 64
+244 54 64
+245 54 64
+246 54 64
+247 54 64
+248 54 64
+249 54 64
+250 54 64
+251 54 64
+252 54 64
+253 54 64
+254 54 64
+255 54 64
+0 53 64
+1 53 64
+2 53 64
+3 53 64
+4 53 64
+5 53 64
+6 53 64
+7 53 64
+8 53 64
+9 53 64
+10 53 64
+11 53 64
+12 53 64
+13 53 64
+14 53 64
+15 53 64
+16 53 64
+17 53 64
+18 53 64
+19 53 64
+20 53 64
+21 53 64
+22 53 64
+23 53 64
+24 53 64
+25 53 64
+26 53 64
+27 53 64
+28 53 64
+29 53 64
+30 53 64
+31 53 64
+32 53 64
+33 53 64
+34 53 64
+35 53 64
+36 53 64
+37 53 64
+38 53 64
+39 53 64
+40 53 64
+41 53 64
+42 53 64
+43 53 64
+44 53 64
+45 53 64
+46 53 64
+47 53 64
+48 53 64
+49 53 64
+50 53 64
+51 53 64
+52 53 64
+53 53 64
+54 53 64
+55 53 64
+56 53 64
+57 53 64
+58 53 64
+59 53 64
+60 53 64
+61 53 64
+62 53 64
+63 53 64
+64 53 64
+65 53 64
+66 53 64
+67 53 64
+68 53 64
+69 53 64
+70 53 64
+71 53 64
+72 53 64
+73 53 64
+74 53 64
+75 53 64
+76 53 64
+77 53 64
+78 53 64
+79 53 64
+80 53 64
+81 53 64
+82 53 64
+83 53 64
+84 53 64
+85 53 64
+86 53 64
+87 53 64
+88 53 64
+89 53 64
+90 53 64
+91 53 64
+92 53 64
+93 53 64
+94 53 64
+95 53 64
+96 53 64
+97 53 64
+98 53 64
+99 53 64
+100 53 64
+101 53 64
+102 53 64
+103 53 64
+104 53 64
+105 53 64
+106 53 64
+107 53 64
+108 53 64
+109 53 64
+110 53 64
+111 53 64
+112 53 64
+113 53 64
+114 53 64
+115 53 64
+116 53 64
+117 53 64
+118 53 64
+119 53 64
+120 53 64
+121 53 64
+122 53 64
+123 53 64
+124 53 64
+125 53 64
+126 53 64
+127 53 64
+128 53 64
+129 53 64
+130 53 64
+131 53 64
+132 53 64
+133 53 64
+134 53 64
+135 53 64
+136 53 64
+137 53 64
+138 53 64
+139 53 64
+140 53 64
+141 53 64
+142 53 64
+143 53 64
+144 53 64
+145 53 64
+146 53 64
+147 53 64
+148 53 64
+149 53 64
+150 53 64
+151 53 64
+152 53 64
+153 53 64
+154 53 64
+155 53 64
+156 53 64
+157 53 64
+158 53 64
+159 53 64
+160 53 64
+161 53 64
+162 53 64
+163 53 64
+164 53 64
+165 53 64
+166 53 64
+167 53 64
+168 53 64
+169 53 64
+170 53 64
+171 53 64
+172 53 64
+173 53 64
+174 53 64
+175 53 64
+176 53 64
+177 53 64
+178 53 64
+179 53 64
+180 53 64
+181 53 64
+182 53 64
+183 53 64
+184 53 64
+185 53 64
+186 53 64
+187 53 64
+188 53 64
+189 53 64
+190 53 64
+191 53 64
+192 53 64
+193 53 64
+194 53 64
+195 53 64
+196 53 64
+197 53 64
+198 53 64
+199 53 64
+200 53 64
+201 53 64
+202 53 64
+203 53 64
+204 53 64
+205 53 64
+206 53 64
+207 53 64
+208 53 64
+209 53 64
+210 53 64
+211 53 64
+212 53 64
+213 53 64
+214 53 64
+215 53 64
+216 53 64
+217 53 64
+218 53 64
+219 53 64
+220 53 64
+221 53 64
+222 53 64
+223 53 64
+224 53 64
+225 53 64
+226 53 64
+227 53 64
+228 53 64
+229 53 64
+230 53 64
+231 53 64
+232 53 64
+233 53 64
+234 53 64
+235 53 64
+236 53 64
+237 53 64
+238 53 64
+239 53 64
+240 53 64
+241 53 64
+242 53 64
+243 53 64
+244 53 64
+245 53 64
+246 53 64
+247 53 64
+248 53 64
+249 53 64
+250 53 64
+251 53 64
+252 53 64
+253 53 64
+254 53 64
+255 53 64
+0 52 64
+1 52 64
+2 52 64
+3 52 64
+4 52 64
+5 52 64
+6 52 64
+7 52 64
+8 52 64
+9 52 64
+10 52 64
+11 52 64
+12 52 64
+13 52 64
+14 52 64
+15 52 64
+16 52 64
+17 52 64
+18 52 64
+19 52 64
+20 52 64
+21 52 64
+22 52 64
+23 52 64
+24 52 64
+25 52 64
+26 52 64
+27 52 64
+28 52 64
+29 52 64
+30 52 64
+31 52 64
+32 52 64
+33 52 64
+34 52 64
+35 52 64
+36 52 64
+37 52 64
+38 52 64
+39 52 64
+40 52 64
+41 52 64
+42 52 64
+43 52 64
+44 52 64
+45 52 64
+46 52 64
+47 52 64
+48 52 64
+49 52 64
+50 52 64
+51 52 64
+52 52 64
+53 52 64
+54 52 64
+55 52 64
+56 52 64
+57 52 64
+58 52 64
+59 52 64
+60 52 64
+61 52 64
+62 52 64
+63 52 64
+64 52 64
+65 52 64
+66 52 64
+67 52 64
+68 52 64
+69 52 64
+70 52 64
+71 52 64
+72 52 64
+73 52 64
+74 52 64
+75 52 64
+76 52 64
+77 52 64
+78 52 64
+79 52 64
+80 52 64
+81 52 64
+82 52 64
+83 52 64
+84 52 64
+85 52 64
+86 52 64
+87 52 64
+88 52 64
+89 52 64
+90 52 64
+91 52 64
+92 52 64
+93 52 64
+94 52 64
+95 52 64
+96 52 64
+97 52 64
+98 52 64
+99 52 64
+100 52 64
+101 52 64
+102 52 64
+103 52 64
+104 52 64
+105 52 64
+106 52 64
+107 52 64
+108 52 64
+109 52 64
+110 52 64
+111 52 64
+112 52 64
+113 52 64
+114 52 64
+115 52 64
+116 52 64
+117 52 64
+118 52 64
+119 52 64
+120 52 64
+121 52 64
+122 52 64
+123 52 64
+124 52 64
+125 52 64
+126 52 64
+127 52 64
+128 52 64
+129 52 64
+130 52 64
+131 52 64
+132 52 64
+133 52 64
+134 52 64
+135 52 64
+136 52 64
+137 52 64
+138 52 64
+139 52 64
+140 52 64
+141 52 64
+142 52 64
+143 52 64
+144 52 64
+145 52 64
+146 52 64
+147 52 64
+148 52 64
+149 52 64
+150 52 64
+151 52 64
+152 52 64
+153 52 64
+154 52 64
+155 52 64
+156 52 64
+157 52 64
+158 52 64
+159 52 64
+160 52 64
+161 52 64
+162 52 64
+163 52 64
+164 52 64
+165 52 64
+166 52 64
+167 52 64
+168 52 64
+169 52 64
+170 52 64
+171 52 64
+172 52 64
+173 52 64
+174 52 64
+175 52 64
+176 52 64
+177 52 64
+178 52 64
+179 52 64
+180 52 64
+181 52 64
+182 52 64
+183 52 64
+184 52 64
+185 52 64
+186 52 64
+187 52 64
+188 52 64
+189 52 64
+190 52 64
+191 52 64
+192 52 64
+193 52 64
+194 52 64
+195 52 64
+196 52 64
+197 52 64
+198 52 64
+199 52 64
+200 52 64
+201 52 64
+202 52 64
+203 52 64
+204 52 64
+205 52 64
+206 52 64
+207 52 64
+208 52 64
+209 52 64
+210 52 64
+211 52 64
+212 52 64
+213 52 64
+214 52 64
+215 52 64
+216 52 64
+217 52 64
+218 52 64
+219 52 64
+220 52 64
+221 52 64
+222 52 64
+223 52 64
+224 52 64
+225 52 64
+226 52 64
+227 52 64
+228 52 64
+229 52 64
+230 52 64
+231 52 64
+232 52 64
+233 52 64
+234 52 64
+235 52 64
+236 52 64
+237 52 64
+238 52 64
+239 52 64
+240 52 64
+241 52 64
+242 52 64
+243 52 64
+244 52 64
+245 52 64
+246 52 64
+247 52 64
+248 52 64
+249 52 64
+250 52 64
+251 52 64
+252 52 64
+253 52 64
+254 52 64
+255 52 64
+0 51 64
+1 51 64
+2 51 64
+3 51 64
+4 51 64
+5 51 64
+6 51 64
+7 51 64
+8 51 64
+9 51 64
+10 51 64
+11 51 64
+12 51 64
+13 51 64
+14 51 64
+15 51 64
+16 51 64
+17 51 64
+18 51 64
+19 51 64
+20 51 64
+21 51 64
+22 51 64
+23 51 64
+24 51 64
+25 51 64
+26 51 64
+27 51 64
+28 51 64
+29 51 64
+30 51 64
+31 51 64
+32 51 64
+33 51 64
+34 51 64
+35 51 64
+36 51 64
+37 51 64
+38 51 64
+39 51 64
+40 51 64
+41 51 64
+42 51 64
+43 51 64
+44 51 64
+45 51 64
+46 51 64
+47 51 64
+48 51 64
+49 51 64
+50 51 64
+51 51 64
+52 51 64
+53 51 64
+54 51 64
+55 51 64
+56 51 64
+57 51 64
+58 51 64
+59 51 64
+60 51 64
+61 51 64
+62 51 64
+63 51 64
+64 51 64
+65 51 64
+66 51 64
+67 51 64
+68 51 64
+69 51 64
+70 51 64
+71 51 64
+72 51 64
+73 51 64
+74 51 64
+75 51 64
+76 51 64
+77 51 64
+78 51 64
+79 51 64
+80 51 64
+81 51 64
+82 51 64
+83 51 64
+84 51 64
+85 51 64
+86 51 64
+87 51 64
+88 51 64
+89 51 64
+90 51 64
+91 51 64
+92 51 64
+93 51 64
+94 51 64
+95 51 64
+96 51 64
+97 51 64
+98 51 64
+99 51 64
+100 51 64
+101 51 64
+102 51 64
+103 51 64
+104 51 64
+105 51 64
+106 51 64
+107 51 64
+108 51 64
+109 51 64
+110 51 64
+111 51 64
+112 51 64
+113 51 64
+114 51 64
+115 51 64
+116 51 64
+117 51 64
+118 51 64
+119 51 64
+120 51 64
+121 51 64
+122 51 64
+123 51 64
+124 51 64
+125 51 64
+126 51 64
+127 51 64
+128 51 64
+129 51 64
+130 51 64
+131 51 64
+132 51 64
+133 51 64
+134 51 64
+135 51 64
+136 51 64
+137 51 64
+138 51 64
+139 51 64
+140 51 64
+141 51 64
+142 51 64
+143 51 64
+144 51 64
+145 51 64
+146 51 64
+147 51 64
+148 51 64
+149 51 64
+150 51 64
+151 51 64
+152 51 64
+153 51 64
+154 51 64
+155 51 64
+156 51 64
+157 51 64
+158 51 64
+159 51 64
+160 51 64
+161 51 64
+162 51 64
+163 51 64
+164 51 64
+165 51 64
+166 51 64
+167 51 64
+168 51 64
+169 51 64
+170 51 64
+171 51 64
+172 51 64
+173 51 64
+174 51 64
+175 51 64
+176 51 64
+177 51 64
+178 51 64
+179 51 64
+180 51 64
+181 51 64
+182 51 64
+183 51 64
+184 51 64
+185 51 64
+186 51 64
+187 51 64
+188 51 64
+189 51 64
+190 51 64
+191 51 64
+192 51 64
+193 51 64
+194 51 64
+195 51 64
+196 51 64
+197 51 64
+198 51 64
+199 51 64
+200 51 64
+201 51 64
+202 51 64
+203 51 64
+204 51 64
+205 51 64
+206 51 64
+207 51 64
+208 51 64
+209 51 64
+210 51 64
+211 51 64
+212 51 64
+213 51 64
+214 51 64
+215 51 64
+216 51 64
+217 51 64
+218 51 64
+219 51 64
+220 51 64
+221 51 64
+222 51 64
+223 51 64
+224 51 64
+225 51 64
+226 51 64
+227 51 64
+228 51 64
+229 51 64
+230 51 64
+231 51 64
+232 51 64
+233 51 64
+234 51 64
+235 51 64
+236 51 64
+237 51 64
+238 51 64
+239 51 64
+240 51 64
+241 51 64
+242 51 64
+243 51 64
+244 51 64
+245 51 64
+246 51 64
+247 51 64
+248 51 64
+249 51 64
+250 51 64
+251 51 64
+252 51 64
+253 51 64
+254 51 64
+255 51 64
+0 50 64
+1 50 64
+2 50 64
+3 50 64
+4 50 64
+5 50 64
+6 50 64
+7 50 64
+8 50 64
+9 50 64
+10 50 64
+11 50 64
+12 50 64
+13 50 64
+14 50 64
+15 50 64
+16 50 64
+17 50 64
+18 50 64
+19 50 64
+20 50 64
+21 50 64
+22 50 64
+23 50 64
+24 50 64
+25 50 64
+26 50 64
+27 50 64
+28 50 64
+29 50 64
+30 50 64
+31 50 64
+32 50 64
+33 50 64
+34 50 64
+35 50 64
+36 50 64
+37 50 64
+38 50 64
+39 50 64
+40 50 64
+41 50 64
+42 50 64
+43 50 64
+44 50 64
+45 50 64
+46 50 64
+47 50 64
+48 50 64
+49 50 64
+50 50 64
+51 50 64
+52 50 64
+53 50 64
+54 50 64
+55 50 64
+56 50 64
+57 50 64
+58 50 64
+59 50 64
+60 50 64
+61 50 64
+62 50 64
+63 50 64
+64 50 64
+65 50 64
+66 50 64
+67 50 64
+68 50 64
+69 50 64
+70 50 64
+71 50 64
+72 50 64
+73 50 64
+74 50 64
+75 50 64
+76 50 64
+77 50 64
+78 50 64
+79 50 64
+80 50 64
+81 50 64
+82 50 64
+83 50 64
+84 50 64
+85 50 64
+86 50 64
+87 50 64
+88 50 64
+89 50 64
+90 50 64
+91 50 64
+92 50 64
+93 50 64
+94 50 64
+95 50 64
+96 50 64
+97 50 64
+98 50 64
+99 50 64
+100 50 64
+101 50 64
+102 50 64
+103 50 64
+104 50 64
+105 50 64
+106 50 64
+107 50 64
+108 50 64
+109 50 64
+110 50 64
+111 50 64
+112 50 64
+113 50 64
+114 50 64
+115 50 64
+116 50 64
+117 50 64
+118 50 64
+119 50 64
+120 50 64
+121 50 64
+122 50 64
+123 50 64
+124 50 64
+125 50 64
+126 50 64
+127 50 64
+128 50 64
+129 50 64
+130 50 64
+131 50 64
+132 50 64
+133 50 64
+134 50 64
+135 50 64
+136 50 64
+137 50 64
+138 50 64
+139 50 64
+140 50 64
+141 50 64
+142 50 64
+143 50 64
+144 50 64
+145 50 64
+146 50 64
+147 50 64
+148 50 64
+149 50 64
+150 50 64
+151 50 64
+152 50 64
+153 50 64
+154 50 64
+155 50 64
+156 50 64
+157 50 64
+158 50 64
+159 50 64
+160 50 64
+161 50 64
+162 50 64
+163 50 64
+164 50 64
+165 50 64
+166 50 64
+167 50 64
+168 50 64
+169 50 64
+170 50 64
+171 50 64
+172 50 64
+173 50 64
+174 50 64
+175 50 64
+176 50 64
+177 50 64
+178 50 64
+179 50 64
+180 50 64
+181 50 64
+182 50 64
+183 50 64
+184 50 64
+185 50 64
+186 50 64
+187 50 64
+188 50 64
+189 50 64
+190 50 64
+191 50 64
+192 50 64
+193 50 64
+194 50 64
+195 50 64
+196 50 64
+197 50 64
+198 50 64
+199 50 64
+200 50 64
+201 50 64
+202 50 64
+203 50 64
+204 50 64
+205 50 64
+206 50 64
+207 50 64
+208 50 64
+209 50 64
+210 50 64
+211 50 64
+212 50 64
+213 50 64
+214 50 64
+215 50 64
+216 50 64
+217 50 64
+218 50 64
+219 50 64
+220 50 64
+221 50 64
+222 50 64
+223 50 64
+224 50 64
+225 50 64
+226 50 64
+227 50 64
+228 50 64
+229 50 64
+230 50 64
+231 50 64
+232 50 64
+233 50 64
+234 50 64
+235 50 64
+236 50 64
+237 50 64
+238 50 64
+239 50 64
+240 50 64
+241 50 64
+242 50 64
+243 50 64
+244 50 64
+245 50 64
+246 50 64
+247 50 64
+248 50 64
+249 50 64
+250 50 64
+251 50 64
+252 50 64
+253 50 64
+254 50 64
+255 50 64
+0 49 64
+1 49 64
+2 49 64
+3 49 64
+4 49 64
+5 49 64
+6 49 64
+7 49 64
+8 49 64
+9 49 64
+10 49 64
+11 49 64
+12 49 64
+13 49 64
+14 49 64
+15 49 64
+16 49 64
+17 49 64
+18 49 64
+19 49 64
+20 49 64
+21 49 64
+22 49 64
+23 49 64
+24 49 64
+25 49 64
+26 49 64
+27 49 64
+28 49 64
+29 49 64
+30 49 64
+31 49 64
+32 49 64
+33 49 64
+34 49 64
+35 49 64
+36 49 64
+37 49 64
+38 49 64
+39 49 64
+40 49 64
+41 49 64
+42 49 64
+43 49 64
+44 49 64
+45 49 64
+46 49 64
+47 49 64
+48 49 64
+49 49 64
+50 49 64
+51 49 64
+52 49 64
+53 49 64
+54 49 64
+55 49 64
+56 49 64
+57 49 64
+58 49 64
+59 49 64
+60 49 64
+61 49 64
+62 49 64
+63 49 64
+64 49 64
+65 49 64
+66 49 64
+67 49 64
+68 49 64
+69 49 64
+70 49 64
+71 49 64
+72 49 64
+73 49 64
+74 49 64
+75 49 64
+76 49 64
+77 49 64
+78 49 64
+79 49 64
+80 49 64
+81 49 64
+82 49 64
+83 49 64
+84 49 64
+85 49 64
+86 49 64
+87 49 64
+88 49 64
+89 49 64
+90 49 64
+91 49 64
+92 49 64
+93 49 64
+94 49 64
+95 49 64
+96 49 64
+97 49 64
+98 49 64
+99 49 64
+100 49 64
+101 49 64
+102 49 64
+103 49 64
+104 49 64
+105 49 64
+106 49 64
+107 49 64
+108 49 64
+109 49 64
+110 49 64
+111 49 64
+112 49 64
+113 49 64
+114 49 64
+115 49 64
+116 49 64
+117 49 64
+118 49 64
+119 49 64
+120 49 64
+121 49 64
+122 49 64
+123 49 64
+124 49 64
+125 49 64
+126 49 64
+127 49 64
+128 49 64
+129 49 64
+130 49 64
+131 49 64
+132 49 64
+133 49 64
+134 49 64
+135 49 64
+136 49 64
+137 49 64
+138 49 64
+139 49 64
+140 49 64
+141 49 64
+142 49 64
+143 49 64
+144 49 64
+145 49 64
+146 49 64
+147 49 64
+148 49 64
+149 49 64
+150 49 64
+151 49 64
+152 49 64
+153 49 64
+154 49 64
+155 49 64
+156 49 64
+157 49 64
+158 49 64
+159 49 64
+160 49 64
+161 49 64
+162 49 64
+163 49 64
+164 49 64
+165 49 64
+166 49 64
+167 49 64
+168 49 64
+169 49 64
+170 49 64
+171 49 64
+172 49 64
+173 49 64
+174 49 64
+175 49 64
+176 49 64
+177 49 64
+178 49 64
+179 49 64
+180 49 64
+181 49 64
+182 49 64
+183 49 64
+184 49 64
+185 49 64
+186 49 64
+187 49 64
+188 49 64
+189 49 64
+190 49 64
+191 49 64
+192 49 64
+193 49 64
+194 49 64
+195 49 64
+196 49 64
+197 49 64
+198 49 64
+199 49 64
+200 49 64
+201 49 64
+202 49 64
+203 49 64
+204 49 64
+205 49 64
+206 49 64
+207 49 64
+208 49 64
+209 49 64
+210 49 64
+211 49 64
+212 49 64
+213 49 64
+214 49 64
+215 49 64
+216 49 64
+217 49 64
+218 49 64
+219 49 64
+220 49 64
+221 49 64
+222 49 64
+223 49 64
+224 49 64
+225 49 64
+226 49 64
+227 49 64
+228 49 64
+229 49 64
+230 49 64
+231 49 64
+232 49 64
+233 49 64
+234 49 64
+235 49 64
+236 49 64
+237 49 64
+238 49 64
+239 49 64
+240 49 64
+241 49 64
+242 49 64
+243 49 64
+244 49 64
+245 49 64
+246 49 64
+247 49 64
+248 49 64
+249 49 64
+250 49 64
+251 49 64
+252 49 64
+253 49 64
+254 49 64
+255 49 64
+0 48 64
+1 48 64
+2 48 64
+3 48 64
+4 48 64
+5 48 64
+6 48 64
+7 48 64
+8 48 64
+9 48 64
+10 48 64
+11 48 64
+12 48 64
+13 48 64
+14 48 64
+15 48 64
+16 48 64
+17 48 64
+18 48 64
+19 48 64
+20 48 64
+21 48 64
+22 48 64
+23 48 64
+24 48 64
+25 48 64
+26 48 64
+27 48 64
+28 48 64
+29 48 64
+30 48 64
+31 48 64
+32 48 64
+33 48 64
+34 48 64
+35 48 64
+36 48 64
+37 48 64
+38 48 64
+39 48 64
+40 48 64
+41 48 64
+42 48 64
+43 48 64
+44 48 64
+45 48 64
+46 48 64
+47 48 64
+48 48 64
+49 48 64
+50 48 64
+51 48 64
+52 48 64
+53 48 64
+54 48 64
+55 48 64
+56 48 64
+57 48 64
+58 48 64
+59 48 64
+60 48 64
+61 48 64
+62 48 64
+63 48 64
+64 48 64
+65 48 64
+66 48 64
+67 48 64
+68 48 64
+69 48 64
+70 48 64
+71 48 64
+72 48 64
+73 48 64
+74 48 64
+75 48 64
+76 48 64
+77 48 64
+78 48 64
+79 48 64
+80 48 64
+81 48 64
+82 48 64
+83 48 64
+84 48 64
+85 48 64
+86 48 64
+87 48 64
+88 48 64
+89 48 64
+90 48 64
+91 48 64
+92 48 64
+93 48 64
+94 48 64
+95 48 64
+96 48 64
+97 48 64
+98 48 64
+99 48 64
+100 48 64
+101 48 64
+102 48 64
+103 48 64
+104 48 64
+105 48 64
+106 48 64
+107 48 64
+108 48 64
+109 48 64
+110 48 64
+111 48 64
+112 48 64
+113 48 64
+114 48 64
+115 48 64
+116 48 64
+117 48 64
+118 48 64
+119 48 64
+120 48 64
+121 48 64
+122 48 64
+123 48 64
+124 48 64
+125 48 64
+126 48 64
+127 48 64
+128 48 64
+129 48 64
+130 48 64
+131 48 64
+132 48 64
+133 48 64
+134 48 64
+135 48 64
+136 48 64
+137 48 64
+138 48 64
+139 48 64
+140 48 64
+141 48 64
+142 48 64
+143 48 64
+144 48 64
+145 48 64
+146 48 64
+147 48 64
+148 48 64
+149 48 64
+150 48 64
+151 48 64
+152 48 64
+153 48 64
+154 48 64
+155 48 64
+156 48 64
+157 48 64
+158 48 64
+159 48 64
+160 48 64
+161 48 64
+162 48 64
+163 48 64
+164 48 64
+165 48 64
+166 48 64
+167 48 64
+168 48 64
+169 48 64
+170 48 64
+171 48 64
+172 48 64
+173 48 64
+174 48 64
+175 48 64
+176 48 64
+177 48 64
+178 48 64
+179 48 64
+180 48 64
+181 48 64
+182 48 64
+183 48 64
+184 48 64
+185 48 64
+186 48 64
+187 48 64
+188 48 64
+189 48 64
+190 48 64
+191 48 64
+192 48 64
+193 48 64
+194 48 64
+195 48 64
+196 48 64
+197 48 64
+198 48 64
+199 48 64
+200 48 64
+201 48 64
+202 48 64
+203 48 64
+204 48 64
+205 48 64
+206 48 64
+207 48 64
+208 48 64
+209 48 64
+210 48 64
+211 48 64
+212 48 64
+213 48 64
+214 48 64
+215 48 64
+216 48 64
+217 48 64
+218 48 64
+219 48 64
+220 48 64
+221 48 64
+222 48 64
+223 48 64
+224 48 64
+225 48 64
+226 48 64
+227 48 64
+228 48 64
+229 48 64
+230 48 64
+231 48 64
+232 48 64
+233 48 64
+234 48 64
+235 48 64
+236 48 64
+237 48 64
+238 48 64
+239 48 64
+240 48 64
+241 48 64
+242 48 64
+243 48 64
+244 48 64
+245 48 64
+246 48 64
+247 48 64
+248 48 64
+249 48 64
+250 48 64
+251 48 64
+252 48 64
+253 48 64
+254 48 64
+255 48 64
+0 47 64
+1 47 64
+2 47 64
+3 47 64
+4 47 64
+5 47 64
+6 47 64
+7 47 64
+8 47 64
+9 47 64
+10 47 64
+11 47 64
+12 47 64
+13 47 64
+14 47 64
+15 47 64
+16 47 64
+17 47 64
+18 47 64
+19 47 64
+20 47 64
+21 47 64
+22 47 64
+23 47 64
+24 47 64
+25 47 64
+26 47 64
+27 47 64
+28 47 64
+29 47 64
+30 47 64
+31 47 64
+32 47 64
+33 47 64
+34 47 64
+35 47 64
+36 47 64
+37 47 64
+38 47 64
+39 47 64
+40 47 64
+41 47 64
+42 47 64
+43 47 64
+44 47 64
+45 47 64
+46 47 64
+47 47 64
+48 47 64
+49 47 64
+50 47 64
+51 47 64
+52 47 64
+53 47 64
+54 47 64
+55 47 64
+56 47 64
+57 47 64
+58 47 64
+59 47 64
+60 47 64
+61 47 64
+62 47 64
+63 47 64
+64 47 64
+65 47 64
+66 47 64
+67 47 64
+68 47 64
+69 47 64
+70 47 64
+71 47 64
+72 47 64
+73 47 64
+74 47 64
+75 47 64
+76 47 64
+77 47 64
+78 47 64
+79 47 64
+80 47 64
+81 47 64
+82 47 64
+83 47 64
+84 47 64
+85 47 64
+86 47 64
+87 47 64
+88 47 64
+89 47 64
+90 47 64
+91 47 64
+92 47 64
+93 47 64
+94 47 64
+95 47 64
+96 47 64
+97 47 64
+98 47 64
+99 47 64
+100 47 64
+101 47 64
+102 47 64
+103 47 64
+104 47 64
+105 47 64
+106 47 64
+107 47 64
+108 47 64
+109 47 64
+110 47 64
+111 47 64
+112 47 64
+113 47 64
+114 47 64
+115 47 64
+116 47 64
+117 47 64
+118 47 64
+119 47 64
+120 47 64
+121 47 64
+122 47 64
+123 47 64
+124 47 64
+125 47 64
+126 47 64
+127 47 64
+128 47 64
+129 47 64
+130 47 64
+131 47 64
+132 47 64
+133 47 64
+134 47 64
+135 47 64
+136 47 64
+137 47 64
+138 47 64
+139 47 64
+140 47 64
+141 47 64
+142 47 64
+143 47 64
+144 47 64
+145 47 64
+146 47 64
+147 47 64
+148 47 64
+149 47 64
+150 47 64
+151 47 64
+152 47 64
+153 47 64
+154 47 64
+155 47 64
+156 47 64
+157 47 64
+158 47 64
+159 47 64
+160 47 64
+161 47 64
+162 47 64
+163 47 64
+164 47 64
+165 47 64
+166 47 64
+167 47 64
+168 47 64
+169 47 64
+170 47 64
+171 47 64
+172 47 64
+173 47 64
+174 47 64
+175 47 64
+176 47 64
+177 47 64
+178 47 64
+179 47 64
+180 47 64
+181 47 64
+182 47 64
+183 47 64
+184 47 64
+185 47 64
+186 47 64
+187 47 64
+188 47 64
+189 47 64
+190 47 64
+191 47 64
+192 47 64
+193 47 64
+194 47 64
+195 47 64
+196 47 64
+197 47 64
+198 47 64
+199 47 64
+200 47 64
+201 47 64
+202 47 64
+203 47 64
+204 47 64
+205 47 64
+206 47 64
+207 47 64
+208 47 64
+209 47 64
+210 47 64
+211 47 64
+212 47 64
+213 47 64
+214 47 64
+215 47 64
+216 47 64
+217 47 64
+218 47 64
+219 47 64
+220 47 64
+221 47 64
+222 47 64
+223 47 64
+224 47 64
+225 47 64
+226 47 64
+227 47 64
+228 47 64
+229 47 64
+230 47 64
+231 47 64
+232 47 64
+233 47 64
+234 47 64
+235 47 64
+236 47 64
+237 47 64
+238 47 64
+239 47 64
+240 47 64
+241 47 64
+242 47 64
+243 47 64
+244 47 64
+245 47 64
+246 47 64
+247 47 64
+248 47 64
+249 47 64
+250 47 64
+251 47 64
+252 47 64
+253 47 64
+254 47 64
+255 47 64
+0 46 64
+1 46 64
+2 46 64
+3 46 64
+4 46 64
+5 46 64
+6 46 64
+7 46 64
+8 46 64
+9 46 64
+10 46 64
+11 46 64
+12 46 64
+13 46 64
+14 46 64
+15 46 64
+16 46 64
+17 46 64
+18 46 64
+19 46 64
+20 46 64
+21 46 64
+22 46 64
+23 46 64
+24 46 64
+25 46 64
+26 46 64
+27 46 64
+28 46 64
+29 46 64
+30 46 64
+31 46 64
+32 46 64
+33 46 64
+34 46 64
+35 46 64
+36 46 64
+37 46 64
+38 46 64
+39 46 64
+40 46 64
+41 46 64
+42 46 64
+43 46 64
+44 46 64
+45 46 64
+46 46 64
+47 46 64
+48 46 64
+49 46 64
+50 46 64
+51 46 64
+52 46 64
+53 46 64
+54 46 64
+55 46 64
+56 46 64
+57 46 64
+58 46 64
+59 46 64
+60 46 64
+61 46 64
+62 46 64
+63 46 64
+64 46 64
+65 46 64
+66 46 64
+67 46 64
+68 46 64
+69 46 64
+70 46 64
+71 46 64
+72 46 64
+73 46 64
+74 46 64
+75 46 64
+76 46 64
+77 46 64
+78 46 64
+79 46 64
+80 46 64
+81 46 64
+82 46 64
+83 46 64
+84 46 64
+85 46 64
+86 46 64
+87 46 64
+88 46 64
+89 46 64
+90 46 64
+91 46 64
+92 46 64
+93 46 64
+94 46 64
+95 46 64
+96 46 64
+97 46 64
+98 46 64
+99 46 64
+100 46 64
+101 46 64
+102 46 64
+103 46 64
+104 46 64
+105 46 64
+106 46 64
+107 46 64
+108 46 64
+109 46 64
+110 46 64
+111 46 64
+112 46 64
+113 46 64
+114 46 64
+115 46 64
+116 46 64
+117 46 64
+118 46 64
+119 46 64
+120 46 64
+121 46 64
+122 46 64
+123 46 64
+124 46 64
+125 46 64
+126 46 64
+127 46 64
+128 46 64
+129 46 64
+130 46 64
+131 46 64
+132 46 64
+133 46 64
+134 46 64
+135 46 64
+136 46 64
+137 46 64
+138 46 64
+139 46 64
+140 46 64
+141 46 64
+142 46 64
+143 46 64
+144 46 64
+145 46 64
+146 46 64
+147 46 64
+148 46 64
+149 46 64
+150 46 64
+151 46 64
+152 46 64
+153 46 64
+154 46 64
+155 46 64
+156 46 64
+157 46 64
+158 46 64
+159 46 64
+160 46 64
+161 46 64
+162 46 64
+163 46 64
+164 46 64
+165 46 64
+166 46 64
+167 46 64
+168 46 64
+169 46 64
+170 46 64
+171 46 64
+172 46 64
+173 46 64
+174 46 64
+175 46 64
+176 46 64
+177 46 64
+178 46 64
+179 46 64
+180 46 64
+181 46 64
+182 46 64
+183 46 64
+184 46 64
+185 46 64
+186 46 64
+187 46 64
+188 46 64
+189 46 64
+190 46 64
+191 46 64
+192 46 64
+193 46 64
+194 46 64
+195 46 64
+196 46 64
+197 46 64
+198 46 64
+199 46 64
+200 46 64
+201 46 64
+202 46 64
+203 46 64
+204 46 64
+205 46 64
+206 46 64
+207 46 64
+208 46 64
+209 46 64
+210 46 64
+211 46 64
+212 46 64
+213 46 64
+214 46 64
+215 46 64
+216 46 64
+217 46 64
+218 46 64
+219 46 64
+220 46 64
+221 46 64
+222 46 64
+223 46 64
+224 46 64
+225 46 64
+226 46 64
+227 46 64
+228 46 64
+229 46 64
+230 46 64
+231 46 64
+232 46 64
+233 46 64
+234 46 64
+235 46 64
+236 46 64
+237 46 64
+238 46 64
+239 46 64
+240 46 64
+241 46 64
+242 46 64
+243 46 64
+244 46 64
+245 46 64
+246 46 64
+247 46 64
+248 46 64
+249 46 64
+250 46 64
+251 46 64
+252 46 64
+253 46 64
+254 46 64
+255 46 64
+0 45 64
+1 45 64
+2 45 64
+3 45 64
+4 45 64
+5 45 64
+6 45 64
+7 45 64
+8 45 64
+9 45 64
+10 45 64
+11 45 64
+12 45 64
+13 45 64
+14 45 64
+15 45 64
+16 45 64
+17 45 64
+18 45 64
+19 45 64
+20 45 64
+21 45 64
+22 45 64
+23 45 64
+24 45 64
+25 45 64
+26 45 64
+27 45 64
+28 45 64
+29 45 64
+30 45 64
+31 45 64
+32 45 64
+33 45 64
+34 45 64
+35 45 64
+36 45 64
+37 45 64
+38 45 64
+39 45 64
+40 45 64
+41 45 64
+42 45 64
+43 45 64
+44 45 64
+45 45 64
+46 45 64
+47 45 64
+48 45 64
+49 45 64
+50 45 64
+51 45 64
+52 45 64
+53 45 64
+54 45 64
+55 45 64
+56 45 64
+57 45 64
+58 45 64
+59 45 64
+60 45 64
+61 45 64
+62 45 64
+63 45 64
+64 45 64
+65 45 64
+66 45 64
+67 45 64
+68 45 64
+69 45 64
+70 45 64
+71 45 64
+72 45 64
+73 45 64
+74 45 64
+75 45 64
+76 45 64
+77 45 64
+78 45 64
+79 45 64
+80 45 64
+81 45 64
+82 45 64
+83 45 64
+84 45 64
+85 45 64
+86 45 64
+87 45 64
+88 45 64
+89 45 64
+90 45 64
+91 45 64
+92 45 64
+93 45 64
+94 45 64
+95 45 64
+96 45 64
+97 45 64
+98 45 64
+99 45 64
+100 45 64
+101 45 64
+102 45 64
+103 45 64
+104 45 64
+105 45 64
+106 45 64
+107 45 64
+108 45 64
+109 45 64
+110 45 64
+111 45 64
+112 45 64
+113 45 64
+114 45 64
+115 45 64
+116 45 64
+117 45 64
+118 45 64
+119 45 64
+120 45 64
+121 45 64
+122 45 64
+123 45 64
+124 45 64
+125 45 64
+126 45 64
+127 45 64
+128 45 64
+129 45 64
+130 45 64
+131 45 64
+132 45 64
+133 45 64
+134 45 64
+135 45 64
+136 45 64
+137 45 64
+138 45 64
+139 45 64
+140 45 64
+141 45 64
+142 45 64
+143 45 64
+144 45 64
+145 45 64
+146 45 64
+147 45 64
+148 45 64
+149 45 64
+150 45 64
+151 45 64
+152 45 64
+153 45 64
+154 45 64
+155 45 64
+156 45 64
+157 45 64
+158 45 64
+159 45 64
+160 45 64
+161 45 64
+162 45 64
+163 45 64
+164 45 64
+165 45 64
+166 45 64
+167 45 64
+168 45 64
+169 45 64
+170 45 64
+171 45 64
+172 45 64
+173 45 64
+174 45 64
+175 45 64
+176 45 64
+177 45 64
+178 45 64
+179 45 64
+180 45 64
+181 45 64
+182 45 64
+183 45 64
+184 45 64
+185 45 64
+186 45 64
+187 45 64
+188 45 64
+189 45 64
+190 45 64
+191 45 64
+192 45 64
+193 45 64
+194 45 64
+195 45 64
+196 45 64
+197 45 64
+198 45 64
+199 45 64
+200 45 64
+201 45 64
+202 45 64
+203 45 64
+204 45 64
+205 45 64
+206 45 64
+207 45 64
+208 45 64
+209 45 64
+210 45 64
+211 45 64
+212 45 64
+213 45 64
+214 45 64
+215 45 64
+216 45 64
+217 45 64
+218 45 64
+219 45 64
+220 45 64
+221 45 64
+222 45 64
+223 45 64
+224 45 64
+225 45 64
+226 45 64
+227 45 64
+228 45 64
+229 45 64
+230 45 64
+231 45 64
+232 45 64
+233 45 64
+234 45 64
+235 45 64
+236 45 64
+237 45 64
+238 45 64
+239 45 64
+240 45 64
+241 45 64
+242 45 64
+243 45 64
+244 45 64
+245 45 64
+246 45 64
+247 45 64
+248 45 64
+249 45 64
+250 45 64
+251 45 64
+252 45 64
+253 45 64
+254 45 64
+255 45 64
+0 44 64
+1 44 64
+2 44 64
+3 44 64
+4 44 64
+5 44 64
+6 44 64
+7 44 64
+8 44 64
+9 44 64
+10 44 64
+11 44 64
+12 44 64
+13 44 64
+14 44 64
+15 44 64
+16 44 64
+17 44 64
+18 44 64
+19 44 64
+20 44 64
+21 44 64
+22 44 64
+23 44 64
+24 44 64
+25 44 64
+26 44 64
+27 44 64
+28 44 64
+29 44 64
+30 44 64
+31 44 64
+32 44 64
+33 44 64
+34 44 64
+35 44 64
+36 44 64
+37 44 64
+38 44 64
+39 44 64
+40 44 64
+41 44 64
+42 44 64
+43 44 64
+44 44 64
+45 44 64
+46 44 64
+47 44 64
+48 44 64
+49 44 64
+50 44 64
+51 44 64
+52 44 64
+53 44 64
+54 44 64
+55 44 64
+56 44 64
+57 44 64
+58 44 64
+59 44 64
+60 44 64
+61 44 64
+62 44 64
+63 44 64
+64 44 64
+65 44 64
+66 44 64
+67 44 64
+68 44 64
+69 44 64
+70 44 64
+71 44 64
+72 44 64
+73 44 64
+74 44 64
+75 44 64
+76 44 64
+77 44 64
+78 44 64
+79 44 64
+80 44 64
+81 44 64
+82 44 64
+83 44 64
+84 44 64
+85 44 64
+86 44 64
+87 44 64
+88 44 64
+89 44 64
+90 44 64
+91 44 64
+92 44 64
+93 44 64
+94 44 64
+95 44 64
+96 44 64
+97 44 64
+98 44 64
+99 44 64
+100 44 64
+101 44 64
+102 44 64
+103 44 64
+104 44 64
+105 44 64
+106 44 64
+107 44 64
+108 44 64
+109 44 64
+110 44 64
+111 44 64
+112 44 64
+113 44 64
+114 44 64
+115 44 64
+116 44 64
+117 44 64
+118 44 64
+119 44 64
+120 44 64
+121 44 64
+122 44 64
+123 44 64
+124 44 64
+125 44 64
+126 44 64
+127 44 64
+128 44 64
+129 44 64
+130 44 64
+131 44 64
+132 44 64
+133 44 64
+134 44 64
+135 44 64
+136 44 64
+137 44 64
+138 44 64
+139 44 64
+140 44 64
+141 44 64
+142 44 64
+143 44 64
+144 44 64
+145 44 64
+146 44 64
+147 44 64
+148 44 64
+149 44 64
+150 44 64
+151 44 64
+152 44 64
+153 44 64
+154 44 64
+155 44 64
+156 44 64
+157 44 64
+158 44 64
+159 44 64
+160 44 64
+161 44 64
+162 44 64
+163 44 64
+164 44 64
+165 44 64
+166 44 64
+167 44 64
+168 44 64
+169 44 64
+170 44 64
+171 44 64
+172 44 64
+173 44 64
+174 44 64
+175 44 64
+176 44 64
+177 44 64
+178 44 64
+179 44 64
+180 44 64
+181 44 64
+182 44 64
+183 44 64
+184 44 64
+185 44 64
+186 44 64
+187 44 64
+188 44 64
+189 44 64
+190 44 64
+191 44 64
+192 44 64
+193 44 64
+194 44 64
+195 44 64
+196 44 64
+197 44 64
+198 44 64
+199 44 64
+200 44 64
+201 44 64
+202 44 64
+203 44 64
+204 44 64
+205 44 64
+206 44 64
+207 44 64
+208 44 64
+209 44 64
+210 44 64
+211 44 64
+212 44 64
+213 44 64
+214 44 64
+215 44 64
+216 44 64
+217 44 64
+218 44 64
+219 44 64
+220 44 64
+221 44 64
+222 44 64
+223 44 64
+224 44 64
+225 44 64
+226 44 64
+227 44 64
+228 44 64
+229 44 64
+230 44 64
+231 44 64
+232 44 64
+233 44 64
+234 44 64
+235 44 64
+236 44 64
+237 44 64
+238 44 64
+239 44 64
+240 44 64
+241 44 64
+242 44 64
+243 44 64
+244 44 64
+245 44 64
+246 44 64
+247 44 64
+248 44 64
+249 44 64
+250 44 64
+251 44 64
+252 44 64
+253 44 64
+254 44 64
+255 44 64
+0 43 64
+1 43 64
+2 43 64
+3 43 64
+4 43 64
+5 43 64
+6 43 64
+7 43 64
+8 43 64
+9 43 64
+10 43 64
+11 43 64
+12 43 64
+13 43 64
+14 43 64
+15 43 64
+16 43 64
+17 43 64
+18 43 64
+19 43 64
+20 43 64
+21 43 64
+22 43 64
+23 43 64
+24 43 64
+25 43 64
+26 43 64
+27 43 64
+28 43 64
+29 43 64
+30 43 64
+31 43 64
+32 43 64
+33 43 64
+34 43 64
+35 43 64
+36 43 64
+37 43 64
+38 43 64
+39 43 64
+40 43 64
+41 43 64
+42 43 64
+43 43 64
+44 43 64
+45 43 64
+46 43 64
+47 43 64
+48 43 64
+49 43 64
+50 43 64
+51 43 64
+52 43 64
+53 43 64
+54 43 64
+55 43 64
+56 43 64
+57 43 64
+58 43 64
+59 43 64
+60 43 64
+61 43 64
+62 43 64
+63 43 64
+64 43 64
+65 43 64
+66 43 64
+67 43 64
+68 43 64
+69 43 64
+70 43 64
+71 43 64
+72 43 64
+73 43 64
+74 43 64
+75 43 64
+76 43 64
+77 43 64
+78 43 64
+79 43 64
+80 43 64
+81 43 64
+82 43 64
+83 43 64
+84 43 64
+85 43 64
+86 43 64
+87 43 64
+88 43 64
+89 43 64
+90 43 64
+91 43 64
+92 43 64
+93 43 64
+94 43 64
+95 43 64
+96 43 64
+97 43 64
+98 43 64
+99 43 64
+100 43 64
+101 43 64
+102 43 64
+103 43 64
+104 43 64
+105 43 64
+106 43 64
+107 43 64
+108 43 64
+109 43 64
+110 43 64
+111 43 64
+112 43 64
+113 43 64
+114 43 64
+115 43 64
+116 43 64
+117 43 64
+118 43 64
+119 43 64
+120 43 64
+121 43 64
+122 43 64
+123 43 64
+124 43 64
+125 43 64
+126 43 64
+127 43 64
+128 43 64
+129 43 64
+130 43 64
+131 43 64
+132 43 64
+133 43 64
+134 43 64
+135 43 64
+136 43 64
+137 43 64
+138 43 64
+139 43 64
+140 43 64
+141 43 64
+142 43 64
+143 43 64
+144 43 64
+145 43 64
+146 43 64
+147 43 64
+148 43 64
+149 43 64
+150 43 64
+151 43 64
+152 43 64
+153 43 64
+154 43 64
+155 43 64
+156 43 64
+157 43 64
+158 43 64
+159 43 64
+160 43 64
+161 43 64
+162 43 64
+163 43 64
+164 43 64
+165 43 64
+166 43 64
+167 43 64
+168 43 64
+169 43 64
+170 43 64
+171 43 64
+172 43 64
+173 43 64
+174 43 64
+175 43 64
+176 43 64
+177 43 64
+178 43 64
+179 43 64
+180 43 64
+181 43 64
+182 43 64
+183 43 64
+184 43 64
+185 43 64
+186 43 64
+187 43 64
+188 43 64
+189 43 64
+190 43 64
+191 43 64
+192 43 64
+193 43 64
+194 43 64
+195 43 64
+196 43 64
+197 43 64
+198 43 64
+199 43 64
+200 43 64
+201 43 64
+202 43 64
+203 43 64
+204 43 64
+205 43 64
+206 43 64
+207 43 64
+208 43 64
+209 43 64
+210 43 64
+211 43 64
+212 43 64
+213 43 64
+214 43 64
+215 43 64
+216 43 64
+217 43 64
+218 43 64
+219 43 64
+220 43 64
+221 43 64
+222 43 64
+223 43 64
+224 43 64
+225 43 64
+226 43 64
+227 43 64
+228 43 64
+229 43 64
+230 43 64
+231 43 64
+232 43 64
+233 43 64
+234 43 64
+235 43 64
+236 43 64
+237 43 64
+238 43 64
+239 43 64
+240 43 64
+241 43 64
+242 43 64
+243 43 64
+244 43 64
+245 43 64
+246 43 64
+247 43 64
+248 43 64
+249 43 64
+250 43 64
+251 43 64
+252 43 64
+253 43 64
+254 43 64
+255 43 64
+0 42 64
+1 42 64
+2 42 64
+3 42 64
+4 42 64
+5 42 64
+6 42 64
+7 42 64
+8 42 64
+9 42 64
+10 42 64
+11 42 64
+12 42 64
+13 42 64
+14 42 64
+15 42 64
+16 42 64
+17 42 64
+18 42 64
+19 42 64
+20 42 64
+21 42 64
+22 42 64
+23 42 64
+24 42 64
+25 42 64
+26 42 64
+27 42 64
+28 42 64
+29 42 64
+30 42 64
+31 42 64
+32 42 64
+33 42 64
+34 42 64
+35 42 64
+36 42 64
+37 42 64
+38 42 64
+39 42 64
+40 42 64
+41 42 64
+42 42 64
+43 42 64
+44 42 64
+45 42 64
+46 42 64
+47 42 64
+48 42 64
+49 42 64
+50 42 64
+51 42 64
+52 42 64
+53 42 64
+54 42 64
+55 42 64
+56 42 64
+57 42 64
+58 42 64
+59 42 64
+60 42 64
+61 42 64
+62 42 64
+63 42 64
+64 42 64
+65 42 64
+66 42 64
+67 42 64
+68 42 64
+69 42 64
+70 42 64
+71 42 64
+72 42 64
+73 42 64
+74 42 64
+75 42 64
+76 42 64
+77 42 64
+78 42 64
+79 42 64
+80 42 64
+81 42 64
+82 42 64
+83 42 64
+84 42 64
+85 42 64
+86 42 64
+87 42 64
+88 42 64
+89 42 64
+90 42 64
+91 42 64
+92 42 64
+93 42 64
+94 42 64
+95 42 64
+96 42 64
+97 42 64
+98 42 64
+99 42 64
+100 42 64
+101 42 64
+102 42 64
+103 42 64
+104 42 64
+105 42 64
+106 42 64
+107 42 64
+108 42 64
+109 42 64
+110 42 64
+111 42 64
+112 42 64
+113 42 64
+114 42 64
+115 42 64
+116 42 64
+117 42 64
+118 42 64
+119 42 64
+120 42 64
+121 42 64
+122 42 64
+123 42 64
+124 42 64
+125 42 64
+126 42 64
+127 42 64
+128 42 64
+129 42 64
+130 42 64
+131 42 64
+132 42 64
+133 42 64
+134 42 64
+135 42 64
+136 42 64
+137 42 64
+138 42 64
+139 42 64
+140 42 64
+141 42 64
+142 42 64
+143 42 64
+144 42 64
+145 42 64
+146 42 64
+147 42 64
+148 42 64
+149 42 64
+150 42 64
+151 42 64
+152 42 64
+153 42 64
+154 42 64
+155 42 64
+156 42 64
+157 42 64
+158 42 64
+159 42 64
+160 42 64
+161 42 64
+162 42 64
+163 42 64
+164 42 64
+165 42 64
+166 42 64
+167 42 64
+168 42 64
+169 42 64
+170 42 64
+171 42 64
+172 42 64
+173 42 64
+174 42 64
+175 42 64
+176 42 64
+177 42 64
+178 42 64
+179 42 64
+180 42 64
+181 42 64
+182 42 64
+183 42 64
+184 42 64
+185 42 64
+186 42 64
+187 42 64
+188 42 64
+189 42 64
+190 42 64
+191 42 64
+192 42 64
+193 42 64
+194 42 64
+195 42 64
+196 42 64
+197 42 64
+198 42 64
+199 42 64
+200 42 64
+201 42 64
+202 42 64
+203 42 64
+204 42 64
+205 42 64
+206 42 64
+207 42 64
+208 42 64
+209 42 64
+210 42 64
+211 42 64
+212 42 64
+213 42 64
+214 42 64
+215 42 64
+216 42 64
+217 42 64
+218 42 64
+219 42 64
+220 42 64
+221 42 64
+222 42 64
+223 42 64
+224 42 64
+225 42 64
+226 42 64
+227 42 64
+228 42 64
+229 42 64
+230 42 64
+231 42 64
+232 42 64
+233 42 64
+234 42 64
+235 42 64
+236 42 64
+237 42 64
+238 42 64
+239 42 64
+240 42 64
+241 42 64
+242 42 64
+243 42 64
+244 42 64
+245 42 64
+246 42 64
+247 42 64
+248 42 64
+249 42 64
+250 42 64
+251 42 64
+252 42 64
+253 42 64
+254 42 64
+255 42 64
+0 41 64
+1 41 64
+2 41 64
+3 41 64
+4 41 64
+5 41 64
+6 41 64
+7 41 64
+8 41 64
+9 41 64
+10 41 64
+11 41 64
+12 41 64
+13 41 64
+14 41 64
+15 41 64
+16 41 64
+17 41 64
+18 41 64
+19 41 64
+20 41 64
+21 41 64
+22 41 64
+23 41 64
+24 41 64
+25 41 64
+26 41 64
+27 41 64
+28 41 64
+29 41 64
+30 41 64
+31 41 64
+32 41 64
+33 41 64
+34 41 64
+35 41 64
+36 41 64
+37 41 64
+38 41 64
+39 41 64
+40 41 64
+41 41 64
+42 41 64
+43 41 64
+44 41 64
+45 41 64
+46 41 64
+47 41 64
+48 41 64
+49 41 64
+50 41 64
+51 41 64
+52 41 64
+53 41 64
+54 41 64
+55 41 64
+56 41 64
+57 41 64
+58 41 64
+59 41 64
+60 41 64
+61 41 64
+62 41 64
+63 41 64
+64 41 64
+65 41 64
+66 41 64
+67 41 64
+68 41 64
+69 41 64
+70 41 64
+71 41 64
+72 41 64
+73 41 64
+74 41 64
+75 41 64
+76 41 64
+77 41 64
+78 41 64
+79 41 64
+80 41 64
+81 41 64
+82 41 64
+83 41 64
+84 41 64
+85 41 64
+86 41 64
+87 41 64
+88 41 64
+89 41 64
+90 41 64
+91 41 64
+92 41 64
+93 41 64
+94 41 64
+95 41 64
+96 41 64
+97 41 64
+98 41 64
+99 41 64
+100 41 64
+101 41 64
+102 41 64
+103 41 64
+104 41 64
+105 41 64
+106 41 64
+107 41 64
+108 41 64
+109 41 64
+110 41 64
+111 41 64
+112 41 64
+113 41 64
+114 41 64
+115 41 64
+116 41 64
+117 41 64
+118 41 64
+119 41 64
+120 41 64
+121 41 64
+122 41 64
+123 41 64
+124 41 64
+125 41 64
+126 41 64
+127 41 64
+128 41 64
+129 41 64
+130 41 64
+131 41 64
+132 41 64
+133 41 64
+134 41 64
+135 41 64
+136 41 64
+137 41 64
+138 41 64
+139 41 64
+140 41 64
+141 41 64
+142 41 64
+143 41 64
+144 41 64
+145 41 64
+146 41 64
+147 41 64
+148 41 64
+149 41 64
+150 41 64
+151 41 64
+152 41 64
+153 41 64
+154 41 64
+155 41 64
+156 41 64
+157 41 64
+158 41 64
+159 41 64
+160 41 64
+161 41 64
+162 41 64
+163 41 64
+164 41 64
+165 41 64
+166 41 64
+167 41 64
+168 41 64
+169 41 64
+170 41 64
+171 41 64
+172 41 64
+173 41 64
+174 41 64
+175 41 64
+176 41 64
+177 41 64
+178 41 64
+179 41 64
+180 41 64
+181 41 64
+182 41 64
+183 41 64
+184 41 64
+185 41 64
+186 41 64
+187 41 64
+188 41 64
+189 41 64
+190 41 64
+191 41 64
+192 41 64
+193 41 64
+194 41 64
+195 41 64
+196 41 64
+197 41 64
+198 41 64
+199 41 64
+200 41 64
+201 41 64
+202 41 64
+203 41 64
+204 41 64
+205 41 64
+206 41 64
+207 41 64
+208 41 64
+209 41 64
+210 41 64
+211 41 64
+212 41 64
+213 41 64
+214 41 64
+215 41 64
+216 41 64
+217 41 64
+218 41 64
+219 41 64
+220 41 64
+221 41 64
+222 41 64
+223 41 64
+224 41 64
+225 41 64
+226 41 64
+227 41 64
+228 41 64
+229 41 64
+230 41 64
+231 41 64
+232 41 64
+233 41 64
+234 41 64
+235 41 64
+236 41 64
+237 41 64
+238 41 64
+239 41 64
+240 41 64
+241 41 64
+242 41 64
+243 41 64
+244 41 64
+245 41 64
+246 41 64
+247 41 64
+248 41 64
+249 41 64
+250 41 64
+251 41 64
+252 41 64
+253 41 64
+254 41 64
+255 41 64
+0 40 64
+1 40 64
+2 40 64
+3 40 64
+4 40 64
+5 40 64
+6 40 64
+7 40 64
+8 40 64
+9 40 64
+10 40 64
+11 40 64
+12 40 64
+13 40 64
+14 40 64
+15 40 64
+16 40 64
+17 40 64
+18 40 64
+19 40 64
+20 40 64
+21 40 64
+22 40 64
+23 40 64
+24 40 64
+25 40 64
+26 40 64
+27 40 64
+28 40 64
+29 40 64
+30 40 64
+31 40 64
+32 40 64
+33 40 64
+34 40 64
+35 40 64
+36 40 64
+37 40 64
+38 40 64
+39 40 64
+40 40 64
+41 40 64
+42 40 64
+43 40 64
+44 40 64
+45 40 64
+46 40 64
+47 40 64
+48 40 64
+49 40 64
+50 40 64
+51 40 64
+52 40 64
+53 40 64
+54 40 64
+55 40 64
+56 40 64
+57 40 64
+58 40 64
+59 40 64
+60 40 64
+61 40 64
+62 40 64
+63 40 64
+64 40 64
+65 40 64
+66 40 64
+67 40 64
+68 40 64
+69 40 64
+70 40 64
+71 40 64
+72 40 64
+73 40 64
+74 40 64
+75 40 64
+76 40 64
+77 40 64
+78 40 64
+79 40 64
+80 40 64
+81 40 64
+82 40 64
+83 40 64
+84 40 64
+85 40 64
+86 40 64
+87 40 64
+88 40 64
+89 40 64
+90 40 64
+91 40 64
+92 40 64
+93 40 64
+94 40 64
+95 40 64
+96 40 64
+97 40 64
+98 40 64
+99 40 64
+100 40 64
+101 40 64
+102 40 64
+103 40 64
+104 40 64
+105 40 64
+106 40 64
+107 40 64
+108 40 64
+109 40 64
+110 40 64
+111 40 64
+112 40 64
+113 40 64
+114 40 64
+115 40 64
+116 40 64
+117 40 64
+118 40 64
+119 40 64
+120 40 64
+121 40 64
+122 40 64
+123 40 64
+124 40 64
+125 40 64
+126 40 64
+127 40 64
+128 40 64
+129 40 64
+130 40 64
+131 40 64
+132 40 64
+133 40 64
+134 40 64
+135 40 64
+136 40 64
+137 40 64
+138 40 64
+139 40 64
+140 40 64
+141 40 64
+142 40 64
+143 40 64
+144 40 64
+145 40 64
+146 40 64
+147 40 64
+148 40 64
+149 40 64
+150 40 64
+151 40 64
+152 40 64
+153 40 64
+154 40 64
+155 40 64
+156 40 64
+157 40 64
+158 40 64
+159 40 64
+160 40 64
+161 40 64
+162 40 64
+163 40 64
+164 40 64
+165 40 64
+166 40 64
+167 40 64
+168 40 64
+169 40 64
+170 40 64
+171 40 64
+172 40 64
+173 40 64
+174 40 64
+175 40 64
+176 40 64
+177 40 64
+178 40 64
+179 40 64
+180 40 64
+181 40 64
+182 40 64
+183 40 64
+184 40 64
+185 40 64
+186 40 64
+187 40 64
+188 40 64
+189 40 64
+190 40 64
+191 40 64
+192 40 64
+193 40 64
+194 40 64
+195 40 64
+196 40 64
+197 40 64
+198 40 64
+199 40 64
+200 40 64
+201 40 64
+202 40 64
+203 40 64
+204 40 64
+205 40 64
+206 40 64
+207 40 64
+208 40 64
+209 40 64
+210 40 64
+211 40 64
+212 40 64
+213 40 64
+214 40 64
+215 40 64
+216 40 64
+217 40 64
+218 40 64
+219 40 64
+220 40 64
+221 40 64
+222 40 64
+223 40 64
+224 40 64
+225 40 64
+226 40 64
+227 40 64
+228 40 64
+229 40 64
+230 40 64
+231 40 64
+232 40 64
+233 40 64
+234 40 64
+235 40 64
+236 40 64
+237 40 64
+238 40 64
+239 40 64
+240 40 64
+241 40 64
+242 40 64
+243 40 64
+244 40 64
+245 40 64
+246 40 64
+247 40 64
+248 40 64
+249 40 64
+250 40 64
+251 40 64
+252 40 64
+253 40 64
+254 40 64
+255 40 64
+0 39 64
+1 39 64
+2 39 64
+3 39 64
+4 39 64
+5 39 64
+6 39 64
+7 39 64
+8 39 64
+9 39 64
+10 39 64
+11 39 64
+12 39 64
+13 39 64
+14 39 64
+15 39 64
+16 39 64
+17 39 64
+18 39 64
+19 39 64
+20 39 64
+21 39 64
+22 39 64
+23 39 64
+24 39 64
+25 39 64
+26 39 64
+27 39 64
+28 39 64
+29 39 64
+30 39 64
+31 39 64
+32 39 64
+33 39 64
+34 39 64
+35 39 64
+36 39 64
+37 39 64
+38 39 64
+39 39 64
+40 39 64
+41 39 64
+42 39 64
+43 39 64
+44 39 64
+45 39 64
+46 39 64
+47 39 64
+48 39 64
+49 39 64
+50 39 64
+51 39 64
+52 39 64
+53 39 64
+54 39 64
+55 39 64
+56 39 64
+57 39 64
+58 39 64
+59 39 64
+60 39 64
+61 39 64
+62 39 64
+63 39 64
+64 39 64
+65 39 64
+66 39 64
+67 39 64
+68 39 64
+69 39 64
+70 39 64
+71 39 64
+72 39 64
+73 39 64
+74 39 64
+75 39 64
+76 39 64
+77 39 64
+78 39 64
+79 39 64
+80 39 64
+81 39 64
+82 39 64
+83 39 64
+84 39 64
+85 39 64
+86 39 64
+87 39 64
+88 39 64
+89 39 64
+90 39 64
+91 39 64
+92 39 64
+93 39 64
+94 39 64
+95 39 64
+96 39 64
+97 39 64
+98 39 64
+99 39 64
+100 39 64
+101 39 64
+102 39 64
+103 39 64
+104 39 64
+105 39 64
+106 39 64
+107 39 64
+108 39 64
+109 39 64
+110 39 64
+111 39 64
+112 39 64
+113 39 64
+114 39 64
+115 39 64
+116 39 64
+117 39 64
+118 39 64
+119 39 64
+120 39 64
+121 39 64
+122 39 64
+123 39 64
+124 39 64
+125 39 64
+126 39 64
+127 39 64
+128 39 64
+129 39 64
+130 39 64
+131 39 64
+132 39 64
+133 39 64
+134 39 64
+135 39 64
+136 39 64
+137 39 64
+138 39 64
+139 39 64
+140 39 64
+141 39 64
+142 39 64
+143 39 64
+144 39 64
+145 39 64
+146 39 64
+147 39 64
+148 39 64
+149 39 64
+150 39 64
+151 39 64
+152 39 64
+153 39 64
+154 39 64
+155 39 64
+156 39 64
+157 39 64
+158 39 64
+159 39 64
+160 39 64
+161 39 64
+162 39 64
+163 39 64
+164 39 64
+165 39 64
+166 39 64
+167 39 64
+168 39 64
+169 39 64
+170 39 64
+171 39 64
+172 39 64
+173 39 64
+174 39 64
+175 39 64
+176 39 64
+177 39 64
+178 39 64
+179 39 64
+180 39 64
+181 39 64
+182 39 64
+183 39 64
+184 39 64
+185 39 64
+186 39 64
+187 39 64
+188 39 64
+189 39 64
+190 39 64
+191 39 64
+192 39 64
+193 39 64
+194 39 64
+195 39 64
+196 39 64
+197 39 64
+198 39 64
+199 39 64
+200 39 64
+201 39 64
+202 39 64
+203 39 64
+204 39 64
+205 39 64
+206 39 64
+207 39 64
+208 39 64
+209 39 64
+210 39 64
+211 39 64
+212 39 64
+213 39 64
+214 39 64
+215 39 64
+216 39 64
+217 39 64
+218 39 64
+219 39 64
+220 39 64
+221 39 64
+222 39 64
+223 39 64
+224 39 64
+225 39 64
+226 39 64
+227 39 64
+228 39 64
+229 39 64
+230 39 64
+231 39 64
+232 39 64
+233 39 64
+234 39 64
+235 39 64
+236 39 64
+237 39 64
+238 39 64
+239 39 64
+240 39 64
+241 39 64
+242 39 64
+243 39 64
+244 39 64
+245 39 64
+246 39 64
+247 39 64
+248 39 64
+249 39 64
+250 39 64
+251 39 64
+252 39 64
+253 39 64
+254 39 64
+255 39 64
+0 38 64
+1 38 64
+2 38 64
+3 38 64
+4 38 64
+5 38 64
+6 38 64
+7 38 64
+8 38 64
+9 38 64
+10 38 64
+11 38 64
+12 38 64
+13 38 64
+14 38 64
+15 38 64
+16 38 64
+17 38 64
+18 38 64
+19 38 64
+20 38 64
+21 38 64
+22 38 64
+23 38 64
+24 38 64
+25 38 64
+26 38 64
+27 38 64
+28 38 64
+29 38 64
+30 38 64
+31 38 64
+32 38 64
+33 38 64
+34 38 64
+35 38 64
+36 38 64
+37 38 64
+38 38 64
+39 38 64
+40 38 64
+41 38 64
+42 38 64
+43 38 64
+44 38 64
+45 38 64
+46 38 64
+47 38 64
+48 38 64
+49 38 64
+50 38 64
+51 38 64
+52 38 64
+53 38 64
+54 38 64
+55 38 64
+56 38 64
+57 38 64
+58 38 64
+59 38 64
+60 38 64
+61 38 64
+62 38 64
+63 38 64
+64 38 64
+65 38 64
+66 38 64
+67 38 64
+68 38 64
+69 38 64
+70 38 64
+71 38 64
+72 38 64
+73 38 64
+74 38 64
+75 38 64
+76 38 64
+77 38 64
+78 38 64
+79 38 64
+80 38 64
+81 38 64
+82 38 64
+83 38 64
+84 38 64
+85 38 64
+86 38 64
+87 38 64
+88 38 64
+89 38 64
+90 38 64
+91 38 64
+92 38 64
+93 38 64
+94 38 64
+95 38 64
+96 38 64
+97 38 64
+98 38 64
+99 38 64
+100 38 64
+101 38 64
+102 38 64
+103 38 64
+104 38 64
+105 38 64
+106 38 64
+107 38 64
+108 38 64
+109 38 64
+110 38 64
+111 38 64
+112 38 64
+113 38 64
+114 38 64
+115 38 64
+116 38 64
+117 38 64
+118 38 64
+119 38 64
+120 38 64
+121 38 64
+122 38 64
+123 38 64
+124 38 64
+125 38 64
+126 38 64
+127 38 64
+128 38 64
+129 38 64
+130 38 64
+131 38 64
+132 38 64
+133 38 64
+134 38 64
+135 38 64
+136 38 64
+137 38 64
+138 38 64
+139 38 64
+140 38 64
+141 38 64
+142 38 64
+143 38 64
+144 38 64
+145 38 64
+146 38 64
+147 38 64
+148 38 64
+149 38 64
+150 38 64
+151 38 64
+152 38 64
+153 38 64
+154 38 64
+155 38 64
+156 38 64
+157 38 64
+158 38 64
+159 38 64
+160 38 64
+161 38 64
+162 38 64
+163 38 64
+164 38 64
+165 38 64
+166 38 64
+167 38 64
+168 38 64
+169 38 64
+170 38 64
+171 38 64
+172 38 64
+173 38 64
+174 38 64
+175 38 64
+176 38 64
+177 38 64
+178 38 64
+179 38 64
+180 38 64
+181 38 64
+182 38 64
+183 38 64
+184 38 64
+185 38 64
+186 38 64
+187 38 64
+188 38 64
+189 38 64
+190 38 64
+191 38 64
+192 38 64
+193 38 64
+194 38 64
+195 38 64
+196 38 64
+197 38 64
+198 38 64
+199 38 64
+200 38 64
+201 38 64
+202 38 64
+203 38 64
+204 38 64
+205 38 64
+206 38 64
+207 38 64
+208 38 64
+209 38 64
+210 38 64
+211 38 64
+212 38 64
+213 38 64
+214 38 64
+215 38 64
+216 38 64
+217 38 64
+218 38 64
+219 38 64
+220 38 64
+221 38 64
+222 38 64
+223 38 64
+224 38 64
+225 38 64
+226 38 64
+227 38 64
+228 38 64
+229 38 64
+230 38 64
+231 38 64
+232 38 64
+233 38 64
+234 38 64
+235 38 64
+236 38 64
+237 38 64
+238 38 64
+239 38 64
+240 38 64
+241 38 64
+242 38 64
+243 38 64
+244 38 64
+245 38 64
+246 38 64
+247 38 64
+248 38 64
+249 38 64
+250 38 64
+251 38 64
+252 38 64
+253 38 64
+254 38 64
+255 38 64
+0 37 64
+1 37 64
+2 37 64
+3 37 64
+4 37 64
+5 37 64
+6 37 64
+7 37 64
+8 37 64
+9 37 64
+10 37 64
+11 37 64
+12 37 64
+13 37 64
+14 37 64
+15 37 64
+16 37 64
+17 37 64
+18 37 64
+19 37 64
+20 37 64
+21 37 64
+22 37 64
+23 37 64
+24 37 64
+25 37 64
+26 37 64
+27 37 64
+28 37 64
+29 37 64
+30 37 64
+31 37 64
+32 37 64
+33 37 64
+34 37 64
+35 37 64
+36 37 64
+37 37 64
+38 37 64
+39 37 64
+40 37 64
+41 37 64
+42 37 64
+43 37 64
+44 37 64
+45 37 64
+46 37 64
+47 37 64
+48 37 64
+49 37 64
+50 37 64
+51 37 64
+52 37 64
+53 37 64
+54 37 64
+55 37 64
+56 37 64
+57 37 64
+58 37 64
+59 37 64
+60 37 64
+61 37 64
+62 37 64
+63 37 64
+64 37 64
+65 37 64
+66 37 64
+67 37 64
+68 37 64
+69 37 64
+70 37 64
+71 37 64
+72 37 64
+73 37 64
+74 37 64
+75 37 64
+76 37 64
+77 37 64
+78 37 64
+79 37 64
+80 37 64
+81 37 64
+82 37 64
+83 37 64
+84 37 64
+85 37 64
+86 37 64
+87 37 64
+88 37 64
+89 37 64
+90 37 64
+91 37 64
+92 37 64
+93 37 64
+94 37 64
+95 37 64
+96 37 64
+97 37 64
+98 37 64
+99 37 64
+100 37 64
+101 37 64
+102 37 64
+103 37 64
+104 37 64
+105 37 64
+106 37 64
+107 37 64
+108 37 64
+109 37 64
+110 37 64
+111 37 64
+112 37 64
+113 37 64
+114 37 64
+115 37 64
+116 37 64
+117 37 64
+118 37 64
+119 37 64
+120 37 64
+121 37 64
+122 37 64
+123 37 64
+124 37 64
+125 37 64
+126 37 64
+127 37 64
+128 37 64
+129 37 64
+130 37 64
+131 37 64
+132 37 64
+133 37 64
+134 37 64
+135 37 64
+136 37 64
+137 37 64
+138 37 64
+139 37 64
+140 37 64
+141 37 64
+142 37 64
+143 37 64
+144 37 64
+145 37 64
+146 37 64
+147 37 64
+148 37 64
+149 37 64
+150 37 64
+151 37 64
+152 37 64
+153 37 64
+154 37 64
+155 37 64
+156 37 64
+157 37 64
+158 37 64
+159 37 64
+160 37 64
+161 37 64
+162 37 64
+163 37 64
+164 37 64
+165 37 64
+166 37 64
+167 37 64
+168 37 64
+169 37 64
+170 37 64
+171 37 64
+172 37 64
+173 37 64
+174 37 64
+175 37 64
+176 37 64
+177 37 64
+178 37 64
+179 37 64
+180 37 64
+181 37 64
+182 37 64
+183 37 64
+184 37 64
+185 37 64
+186 37 64
+187 37 64
+188 37 64
+189 37 64
+190 37 64
+191 37 64
+192 37 64
+193 37 64
+194 37 64
+195 37 64
+196 37 64
+197 37 64
+198 37 64
+199 37 64
+200 37 64
+201 37 64
+202 37 64
+203 37 64
+204 37 64
+205 37 64
+206 37 64
+207 37 64
+208 37 64
+209 37 64
+210 37 64
+211 37 64
+212 37 64
+213 37 64
+214 37 64
+215 37 64
+216 37 64
+217 37 64
+218 37 64
+219 37 64
+220 37 64
+221 37 64
+222 37 64
+223 37 64
+224 37 64
+225 37 64
+226 37 64
+227 37 64
+228 37 64
+229 37 64
+230 37 64
+231 37 64
+232 37 64
+233 37 64
+234 37 64
+235 37 64
+236 37 64
+237 37 64
+238 37 64
+239 37 64
+240 37 64
+241 37 64
+242 37 64
+243 37 64
+244 37 64
+245 37 64
+246 37 64
+247 37 64
+248 37 64
+249 37 64
+250 37 64
+251 37 64
+252 37 64
+253 37 64
+254 37 64
+255 37 64
+0 36 64
+1 36 64
+2 36 64
+3 36 64
+4 36 64
+5 36 64
+6 36 64
+7 36 64
+8 36 64
+9 36 64
+10 36 64
+11 36 64
+12 36 64
+13 36 64
+14 36 64
+15 36 64
+16 36 64
+17 36 64
+18 36 64
+19 36 64
+20 36 64
+21 36 64
+22 36 64
+23 36 64
+24 36 64
+25 36 64
+26 36 64
+27 36 64
+28 36 64
+29 36 64
+30 36 64
+31 36 64
+32 36 64
+33 36 64
+34 36 64
+35 36 64
+36 36 64
+37 36 64
+38 36 64
+39 36 64
+40 36 64
+41 36 64
+42 36 64
+43 36 64
+44 36 64
+45 36 64
+46 36 64
+47 36 64
+48 36 64
+49 36 64
+50 36 64
+51 36 64
+52 36 64
+53 36 64
+54 36 64
+55 36 64
+56 36 64
+57 36 64
+58 36 64
+59 36 64
+60 36 64
+61 36 64
+62 36 64
+63 36 64
+64 36 64
+65 36 64
+66 36 64
+67 36 64
+68 36 64
+69 36 64
+70 36 64
+71 36 64
+72 36 64
+73 36 64
+74 36 64
+75 36 64
+76 36 64
+77 36 64
+78 36 64
+79 36 64
+80 36 64
+81 36 64
+82 36 64
+83 36 64
+84 36 64
+85 36 64
+86 36 64
+87 36 64
+88 36 64
+89 36 64
+90 36 64
+91 36 64
+92 36 64
+93 36 64
+94 36 64
+95 36 64
+96 36 64
+97 36 64
+98 36 64
+99 36 64
+100 36 64
+101 36 64
+102 36 64
+103 36 64
+104 36 64
+105 36 64
+106 36 64
+107 36 64
+108 36 64
+109 36 64
+110 36 64
+111 36 64
+112 36 64
+113 36 64
+114 36 64
+115 36 64
+116 36 64
+117 36 64
+118 36 64
+119 36 64
+120 36 64
+121 36 64
+122 36 64
+123 36 64
+124 36 64
+125 36 64
+126 36 64
+127 36 64
+128 36 64
+129 36 64
+130 36 64
+131 36 64
+132 36 64
+133 36 64
+134 36 64
+135 36 64
+136 36 64
+137 36 64
+138 36 64
+139 36 64
+140 36 64
+141 36 64
+142 36 64
+143 36 64
+144 36 64
+145 36 64
+146 36 64
+147 36 64
+148 36 64
+149 36 64
+150 36 64
+151 36 64
+152 36 64
+153 36 64
+154 36 64
+155 36 64
+156 36 64
+157 36 64
+158 36 64
+159 36 64
+160 36 64
+161 36 64
+162 36 64
+163 36 64
+164 36 64
+165 36 64
+166 36 64
+167 36 64
+168 36 64
+169 36 64
+170 36 64
+171 36 64
+172 36 64
+173 36 64
+174 36 64
+175 36 64
+176 36 64
+177 36 64
+178 36 64
+179 36 64
+180 36 64
+181 36 64
+182 36 64
+183 36 64
+184 36 64
+185 36 64
+186 36 64
+187 36 64
+188 36 64
+189 36 64
+190 36 64
+191 36 64
+192 36 64
+193 36 64
+194 36 64
+195 36 64
+196 36 64
+197 36 64
+198 36 64
+199 36 64
+200 36 64
+201 36 64
+202 36 64
+203 36 64
+204 36 64
+205 36 64
+206 36 64
+207 36 64
+208 36 64
+209 36 64
+210 36 64
+211 36 64
+212 36 64
+213 36 64
+214 36 64
+215 36 64
+216 36 64
+217 36 64
+218 36 64
+219 36 64
+220 36 64
+221 36 64
+222 36 64
+223 36 64
+224 36 64
+225 36 64
+226 36 64
+227 36 64
+228 36 64
+229 36 64
+230 36 64
+231 36 64
+232 36 64
+233 36 64
+234 36 64
+235 36 64
+236 36 64
+237 36 64
+238 36 64
+239 36 64
+240 36 64
+241 36 64
+242 36 64
+243 36 64
+244 36 64
+245 36 64
+246 36 64
+247 36 64
+248 36 64
+249 36 64
+250 36 64
+251 36 64
+252 36 64
+253 36 64
+254 36 64
+255 36 64
+0 35 64
+1 35 64
+2 35 64
+3 35 64
+4 35 64
+5 35 64
+6 35 64
+7 35 64
+8 35 64
+9 35 64
+10 35 64
+11 35 64
+12 35 64
+13 35 64
+14 35 64
+15 35 64
+16 35 64
+17 35 64
+18 35 64
+19 35 64
+20 35 64
+21 35 64
+22 35 64
+23 35 64
+24 35 64
+25 35 64
+26 35 64
+27 35 64
+28 35 64
+29 35 64
+30 35 64
+31 35 64
+32 35 64
+33 35 64
+34 35 64
+35 35 64
+36 35 64
+37 35 64
+38 35 64
+39 35 64
+40 35 64
+41 35 64
+42 35 64
+43 35 64
+44 35 64
+45 35 64
+46 35 64
+47 35 64
+48 35 64
+49 35 64
+50 35 64
+51 35 64
+52 35 64
+53 35 64
+54 35 64
+55 35 64
+56 35 64
+57 35 64
+58 35 64
+59 35 64
+60 35 64
+61 35 64
+62 35 64
+63 35 64
+64 35 64
+65 35 64
+66 35 64
+67 35 64
+68 35 64
+69 35 64
+70 35 64
+71 35 64
+72 35 64
+73 35 64
+74 35 64
+75 35 64
+76 35 64
+77 35 64
+78 35 64
+79 35 64
+80 35 64
+81 35 64
+82 35 64
+83 35 64
+84 35 64
+85 35 64
+86 35 64
+87 35 64
+88 35 64
+89 35 64
+90 35 64
+91 35 64
+92 35 64
+93 35 64
+94 35 64
+95 35 64
+96 35 64
+97 35 64
+98 35 64
+99 35 64
+100 35 64
+101 35 64
+102 35 64
+103 35 64
+104 35 64
+105 35 64
+106 35 64
+107 35 64
+108 35 64
+109 35 64
+110 35 64
+111 35 64
+112 35 64
+113 35 64
+114 35 64
+115 35 64
+116 35 64
+117 35 64
+118 35 64
+119 35 64
+120 35 64
+121 35 64
+122 35 64
+123 35 64
+124 35 64
+125 35 64
+126 35 64
+127 35 64
+128 35 64
+129 35 64
+130 35 64
+131 35 64
+132 35 64
+133 35 64
+134 35 64
+135 35 64
+136 35 64
+137 35 64
+138 35 64
+139 35 64
+140 35 64
+141 35 64
+142 35 64
+143 35 64
+144 35 64
+145 35 64
+146 35 64
+147 35 64
+148 35 64
+149 35 64
+150 35 64
+151 35 64
+152 35 64
+153 35 64
+154 35 64
+155 35 64
+156 35 64
+157 35 64
+158 35 64
+159 35 64
+160 35 64
+161 35 64
+162 35 64
+163 35 64
+164 35 64
+165 35 64
+166 35 64
+167 35 64
+168 35 64
+169 35 64
+170 35 64
+171 35 64
+172 35 64
+173 35 64
+174 35 64
+175 35 64
+176 35 64
+177 35 64
+178 35 64
+179 35 64
+180 35 64
+181 35 64
+182 35 64
+183 35 64
+184 35 64
+185 35 64
+186 35 64
+187 35 64
+188 35 64
+189 35 64
+190 35 64
+191 35 64
+192 35 64
+193 35 64
+194 35 64
+195 35 64
+196 35 64
+197 35 64
+198 35 64
+199 35 64
+200 35 64
+201 35 64
+202 35 64
+203 35 64
+204 35 64
+205 35 64
+206 35 64
+207 35 64
+208 35 64
+209 35 64
+210 35 64
+211 35 64
+212 35 64
+213 35 64
+214 35 64
+215 35 64
+216 35 64
+217 35 64
+218 35 64
+219 35 64
+220 35 64
+221 35 64
+222 35 64
+223 35 64
+224 35 64
+225 35 64
+226 35 64
+227 35 64
+228 35 64
+229 35 64
+230 35 64
+231 35 64
+232 35 64
+233 35 64
+234 35 64
+235 35 64
+236 35 64
+237 35 64
+238 35 64
+239 35 64
+240 35 64
+241 35 64
+242 35 64
+243 35 64
+244 35 64
+245 35 64
+246 35 64
+247 35 64
+248 35 64
+249 35 64
+250 35 64
+251 35 64
+252 35 64
+253 35 64
+254 35 64
+255 35 64
+0 34 64
+1 34 64
+2 34 64
+3 34 64
+4 34 64
+5 34 64
+6 34 64
+7 34 64
+8 34 64
+9 34 64
+10 34 64
+11 34 64
+12 34 64
+13 34 64
+14 34 64
+15 34 64
+16 34 64
+17 34 64
+18 34 64
+19 34 64
+20 34 64
+21 34 64
+22 34 64
+23 34 64
+24 34 64
+25 34 64
+26 34 64
+27 34 64
+28 34 64
+29 34 64
+30 34 64
+31 34 64
+32 34 64
+33 34 64
+34 34 64
+35 34 64
+36 34 64
+37 34 64
+38 34 64
+39 34 64
+40 34 64
+41 34 64
+42 34 64
+43 34 64
+44 34 64
+45 34 64
+46 34 64
+47 34 64
+48 34 64
+49 34 64
+50 34 64
+51 34 64
+52 34 64
+53 34 64
+54 34 64
+55 34 64
+56 34 64
+57 34 64
+58 34 64
+59 34 64
+60 34 64
+61 34 64
+62 34 64
+63 34 64
+64 34 64
+65 34 64
+66 34 64
+67 34 64
+68 34 64
+69 34 64
+70 34 64
+71 34 64
+72 34 64
+73 34 64
+74 34 64
+75 34 64
+76 34 64
+77 34 64
+78 34 64
+79 34 64
+80 34 64
+81 34 64
+82 34 64
+83 34 64
+84 34 64
+85 34 64
+86 34 64
+87 34 64
+88 34 64
+89 34 64
+90 34 64
+91 34 64
+92 34 64
+93 34 64
+94 34 64
+95 34 64
+96 34 64
+97 34 64
+98 34 64
+99 34 64
+100 34 64
+101 34 64
+102 34 64
+103 34 64
+104 34 64
+105 34 64
+106 34 64
+107 34 64
+108 34 64
+109 34 64
+110 34 64
+111 34 64
+112 34 64
+113 34 64
+114 34 64
+115 34 64
+116 34 64
+117 34 64
+118 34 64
+119 34 64
+120 34 64
+121 34 64
+122 34 64
+123 34 64
+124 34 64
+125 34 64
+126 34 64
+127 34 64
+128 34 64
+129 34 64
+130 34 64
+131 34 64
+132 34 64
+133 34 64
+134 34 64
+135 34 64
+136 34 64
+137 34 64
+138 34 64
+139 34 64
+140 34 64
+141 34 64
+142 34 64
+143 34 64
+144 34 64
+145 34 64
+146 34 64
+147 34 64
+148 34 64
+149 34 64
+150 34 64
+151 34 64
+152 34 64
+153 34 64
+154 34 64
+155 34 64
+156 34 64
+157 34 64
+158 34 64
+159 34 64
+160 34 64
+161 34 64
+162 34 64
+163 34 64
+164 34 64
+165 34 64
+166 34 64
+167 34 64
+168 34 64
+169 34 64
+170 34 64
+171 34 64
+172 34 64
+173 34 64
+174 34 64
+175 34 64
+176 34 64
+177 34 64
+178 34 64
+179 34 64
+180 34 64
+181 34 64
+182 34 64
+183 34 64
+184 34 64
+185 34 64
+186 34 64
+187 34 64
+188 34 64
+189 34 64
+190 34 64
+191 34 64
+192 34 64
+193 34 64
+194 34 64
+195 34 64
+196 34 64
+197 34 64
+198 34 64
+199 34 64
+200 34 64
+201 34 64
+202 34 64
+203 34 64
+204 34 64
+205 34 64
+206 34 64
+207 34 64
+208 34 64
+209 34 64
+210 34 64
+211 34 64
+212 34 64
+213 34 64
+214 34 64
+215 34 64
+216 34 64
+217 34 64
+218 34 64
+219 34 64
+220 34 64
+221 34 64
+222 34 64
+223 34 64
+224 34 64
+225 34 64
+226 34 64
+227 34 64
+228 34 64
+229 34 64
+230 34 64
+231 34 64
+232 34 64
+233 34 64
+234 34 64
+235 34 64
+236 34 64
+237 34 64
+238 34 64
+239 34 64
+240 34 64
+241 34 64
+242 34 64
+243 34 64
+244 34 64
+245 34 64
+246 34 64
+247 34 64
+248 34 64
+249 34 64
+250 34 64
+251 34 64
+252 34 64
+253 34 64
+254 34 64
+255 34 64
+0 33 64
+1 33 64
+2 33 64
+3 33 64
+4 33 64
+5 33 64
+6 33 64
+7 33 64
+8 33 64
+9 33 64
+10 33 64
+11 33 64
+12 33 64
+13 33 64
+14 33 64
+15 33 64
+16 33 64
+17 33 64
+18 33 64
+19 33 64
+20 33 64
+21 33 64
+22 33 64
+23 33 64
+24 33 64
+25 33 64
+26 33 64
+27 33 64
+28 33 64
+29 33 64
+30 33 64
+31 33 64
+32 33 64
+33 33 64
+34 33 64
+35 33 64
+36 33 64
+37 33 64
+38 33 64
+39 33 64
+40 33 64
+41 33 64
+42 33 64
+43 33 64
+44 33 64
+45 33 64
+46 33 64
+47 33 64
+48 33 64
+49 33 64
+50 33 64
+51 33 64
+52 33 64
+53 33 64
+54 33 64
+55 33 64
+56 33 64
+57 33 64
+58 33 64
+59 33 64
+60 33 64
+61 33 64
+62 33 64
+63 33 64
+64 33 64
+65 33 64
+66 33 64
+67 33 64
+68 33 64
+69 33 64
+70 33 64
+71 33 64
+72 33 64
+73 33 64
+74 33 64
+75 33 64
+76 33 64
+77 33 64
+78 33 64
+79 33 64
+80 33 64
+81 33 64
+82 33 64
+83 33 64
+84 33 64
+85 33 64
+86 33 64
+87 33 64
+88 33 64
+89 33 64
+90 33 64
+91 33 64
+92 33 64
+93 33 64
+94 33 64
+95 33 64
+96 33 64
+97 33 64
+98 33 64
+99 33 64
+100 33 64
+101 33 64
+102 33 64
+103 33 64
+104 33 64
+105 33 64
+106 33 64
+107 33 64
+108 33 64
+109 33 64
+110 33 64
+111 33 64
+112 33 64
+113 33 64
+114 33 64
+115 33 64
+116 33 64
+117 33 64
+118 33 64
+119 33 64
+120 33 64
+121 33 64
+122 33 64
+123 33 64
+124 33 64
+125 33 64
+126 33 64
+127 33 64
+128 33 64
+129 33 64
+130 33 64
+131 33 64
+132 33 64
+133 33 64
+134 33 64
+135 33 64
+136 33 64
+137 33 64
+138 33 64
+139 33 64
+140 33 64
+141 33 64
+142 33 64
+143 33 64
+144 33 64
+145 33 64
+146 33 64
+147 33 64
+148 33 64
+149 33 64
+150 33 64
+151 33 64
+152 33 64
+153 33 64
+154 33 64
+155 33 64
+156 33 64
+157 33 64
+158 33 64
+159 33 64
+160 33 64
+161 33 64
+162 33 64
+163 33 64
+164 33 64
+165 33 64
+166 33 64
+167 33 64
+168 33 64
+169 33 64
+170 33 64
+171 33 64
+172 33 64
+173 33 64
+174 33 64
+175 33 64
+176 33 64
+177 33 64
+178 33 64
+179 33 64
+180 33 64
+181 33 64
+182 33 64
+183 33 64
+184 33 64
+185 33 64
+186 33 64
+187 33 64
+188 33 64
+189 33 64
+190 33 64
+191 33 64
+192 33 64
+193 33 64
+194 33 64
+195 33 64
+196 33 64
+197 33 64
+198 33 64
+199 33 64
+200 33 64
+201 33 64
+202 33 64
+203 33 64
+204 33 64
+205 33 64
+206 33 64
+207 33 64
+208 33 64
+209 33 64
+210 33 64
+211 33 64
+212 33 64
+213 33 64
+214 33 64
+215 33 64
+216 33 64
+217 33 64
+218 33 64
+219 33 64
+220 33 64
+221 33 64
+222 33 64
+223 33 64
+224 33 64
+225 33 64
+226 33 64
+227 33 64
+228 33 64
+229 33 64
+230 33 64
+231 33 64
+232 33 64
+233 33 64
+234 33 64
+235 33 64
+236 33 64
+237 33 64
+238 33 64
+239 33 64
+240 33 64
+241 33 64
+242 33 64
+243 33 64
+244 33 64
+245 33 64
+246 33 64
+247 33 64
+248 33 64
+249 33 64
+250 33 64
+251 33 64
+252 33 64
+253 33 64
+254 33 64
+255 33 64
+0 32 64
+1 32 64
+2 32 64
+3 32 64
+4 32 64
+5 32 64
+6 32 64
+7 32 64
+8 32 64
+9 32 64
+10 32 64
+11 32 64
+12 32 64
+13 32 64
+14 32 64
+15 32 64
+16 32 64
+17 32 64
+18 32 64
+19 32 64
+20 32 64
+21 32 64
+22 32 64
+23 32 64
+24 32 64
+25 32 64
+26 32 64
+27 32 64
+28 32 64
+29 32 64
+30 32 64
+31 32 64
+32 32 64
+33 32 64
+34 32 64
+35 32 64
+36 32 64
+37 32 64
+38 32 64
+39 32 64
+40 32 64
+41 32 64
+42 32 64
+43 32 64
+44 32 64
+45 32 64
+46 32 64
+47 32 64
+48 32 64
+49 32 64
+50 32 64
+51 32 64
+52 32 64
+53 32 64
+54 32 64
+55 32 64
+56 32 64
+57 32 64
+58 32 64
+59 32 64
+60 32 64
+61 32 64
+62 32 64
+63 32 64
+64 32 64
+65 32 64
+66 32 64
+67 32 64
+68 32 64
+69 32 64
+70 32 64
+71 32 64
+72 32 64
+73 32 64
+74 32 64
+75 32 64
+76 32 64
+77 32 64
+78 32 64
+79 32 64
+80 32 64
+81 32 64
+82 32 64
+83 32 64
+84 32 64
+85 32 64
+86 32 64
+87 32 64
+88 32 64
+89 32 64
+90 32 64
+91 32 64
+92 32 64
+93 32 64
+94 32 64
+95 32 64
+96 32 64
+97 32 64
+98 32 64
+99 32 64
+100 32 64
+101 32 64
+102 32 64
+103 32 64
+104 32 64
+105 32 64
+106 32 64
+107 32 64
+108 32 64
+109 32 64
+110 32 64
+111 32 64
+112 32 64
+113 32 64
+114 32 64
+115 32 64
+116 32 64
+117 32 64
+118 32 64
+119 32 64
+120 32 64
+121 32 64
+122 32 64
+123 32 64
+124 32 64
+125 32 64
+126 32 64
+127 32 64
+128 32 64
+129 32 64
+130 32 64
+131 32 64
+132 32 64
+133 32 64
+134 32 64
+135 32 64
+136 32 64
+137 32 64
+138 32 64
+139 32 64
+140 32 64
+141 32 64
+142 32 64
+143 32 64
+144 32 64
+145 32 64
+146 32 64
+147 32 64
+148 32 64
+149 32 64
+150 32 64
+151 32 64
+152 32 64
+153 32 64
+154 32 64
+155 32 64
+156 32 64
+157 32 64
+158 32 64
+159 32 64
+160 32 64
+161 32 64
+162 32 64
+163 32 64
+164 32 64
+165 32 64
+166 32 64
+167 32 64
+168 32 64
+169 32 64
+170 32 64
+171 32 64
+172 32 64
+173 32 64
+174 32 64
+175 32 64
+176 32 64
+177 32 64
+178 32 64
+179 32 64
+180 32 64
+181 32 64
+182 32 64
+183 32 64
+184 32 64
+185 32 64
+186 32 64
+187 32 64
+188 32 64
+189 32 64
+190 32 64
+191 32 64
+192 32 64
+193 32 64
+194 32 64
+195 32 64
+196 32 64
+197 32 64
+198 32 64
+199 32 64
+200 32 64
+201 32 64
+202 32 64
+203 32 64
+204 32 64
+205 32 64
+206 32 64
+207 32 64
+208 32 64
+209 32 64
+210 32 64
+211 32 64
+212 32 64
+213 32 64
+214 32 64
+215 32 64
+216 32 64
+217 32 64
+218 32 64
+219 32 64
+220 32 64
+221 32 64
+222 32 64
+223 32 64
+224 32 64
+225 32 64
+226 32 64
+227 32 64
+228 32 64
+229 32 64
+230 32 64
+231 32 64
+232 32 64
+233 32 64
+234 32 64
+235 32 64
+236 32 64
+237 32 64
+238 32 64
+239 32 64
+240 32 64
+241 32 64
+242 32 64
+243 32 64
+244 32 64
+245 32 64
+246 32 64
+247 32 64
+248 32 64
+249 32 64
+250 32 64
+251 32 64
+252 32 64
+253 32 64
+254 32 64
+255 32 64
+0 31 64
+1 31 64
+2 31 64
+3 31 64
+4 31 64
+5 31 64
+6 31 64
+7 31 64
+8 31 64
+9 31 64
+10 31 64
+11 31 64
+12 31 64
+13 31 64
+14 31 64
+15 31 64
+16 31 64
+17 31 64
+18 31 64
+19 31 64
+20 31 64
+21 31 64
+22 31 64
+23 31 64
+24 31 64
+25 31 64
+26 31 64
+27 31 64
+28 31 64
+29 31 64
+30 31 64
+31 31 64
+32 31 64
+33 31 64
+34 31 64
+35 31 64
+36 31 64
+37 31 64
+38 31 64
+39 31 64
+40 31 64
+41 31 64
+42 31 64
+43 31 64
+44 31 64
+45 31 64
+46 31 64
+47 31 64
+48 31 64
+49 31 64
+50 31 64
+51 31 64
+52 31 64
+53 31 64
+54 31 64
+55 31 64
+56 31 64
+57 31 64
+58 31 64
+59 31 64
+60 31 64
+61 31 64
+62 31 64
+63 31 64
+64 31 64
+65 31 64
+66 31 64
+67 31 64
+68 31 64
+69 31 64
+70 31 64
+71 31 64
+72 31 64
+73 31 64
+74 31 64
+75 31 64
+76 31 64
+77 31 64
+78 31 64
+79 31 64
+80 31 64
+81 31 64
+82 31 64
+83 31 64
+84 31 64
+85 31 64
+86 31 64
+87 31 64
+88 31 64
+89 31 64
+90 31 64
+91 31 64
+92 31 64
+93 31 64
+94 31 64
+95 31 64
+96 31 64
+97 31 64
+98 31 64
+99 31 64
+100 31 64
+101 31 64
+102 31 64
+103 31 64
+104 31 64
+105 31 64
+106 31 64
+107 31 64
+108 31 64
+109 31 64
+110 31 64
+111 31 64
+112 31 64
+113 31 64
+114 31 64
+115 31 64
+116 31 64
+117 31 64
+118 31 64
+119 31 64
+120 31 64
+121 31 64
+122 31 64
+123 31 64
+124 31 64
+125 31 64
+126 31 64
+127 31 64
+128 31 64
+129 31 64
+130 31 64
+131 31 64
+132 31 64
+133 31 64
+134 31 64
+135 31 64
+136 31 64
+137 31 64
+138 31 64
+139 31 64
+140 31 64
+141 31 64
+142 31 64
+143 31 64
+144 31 64
+145 31 64
+146 31 64
+147 31 64
+148 31 64
+149 31 64
+150 31 64
+151 31 64
+152 31 64
+153 31 64
+154 31 64
+155 31 64
+156 31 64
+157 31 64
+158 31 64
+159 31 64
+160 31 64
+161 31 64
+162 31 64
+163 31 64
+164 31 64
+165 31 64
+166 31 64
+167 31 64
+168 31 64
+169 31 64
+170 31 64
+171 31 64
+172 31 64
+173 31 64
+174 31 64
+175 31 64
+176 31 64
+177 31 64
+178 31 64
+179 31 64
+180 31 64
+181 31 64
+182 31 64
+183 31 64
+184 31 64
+185 31 64
+186 31 64
+187 31 64
+188 31 64
+189 31 64
+190 31 64
+191 31 64
+192 31 64
+193 31 64
+194 31 64
+195 31 64
+196 31 64
+197 31 64
+198 31 64
+199 31 64
+200 31 64
+201 31 64
+202 31 64
+203 31 64
+204 31 64
+205 31 64
+206 31 64
+207 31 64
+208 31 64
+209 31 64
+210 31 64
+211 31 64
+212 31 64
+213 31 64
+214 31 64
+215 31 64
+216 31 64
+217 31 64
+218 31 64
+219 31 64
+220 31 64
+221 31 64
+222 31 64
+223 31 64
+224 31 64
+225 31 64
+226 31 64
+227 31 64
+228 31 64
+229 31 64
+230 31 64
+231 31 64
+232 31 64
+233 31 64
+234 31 64
+235 31 64
+236 31 64
+237 31 64
+238 31 64
+239 31 64
+240 31 64
+241 31 64
+242 31 64
+243 31 64
+244 31 64
+245 31 64
+246 31 64
+247 31 64
+248 31 64
+249 31 64
+250 31 64
+251 31 64
+252 31 64
+253 31 64
+254 31 64
+255 31 64
+0 30 64
+1 30 64
+2 30 64
+3 30 64
+4 30 64
+5 30 64
+6 30 64
+7 30 64
+8 30 64
+9 30 64
+10 30 64
+11 30 64
+12 30 64
+13 30 64
+14 30 64
+15 30 64
+16 30 64
+17 30 64
+18 30 64
+19 30 64
+20 30 64
+21 30 64
+22 30 64
+23 30 64
+24 30 64
+25 30 64
+26 30 64
+27 30 64
+28 30 64
+29 30 64
+30 30 64
+31 30 64
+32 30 64
+33 30 64
+34 30 64
+35 30 64
+36 30 64
+37 30 64
+38 30 64
+39 30 64
+40 30 64
+41 30 64
+42 30 64
+43 30 64
+44 30 64
+45 30 64
+46 30 64
+47 30 64
+48 30 64
+49 30 64
+50 30 64
+51 30 64
+52 30 64
+53 30 64
+54 30 64
+55 30 64
+56 30 64
+57 30 64
+58 30 64
+59 30 64
+60 30 64
+61 30 64
+62 30 64
+63 30 64
+64 30 64
+65 30 64
+66 30 64
+67 30 64
+68 30 64
+69 30 64
+70 30 64
+71 30 64
+72 30 64
+73 30 64
+74 30 64
+75 30 64
+76 30 64
+77 30 64
+78 30 64
+79 30 64
+80 30 64
+81 30 64
+82 30 64
+83 30 64
+84 30 64
+85 30 64
+86 30 64
+87 30 64
+88 30 64
+89 30 64
+90 30 64
+91 30 64
+92 30 64
+93 30 64
+94 30 64
+95 30 64
+96 30 64
+97 30 64
+98 30 64
+99 30 64
+100 30 64
+101 30 64
+102 30 64
+103 30 64
+104 30 64
+105 30 64
+106 30 64
+107 30 64
+108 30 64
+109 30 64
+110 30 64
+111 30 64
+112 30 64
+113 30 64
+114 30 64
+115 30 64
+116 30 64
+117 30 64
+118 30 64
+119 30 64
+120 30 64
+121 30 64
+122 30 64
+123 30 64
+124 30 64
+125 30 64
+126 30 64
+127 30 64
+128 30 64
+129 30 64
+130 30 64
+131 30 64
+132 30 64
+133 30 64
+134 30 64
+135 30 64
+136 30 64
+137 30 64
+138 30 64
+139 30 64
+140 30 64
+141 30 64
+142 30 64
+143 30 64
+144 30 64
+145 30 64
+146 30 64
+147 30 64
+148 30 64
+149 30 64
+150 30 64
+151 30 64
+152 30 64
+153 30 64
+154 30 64
+155 30 64
+156 30 64
+157 30 64
+158 30 64
+159 30 64
+160 30 64
+161 30 64
+162 30 64
+163 30 64
+164 30 64
+165 30 64
+166 30 64
+167 30 64
+168 30 64
+169 30 64
+170 30 64
+171 30 64
+172 30 64
+173 30 64
+174 30 64
+175 30 64
+176 30 64
+177 30 64
+178 30 64
+179 30 64
+180 30 64
+181 30 64
+182 30 64
+183 30 64
+184 30 64
+185 30 64
+186 30 64
+187 30 64
+188 30 64
+189 30 64
+190 30 64
+191 30 64
+192 30 64
+193 30 64
+194 30 64
+195 30 64
+196 30 64
+197 30 64
+198 30 64
+199 30 64
+200 30 64
+201 30 64
+202 30 64
+203 30 64
+204 30 64
+205 30 64
+206 30 64
+207 30 64
+208 30 64
+209 30 64
+210 30 64
+211 30 64
+212 30 64
+213 30 64
+214 30 64
+215 30 64
+216 30 64
+217 30 64
+218 30 64
+219 30 64
+220 30 64
+221 30 64
+222 30 64
+223 30 64
+224 30 64
+225 30 64
+226 30 64
+227 30 64
+228 30 64
+229 30 64
+230 30 64
+231 30 64
+232 30 64
+233 30 64
+234 30 64
+235 30 64
+236 30 64
+237 30 64
+238 30 64
+239 30 64
+240 30 64
+241 30 64
+242 30 64
+243 30 64
+244 30 64
+245 30 64
+246 30 64
+247 30 64
+248 30 64
+249 30 64
+250 30 64
+251 30 64
+252 30 64
+253 30 64
+254 30 64
+255 30 64
+0 29 64
+1 29 64
+2 29 64
+3 29 64
+4 29 64
+5 29 64
+6 29 64
+7 29 64
+8 29 64
+9 29 64
+10 29 64
+11 29 64
+12 29 64
+13 29 64
+14 29 64
+15 29 64
+16 29 64
+17 29 64
+18 29 64
+19 29 64
+20 29 64
+21 29 64
+22 29 64
+23 29 64
+24 29 64
+25 29 64
+26 29 64
+27 29 64
+28 29 64
+29 29 64
+30 29 64
+31 29 64
+32 29 64
+33 29 64
+34 29 64
+35 29 64
+36 29 64
+37 29 64
+38 29 64
+39 29 64
+40 29 64
+41 29 64
+42 29 64
+43 29 64
+44 29 64
+45 29 64
+46 29 64
+47 29 64
+48 29 64
+49 29 64
+50 29 64
+51 29 64
+52 29 64
+53 29 64
+54 29 64
+55 29 64
+56 29 64
+57 29 64
+58 29 64
+59 29 64
+60 29 64
+61 29 64
+62 29 64
+63 29 64
+64 29 64
+65 29 64
+66 29 64
+67 29 64
+68 29 64
+69 29 64
+70 29 64
+71 29 64
+72 29 64
+73 29 64
+74 29 64
+75 29 64
+76 29 64
+77 29 64
+78 29 64
+79 29 64
+80 29 64
+81 29 64
+82 29 64
+83 29 64
+84 29 64
+85 29 64
+86 29 64
+87 29 64
+88 29 64
+89 29 64
+90 29 64
+91 29 64
+92 29 64
+93 29 64
+94 29 64
+95 29 64
+96 29 64
+97 29 64
+98 29 64
+99 29 64
+100 29 64
+101 29 64
+102 29 64
+103 29 64
+104 29 64
+105 29 64
+106 29 64
+107 29 64
+108 29 64
+109 29 64
+110 29 64
+111 29 64
+112 29 64
+113 29 64
+114 29 64
+115 29 64
+116 29 64
+117 29 64
+118 29 64
+119 29 64
+120 29 64
+121 29 64
+122 29 64
+123 29 64
+124 29 64
+125 29 64
+126 29 64
+127 29 64
+128 29 64
+129 29 64
+130 29 64
+131 29 64
+132 29 64
+133 29 64
+134 29 64
+135 29 64
+136 29 64
+137 29 64
+138 29 64
+139 29 64
+140 29 64
+141 29 64
+142 29 64
+143 29 64
+144 29 64
+145 29 64
+146 29 64
+147 29 64
+148 29 64
+149 29 64
+150 29 64
+151 29 64
+152 29 64
+153 29 64
+154 29 64
+155 29 64
+156 29 64
+157 29 64
+158 29 64
+159 29 64
+160 29 64
+161 29 64
+162 29 64
+163 29 64
+164 29 64
+165 29 64
+166 29 64
+167 29 64
+168 29 64
+169 29 64
+170 29 64
+171 29 64
+172 29 64
+173 29 64
+174 29 64
+175 29 64
+176 29 64
+177 29 64
+178 29 64
+179 29 64
+180 29 64
+181 29 64
+182 29 64
+183 29 64
+184 29 64
+185 29 64
+186 29 64
+187 29 64
+188 29 64
+189 29 64
+190 29 64
+191 29 64
+192 29 64
+193 29 64
+194 29 64
+195 29 64
+196 29 64
+197 29 64
+198 29 64
+199 29 64
+200 29 64
+201 29 64
+202 29 64
+203 29 64
+204 29 64
+205 29 64
+206 29 64
+207 29 64
+208 29 64
+209 29 64
+210 29 64
+211 29 64
+212 29 64
+213 29 64
+214 29 64
+215 29 64
+216 29 64
+217 29 64
+218 29 64
+219 29 64
+220 29 64
+221 29 64
+222 29 64
+223 29 64
+224 29 64
+225 29 64
+226 29 64
+227 29 64
+228 29 64
+229 29 64
+230 29 64
+231 29 64
+232 29 64
+233 29 64
+234 29 64
+235 29 64
+236 29 64
+237 29 64
+238 29 64
+239 29 64
+240 29 64
+241 29 64
+242 29 64
+243 29 64
+244 29 64
+245 29 64
+246 29 64
+247 29 64
+248 29 64
+249 29 64
+250 29 64
+251 29 64
+252 29 64
+253 29 64
+254 29 64
+255 29 64
+0 28 64
+1 28 64
+2 28 64
+3 28 64
+4 28 64
+5 28 64
+6 28 64
+7 28 64
+8 28 64
+9 28 64
+10 28 64
+11 28 64
+12 28 64
+13 28 64
+14 28 64
+15 28 64
+16 28 64
+17 28 64
+18 28 64
+19 28 64
+20 28 64
+21 28 64
+22 28 64
+23 28 64
+24 28 64
+25 28 64
+26 28 64
+27 28 64
+28 28 64
+29 28 64
+30 28 64
+31 28 64
+32 28 64
+33 28 64
+34 28 64
+35 28 64
+36 28 64
+37 28 64
+38 28 64
+39 28 64
+40 28 64
+41 28 64
+42 28 64
+43 28 64
+44 28 64
+45 28 64
+46 28 64
+47 28 64
+48 28 64
+49 28 64
+50 28 64
+51 28 64
+52 28 64
+53 28 64
+54 28 64
+55 28 64
+56 28 64
+57 28 64
+58 28 64
+59 28 64
+60 28 64
+61 28 64
+62 28 64
+63 28 64
+64 28 64
+65 28 64
+66 28 64
+67 28 64
+68 28 64
+69 28 64
+70 28 64
+71 28 64
+72 28 64
+73 28 64
+74 28 64
+75 28 64
+76 28 64
+77 28 64
+78 28 64
+79 28 64
+80 28 64
+81 28 64
+82 28 64
+83 28 64
+84 28 64
+85 28 64
+86 28 64
+87 28 64
+88 28 64
+89 28 64
+90 28 64
+91 28 64
+92 28 64
+93 28 64
+94 28 64
+95 28 64
+96 28 64
+97 28 64
+98 28 64
+99 28 64
+100 28 64
+101 28 64
+102 28 64
+103 28 64
+104 28 64
+105 28 64
+106 28 64
+107 28 64
+108 28 64
+109 28 64
+110 28 64
+111 28 64
+112 28 64
+113 28 64
+114 28 64
+115 28 64
+116 28 64
+117 28 64
+118 28 64
+119 28 64
+120 28 64
+121 28 64
+122 28 64
+123 28 64
+124 28 64
+125 28 64
+126 28 64
+127 28 64
+128 28 64
+129 28 64
+130 28 64
+131 28 64
+132 28 64
+133 28 64
+134 28 64
+135 28 64
+136 28 64
+137 28 64
+138 28 64
+139 28 64
+140 28 64
+141 28 64
+142 28 64
+143 28 64
+144 28 64
+145 28 64
+146 28 64
+147 28 64
+148 28 64
+149 28 64
+150 28 64
+151 28 64
+152 28 64
+153 28 64
+154 28 64
+155 28 64
+156 28 64
+157 28 64
+158 28 64
+159 28 64
+160 28 64
+161 28 64
+162 28 64
+163 28 64
+164 28 64
+165 28 64
+166 28 64
+167 28 64
+168 28 64
+169 28 64
+170 28 64
+171 28 64
+172 28 64
+173 28 64
+174 28 64
+175 28 64
+176 28 64
+177 28 64
+178 28 64
+179 28 64
+180 28 64
+181 28 64
+182 28 64
+183 28 64
+184 28 64
+185 28 64
+186 28 64
+187 28 64
+188 28 64
+189 28 64
+190 28 64
+191 28 64
+192 28 64
+193 28 64
+194 28 64
+195 28 64
+196 28 64
+197 28 64
+198 28 64
+199 28 64
+200 28 64
+201 28 64
+202 28 64
+203 28 64
+204 28 64
+205 28 64
+206 28 64
+207 28 64
+208 28 64
+209 28 64
+210 28 64
+211 28 64
+212 28 64
+213 28 64
+214 28 64
+215 28 64
+216 28 64
+217 28 64
+218 28 64
+219 28 64
+220 28 64
+221 28 64
+222 28 64
+223 28 64
+224 28 64
+225 28 64
+226 28 64
+227 28 64
+228 28 64
+229 28 64
+230 28 64
+231 28 64
+232 28 64
+233 28 64
+234 28 64
+235 28 64
+236 28 64
+237 28 64
+238 28 64
+239 28 64
+240 28 64
+241 28 64
+242 28 64
+243 28 64
+244 28 64
+245 28 64
+246 28 64
+247 28 64
+248 28 64
+249 28 64
+250 28 64
+251 28 64
+252 28 64
+253 28 64
+254 28 64
+255 28 64
+0 27 64
+1 27 64
+2 27 64
+3 27 64
+4 27 64
+5 27 64
+6 27 64
+7 27 64
+8 27 64
+9 27 64
+10 27 64
+11 27 64
+12 27 64
+13 27 64
+14 27 64
+15 27 64
+16 27 64
+17 27 64
+18 27 64
+19 27 64
+20 27 64
+21 27 64
+22 27 64
+23 27 64
+24 27 64
+25 27 64
+26 27 64
+27 27 64
+28 27 64
+29 27 64
+30 27 64
+31 27 64
+32 27 64
+33 27 64
+34 27 64
+35 27 64
+36 27 64
+37 27 64
+38 27 64
+39 27 64
+40 27 64
+41 27 64
+42 27 64
+43 27 64
+44 27 64
+45 27 64
+46 27 64
+47 27 64
+48 27 64
+49 27 64
+50 27 64
+51 27 64
+52 27 64
+53 27 64
+54 27 64
+55 27 64
+56 27 64
+57 27 64
+58 27 64
+59 27 64
+60 27 64
+61 27 64
+62 27 64
+63 27 64
+64 27 64
+65 27 64
+66 27 64
+67 27 64
+68 27 64
+69 27 64
+70 27 64
+71 27 64
+72 27 64
+73 27 64
+74 27 64
+75 27 64
+76 27 64
+77 27 64
+78 27 64
+79 27 64
+80 27 64
+81 27 64
+82 27 64
+83 27 64
+84 27 64
+85 27 64
+86 27 64
+87 27 64
+88 27 64
+89 27 64
+90 27 64
+91 27 64
+92 27 64
+93 27 64
+94 27 64
+95 27 64
+96 27 64
+97 27 64
+98 27 64
+99 27 64
+100 27 64
+101 27 64
+102 27 64
+103 27 64
+104 27 64
+105 27 64
+106 27 64
+107 27 64
+108 27 64
+109 27 64
+110 27 64
+111 27 64
+112 27 64
+113 27 64
+114 27 64
+115 27 64
+116 27 64
+117 27 64
+118 27 64
+119 27 64
+120 27 64
+121 27 64
+122 27 64
+123 27 64
+124 27 64
+125 27 64
+126 27 64
+127 27 64
+128 27 64
+129 27 64
+130 27 64
+131 27 64
+132 27 64
+133 27 64
+134 27 64
+135 27 64
+136 27 64
+137 27 64
+138 27 64
+139 27 64
+140 27 64
+141 27 64
+142 27 64
+143 27 64
+144 27 64
+145 27 64
+146 27 64
+147 27 64
+148 27 64
+149 27 64
+150 27 64
+151 27 64
+152 27 64
+153 27 64
+154 27 64
+155 27 64
+156 27 64
+157 27 64
+158 27 64
+159 27 64
+160 27 64
+161 27 64
+162 27 64
+163 27 64
+164 27 64
+165 27 64
+166 27 64
+167 27 64
+168 27 64
+169 27 64
+170 27 64
+171 27 64
+172 27 64
+173 27 64
+174 27 64
+175 27 64
+176 27 64
+177 27 64
+178 27 64
+179 27 64
+180 27 64
+181 27 64
+182 27 64
+183 27 64
+184 27 64
+185 27 64
+186 27 64
+187 27 64
+188 27 64
+189 27 64
+190 27 64
+191 27 64
+192 27 64
+193 27 64
+194 27 64
+195 27 64
+196 27 64
+197 27 64
+198 27 64
+199 27 64
+200 27 64
+201 27 64
+202 27 64
+203 27 64
+204 27 64
+205 27 64
+206 27 64
+207 27 64
+208 27 64
+209 27 64
+210 27 64
+211 27 64
+212 27 64
+213 27 64
+214 27 64
+215 27 64
+216 27 64
+217 27 64
+218 27 64
+219 27 64
+220 27 64
+221 27 64
+222 27 64
+223 27 64
+224 27 64
+225 27 64
+226 27 64
+227 27 64
+228 27 64
+229 27 64
+230 27 64
+231 27 64
+232 27 64
+233 27 64
+234 27 64
+235 27 64
+236 27 64
+237 27 64
+238 27 64
+239 27 64
+240 27 64
+241 27 64
+242 27 64
+243 27 64
+244 27 64
+245 27 64
+246 27 64
+247 27 64
+248 27 64
+249 27 64
+250 27 64
+251 27 64
+252 27 64
+253 27 64
+254 27 64
+255 27 64
+0 26 64
+1 26 64
+2 26 64
+3 26 64
+4 26 64
+5 26 64
+6 26 64
+7 26 64
+8 26 64
+9 26 64
+10 26 64
+11 26 64
+12 26 64
+13 26 64
+14 26 64
+15 26 64
+16 26 64
+17 26 64
+18 26 64
+19 26 64
+20 26 64
+21 26 64
+22 26 64
+23 26 64
+24 26 64
+25 26 64
+26 26 64
+27 26 64
+28 26 64
+29 26 64
+30 26 64
+31 26 64
+32 26 64
+33 26 64
+34 26 64
+35 26 64
+36 26 64
+37 26 64
+38 26 64
+39 26 64
+40 26 64
+41 26 64
+42 26 64
+43 26 64
+44 26 64
+45 26 64
+46 26 64
+47 26 64
+48 26 64
+49 26 64
+50 26 64
+51 26 64
+52 26 64
+53 26 64
+54 26 64
+55 26 64
+56 26 64
+57 26 64
+58 26 64
+59 26 64
+60 26 64
+61 26 64
+62 26 64
+63 26 64
+64 26 64
+65 26 64
+66 26 64
+67 26 64
+68 26 64
+69 26 64
+70 26 64
+71 26 64
+72 26 64
+73 26 64
+74 26 64
+75 26 64
+76 26 64
+77 26 64
+78 26 64
+79 26 64
+80 26 64
+81 26 64
+82 26 64
+83 26 64
+84 26 64
+85 26 64
+86 26 64
+87 26 64
+88 26 64
+89 26 64
+90 26 64
+91 26 64
+92 26 64
+93 26 64
+94 26 64
+95 26 64
+96 26 64
+97 26 64
+98 26 64
+99 26 64
+100 26 64
+101 26 64
+102 26 64
+103 26 64
+104 26 64
+105 26 64
+106 26 64
+107 26 64
+108 26 64
+109 26 64
+110 26 64
+111 26 64
+112 26 64
+113 26 64
+114 26 64
+115 26 64
+116 26 64
+117 26 64
+118 26 64
+119 26 64
+120 26 64
+121 26 64
+122 26 64
+123 26 64
+124 26 64
+125 26 64
+126 26 64
+127 26 64
+128 26 64
+129 26 64
+130 26 64
+131 26 64
+132 26 64
+133 26 64
+134 26 64
+135 26 64
+136 26 64
+137 26 64
+138 26 64
+139 26 64
+140 26 64
+141 26 64
+142 26 64
+143 26 64
+144 26 64
+145 26 64
+146 26 64
+147 26 64
+148 26 64
+149 26 64
+150 26 64
+151 26 64
+152 26 64
+153 26 64
+154 26 64
+155 26 64
+156 26 64
+157 26 64
+158 26 64
+159 26 64
+160 26 64
+161 26 64
+162 26 64
+163 26 64
+164 26 64
+165 26 64
+166 26 64
+167 26 64
+168 26 64
+169 26 64
+170 26 64
+171 26 64
+172 26 64
+173 26 64
+174 26 64
+175 26 64
+176 26 64
+177 26 64
+178 26 64
+179 26 64
+180 26 64
+181 26 64
+182 26 64
+183 26 64
+184 26 64
+185 26 64
+186 26 64
+187 26 64
+188 26 64
+189 26 64
+190 26 64
+191 26 64
+192 26 64
+193 26 64
+194 26 64
+195 26 64
+196 26 64
+197 26 64
+198 26 64
+199 26 64
+200 26 64
+201 26 64
+202 26 64
+203 26 64
+204 26 64
+205 26 64
+206 26 64
+207 26 64
+208 26 64
+209 26 64
+210 26 64
+211 26 64
+212 26 64
+213 26 64
+214 26 64
+215 26 64
+216 26 64
+217 26 64
+218 26 64
+219 26 64
+220 26 64
+221 26 64
+222 26 64
+223 26 64
+224 26 64
+225 26 64
+226 26 64
+227 26 64
+228 26 64
+229 26 64
+230 26 64
+231 26 64
+232 26 64
+233 26 64
+234 26 64
+235 26 64
+236 26 64
+237 26 64
+238 26 64
+239 26 64
+240 26 64
+241 26 64
+242 26 64
+243 26 64
+244 26 64
+245 26 64
+246 26 64
+247 26 64
+248 26 64
+249 26 64
+250 26 64
+251 26 64
+252 26 64
+253 26 64
+254 26 64
+255 26 64
+0 25 64
+1 25 64
+2 25 64
+3 25 64
+4 25 64
+5 25 64
+6 25 64
+7 25 64
+8 25 64
+9 25 64
+10 25 64
+11 25 64
+12 25 64
+13 25 64
+14 25 64
+15 25 64
+16 25 64
+17 25 64
+18 25 64
+19 25 64
+20 25 64
+21 25 64
+22 25 64
+23 25 64
+24 25 64
+25 25 64
+26 25 64
+27 25 64
+28 25 64
+29 25 64
+30 25 64
+31 25 64
+32 25 64
+33 25 64
+34 25 64
+35 25 64
+36 25 64
+37 25 64
+38 25 64
+39 25 64
+40 25 64
+41 25 64
+42 25 64
+43 25 64
+44 25 64
+45 25 64
+46 25 64
+47 25 64
+48 25 64
+49 25 64
+50 25 64
+51 25 64
+52 25 64
+53 25 64
+54 25 64
+55 25 64
+56 25 64
+57 25 64
+58 25 64
+59 25 64
+60 25 64
+61 25 64
+62 25 64
+63 25 64
+64 25 64
+65 25 64
+66 25 64
+67 25 64
+68 25 64
+69 25 64
+70 25 64
+71 25 64
+72 25 64
+73 25 64
+74 25 64
+75 25 64
+76 25 64
+77 25 64
+78 25 64
+79 25 64
+80 25 64
+81 25 64
+82 25 64
+83 25 64
+84 25 64
+85 25 64
+86 25 64
+87 25 64
+88 25 64
+89 25 64
+90 25 64
+91 25 64
+92 25 64
+93 25 64
+94 25 64
+95 25 64
+96 25 64
+97 25 64
+98 25 64
+99 25 64
+100 25 64
+101 25 64
+102 25 64
+103 25 64
+104 25 64
+105 25 64
+106 25 64
+107 25 64
+108 25 64
+109 25 64
+110 25 64
+111 25 64
+112 25 64
+113 25 64
+114 25 64
+115 25 64
+116 25 64
+117 25 64
+118 25 64
+119 25 64
+120 25 64
+121 25 64
+122 25 64
+123 25 64
+124 25 64
+125 25 64
+126 25 64
+127 25 64
+128 25 64
+129 25 64
+130 25 64
+131 25 64
+132 25 64
+133 25 64
+134 25 64
+135 25 64
+136 25 64
+137 25 64
+138 25 64
+139 25 64
+140 25 64
+141 25 64
+142 25 64
+143 25 64
+144 25 64
+145 25 64
+146 25 64
+147 25 64
+148 25 64
+149 25 64
+150 25 64
+151 25 64
+152 25 64
+153 25 64
+154 25 64
+155 25 64
+156 25 64
+157 25 64
+158 25 64
+159 25 64
+160 25 64
+161 25 64
+162 25 64
+163 25 64
+164 25 64
+165 25 64
+166 25 64
+167 25 64
+168 25 64
+169 25 64
+170 25 64
+171 25 64
+172 25 64
+173 25 64
+174 25 64
+175 25 64
+176 25 64
+177 25 64
+178 25 64
+179 25 64
+180 25 64
+181 25 64
+182 25 64
+183 25 64
+184 25 64
+185 25 64
+186 25 64
+187 25 64
+188 25 64
+189 25 64
+190 25 64
+191 25 64
+192 25 64
+193 25 64
+194 25 64
+195 25 64
+196 25 64
+197 25 64
+198 25 64
+199 25 64
+200 25 64
+201 25 64
+202 25 64
+203 25 64
+204 25 64
+205 25 64
+206 25 64
+207 25 64
+208 25 64
+209 25 64
+210 25 64
+211 25 64
+212 25 64
+213 25 64
+214 25 64
+215 25 64
+216 25 64
+217 25 64
+218 25 64
+219 25 64
+220 25 64
+221 25 64
+222 25 64
+223 25 64
+224 25 64
+225 25 64
+226 25 64
+227 25 64
+228 25 64
+229 25 64
+230 25 64
+231 25 64
+232 25 64
+233 25 64
+234 25 64
+235 25 64
+236 25 64
+237 25 64
+238 25 64
+239 25 64
+240 25 64
+241 25 64
+242 25 64
+243 25 64
+244 25 64
+245 25 64
+246 25 64
+247 25 64
+248 25 64
+249 25 64
+250 25 64
+251 25 64
+252 25 64
+253 25 64
+254 25 64
+255 25 64
+0 24 64
+1 24 64
+2 24 64
+3 24 64
+4 24 64
+5 24 64
+6 24 64
+7 24 64
+8 24 64
+9 24 64
+10 24 64
+11 24 64
+12 24 64
+13 24 64
+14 24 64
+15 24 64
+16 24 64
+17 24 64
+18 24 64
+19 24 64
+20 24 64
+21 24 64
+22 24 64
+23 24 64
+24 24 64
+25 24 64
+26 24 64
+27 24 64
+28 24 64
+29 24 64
+30 24 64
+31 24 64
+32 24 64
+33 24 64
+34 24 64
+35 24 64
+36 24 64
+37 24 64
+38 24 64
+39 24 64
+40 24 64
+41 24 64
+42 24 64
+43 24 64
+44 24 64
+45 24 64
+46 24 64
+47 24 64
+48 24 64
+49 24 64
+50 24 64
+51 24 64
+52 24 64
+53 24 64
+54 24 64
+55 24 64
+56 24 64
+57 24 64
+58 24 64
+59 24 64
+60 24 64
+61 24 64
+62 24 64
+63 24 64
+64 24 64
+65 24 64
+66 24 64
+67 24 64
+68 24 64
+69 24 64
+70 24 64
+71 24 64
+72 24 64
+73 24 64
+74 24 64
+75 24 64
+76 24 64
+77 24 64
+78 24 64
+79 24 64
+80 24 64
+81 24 64
+82 24 64
+83 24 64
+84 24 64
+85 24 64
+86 24 64
+87 24 64
+88 24 64
+89 24 64
+90 24 64
+91 24 64
+92 24 64
+93 24 64
+94 24 64
+95 24 64
+96 24 64
+97 24 64
+98 24 64
+99 24 64
+100 24 64
+101 24 64
+102 24 64
+103 24 64
+104 24 64
+105 24 64
+106 24 64
+107 24 64
+108 24 64
+109 24 64
+110 24 64
+111 24 64
+112 24 64
+113 24 64
+114 24 64
+115 24 64
+116 24 64
+117 24 64
+118 24 64
+119 24 64
+120 24 64
+121 24 64
+122 24 64
+123 24 64
+124 24 64
+125 24 64
+126 24 64
+127 24 64
+128 24 64
+129 24 64
+130 24 64
+131 24 64
+132 24 64
+133 24 64
+134 24 64
+135 24 64
+136 24 64
+137 24 64
+138 24 64
+139 24 64
+140 24 64
+141 24 64
+142 24 64
+143 24 64
+144 24 64
+145 24 64
+146 24 64
+147 24 64
+148 24 64
+149 24 64
+150 24 64
+151 24 64
+152 24 64
+153 24 64
+154 24 64
+155 24 64
+156 24 64
+157 24 64
+158 24 64
+159 24 64
+160 24 64
+161 24 64
+162 24 64
+163 24 64
+164 24 64
+165 24 64
+166 24 64
+167 24 64
+168 24 64
+169 24 64
+170 24 64
+171 24 64
+172 24 64
+173 24 64
+174 24 64
+175 24 64
+176 24 64
+177 24 64
+178 24 64
+179 24 64
+180 24 64
+181 24 64
+182 24 64
+183 24 64
+184 24 64
+185 24 64
+186 24 64
+187 24 64
+188 24 64
+189 24 64
+190 24 64
+191 24 64
+192 24 64
+193 24 64
+194 24 64
+195 24 64
+196 24 64
+197 24 64
+198 24 64
+199 24 64
+200 24 64
+201 24 64
+202 24 64
+203 24 64
+204 24 64
+205 24 64
+206 24 64
+207 24 64
+208 24 64
+209 24 64
+210 24 64
+211 24 64
+212 24 64
+213 24 64
+214 24 64
+215 24 64
+216 24 64
+217 24 64
+218 24 64
+219 24 64
+220 24 64
+221 24 64
+222 24 64
+223 24 64
+224 24 64
+225 24 64
+226 24 64
+227 24 64
+228 24 64
+229 24 64
+230 24 64
+231 24 64
+232 24 64
+233 24 64
+234 24 64
+235 24 64
+236 24 64
+237 24 64
+238 24 64
+239 24 64
+240 24 64
+241 24 64
+242 24 64
+243 24 64
+244 24 64
+245 24 64
+246 24 64
+247 24 64
+248 24 64
+249 24 64
+250 24 64
+251 24 64
+252 24 64
+253 24 64
+254 24 64
+255 24 64
+0 23 64
+1 23 64
+2 23 64
+3 23 64
+4 23 64
+5 23 64
+6 23 64
+7 23 64
+8 23 64
+9 23 64
+10 23 64
+11 23 64
+12 23 64
+13 23 64
+14 23 64
+15 23 64
+16 23 64
+17 23 64
+18 23 64
+19 23 64
+20 23 64
+21 23 64
+22 23 64
+23 23 64
+24 23 64
+25 23 64
+26 23 64
+27 23 64
+28 23 64
+29 23 64
+30 23 64
+31 23 64
+32 23 64
+33 23 64
+34 23 64
+35 23 64
+36 23 64
+37 23 64
+38 23 64
+39 23 64
+40 23 64
+41 23 64
+42 23 64
+43 23 64
+44 23 64
+45 23 64
+46 23 64
+47 23 64
+48 23 64
+49 23 64
+50 23 64
+51 23 64
+52 23 64
+53 23 64
+54 23 64
+55 23 64
+56 23 64
+57 23 64
+58 23 64
+59 23 64
+60 23 64
+61 23 64
+62 23 64
+63 23 64
+64 23 64
+65 23 64
+66 23 64
+67 23 64
+68 23 64
+69 23 64
+70 23 64
+71 23 64
+72 23 64
+73 23 64
+74 23 64
+75 23 64
+76 23 64
+77 23 64
+78 23 64
+79 23 64
+80 23 64
+81 23 64
+82 23 64
+83 23 64
+84 23 64
+85 23 64
+86 23 64
+87 23 64
+88 23 64
+89 23 64
+90 23 64
+91 23 64
+92 23 64
+93 23 64
+94 23 64
+95 23 64
+96 23 64
+97 23 64
+98 23 64
+99 23 64
+100 23 64
+101 23 64
+102 23 64
+103 23 64
+104 23 64
+105 23 64
+106 23 64
+107 23 64
+108 23 64
+109 23 64
+110 23 64
+111 23 64
+112 23 64
+113 23 64
+114 23 64
+115 23 64
+116 23 64
+117 23 64
+118 23 64
+119 23 64
+120 23 64
+121 23 64
+122 23 64
+123 23 64
+124 23 64
+125 23 64
+126 23 64
+127 23 64
+128 23 64
+129 23 64
+130 23 64
+131 23 64
+132 23 64
+133 23 64
+134 23 64
+135 23 64
+136 23 64
+137 23 64
+138 23 64
+139 23 64
+140 23 64
+141 23 64
+142 23 64
+143 23 64
+144 23 64
+145 23 64
+146 23 64
+147 23 64
+148 23 64
+149 23 64
+150 23 64
+151 23 64
+152 23 64
+153 23 64
+154 23 64
+155 23 64
+156 23 64
+157 23 64
+158 23 64
+159 23 64
+160 23 64
+161 23 64
+162 23 64
+163 23 64
+164 23 64
+165 23 64
+166 23 64
+167 23 64
+168 23 64
+169 23 64
+170 23 64
+171 23 64
+172 23 64
+173 23 64
+174 23 64
+175 23 64
+176 23 64
+177 23 64
+178 23 64
+179 23 64
+180 23 64
+181 23 64
+182 23 64
+183 23 64
+184 23 64
+185 23 64
+186 23 64
+187 23 64
+188 23 64
+189 23 64
+190 23 64
+191 23 64
+192 23 64
+193 23 64
+194 23 64
+195 23 64
+196 23 64
+197 23 64
+198 23 64
+199 23 64
+200 23 64
+201 23 64
+202 23 64
+203 23 64
+204 23 64
+205 23 64
+206 23 64
+207 23 64
+208 23 64
+209 23 64
+210 23 64
+211 23 64
+212 23 64
+213 23 64
+214 23 64
+215 23 64
+216 23 64
+217 23 64
+218 23 64
+219 23 64
+220 23 64
+221 23 64
+222 23 64
+223 23 64
+224 23 64
+225 23 64
+226 23 64
+227 23 64
+228 23 64
+229 23 64
+230 23 64
+231 23 64
+232 23 64
+233 23 64
+234 23 64
+235 23 64
+236 23 64
+237 23 64
+238 23 64
+239 23 64
+240 23 64
+241 23 64
+242 23 64
+243 23 64
+244 23 64
+245 23 64
+246 23 64
+247 23 64
+248 23 64
+249 23 64
+250 23 64
+251 23 64
+252 23 64
+253 23 64
+254 23 64
+255 23 64
+0 22 64
+1 22 64
+2 22 64
+3 22 64
+4 22 64
+5 22 64
+6 22 64
+7 22 64
+8 22 64
+9 22 64
+10 22 64
+11 22 64
+12 22 64
+13 22 64
+14 22 64
+15 22 64
+16 22 64
+17 22 64
+18 22 64
+19 22 64
+20 22 64
+21 22 64
+22 22 64
+23 22 64
+24 22 64
+25 22 64
+26 22 64
+27 22 64
+28 22 64
+29 22 64
+30 22 64
+31 22 64
+32 22 64
+33 22 64
+34 22 64
+35 22 64
+36 22 64
+37 22 64
+38 22 64
+39 22 64
+40 22 64
+41 22 64
+42 22 64
+43 22 64
+44 22 64
+45 22 64
+46 22 64
+47 22 64
+48 22 64
+49 22 64
+50 22 64
+51 22 64
+52 22 64
+53 22 64
+54 22 64
+55 22 64
+56 22 64
+57 22 64
+58 22 64
+59 22 64
+60 22 64
+61 22 64
+62 22 64
+63 22 64
+64 22 64
+65 22 64
+66 22 64
+67 22 64
+68 22 64
+69 22 64
+70 22 64
+71 22 64
+72 22 64
+73 22 64
+74 22 64
+75 22 64
+76 22 64
+77 22 64
+78 22 64
+79 22 64
+80 22 64
+81 22 64
+82 22 64
+83 22 64
+84 22 64
+85 22 64
+86 22 64
+87 22 64
+88 22 64
+89 22 64
+90 22 64
+91 22 64
+92 22 64
+93 22 64
+94 22 64
+95 22 64
+96 22 64
+97 22 64
+98 22 64
+99 22 64
+100 22 64
+101 22 64
+102 22 64
+103 22 64
+104 22 64
+105 22 64
+106 22 64
+107 22 64
+108 22 64
+109 22 64
+110 22 64
+111 22 64
+112 22 64
+113 22 64
+114 22 64
+115 22 64
+116 22 64
+117 22 64
+118 22 64
+119 22 64
+120 22 64
+121 22 64
+122 22 64
+123 22 64
+124 22 64
+125 22 64
+126 22 64
+127 22 64
+128 22 64
+129 22 64
+130 22 64
+131 22 64
+132 22 64
+133 22 64
+134 22 64
+135 22 64
+136 22 64
+137 22 64
+138 22 64
+139 22 64
+140 22 64
+141 22 64
+142 22 64
+143 22 64
+144 22 64
+145 22 64
+146 22 64
+147 22 64
+148 22 64
+149 22 64
+150 22 64
+151 22 64
+152 22 64
+153 22 64
+154 22 64
+155 22 64
+156 22 64
+157 22 64
+158 22 64
+159 22 64
+160 22 64
+161 22 64
+162 22 64
+163 22 64
+164 22 64
+165 22 64
+166 22 64
+167 22 64
+168 22 64
+169 22 64
+170 22 64
+171 22 64
+172 22 64
+173 22 64
+174 22 64
+175 22 64
+176 22 64
+177 22 64
+178 22 64
+179 22 64
+180 22 64
+181 22 64
+182 22 64
+183 22 64
+184 22 64
+185 22 64
+186 22 64
+187 22 64
+188 22 64
+189 22 64
+190 22 64
+191 22 64
+192 22 64
+193 22 64
+194 22 64
+195 22 64
+196 22 64
+197 22 64
+198 22 64
+199 22 64
+200 22 64
+201 22 64
+202 22 64
+203 22 64
+204 22 64
+205 22 64
+206 22 64
+207 22 64
+208 22 64
+209 22 64
+210 22 64
+211 22 64
+212 22 64
+213 22 64
+214 22 64
+215 22 64
+216 22 64
+217 22 64
+218 22 64
+219 22 64
+220 22 64
+221 22 64
+222 22 64
+223 22 64
+224 22 64
+225 22 64
+226 22 64
+227 22 64
+228 22 64
+229 22 64
+230 22 64
+231 22 64
+232 22 64
+233 22 64
+234 22 64
+235 22 64
+236 22 64
+237 22 64
+238 22 64
+239 22 64
+240 22 64
+241 22 64
+242 22 64
+243 22 64
+244 22 64
+245 22 64
+246 22 64
+247 22 64
+248 22 64
+249 22 64
+250 22 64
+251 22 64
+252 22 64
+253 22 64
+254 22 64
+255 22 64
+0 21 64
+1 21 64
+2 21 64
+3 21 64
+4 21 64
+5 21 64
+6 21 64
+7 21 64
+8 21 64
+9 21 64
+10 21 64
+11 21 64
+12 21 64
+13 21 64
+14 21 64
+15 21 64
+16 21 64
+17 21 64
+18 21 64
+19 21 64
+20 21 64
+21 21 64
+22 21 64
+23 21 64
+24 21 64
+25 21 64
+26 21 64
+27 21 64
+28 21 64
+29 21 64
+30 21 64
+31 21 64
+32 21 64
+33 21 64
+34 21 64
+35 21 64
+36 21 64
+37 21 64
+38 21 64
+39 21 64
+40 21 64
+41 21 64
+42 21 64
+43 21 64
+44 21 64
+45 21 64
+46 21 64
+47 21 64
+48 21 64
+49 21 64
+50 21 64
+51 21 64
+52 21 64
+53 21 64
+54 21 64
+55 21 64
+56 21 64
+57 21 64
+58 21 64
+59 21 64
+60 21 64
+61 21 64
+62 21 64
+63 21 64
+64 21 64
+65 21 64
+66 21 64
+67 21 64
+68 21 64
+69 21 64
+70 21 64
+71 21 64
+72 21 64
+73 21 64
+74 21 64
+75 21 64
+76 21 64
+77 21 64
+78 21 64
+79 21 64
+80 21 64
+81 21 64
+82 21 64
+83 21 64
+84 21 64
+85 21 64
+86 21 64
+87 21 64
+88 21 64
+89 21 64
+90 21 64
+91 21 64
+92 21 64
+93 21 64
+94 21 64
+95 21 64
+96 21 64
+97 21 64
+98 21 64
+99 21 64
+100 21 64
+101 21 64
+102 21 64
+103 21 64
+104 21 64
+105 21 64
+106 21 64
+107 21 64
+108 21 64
+109 21 64
+110 21 64
+111 21 64
+112 21 64
+113 21 64
+114 21 64
+115 21 64
+116 21 64
+117 21 64
+118 21 64
+119 21 64
+120 21 64
+121 21 64
+122 21 64
+123 21 64
+124 21 64
+125 21 64
+126 21 64
+127 21 64
+128 21 64
+129 21 64
+130 21 64
+131 21 64
+132 21 64
+133 21 64
+134 21 64
+135 21 64
+136 21 64
+137 21 64
+138 21 64
+139 21 64
+140 21 64
+141 21 64
+142 21 64
+143 21 64
+144 21 64
+145 21 64
+146 21 64
+147 21 64
+148 21 64
+149 21 64
+150 21 64
+151 21 64
+152 21 64
+153 21 64
+154 21 64
+155 21 64
+156 21 64
+157 21 64
+158 21 64
+159 21 64
+160 21 64
+161 21 64
+162 21 64
+163 21 64
+164 21 64
+165 21 64
+166 21 64
+167 21 64
+168 21 64
+169 21 64
+170 21 64
+171 21 64
+172 21 64
+173 21 64
+174 21 64
+175 21 64
+176 21 64
+177 21 64
+178 21 64
+179 21 64
+180 21 64
+181 21 64
+182 21 64
+183 21 64
+184 21 64
+185 21 64
+186 21 64
+187 21 64
+188 21 64
+189 21 64
+190 21 64
+191 21 64
+192 21 64
+193 21 64
+194 21 64
+195 21 64
+196 21 64
+197 21 64
+198 21 64
+199 21 64
+200 21 64
+201 21 64
+202 21 64
+203 21 64
+204 21 64
+205 21 64
+206 21 64
+207 21 64
+208 21 64
+209 21 64
+210 21 64
+211 21 64
+212 21 64
+213 21 64
+214 21 64
+215 21 64
+216 21 64
+217 21 64
+218 21 64
+219 21 64
+220 21 64
+221 21 64
+222 21 64
+223 21 64
+224 21 64
+225 21 64
+226 21 64
+227 21 64
+228 21 64
+229 21 64
+230 21 64
+231 21 64
+232 21 64
+233 21 64
+234 21 64
+235 21 64
+236 21 64
+237 21 64
+238 21 64
+239 21 64
+240 21 64
+241 21 64
+242 21 64
+243 21 64
+244 21 64
+245 21 64
+246 21 64
+247 21 64
+248 21 64
+249 21 64
+250 21 64
+251 21 64
+252 21 64
+253 21 64
+254 21 64
+255 21 64
+0 20 64
+1 20 64
+2 20 64
+3 20 64
+4 20 64
+5 20 64
+6 20 64
+7 20 64
+8 20 64
+9 20 64
+10 20 64
+11 20 64
+12 20 64
+13 20 64
+14 20 64
+15 20 64
+16 20 64
+17 20 64
+18 20 64
+19 20 64
+20 20 64
+21 20 64
+22 20 64
+23 20 64
+24 20 64
+25 20 64
+26 20 64
+27 20 64
+28 20 64
+29 20 64
+30 20 64
+31 20 64
+32 20 64
+33 20 64
+34 20 64
+35 20 64
+36 20 64
+37 20 64
+38 20 64
+39 20 64
+40 20 64
+41 20 64
+42 20 64
+43 20 64
+44 20 64
+45 20 64
+46 20 64
+47 20 64
+48 20 64
+49 20 64
+50 20 64
+51 20 64
+52 20 64
+53 20 64
+54 20 64
+55 20 64
+56 20 64
+57 20 64
+58 20 64
+59 20 64
+60 20 64
+61 20 64
+62 20 64
+63 20 64
+64 20 64
+65 20 64
+66 20 64
+67 20 64
+68 20 64
+69 20 64
+70 20 64
+71 20 64
+72 20 64
+73 20 64
+74 20 64
+75 20 64
+76 20 64
+77 20 64
+78 20 64
+79 20 64
+80 20 64
+81 20 64
+82 20 64
+83 20 64
+84 20 64
+85 20 64
+86 20 64
+87 20 64
+88 20 64
+89 20 64
+90 20 64
+91 20 64
+92 20 64
+93 20 64
+94 20 64
+95 20 64
+96 20 64
+97 20 64
+98 20 64
+99 20 64
+100 20 64
+101 20 64
+102 20 64
+103 20 64
+104 20 64
+105 20 64
+106 20 64
+107 20 64
+108 20 64
+109 20 64
+110 20 64
+111 20 64
+112 20 64
+113 20 64
+114 20 64
+115 20 64
+116 20 64
+117 20 64
+118 20 64
+119 20 64
+120 20 64
+121 20 64
+122 20 64
+123 20 64
+124 20 64
+125 20 64
+126 20 64
+127 20 64
+128 20 64
+129 20 64
+130 20 64
+131 20 64
+132 20 64
+133 20 64
+134 20 64
+135 20 64
+136 20 64
+137 20 64
+138 20 64
+139 20 64
+140 20 64
+141 20 64
+142 20 64
+143 20 64
+144 20 64
+145 20 64
+146 20 64
+147 20 64
+148 20 64
+149 20 64
+150 20 64
+151 20 64
+152 20 64
+153 20 64
+154 20 64
+155 20 64
+156 20 64
+157 20 64
+158 20 64
+159 20 64
+160 20 64
+161 20 64
+162 20 64
+163 20 64
+164 20 64
+165 20 64
+166 20 64
+167 20 64
+168 20 64
+169 20 64
+170 20 64
+171 20 64
+172 20 64
+173 20 64
+174 20 64
+175 20 64
+176 20 64
+177 20 64
+178 20 64
+179 20 64
+180 20 64
+181 20 64
+182 20 64
+183 20 64
+184 20 64
+185 20 64
+186 20 64
+187 20 64
+188 20 64
+189 20 64
+190 20 64
+191 20 64
+192 20 64
+193 20 64
+194 20 64
+195 20 64
+196 20 64
+197 20 64
+198 20 64
+199 20 64
+200 20 64
+201 20 64
+202 20 64
+203 20 64
+204 20 64
+205 20 64
+206 20 64
+207 20 64
+208 20 64
+209 20 64
+210 20 64
+211 20 64
+212 20 64
+213 20 64
+214 20 64
+215 20 64
+216 20 64
+217 20 64
+218 20 64
+219 20 64
+220 20 64
+221 20 64
+222 20 64
+223 20 64
+224 20 64
+225 20 64
+226 20 64
+227 20 64
+228 20 64
+229 20 64
+230 20 64
+231 20 64
+232 20 64
+233 20 64
+234 20 64
+235 20 64
+236 20 64
+237 20 64
+238 20 64
+239 20 64
+240 20 64
+241 20 64
+242 20 64
+243 20 64
+244 20 64
+245 20 64
+246 20 64
+247 20 64
+248 20 64
+249 20 64
+250 20 64
+251 20 64
+252 20 64
+253 20 64
+254 20 64
+255 20 64
+0 19 64
+1 19 64
+2 19 64
+3 19 64
+4 19 64
+5 19 64
+6 19 64
+7 19 64
+8 19 64
+9 19 64
+10 19 64
+11 19 64
+12 19 64
+13 19 64
+14 19 64
+15 19 64
+16 19 64
+17 19 64
+18 19 64
+19 19 64
+20 19 64
+21 19 64
+22 19 64
+23 19 64
+24 19 64
+25 19 64
+26 19 64
+27 19 64
+28 19 64
+29 19 64
+30 19 64
+31 19 64
+32 19 64
+33 19 64
+34 19 64
+35 19 64
+36 19 64
+37 19 64
+38 19 64
+39 19 64
+40 19 64
+41 19 64
+42 19 64
+43 19 64
+44 19 64
+45 19 64
+46 19 64
+47 19 64
+48 19 64
+49 19 64
+50 19 64
+51 19 64
+52 19 64
+53 19 64
+54 19 64
+55 19 64
+56 19 64
+57 19 64
+58 19 64
+59 19 64
+60 19 64
+61 19 64
+62 19 64
+63 19 64
+64 19 64
+65 19 64
+66 19 64
+67 19 64
+68 19 64
+69 19 64
+70 19 64
+71 19 64
+72 19 64
+73 19 64
+74 19 64
+75 19 64
+76 19 64
+77 19 64
+78 19 64
+79 19 64
+80 19 64
+81 19 64
+82 19 64
+83 19 64
+84 19 64
+85 19 64
+86 19 64
+87 19 64
+88 19 64
+89 19 64
+90 19 64
+91 19 64
+92 19 64
+93 19 64
+94 19 64
+95 19 64
+96 19 64
+97 19 64
+98 19 64
+99 19 64
+100 19 64
+101 19 64
+102 19 64
+103 19 64
+104 19 64
+105 19 64
+106 19 64
+107 19 64
+108 19 64
+109 19 64
+110 19 64
+111 19 64
+112 19 64
+113 19 64
+114 19 64
+115 19 64
+116 19 64
+117 19 64
+118 19 64
+119 19 64
+120 19 64
+121 19 64
+122 19 64
+123 19 64
+124 19 64
+125 19 64
+126 19 64
+127 19 64
+128 19 64
+129 19 64
+130 19 64
+131 19 64
+132 19 64
+133 19 64
+134 19 64
+135 19 64
+136 19 64
+137 19 64
+138 19 64
+139 19 64
+140 19 64
+141 19 64
+142 19 64
+143 19 64
+144 19 64
+145 19 64
+146 19 64
+147 19 64
+148 19 64
+149 19 64
+150 19 64
+151 19 64
+152 19 64
+153 19 64
+154 19 64
+155 19 64
+156 19 64
+157 19 64
+158 19 64
+159 19 64
+160 19 64
+161 19 64
+162 19 64
+163 19 64
+164 19 64
+165 19 64
+166 19 64
+167 19 64
+168 19 64
+169 19 64
+170 19 64
+171 19 64
+172 19 64
+173 19 64
+174 19 64
+175 19 64
+176 19 64
+177 19 64
+178 19 64
+179 19 64
+180 19 64
+181 19 64
+182 19 64
+183 19 64
+184 19 64
+185 19 64
+186 19 64
+187 19 64
+188 19 64
+189 19 64
+190 19 64
+191 19 64
+192 19 64
+193 19 64
+194 19 64
+195 19 64
+196 19 64
+197 19 64
+198 19 64
+199 19 64
+200 19 64
+201 19 64
+202 19 64
+203 19 64
+204 19 64
+205 19 64
+206 19 64
+207 19 64
+208 19 64
+209 19 64
+210 19 64
+211 19 64
+212 19 64
+213 19 64
+214 19 64
+215 19 64
+216 19 64
+217 19 64
+218 19 64
+219 19 64
+220 19 64
+221 19 64
+222 19 64
+223 19 64
+224 19 64
+225 19 64
+226 19 64
+227 19 64
+228 19 64
+229 19 64
+230 19 64
+231 19 64
+232 19 64
+233 19 64
+234 19 64
+235 19 64
+236 19 64
+237 19 64
+238 19 64
+239 19 64
+240 19 64
+241 19 64
+242 19 64
+243 19 64
+244 19 64
+245 19 64
+246 19 64
+247 19 64
+248 19 64
+249 19 64
+250 19 64
+251 19 64
+252 19 64
+253 19 64
+254 19 64
+255 19 64
+0 18 64
+1 18 64
+2 18 64
+3 18 64
+4 18 64
+5 18 64
+6 18 64
+7 18 64
+8 18 64
+9 18 64
+10 18 64
+11 18 64
+12 18 64
+13 18 64
+14 18 64
+15 18 64
+16 18 64
+17 18 64
+18 18 64
+19 18 64
+20 18 64
+21 18 64
+22 18 64
+23 18 64
+24 18 64
+25 18 64
+26 18 64
+27 18 64
+28 18 64
+29 18 64
+30 18 64
+31 18 64
+32 18 64
+33 18 64
+34 18 64
+35 18 64
+36 18 64
+37 18 64
+38 18 64
+39 18 64
+40 18 64
+41 18 64
+42 18 64
+43 18 64
+44 18 64
+45 18 64
+46 18 64
+47 18 64
+48 18 64
+49 18 64
+50 18 64
+51 18 64
+52 18 64
+53 18 64
+54 18 64
+55 18 64
+56 18 64
+57 18 64
+58 18 64
+59 18 64
+60 18 64
+61 18 64
+62 18 64
+63 18 64
+64 18 64
+65 18 64
+66 18 64
+67 18 64
+68 18 64
+69 18 64
+70 18 64
+71 18 64
+72 18 64
+73 18 64
+74 18 64
+75 18 64
+76 18 64
+77 18 64
+78 18 64
+79 18 64
+80 18 64
+81 18 64
+82 18 64
+83 18 64
+84 18 64
+85 18 64
+86 18 64
+87 18 64
+88 18 64
+89 18 64
+90 18 64
+91 18 64
+92 18 64
+93 18 64
+94 18 64
+95 18 64
+96 18 64
+97 18 64
+98 18 64
+99 18 64
+100 18 64
+101 18 64
+102 18 64
+103 18 64
+104 18 64
+105 18 64
+106 18 64
+107 18 64
+108 18 64
+109 18 64
+110 18 64
+111 18 64
+112 18 64
+113 18 64
+114 18 64
+115 18 64
+116 18 64
+117 18 64
+118 18 64
+119 18 64
+120 18 64
+121 18 64
+122 18 64
+123 18 64
+124 18 64
+125 18 64
+126 18 64
+127 18 64
+128 18 64
+129 18 64
+130 18 64
+131 18 64
+132 18 64
+133 18 64
+134 18 64
+135 18 64
+136 18 64
+137 18 64
+138 18 64
+139 18 64
+140 18 64
+141 18 64
+142 18 64
+143 18 64
+144 18 64
+145 18 64
+146 18 64
+147 18 64
+148 18 64
+149 18 64
+150 18 64
+151 18 64
+152 18 64
+153 18 64
+154 18 64
+155 18 64
+156 18 64
+157 18 64
+158 18 64
+159 18 64
+160 18 64
+161 18 64
+162 18 64
+163 18 64
+164 18 64
+165 18 64
+166 18 64
+167 18 64
+168 18 64
+169 18 64
+170 18 64
+171 18 64
+172 18 64
+173 18 64
+174 18 64
+175 18 64
+176 18 64
+177 18 64
+178 18 64
+179 18 64
+180 18 64
+181 18 64
+182 18 64
+183 18 64
+184 18 64
+185 18 64
+186 18 64
+187 18 64
+188 18 64
+189 18 64
+190 18 64
+191 18 64
+192 18 64
+193 18 64
+194 18 64
+195 18 64
+196 18 64
+197 18 64
+198 18 64
+199 18 64
+200 18 64
+201 18 64
+202 18 64
+203 18 64
+204 18 64
+205 18 64
+206 18 64
+207 18 64
+208 18 64
+209 18 64
+210 18 64
+211 18 64
+212 18 64
+213 18 64
+214 18 64
+215 18 64
+216 18 64
+217 18 64
+218 18 64
+219 18 64
+220 18 64
+221 18 64
+222 18 64
+223 18 64
+224 18 64
+225 18 64
+226 18 64
+227 18 64
+228 18 64
+229 18 64
+230 18 64
+231 18 64
+232 18 64
+233 18 64
+234 18 64
+235 18 64
+236 18 64
+237 18 64
+238 18 64
+239 18 64
+240 18 64
+241 18 64
+242 18 64
+243 18 64
+244 18 64
+245 18 64
+246 18 64
+247 18 64
+248 18 64
+249 18 64
+250 18 64
+251 18 64
+252 18 64
+253 18 64
+254 18 64
+255 18 64
+0 17 64
+1 17 64
+2 17 64
+3 17 64
+4 17 64
+5 17 64
+6 17 64
+7 17 64
+8 17 64
+9 17 64
+10 17 64
+11 17 64
+12 17 64
+13 17 64
+14 17 64
+15 17 64
+16 17 64
+17 17 64
+18 17 64
+19 17 64
+20 17 64
+21 17 64
+22 17 64
+23 17 64
+24 17 64
+25 17 64
+26 17 64
+27 17 64
+28 17 64
+29 17 64
+30 17 64
+31 17 64
+32 17 64
+33 17 64
+34 17 64
+35 17 64
+36 17 64
+37 17 64
+38 17 64
+39 17 64
+40 17 64
+41 17 64
+42 17 64
+43 17 64
+44 17 64
+45 17 64
+46 17 64
+47 17 64
+48 17 64
+49 17 64
+50 17 64
+51 17 64
+52 17 64
+53 17 64
+54 17 64
+55 17 64
+56 17 64
+57 17 64
+58 17 64
+59 17 64
+60 17 64
+61 17 64
+62 17 64
+63 17 64
+64 17 64
+65 17 64
+66 17 64
+67 17 64
+68 17 64
+69 17 64
+70 17 64
+71 17 64
+72 17 64
+73 17 64
+74 17 64
+75 17 64
+76 17 64
+77 17 64
+78 17 64
+79 17 64
+80 17 64
+81 17 64
+82 17 64
+83 17 64
+84 17 64
+85 17 64
+86 17 64
+87 17 64
+88 17 64
+89 17 64
+90 17 64
+91 17 64
+92 17 64
+93 17 64
+94 17 64
+95 17 64
+96 17 64
+97 17 64
+98 17 64
+99 17 64
+100 17 64
+101 17 64
+102 17 64
+103 17 64
+104 17 64
+105 17 64
+106 17 64
+107 17 64
+108 17 64
+109 17 64
+110 17 64
+111 17 64
+112 17 64
+113 17 64
+114 17 64
+115 17 64
+116 17 64
+117 17 64
+118 17 64
+119 17 64
+120 17 64
+121 17 64
+122 17 64
+123 17 64
+124 17 64
+125 17 64
+126 17 64
+127 17 64
+128 17 64
+129 17 64
+130 17 64
+131 17 64
+132 17 64
+133 17 64
+134 17 64
+135 17 64
+136 17 64
+137 17 64
+138 17 64
+139 17 64
+140 17 64
+141 17 64
+142 17 64
+143 17 64
+144 17 64
+145 17 64
+146 17 64
+147 17 64
+148 17 64
+149 17 64
+150 17 64
+151 17 64
+152 17 64
+153 17 64
+154 17 64
+155 17 64
+156 17 64
+157 17 64
+158 17 64
+159 17 64
+160 17 64
+161 17 64
+162 17 64
+163 17 64
+164 17 64
+165 17 64
+166 17 64
+167 17 64
+168 17 64
+169 17 64
+170 17 64
+171 17 64
+172 17 64
+173 17 64
+174 17 64
+175 17 64
+176 17 64
+177 17 64
+178 17 64
+179 17 64
+180 17 64
+181 17 64
+182 17 64
+183 17 64
+184 17 64
+185 17 64
+186 17 64
+187 17 64
+188 17 64
+189 17 64
+190 17 64
+191 17 64
+192 17 64
+193 17 64
+194 17 64
+195 17 64
+196 17 64
+197 17 64
+198 17 64
+199 17 64
+200 17 64
+201 17 64
+202 17 64
+203 17 64
+204 17 64
+205 17 64
+206 17 64
+207 17 64
+208 17 64
+209 17 64
+210 17 64
+211 17 64
+212 17 64
+213 17 64
+214 17 64
+215 17 64
+216 17 64
+217 17 64
+218 17 64
+219 17 64
+220 17 64
+221 17 64
+222 17 64
+223 17 64
+224 17 64
+225 17 64
+226 17 64
+227 17 64
+228 17 64
+229 17 64
+230 17 64
+231 17 64
+232 17 64
+233 17 64
+234 17 64
+235 17 64
+236 17 64
+237 17 64
+238 17 64
+239 17 64
+240 17 64
+241 17 64
+242 17 64
+243 17 64
+244 17 64
+245 17 64
+246 17 64
+247 17 64
+248 17 64
+249 17 64
+250 17 64
+251 17 64
+252 17 64
+253 17 64
+254 17 64
+255 17 64
+0 16 64
+1 16 64
+2 16 64
+3 16 64
+4 16 64
+5 16 64
+6 16 64
+7 16 64
+8 16 64
+9 16 64
+10 16 64
+11 16 64
+12 16 64
+13 16 64
+14 16 64
+15 16 64
+16 16 64
+17 16 64
+18 16 64
+19 16 64
+20 16 64
+21 16 64
+22 16 64
+23 16 64
+24 16 64
+25 16 64
+26 16 64
+27 16 64
+28 16 64
+29 16 64
+30 16 64
+31 16 64
+32 16 64
+33 16 64
+34 16 64
+35 16 64
+36 16 64
+37 16 64
+38 16 64
+39 16 64
+40 16 64
+41 16 64
+42 16 64
+43 16 64
+44 16 64
+45 16 64
+46 16 64
+47 16 64
+48 16 64
+49 16 64
+50 16 64
+51 16 64
+52 16 64
+53 16 64
+54 16 64
+55 16 64
+56 16 64
+57 16 64
+58 16 64
+59 16 64
+60 16 64
+61 16 64
+62 16 64
+63 16 64
+64 16 64
+65 16 64
+66 16 64
+67 16 64
+68 16 64
+69 16 64
+70 16 64
+71 16 64
+72 16 64
+73 16 64
+74 16 64
+75 16 64
+76 16 64
+77 16 64
+78 16 64
+79 16 64
+80 16 64
+81 16 64
+82 16 64
+83 16 64
+84 16 64
+85 16 64
+86 16 64
+87 16 64
+88 16 64
+89 16 64
+90 16 64
+91 16 64
+92 16 64
+93 16 64
+94 16 64
+95 16 64
+96 16 64
+97 16 64
+98 16 64
+99 16 64
+100 16 64
+101 16 64
+102 16 64
+103 16 64
+104 16 64
+105 16 64
+106 16 64
+107 16 64
+108 16 64
+109 16 64
+110 16 64
+111 16 64
+112 16 64
+113 16 64
+114 16 64
+115 16 64
+116 16 64
+117 16 64
+118 16 64
+119 16 64
+120 16 64
+121 16 64
+122 16 64
+123 16 64
+124 16 64
+125 16 64
+126 16 64
+127 16 64
+128 16 64
+129 16 64
+130 16 64
+131 16 64
+132 16 64
+133 16 64
+134 16 64
+135 16 64
+136 16 64
+137 16 64
+138 16 64
+139 16 64
+140 16 64
+141 16 64
+142 16 64
+143 16 64
+144 16 64
+145 16 64
+146 16 64
+147 16 64
+148 16 64
+149 16 64
+150 16 64
+151 16 64
+152 16 64
+153 16 64
+154 16 64
+155 16 64
+156 16 64
+157 16 64
+158 16 64
+159 16 64
+160 16 64
+161 16 64
+162 16 64
+163 16 64
+164 16 64
+165 16 64
+166 16 64
+167 16 64
+168 16 64
+169 16 64
+170 16 64
+171 16 64
+172 16 64
+173 16 64
+174 16 64
+175 16 64
+176 16 64
+177 16 64
+178 16 64
+179 16 64
+180 16 64
+181 16 64
+182 16 64
+183 16 64
+184 16 64
+185 16 64
+186 16 64
+187 16 64
+188 16 64
+189 16 64
+190 16 64
+191 16 64
+192 16 64
+193 16 64
+194 16 64
+195 16 64
+196 16 64
+197 16 64
+198 16 64
+199 16 64
+200 16 64
+201 16 64
+202 16 64
+203 16 64
+204 16 64
+205 16 64
+206 16 64
+207 16 64
+208 16 64
+209 16 64
+210 16 64
+211 16 64
+212 16 64
+213 16 64
+214 16 64
+215 16 64
+216 16 64
+217 16 64
+218 16 64
+219 16 64
+220 16 64
+221 16 64
+222 16 64
+223 16 64
+224 16 64
+225 16 64
+226 16 64
+227 16 64
+228 16 64
+229 16 64
+230 16 64
+231 16 64
+232 16 64
+233 16 64
+234 16 64
+235 16 64
+236 16 64
+237 16 64
+238 16 64
+239 16 64
+240 16 64
+241 16 64
+242 16 64
+243 16 64
+244 16 64
+245 16 64
+246 16 64
+247 16 64
+248 16 64
+249 16 64
+250 16 64
+251 16 64
+252 16 64
+253 16 64
+254 16 64
+255 16 64
+0 15 64
+1 15 64
+2 15 64
+3 15 64
+4 15 64
+5 15 64
+6 15 64
+7 15 64
+8 15 64
+9 15 64
+10 15 64
+11 15 64
+12 15 64
+13 15 64
+14 15 64
+15 15 64
+16 15 64
+17 15 64
+18 15 64
+19 15 64
+20 15 64
+21 15 64
+22 15 64
+23 15 64
+24 15 64
+25 15 64
+26 15 64
+27 15 64
+28 15 64
+29 15 64
+30 15 64
+31 15 64
+32 15 64
+33 15 64
+34 15 64
+35 15 64
+36 15 64
+37 15 64
+38 15 64
+39 15 64
+40 15 64
+41 15 64
+42 15 64
+43 15 64
+44 15 64
+45 15 64
+46 15 64
+47 15 64
+48 15 64
+49 15 64
+50 15 64
+51 15 64
+52 15 64
+53 15 64
+54 15 64
+55 15 64
+56 15 64
+57 15 64
+58 15 64
+59 15 64
+60 15 64
+61 15 64
+62 15 64
+63 15 64
+64 15 64
+65 15 64
+66 15 64
+67 15 64
+68 15 64
+69 15 64
+70 15 64
+71 15 64
+72 15 64
+73 15 64
+74 15 64
+75 15 64
+76 15 64
+77 15 64
+78 15 64
+79 15 64
+80 15 64
+81 15 64
+82 15 64
+83 15 64
+84 15 64
+85 15 64
+86 15 64
+87 15 64
+88 15 64
+89 15 64
+90 15 64
+91 15 64
+92 15 64
+93 15 64
+94 15 64
+95 15 64
+96 15 64
+97 15 64
+98 15 64
+99 15 64
+100 15 64
+101 15 64
+102 15 64
+103 15 64
+104 15 64
+105 15 64
+106 15 64
+107 15 64
+108 15 64
+109 15 64
+110 15 64
+111 15 64
+112 15 64
+113 15 64
+114 15 64
+115 15 64
+116 15 64
+117 15 64
+118 15 64
+119 15 64
+120 15 64
+121 15 64
+122 15 64
+123 15 64
+124 15 64
+125 15 64
+126 15 64
+127 15 64
+128 15 64
+129 15 64
+130 15 64
+131 15 64
+132 15 64
+133 15 64
+134 15 64
+135 15 64
+136 15 64
+137 15 64
+138 15 64
+139 15 64
+140 15 64
+141 15 64
+142 15 64
+143 15 64
+144 15 64
+145 15 64
+146 15 64
+147 15 64
+148 15 64
+149 15 64
+150 15 64
+151 15 64
+152 15 64
+153 15 64
+154 15 64
+155 15 64
+156 15 64
+157 15 64
+158 15 64
+159 15 64
+160 15 64
+161 15 64
+162 15 64
+163 15 64
+164 15 64
+165 15 64
+166 15 64
+167 15 64
+168 15 64
+169 15 64
+170 15 64
+171 15 64
+172 15 64
+173 15 64
+174 15 64
+175 15 64
+176 15 64
+177 15 64
+178 15 64
+179 15 64
+180 15 64
+181 15 64
+182 15 64
+183 15 64
+184 15 64
+185 15 64
+186 15 64
+187 15 64
+188 15 64
+189 15 64
+190 15 64
+191 15 64
+192 15 64
+193 15 64
+194 15 64
+195 15 64
+196 15 64
+197 15 64
+198 15 64
+199 15 64
+200 15 64
+201 15 64
+202 15 64
+203 15 64
+204 15 64
+205 15 64
+206 15 64
+207 15 64
+208 15 64
+209 15 64
+210 15 64
+211 15 64
+212 15 64
+213 15 64
+214 15 64
+215 15 64
+216 15 64
+217 15 64
+218 15 64
+219 15 64
+220 15 64
+221 15 64
+222 15 64
+223 15 64
+224 15 64
+225 15 64
+226 15 64
+227 15 64
+228 15 64
+229 15 64
+230 15 64
+231 15 64
+232 15 64
+233 15 64
+234 15 64
+235 15 64
+236 15 64
+237 15 64
+238 15 64
+239 15 64
+240 15 64
+241 15 64
+242 15 64
+243 15 64
+244 15 64
+245 15 64
+246 15 64
+247 15 64
+248 15 64
+249 15 64
+250 15 64
+251 15 64
+252 15 64
+253 15 64
+254 15 64
+255 15 64
+0 14 64
+1 14 64
+2 14 64
+3 14 64
+4 14 64
+5 14 64
+6 14 64
+7 14 64
+8 14 64
+9 14 64
+10 14 64
+11 14 64
+12 14 64
+13 14 64
+14 14 64
+15 14 64
+16 14 64
+17 14 64
+18 14 64
+19 14 64
+20 14 64
+21 14 64
+22 14 64
+23 14 64
+24 14 64
+25 14 64
+26 14 64
+27 14 64
+28 14 64
+29 14 64
+30 14 64
+31 14 64
+32 14 64
+33 14 64
+34 14 64
+35 14 64
+36 14 64
+37 14 64
+38 14 64
+39 14 64
+40 14 64
+41 14 64
+42 14 64
+43 14 64
+44 14 64
+45 14 64
+46 14 64
+47 14 64
+48 14 64
+49 14 64
+50 14 64
+51 14 64
+52 14 64
+53 14 64
+54 14 64
+55 14 64
+56 14 64
+57 14 64
+58 14 64
+59 14 64
+60 14 64
+61 14 64
+62 14 64
+63 14 64
+64 14 64
+65 14 64
+66 14 64
+67 14 64
+68 14 64
+69 14 64
+70 14 64
+71 14 64
+72 14 64
+73 14 64
+74 14 64
+75 14 64
+76 14 64
+77 14 64
+78 14 64
+79 14 64
+80 14 64
+81 14 64
+82 14 64
+83 14 64
+84 14 64
+85 14 64
+86 14 64
+87 14 64
+88 14 64
+89 14 64
+90 14 64
+91 14 64
+92 14 64
+93 14 64
+94 14 64
+95 14 64
+96 14 64
+97 14 64
+98 14 64
+99 14 64
+100 14 64
+101 14 64
+102 14 64
+103 14 64
+104 14 64
+105 14 64
+106 14 64
+107 14 64
+108 14 64
+109 14 64
+110 14 64
+111 14 64
+112 14 64
+113 14 64
+114 14 64
+115 14 64
+116 14 64
+117 14 64
+118 14 64
+119 14 64
+120 14 64
+121 14 64
+122 14 64
+123 14 64
+124 14 64
+125 14 64
+126 14 64
+127 14 64
+128 14 64
+129 14 64
+130 14 64
+131 14 64
+132 14 64
+133 14 64
+134 14 64
+135 14 64
+136 14 64
+137 14 64
+138 14 64
+139 14 64
+140 14 64
+141 14 64
+142 14 64
+143 14 64
+144 14 64
+145 14 64
+146 14 64
+147 14 64
+148 14 64
+149 14 64
+150 14 64
+151 14 64
+152 14 64
+153 14 64
+154 14 64
+155 14 64
+156 14 64
+157 14 64
+158 14 64
+159 14 64
+160 14 64
+161 14 64
+162 14 64
+163 14 64
+164 14 64
+165 14 64
+166 14 64
+167 14 64
+168 14 64
+169 14 64
+170 14 64
+171 14 64
+172 14 64
+173 14 64
+174 14 64
+175 14 64
+176 14 64
+177 14 64
+178 14 64
+179 14 64
+180 14 64
+181 14 64
+182 14 64
+183 14 64
+184 14 64
+185 14 64
+186 14 64
+187 14 64
+188 14 64
+189 14 64
+190 14 64
+191 14 64
+192 14 64
+193 14 64
+194 14 64
+195 14 64
+196 14 64
+197 14 64
+198 14 64
+199 14 64
+200 14 64
+201 14 64
+202 14 64
+203 14 64
+204 14 64
+205 14 64
+206 14 64
+207 14 64
+208 14 64
+209 14 64
+210 14 64
+211 14 64
+212 14 64
+213 14 64
+214 14 64
+215 14 64
+216 14 64
+217 14 64
+218 14 64
+219 14 64
+220 14 64
+221 14 64
+222 14 64
+223 14 64
+224 14 64
+225 14 64
+226 14 64
+227 14 64
+228 14 64
+229 14 64
+230 14 64
+231 14 64
+232 14 64
+233 14 64
+234 14 64
+235 14 64
+236 14 64
+237 14 64
+238 14 64
+239 14 64
+240 14 64
+241 14 64
+242 14 64
+243 14 64
+244 14 64
+245 14 64
+246 14 64
+247 14 64
+248 14 64
+249 14 64
+250 14 64
+251 14 64
+252 14 64
+253 14 64
+254 14 64
+255 14 64
+0 13 64
+1 13 64
+2 13 64
+3 13 64
+4 13 64
+5 13 64
+6 13 64
+7 13 64
+8 13 64
+9 13 64
+10 13 64
+11 13 64
+12 13 64
+13 13 64
+14 13 64
+15 13 64
+16 13 64
+17 13 64
+18 13 64
+19 13 64
+20 13 64
+21 13 64
+22 13 64
+23 13 64
+24 13 64
+25 13 64
+26 13 64
+27 13 64
+28 13 64
+29 13 64
+30 13 64
+31 13 64
+32 13 64
+33 13 64
+34 13 64
+35 13 64
+36 13 64
+37 13 64
+38 13 64
+39 13 64
+40 13 64
+41 13 64
+42 13 64
+43 13 64
+44 13 64
+45 13 64
+46 13 64
+47 13 64
+48 13 64
+49 13 64
+50 13 64
+51 13 64
+52 13 64
+53 13 64
+54 13 64
+55 13 64
+56 13 64
+57 13 64
+58 13 64
+59 13 64
+60 13 64
+61 13 64
+62 13 64
+63 13 64
+64 13 64
+65 13 64
+66 13 64
+67 13 64
+68 13 64
+69 13 64
+70 13 64
+71 13 64
+72 13 64
+73 13 64
+74 13 64
+75 13 64
+76 13 64
+77 13 64
+78 13 64
+79 13 64
+80 13 64
+81 13 64
+82 13 64
+83 13 64
+84 13 64
+85 13 64
+86 13 64
+87 13 64
+88 13 64
+89 13 64
+90 13 64
+91 13 64
+92 13 64
+93 13 64
+94 13 64
+95 13 64
+96 13 64
+97 13 64
+98 13 64
+99 13 64
+100 13 64
+101 13 64
+102 13 64
+103 13 64
+104 13 64
+105 13 64
+106 13 64
+107 13 64
+108 13 64
+109 13 64
+110 13 64
+111 13 64
+112 13 64
+113 13 64
+114 13 64
+115 13 64
+116 13 64
+117 13 64
+118 13 64
+119 13 64
+120 13 64
+121 13 64
+122 13 64
+123 13 64
+124 13 64
+125 13 64
+126 13 64
+127 13 64
+128 13 64
+129 13 64
+130 13 64
+131 13 64
+132 13 64
+133 13 64
+134 13 64
+135 13 64
+136 13 64
+137 13 64
+138 13 64
+139 13 64
+140 13 64
+141 13 64
+142 13 64
+143 13 64
+144 13 64
+145 13 64
+146 13 64
+147 13 64
+148 13 64
+149 13 64
+150 13 64
+151 13 64
+152 13 64
+153 13 64
+154 13 64
+155 13 64
+156 13 64
+157 13 64
+158 13 64
+159 13 64
+160 13 64
+161 13 64
+162 13 64
+163 13 64
+164 13 64
+165 13 64
+166 13 64
+167 13 64
+168 13 64
+169 13 64
+170 13 64
+171 13 64
+172 13 64
+173 13 64
+174 13 64
+175 13 64
+176 13 64
+177 13 64
+178 13 64
+179 13 64
+180 13 64
+181 13 64
+182 13 64
+183 13 64
+184 13 64
+185 13 64
+186 13 64
+187 13 64
+188 13 64
+189 13 64
+190 13 64
+191 13 64
+192 13 64
+193 13 64
+194 13 64
+195 13 64
+196 13 64
+197 13 64
+198 13 64
+199 13 64
+200 13 64
+201 13 64
+202 13 64
+203 13 64
+204 13 64
+205 13 64
+206 13 64
+207 13 64
+208 13 64
+209 13 64
+210 13 64
+211 13 64
+212 13 64
+213 13 64
+214 13 64
+215 13 64
+216 13 64
+217 13 64
+218 13 64
+219 13 64
+220 13 64
+221 13 64
+222 13 64
+223 13 64
+224 13 64
+225 13 64
+226 13 64
+227 13 64
+228 13 64
+229 13 64
+230 13 64
+231 13 64
+232 13 64
+233 13 64
+234 13 64
+235 13 64
+236 13 64
+237 13 64
+238 13 64
+239 13 64
+240 13 64
+241 13 64
+242 13 64
+243 13 64
+244 13 64
+245 13 64
+246 13 64
+247 13 64
+248 13 64
+249 13 64
+250 13 64
+251 13 64
+252 13 64
+253 13 64
+254 13 64
+255 13 64
+0 12 64
+1 12 64
+2 12 64
+3 12 64
+4 12 64
+5 12 64
+6 12 64
+7 12 64
+8 12 64
+9 12 64
+10 12 64
+11 12 64
+12 12 64
+13 12 64
+14 12 64
+15 12 64
+16 12 64
+17 12 64
+18 12 64
+19 12 64
+20 12 64
+21 12 64
+22 12 64
+23 12 64
+24 12 64
+25 12 64
+26 12 64
+27 12 64
+28 12 64
+29 12 64
+30 12 64
+31 12 64
+32 12 64
+33 12 64
+34 12 64
+35 12 64
+36 12 64
+37 12 64
+38 12 64
+39 12 64
+40 12 64
+41 12 64
+42 12 64
+43 12 64
+44 12 64
+45 12 64
+46 12 64
+47 12 64
+48 12 64
+49 12 64
+50 12 64
+51 12 64
+52 12 64
+53 12 64
+54 12 64
+55 12 64
+56 12 64
+57 12 64
+58 12 64
+59 12 64
+60 12 64
+61 12 64
+62 12 64
+63 12 64
+64 12 64
+65 12 64
+66 12 64
+67 12 64
+68 12 64
+69 12 64
+70 12 64
+71 12 64
+72 12 64
+73 12 64
+74 12 64
+75 12 64
+76 12 64
+77 12 64
+78 12 64
+79 12 64
+80 12 64
+81 12 64
+82 12 64
+83 12 64
+84 12 64
+85 12 64
+86 12 64
+87 12 64
+88 12 64
+89 12 64
+90 12 64
+91 12 64
+92 12 64
+93 12 64
+94 12 64
+95 12 64
+96 12 64
+97 12 64
+98 12 64
+99 12 64
+100 12 64
+101 12 64
+102 12 64
+103 12 64
+104 12 64
+105 12 64
+106 12 64
+107 12 64
+108 12 64
+109 12 64
+110 12 64
+111 12 64
+112 12 64
+113 12 64
+114 12 64
+115 12 64
+116 12 64
+117 12 64
+118 12 64
+119 12 64
+120 12 64
+121 12 64
+122 12 64
+123 12 64
+124 12 64
+125 12 64
+126 12 64
+127 12 64
+128 12 64
+129 12 64
+130 12 64
+131 12 64
+132 12 64
+133 12 64
+134 12 64
+135 12 64
+136 12 64
+137 12 64
+138 12 64
+139 12 64
+140 12 64
+141 12 64
+142 12 64
+143 12 64
+144 12 64
+145 12 64
+146 12 64
+147 12 64
+148 12 64
+149 12 64
+150 12 64
+151 12 64
+152 12 64
+153 12 64
+154 12 64
+155 12 64
+156 12 64
+157 12 64
+158 12 64
+159 12 64
+160 12 64
+161 12 64
+162 12 64
+163 12 64
+164 12 64
+165 12 64
+166 12 64
+167 12 64
+168 12 64
+169 12 64
+170 12 64
+171 12 64
+172 12 64
+173 12 64
+174 12 64
+175 12 64
+176 12 64
+177 12 64
+178 12 64
+179 12 64
+180 12 64
+181 12 64
+182 12 64
+183 12 64
+184 12 64
+185 12 64
+186 12 64
+187 12 64
+188 12 64
+189 12 64
+190 12 64
+191 12 64
+192 12 64
+193 12 64
+194 12 64
+195 12 64
+196 12 64
+197 12 64
+198 12 64
+199 12 64
+200 12 64
+201 12 64
+202 12 64
+203 12 64
+204 12 64
+205 12 64
+206 12 64
+207 12 64
+208 12 64
+209 12 64
+210 12 64
+211 12 64
+212 12 64
+213 12 64
+214 12 64
+215 12 64
+216 12 64
+217 12 64
+218 12 64
+219 12 64
+220 12 64
+221 12 64
+222 12 64
+223 12 64
+224 12 64
+225 12 64
+226 12 64
+227 12 64
+228 12 64
+229 12 64
+230 12 64
+231 12 64
+232 12 64
+233 12 64
+234 12 64
+235 12 64
+236 12 64
+237 12 64
+238 12 64
+239 12 64
+240 12 64
+241 12 64
+242 12 64
+243 12 64
+244 12 64
+245 12 64
+246 12 64
+247 12 64
+248 12 64
+249 12 64
+250 12 64
+251 12 64
+252 12 64
+253 12 64
+254 12 64
+255 12 64
+0 11 64
+1 11 64
+2 11 64
+3 11 64
+4 11 64
+5 11 64
+6 11 64
+7 11 64
+8 11 64
+9 11 64
+10 11 64
+11 11 64
+12 11 64
+13 11 64
+14 11 64
+15 11 64
+16 11 64
+17 11 64
+18 11 64
+19 11 64
+20 11 64
+21 11 64
+22 11 64
+23 11 64
+24 11 64
+25 11 64
+26 11 64
+27 11 64
+28 11 64
+29 11 64
+30 11 64
+31 11 64
+32 11 64
+33 11 64
+34 11 64
+35 11 64
+36 11 64
+37 11 64
+38 11 64
+39 11 64
+40 11 64
+41 11 64
+42 11 64
+43 11 64
+44 11 64
+45 11 64
+46 11 64
+47 11 64
+48 11 64
+49 11 64
+50 11 64
+51 11 64
+52 11 64
+53 11 64
+54 11 64
+55 11 64
+56 11 64
+57 11 64
+58 11 64
+59 11 64
+60 11 64
+61 11 64
+62 11 64
+63 11 64
+64 11 64
+65 11 64
+66 11 64
+67 11 64
+68 11 64
+69 11 64
+70 11 64
+71 11 64
+72 11 64
+73 11 64
+74 11 64
+75 11 64
+76 11 64
+77 11 64
+78 11 64
+79 11 64
+80 11 64
+81 11 64
+82 11 64
+83 11 64
+84 11 64
+85 11 64
+86 11 64
+87 11 64
+88 11 64
+89 11 64
+90 11 64
+91 11 64
+92 11 64
+93 11 64
+94 11 64
+95 11 64
+96 11 64
+97 11 64
+98 11 64
+99 11 64
+100 11 64
+101 11 64
+102 11 64
+103 11 64
+104 11 64
+105 11 64
+106 11 64
+107 11 64
+108 11 64
+109 11 64
+110 11 64
+111 11 64
+112 11 64
+113 11 64
+114 11 64
+115 11 64
+116 11 64
+117 11 64
+118 11 64
+119 11 64
+120 11 64
+121 11 64
+122 11 64
+123 11 64
+124 11 64
+125 11 64
+126 11 64
+127 11 64
+128 11 64
+129 11 64
+130 11 64
+131 11 64
+132 11 64
+133 11 64
+134 11 64
+135 11 64
+136 11 64
+137 11 64
+138 11 64
+139 11 64
+140 11 64
+141 11 64
+142 11 64
+143 11 64
+144 11 64
+145 11 64
+146 11 64
+147 11 64
+148 11 64
+149 11 64
+150 11 64
+151 11 64
+152 11 64
+153 11 64
+154 11 64
+155 11 64
+156 11 64
+157 11 64
+158 11 64
+159 11 64
+160 11 64
+161 11 64
+162 11 64
+163 11 64
+164 11 64
+165 11 64
+166 11 64
+167 11 64
+168 11 64
+169 11 64
+170 11 64
+171 11 64
+172 11 64
+173 11 64
+174 11 64
+175 11 64
+176 11 64
+177 11 64
+178 11 64
+179 11 64
+180 11 64
+181 11 64
+182 11 64
+183 11 64
+184 11 64
+185 11 64
+186 11 64
+187 11 64
+188 11 64
+189 11 64
+190 11 64
+191 11 64
+192 11 64
+193 11 64
+194 11 64
+195 11 64
+196 11 64
+197 11 64
+198 11 64
+199 11 64
+200 11 64
+201 11 64
+202 11 64
+203 11 64
+204 11 64
+205 11 64
+206 11 64
+207 11 64
+208 11 64
+209 11 64
+210 11 64
+211 11 64
+212 11 64
+213 11 64
+214 11 64
+215 11 64
+216 11 64
+217 11 64
+218 11 64
+219 11 64
+220 11 64
+221 11 64
+222 11 64
+223 11 64
+224 11 64
+225 11 64
+226 11 64
+227 11 64
+228 11 64
+229 11 64
+230 11 64
+231 11 64
+232 11 64
+233 11 64
+234 11 64
+235 11 64
+236 11 64
+237 11 64
+238 11 64
+239 11 64
+240 11 64
+241 11 64
+242 11 64
+243 11 64
+244 11 64
+245 11 64
+246 11 64
+247 11 64
+248 11 64
+249 11 64
+250 11 64
+251 11 64
+252 11 64
+253 11 64
+254 11 64
+255 11 64
+0 10 64
+1 10 64
+2 10 64
+3 10 64
+4 10 64
+5 10 64
+6 10 64
+7 10 64
+8 10 64
+9 10 64
+10 10 64
+11 10 64
+12 10 64
+13 10 64
+14 10 64
+15 10 64
+16 10 64
+17 10 64
+18 10 64
+19 10 64
+20 10 64
+21 10 64
+22 10 64
+23 10 64
+24 10 64
+25 10 64
+26 10 64
+27 10 64
+28 10 64
+29 10 64
+30 10 64
+31 10 64
+32 10 64
+33 10 64
+34 10 64
+35 10 64
+36 10 64
+37 10 64
+38 10 64
+39 10 64
+40 10 64
+41 10 64
+42 10 64
+43 10 64
+44 10 64
+45 10 64
+46 10 64
+47 10 64
+48 10 64
+49 10 64
+50 10 64
+51 10 64
+52 10 64
+53 10 64
+54 10 64
+55 10 64
+56 10 64
+57 10 64
+58 10 64
+59 10 64
+60 10 64
+61 10 64
+62 10 64
+63 10 64
+64 10 64
+65 10 64
+66 10 64
+67 10 64
+68 10 64
+69 10 64
+70 10 64
+71 10 64
+72 10 64
+73 10 64
+74 10 64
+75 10 64
+76 10 64
+77 10 64
+78 10 64
+79 10 64
+80 10 64
+81 10 64
+82 10 64
+83 10 64
+84 10 64
+85 10 64
+86 10 64
+87 10 64
+88 10 64
+89 10 64
+90 10 64
+91 10 64
+92 10 64
+93 10 64
+94 10 64
+95 10 64
+96 10 64
+97 10 64
+98 10 64
+99 10 64
+100 10 64
+101 10 64
+102 10 64
+103 10 64
+104 10 64
+105 10 64
+106 10 64
+107 10 64
+108 10 64
+109 10 64
+110 10 64
+111 10 64
+112 10 64
+113 10 64
+114 10 64
+115 10 64
+116 10 64
+117 10 64
+118 10 64
+119 10 64
+120 10 64
+121 10 64
+122 10 64
+123 10 64
+124 10 64
+125 10 64
+126 10 64
+127 10 64
+128 10 64
+129 10 64
+130 10 64
+131 10 64
+132 10 64
+133 10 64
+134 10 64
+135 10 64
+136 10 64
+137 10 64
+138 10 64
+139 10 64
+140 10 64
+141 10 64
+142 10 64
+143 10 64
+144 10 64
+145 10 64
+146 10 64
+147 10 64
+148 10 64
+149 10 64
+150 10 64
+151 10 64
+152 10 64
+153 10 64
+154 10 64
+155 10 64
+156 10 64
+157 10 64
+158 10 64
+159 10 64
+160 10 64
+161 10 64
+162 10 64
+163 10 64
+164 10 64
+165 10 64
+166 10 64
+167 10 64
+168 10 64
+169 10 64
+170 10 64
+171 10 64
+172 10 64
+173 10 64
+174 10 64
+175 10 64
+176 10 64
+177 10 64
+178 10 64
+179 10 64
+180 10 64
+181 10 64
+182 10 64
+183 10 64
+184 10 64
+185 10 64
+186 10 64
+187 10 64
+188 10 64
+189 10 64
+190 10 64
+191 10 64
+192 10 64
+193 10 64
+194 10 64
+195 10 64
+196 10 64
+197 10 64
+198 10 64
+199 10 64
+200 10 64
+201 10 64
+202 10 64
+203 10 64
+204 10 64
+205 10 64
+206 10 64
+207 10 64
+208 10 64
+209 10 64
+210 10 64
+211 10 64
+212 10 64
+213 10 64
+214 10 64
+215 10 64
+216 10 64
+217 10 64
+218 10 64
+219 10 64
+220 10 64
+221 10 64
+222 10 64
+223 10 64
+224 10 64
+225 10 64
+226 10 64
+227 10 64
+228 10 64
+229 10 64
+230 10 64
+231 10 64
+232 10 64
+233 10 64
+234 10 64
+235 10 64
+236 10 64
+237 10 64
+238 10 64
+239 10 64
+240 10 64
+241 10 64
+242 10 64
+243 10 64
+244 10 64
+245 10 64
+246 10 64
+247 10 64
+248 10 64
+249 10 64
+250 10 64
+251 10 64
+252 10 64
+253 10 64
+254 10 64
+255 10 64
+0 9 64
+1 9 64
+2 9 64
+3 9 64
+4 9 64
+5 9 64
+6 9 64
+7 9 64
+8 9 64
+9 9 64
+10 9 64
+11 9 64
+12 9 64
+13 9 64
+14 9 64
+15 9 64
+16 9 64
+17 9 64
+18 9 64
+19 9 64
+20 9 64
+21 9 64
+22 9 64
+23 9 64
+24 9 64
+25 9 64
+26 9 64
+27 9 64
+28 9 64
+29 9 64
+30 9 64
+31 9 64
+32 9 64
+33 9 64
+34 9 64
+35 9 64
+36 9 64
+37 9 64
+38 9 64
+39 9 64
+40 9 64
+41 9 64
+42 9 64
+43 9 64
+44 9 64
+45 9 64
+46 9 64
+47 9 64
+48 9 64
+49 9 64
+50 9 64
+51 9 64
+52 9 64
+53 9 64
+54 9 64
+55 9 64
+56 9 64
+57 9 64
+58 9 64
+59 9 64
+60 9 64
+61 9 64
+62 9 64
+63 9 64
+64 9 64
+65 9 64
+66 9 64
+67 9 64
+68 9 64
+69 9 64
+70 9 64
+71 9 64
+72 9 64
+73 9 64
+74 9 64
+75 9 64
+76 9 64
+77 9 64
+78 9 64
+79 9 64
+80 9 64
+81 9 64
+82 9 64
+83 9 64
+84 9 64
+85 9 64
+86 9 64
+87 9 64
+88 9 64
+89 9 64
+90 9 64
+91 9 64
+92 9 64
+93 9 64
+94 9 64
+95 9 64
+96 9 64
+97 9 64
+98 9 64
+99 9 64
+100 9 64
+101 9 64
+102 9 64
+103 9 64
+104 9 64
+105 9 64
+106 9 64
+107 9 64
+108 9 64
+109 9 64
+110 9 64
+111 9 64
+112 9 64
+113 9 64
+114 9 64
+115 9 64
+116 9 64
+117 9 64
+118 9 64
+119 9 64
+120 9 64
+121 9 64
+122 9 64
+123 9 64
+124 9 64
+125 9 64
+126 9 64
+127 9 64
+128 9 64
+129 9 64
+130 9 64
+131 9 64
+132 9 64
+133 9 64
+134 9 64
+135 9 64
+136 9 64
+137 9 64
+138 9 64
+139 9 64
+140 9 64
+141 9 64
+142 9 64
+143 9 64
+144 9 64
+145 9 64
+146 9 64
+147 9 64
+148 9 64
+149 9 64
+150 9 64
+151 9 64
+152 9 64
+153 9 64
+154 9 64
+155 9 64
+156 9 64
+157 9 64
+158 9 64
+159 9 64
+160 9 64
+161 9 64
+162 9 64
+163 9 64
+164 9 64
+165 9 64
+166 9 64
+167 9 64
+168 9 64
+169 9 64
+170 9 64
+171 9 64
+172 9 64
+173 9 64
+174 9 64
+175 9 64
+176 9 64
+177 9 64
+178 9 64
+179 9 64
+180 9 64
+181 9 64
+182 9 64
+183 9 64
+184 9 64
+185 9 64
+186 9 64
+187 9 64
+188 9 64
+189 9 64
+190 9 64
+191 9 64
+192 9 64
+193 9 64
+194 9 64
+195 9 64
+196 9 64
+197 9 64
+198 9 64
+199 9 64
+200 9 64
+201 9 64
+202 9 64
+203 9 64
+204 9 64
+205 9 64
+206 9 64
+207 9 64
+208 9 64
+209 9 64
+210 9 64
+211 9 64
+212 9 64
+213 9 64
+214 9 64
+215 9 64
+216 9 64
+217 9 64
+218 9 64
+219 9 64
+220 9 64
+221 9 64
+222 9 64
+223 9 64
+224 9 64
+225 9 64
+226 9 64
+227 9 64
+228 9 64
+229 9 64
+230 9 64
+231 9 64
+232 9 64
+233 9 64
+234 9 64
+235 9 64
+236 9 64
+237 9 64
+238 9 64
+239 9 64
+240 9 64
+241 9 64
+242 9 64
+243 9 64
+244 9 64
+245 9 64
+246 9 64
+247 9 64
+248 9 64
+249 9 64
+250 9 64
+251 9 64
+252 9 64
+253 9 64
+254 9 64
+255 9 64
+0 8 64
+1 8 64
+2 8 64
+3 8 64
+4 8 64
+5 8 64
+6 8 64
+7 8 64
+8 8 64
+9 8 64
+10 8 64
+11 8 64
+12 8 64
+13 8 64
+14 8 64
+15 8 64
+16 8 64
+17 8 64
+18 8 64
+19 8 64
+20 8 64
+21 8 64
+22 8 64
+23 8 64
+24 8 64
+25 8 64
+26 8 64
+27 8 64
+28 8 64
+29 8 64
+30 8 64
+31 8 64
+32 8 64
+33 8 64
+34 8 64
+35 8 64
+36 8 64
+37 8 64
+38 8 64
+39 8 64
+40 8 64
+41 8 64
+42 8 64
+43 8 64
+44 8 64
+45 8 64
+46 8 64
+47 8 64
+48 8 64
+49 8 64
+50 8 64
+51 8 64
+52 8 64
+53 8 64
+54 8 64
+55 8 64
+56 8 64
+57 8 64
+58 8 64
+59 8 64
+60 8 64
+61 8 64
+62 8 64
+63 8 64
+64 8 64
+65 8 64
+66 8 64
+67 8 64
+68 8 64
+69 8 64
+70 8 64
+71 8 64
+72 8 64
+73 8 64
+74 8 64
+75 8 64
+76 8 64
+77 8 64
+78 8 64
+79 8 64
+80 8 64
+81 8 64
+82 8 64
+83 8 64
+84 8 64
+85 8 64
+86 8 64
+87 8 64
+88 8 64
+89 8 64
+90 8 64
+91 8 64
+92 8 64
+93 8 64
+94 8 64
+95 8 64
+96 8 64
+97 8 64
+98 8 64
+99 8 64
+100 8 64
+101 8 64
+102 8 64
+103 8 64
+104 8 64
+105 8 64
+106 8 64
+107 8 64
+108 8 64
+109 8 64
+110 8 64
+111 8 64
+112 8 64
+113 8 64
+114 8 64
+115 8 64
+116 8 64
+117 8 64
+118 8 64
+119 8 64
+120 8 64
+121 8 64
+122 8 64
+123 8 64
+124 8 64
+125 8 64
+126 8 64
+127 8 64
+128 8 64
+129 8 64
+130 8 64
+131 8 64
+132 8 64
+133 8 64
+134 8 64
+135 8 64
+136 8 64
+137 8 64
+138 8 64
+139 8 64
+140 8 64
+141 8 64
+142 8 64
+143 8 64
+144 8 64
+145 8 64
+146 8 64
+147 8 64
+148 8 64
+149 8 64
+150 8 64
+151 8 64
+152 8 64
+153 8 64
+154 8 64
+155 8 64
+156 8 64
+157 8 64
+158 8 64
+159 8 64
+160 8 64
+161 8 64
+162 8 64
+163 8 64
+164 8 64
+165 8 64
+166 8 64
+167 8 64
+168 8 64
+169 8 64
+170 8 64
+171 8 64
+172 8 64
+173 8 64
+174 8 64
+175 8 64
+176 8 64
+177 8 64
+178 8 64
+179 8 64
+180 8 64
+181 8 64
+182 8 64
+183 8 64
+184 8 64
+185 8 64
+186 8 64
+187 8 64
+188 8 64
+189 8 64
+190 8 64
+191 8 64
+192 8 64
+193 8 64
+194 8 64
+195 8 64
+196 8 64
+197 8 64
+198 8 64
+199 8 64
+200 8 64
+201 8 64
+202 8 64
+203 8 64
+204 8 64
+205 8 64
+206 8 64
+207 8 64
+208 8 64
+209 8 64
+210 8 64
+211 8 64
+212 8 64
+213 8 64
+214 8 64
+215 8 64
+216 8 64
+217 8 64
+218 8 64
+219 8 64
+220 8 64
+221 8 64
+222 8 64
+223 8 64
+224 8 64
+225 8 64
+226 8 64
+227 8 64
+228 8 64
+229 8 64
+230 8 64
+231 8 64
+232 8 64
+233 8 64
+234 8 64
+235 8 64
+236 8 64
+237 8 64
+238 8 64
+239 8 64
+240 8 64
+241 8 64
+242 8 64
+243 8 64
+244 8 64
+245 8 64
+246 8 64
+247 8 64
+248 8 64
+249 8 64
+250 8 64
+251 8 64
+252 8 64
+253 8 64
+254 8 64
+255 8 64
+0 7 64
+1 7 64
+2 7 64
+3 7 64
+4 7 64
+5 7 64
+6 7 64
+7 7 64
+8 7 64
+9 7 64
+10 7 64
+11 7 64
+12 7 64
+13 7 64
+14 7 64
+15 7 64
+16 7 64
+17 7 64
+18 7 64
+19 7 64
+20 7 64
+21 7 64
+22 7 64
+23 7 64
+24 7 64
+25 7 64
+26 7 64
+27 7 64
+28 7 64
+29 7 64
+30 7 64
+31 7 64
+32 7 64
+33 7 64
+34 7 64
+35 7 64
+36 7 64
+37 7 64
+38 7 64
+39 7 64
+40 7 64
+41 7 64
+42 7 64
+43 7 64
+44 7 64
+45 7 64
+46 7 64
+47 7 64
+48 7 64
+49 7 64
+50 7 64
+51 7 64
+52 7 64
+53 7 64
+54 7 64
+55 7 64
+56 7 64
+57 7 64
+58 7 64
+59 7 64
+60 7 64
+61 7 64
+62 7 64
+63 7 64
+64 7 64
+65 7 64
+66 7 64
+67 7 64
+68 7 64
+69 7 64
+70 7 64
+71 7 64
+72 7 64
+73 7 64
+74 7 64
+75 7 64
+76 7 64
+77 7 64
+78 7 64
+79 7 64
+80 7 64
+81 7 64
+82 7 64
+83 7 64
+84 7 64
+85 7 64
+86 7 64
+87 7 64
+88 7 64
+89 7 64
+90 7 64
+91 7 64
+92 7 64
+93 7 64
+94 7 64
+95 7 64
+96 7 64
+97 7 64
+98 7 64
+99 7 64
+100 7 64
+101 7 64
+102 7 64
+103 7 64
+104 7 64
+105 7 64
+106 7 64
+107 7 64
+108 7 64
+109 7 64
+110 7 64
+111 7 64
+112 7 64
+113 7 64
+114 7 64
+115 7 64
+116 7 64
+117 7 64
+118 7 64
+119 7 64
+120 7 64
+121 7 64
+122 7 64
+123 7 64
+124 7 64
+125 7 64
+126 7 64
+127 7 64
+128 7 64
+129 7 64
+130 7 64
+131 7 64
+132 7 64
+133 7 64
+134 7 64
+135 7 64
+136 7 64
+137 7 64
+138 7 64
+139 7 64
+140 7 64
+141 7 64
+142 7 64
+143 7 64
+144 7 64
+145 7 64
+146 7 64
+147 7 64
+148 7 64
+149 7 64
+150 7 64
+151 7 64
+152 7 64
+153 7 64
+154 7 64
+155 7 64
+156 7 64
+157 7 64
+158 7 64
+159 7 64
+160 7 64
+161 7 64
+162 7 64
+163 7 64
+164 7 64
+165 7 64
+166 7 64
+167 7 64
+168 7 64
+169 7 64
+170 7 64
+171 7 64
+172 7 64
+173 7 64
+174 7 64
+175 7 64
+176 7 64
+177 7 64
+178 7 64
+179 7 64
+180 7 64
+181 7 64
+182 7 64
+183 7 64
+184 7 64
+185 7 64
+186 7 64
+187 7 64
+188 7 64
+189 7 64
+190 7 64
+191 7 64
+192 7 64
+193 7 64
+194 7 64
+195 7 64
+196 7 64
+197 7 64
+198 7 64
+199 7 64
+200 7 64
+201 7 64
+202 7 64
+203 7 64
+204 7 64
+205 7 64
+206 7 64
+207 7 64
+208 7 64
+209 7 64
+210 7 64
+211 7 64
+212 7 64
+213 7 64
+214 7 64
+215 7 64
+216 7 64
+217 7 64
+218 7 64
+219 7 64
+220 7 64
+221 7 64
+222 7 64
+223 7 64
+224 7 64
+225 7 64
+226 7 64
+227 7 64
+228 7 64
+229 7 64
+230 7 64
+231 7 64
+232 7 64
+233 7 64
+234 7 64
+235 7 64
+236 7 64
+237 7 64
+238 7 64
+239 7 64
+240 7 64
+241 7 64
+242 7 64
+243 7 64
+244 7 64
+245 7 64
+246 7 64
+247 7 64
+248 7 64
+249 7 64
+250 7 64
+251 7 64
+252 7 64
+253 7 64
+254 7 64
+255 7 64
+0 6 64
+1 6 64
+2 6 64
+3 6 64
+4 6 64
+5 6 64
+6 6 64
+7 6 64
+8 6 64
+9 6 64
+10 6 64
+11 6 64
+12 6 64
+13 6 64
+14 6 64
+15 6 64
+16 6 64
+17 6 64
+18 6 64
+19 6 64
+20 6 64
+21 6 64
+22 6 64
+23 6 64
+24 6 64
+25 6 64
+26 6 64
+27 6 64
+28 6 64
+29 6 64
+30 6 64
+31 6 64
+32 6 64
+33 6 64
+34 6 64
+35 6 64
+36 6 64
+37 6 64
+38 6 64
+39 6 64
+40 6 64
+41 6 64
+42 6 64
+43 6 64
+44 6 64
+45 6 64
+46 6 64
+47 6 64
+48 6 64
+49 6 64
+50 6 64
+51 6 64
+52 6 64
+53 6 64
+54 6 64
+55 6 64
+56 6 64
+57 6 64
+58 6 64
+59 6 64
+60 6 64
+61 6 64
+62 6 64
+63 6 64
+64 6 64
+65 6 64
+66 6 64
+67 6 64
+68 6 64
+69 6 64
+70 6 64
+71 6 64
+72 6 64
+73 6 64
+74 6 64
+75 6 64
+76 6 64
+77 6 64
+78 6 64
+79 6 64
+80 6 64
+81 6 64
+82 6 64
+83 6 64
+84 6 64
+85 6 64
+86 6 64
+87 6 64
+88 6 64
+89 6 64
+90 6 64
+91 6 64
+92 6 64
+93 6 64
+94 6 64
+95 6 64
+96 6 64
+97 6 64
+98 6 64
+99 6 64
+100 6 64
+101 6 64
+102 6 64
+103 6 64
+104 6 64
+105 6 64
+106 6 64
+107 6 64
+108 6 64
+109 6 64
+110 6 64
+111 6 64
+112 6 64
+113 6 64
+114 6 64
+115 6 64
+116 6 64
+117 6 64
+118 6 64
+119 6 64
+120 6 64
+121 6 64
+122 6 64
+123 6 64
+124 6 64
+125 6 64
+126 6 64
+127 6 64
+128 6 64
+129 6 64
+130 6 64
+131 6 64
+132 6 64
+133 6 64
+134 6 64
+135 6 64
+136 6 64
+137 6 64
+138 6 64
+139 6 64
+140 6 64
+141 6 64
+142 6 64
+143 6 64
+144 6 64
+145 6 64
+146 6 64
+147 6 64
+148 6 64
+149 6 64
+150 6 64
+151 6 64
+152 6 64
+153 6 64
+154 6 64
+155 6 64
+156 6 64
+157 6 64
+158 6 64
+159 6 64
+160 6 64
+161 6 64
+162 6 64
+163 6 64
+164 6 64
+165 6 64
+166 6 64
+167 6 64
+168 6 64
+169 6 64
+170 6 64
+171 6 64
+172 6 64
+173 6 64
+174 6 64
+175 6 64
+176 6 64
+177 6 64
+178 6 64
+179 6 64
+180 6 64
+181 6 64
+182 6 64
+183 6 64
+184 6 64
+185 6 64
+186 6 64
+187 6 64
+188 6 64
+189 6 64
+190 6 64
+191 6 64
+192 6 64
+193 6 64
+194 6 64
+195 6 64
+196 6 64
+197 6 64
+198 6 64
+199 6 64
+200 6 64
+201 6 64
+202 6 64
+203 6 64
+204 6 64
+205 6 64
+206 6 64
+207 6 64
+208 6 64
+209 6 64
+210 6 64
+211 6 64
+212 6 64
+213 6 64
+214 6 64
+215 6 64
+216 6 64
+217 6 64
+218 6 64
+219 6 64
+220 6 64
+221 6 64
+222 6 64
+223 6 64
+224 6 64
+225 6 64
+226 6 64
+227 6 64
+228 6 64
+229 6 64
+230 6 64
+231 6 64
+232 6 64
+233 6 64
+234 6 64
+235 6 64
+236 6 64
+237 6 64
+238 6 64
+239 6 64
+240 6 64
+241 6 64
+242 6 64
+243 6 64
+244 6 64
+245 6 64
+246 6 64
+247 6 64
+248 6 64
+249 6 64
+250 6 64
+251 6 64
+252 6 64
+253 6 64
+254 6 64
+255 6 64
+0 5 64
+1 5 64
+2 5 64
+3 5 64
+4 5 64
+5 5 64
+6 5 64
+7 5 64
+8 5 64
+9 5 64
+10 5 64
+11 5 64
+12 5 64
+13 5 64
+14 5 64
+15 5 64
+16 5 64
+17 5 64
+18 5 64
+19 5 64
+20 5 64
+21 5 64
+22 5 64
+23 5 64
+24 5 64
+25 5 64
+26 5 64
+27 5 64
+28 5 64
+29 5 64
+30 5 64
+31 5 64
+32 5 64
+33 5 64
+34 5 64
+35 5 64
+36 5 64
+37 5 64
+38 5 64
+39 5 64
+40 5 64
+41 5 64
+42 5 64
+43 5 64
+44 5 64
+45 5 64
+46 5 64
+47 5 64
+48 5 64
+49 5 64
+50 5 64
+51 5 64
+52 5 64
+53 5 64
+54 5 64
+55 5 64
+56 5 64
+57 5 64
+58 5 64
+59 5 64
+60 5 64
+61 5 64
+62 5 64
+63 5 64
+64 5 64
+65 5 64
+66 5 64
+67 5 64
+68 5 64
+69 5 64
+70 5 64
+71 5 64
+72 5 64
+73 5 64
+74 5 64
+75 5 64
+76 5 64
+77 5 64
+78 5 64
+79 5 64
+80 5 64
+81 5 64
+82 5 64
+83 5 64
+84 5 64
+85 5 64
+86 5 64
+87 5 64
+88 5 64
+89 5 64
+90 5 64
+91 5 64
+92 5 64
+93 5 64
+94 5 64
+95 5 64
+96 5 64
+97 5 64
+98 5 64
+99 5 64
+100 5 64
+101 5 64
+102 5 64
+103 5 64
+104 5 64
+105 5 64
+106 5 64
+107 5 64
+108 5 64
+109 5 64
+110 5 64
+111 5 64
+112 5 64
+113 5 64
+114 5 64
+115 5 64
+116 5 64
+117 5 64
+118 5 64
+119 5 64
+120 5 64
+121 5 64
+122 5 64
+123 5 64
+124 5 64
+125 5 64
+126 5 64
+127 5 64
+128 5 64
+129 5 64
+130 5 64
+131 5 64
+132 5 64
+133 5 64
+134 5 64
+135 5 64
+136 5 64
+137 5 64
+138 5 64
+139 5 64
+140 5 64
+141 5 64
+142 5 64
+143 5 64
+144 5 64
+145 5 64
+146 5 64
+147 5 64
+148 5 64
+149 5 64
+150 5 64
+151 5 64
+152 5 64
+153 5 64
+154 5 64
+155 5 64
+156 5 64
+157 5 64
+158 5 64
+159 5 64
+160 5 64
+161 5 64
+162 5 64
+163 5 64
+164 5 64
+165 5 64
+166 5 64
+167 5 64
+168 5 64
+169 5 64
+170 5 64
+171 5 64
+172 5 64
+173 5 64
+174 5 64
+175 5 64
+176 5 64
+177 5 64
+178 5 64
+179 5 64
+180 5 64
+181 5 64
+182 5 64
+183 5 64
+184 5 64
+185 5 64
+186 5 64
+187 5 64
+188 5 64
+189 5 64
+190 5 64
+191 5 64
+192 5 64
+193 5 64
+194 5 64
+195 5 64
+196 5 64
+197 5 64
+198 5 64
+199 5 64
+200 5 64
+201 5 64
+202 5 64
+203 5 64
+204 5 64
+205 5 64
+206 5 64
+207 5 64
+208 5 64
+209 5 64
+210 5 64
+211 5 64
+212 5 64
+213 5 64
+214 5 64
+215 5 64
+216 5 64
+217 5 64
+218 5 64
+219 5 64
+220 5 64
+221 5 64
+222 5 64
+223 5 64
+224 5 64
+225 5 64
+226 5 64
+227 5 64
+228 5 64
+229 5 64
+230 5 64
+231 5 64
+232 5 64
+233 5 64
+234 5 64
+235 5 64
+236 5 64
+237 5 64
+238 5 64
+239 5 64
+240 5 64
+241 5 64
+242 5 64
+243 5 64
+244 5 64
+245 5 64
+246 5 64
+247 5 64
+248 5 64
+249 5 64
+250 5 64
+251 5 64
+252 5 64
+253 5 64
+254 5 64
+255 5 64
+0 4 64
+1 4 64
+2 4 64
+3 4 64
+4 4 64
+5 4 64
+6 4 64
+7 4 64
+8 4 64
+9 4 64
+10 4 64
+11 4 64
+12 4 64
+13 4 64
+14 4 64
+15 4 64
+16 4 64
+17 4 64
+18 4 64
+19 4 64
+20 4 64
+21 4 64
+22 4 64
+23 4 64
+24 4 64
+25 4 64
+26 4 64
+27 4 64
+28 4 64
+29 4 64
+30 4 64
+31 4 64
+32 4 64
+33 4 64
+34 4 64
+35 4 64
+36 4 64
+37 4 64
+38 4 64
+39 4 64
+40 4 64
+41 4 64
+42 4 64
+43 4 64
+44 4 64
+45 4 64
+46 4 64
+47 4 64
+48 4 64
+49 4 64
+50 4 64
+51 4 64
+52 4 64
+53 4 64
+54 4 64
+55 4 64
+56 4 64
+57 4 64
+58 4 64
+59 4 64
+60 4 64
+61 4 64
+62 4 64
+63 4 64
+64 4 64
+65 4 64
+66 4 64
+67 4 64
+68 4 64
+69 4 64
+70 4 64
+71 4 64
+72 4 64
+73 4 64
+74 4 64
+75 4 64
+76 4 64
+77 4 64
+78 4 64
+79 4 64
+80 4 64
+81 4 64
+82 4 64
+83 4 64
+84 4 64
+85 4 64
+86 4 64
+87 4 64
+88 4 64
+89 4 64
+90 4 64
+91 4 64
+92 4 64
+93 4 64
+94 4 64
+95 4 64
+96 4 64
+97 4 64
+98 4 64
+99 4 64
+100 4 64
+101 4 64
+102 4 64
+103 4 64
+104 4 64
+105 4 64
+106 4 64
+107 4 64
+108 4 64
+109 4 64
+110 4 64
+111 4 64
+112 4 64
+113 4 64
+114 4 64
+115 4 64
+116 4 64
+117 4 64
+118 4 64
+119 4 64
+120 4 64
+121 4 64
+122 4 64
+123 4 64
+124 4 64
+125 4 64
+126 4 64
+127 4 64
+128 4 64
+129 4 64
+130 4 64
+131 4 64
+132 4 64
+133 4 64
+134 4 64
+135 4 64
+136 4 64
+137 4 64
+138 4 64
+139 4 64
+140 4 64
+141 4 64
+142 4 64
+143 4 64
+144 4 64
+145 4 64
+146 4 64
+147 4 64
+148 4 64
+149 4 64
+150 4 64
+151 4 64
+152 4 64
+153 4 64
+154 4 64
+155 4 64
+156 4 64
+157 4 64
+158 4 64
+159 4 64
+160 4 64
+161 4 64
+162 4 64
+163 4 64
+164 4 64
+165 4 64
+166 4 64
+167 4 64
+168 4 64
+169 4 64
+170 4 64
+171 4 64
+172 4 64
+173 4 64
+174 4 64
+175 4 64
+176 4 64
+177 4 64
+178 4 64
+179 4 64
+180 4 64
+181 4 64
+182 4 64
+183 4 64
+184 4 64
+185 4 64
+186 4 64
+187 4 64
+188 4 64
+189 4 64
+190 4 64
+191 4 64
+192 4 64
+193 4 64
+194 4 64
+195 4 64
+196 4 64
+197 4 64
+198 4 64
+199 4 64
+200 4 64
+201 4 64
+202 4 64
+203 4 64
+204 4 64
+205 4 64
+206 4 64
+207 4 64
+208 4 64
+209 4 64
+210 4 64
+211 4 64
+212 4 64
+213 4 64
+214 4 64
+215 4 64
+216 4 64
+217 4 64
+218 4 64
+219 4 64
+220 4 64
+221 4 64
+222 4 64
+223 4 64
+224 4 64
+225 4 64
+226 4 64
+227 4 64
+228 4 64
+229 4 64
+230 4 64
+231 4 64
+232 4 64
+233 4 64
+234 4 64
+235 4 64
+236 4 64
+237 4 64
+238 4 64
+239 4 64
+240 4 64
+241 4 64
+242 4 64
+243 4 64
+244 4 64
+245 4 64
+246 4 64
+247 4 64
+248 4 64
+249 4 64
+250 4 64
+251 4 64
+252 4 64
+253 4 64
+254 4 64
+255 4 64
+0 3 64
+1 3 64
+2 3 64
+3 3 64
+4 3 64
+5 3 64
+6 3 64
+7 3 64
+8 3 64
+9 3 64
+10 3 64
+11 3 64
+12 3 64
+13 3 64
+14 3 64
+15 3 64
+16 3 64
+17 3 64
+18 3 64
+19 3 64
+20 3 64
+21 3 64
+22 3 64
+23 3 64
+24 3 64
+25 3 64
+26 3 64
+27 3 64
+28 3 64
+29 3 64
+30 3 64
+31 3 64
+32 3 64
+33 3 64
+34 3 64
+35 3 64
+36 3 64
+37 3 64
+38 3 64
+39 3 64
+40 3 64
+41 3 64
+42 3 64
+43 3 64
+44 3 64
+45 3 64
+46 3 64
+47 3 64
+48 3 64
+49 3 64
+50 3 64
+51 3 64
+52 3 64
+53 3 64
+54 3 64
+55 3 64
+56 3 64
+57 3 64
+58 3 64
+59 3 64
+60 3 64
+61 3 64
+62 3 64
+63 3 64
+64 3 64
+65 3 64
+66 3 64
+67 3 64
+68 3 64
+69 3 64
+70 3 64
+71 3 64
+72 3 64
+73 3 64
+74 3 64
+75 3 64
+76 3 64
+77 3 64
+78 3 64
+79 3 64
+80 3 64
+81 3 64
+82 3 64
+83 3 64
+84 3 64
+85 3 64
+86 3 64
+87 3 64
+88 3 64
+89 3 64
+90 3 64
+91 3 64
+92 3 64
+93 3 64
+94 3 64
+95 3 64
+96 3 64
+97 3 64
+98 3 64
+99 3 64
+100 3 64
+101 3 64
+102 3 64
+103 3 64
+104 3 64
+105 3 64
+106 3 64
+107 3 64
+108 3 64
+109 3 64
+110 3 64
+111 3 64
+112 3 64
+113 3 64
+114 3 64
+115 3 64
+116 3 64
+117 3 64
+118 3 64
+119 3 64
+120 3 64
+121 3 64
+122 3 64
+123 3 64
+124 3 64
+125 3 64
+126 3 64
+127 3 64
+128 3 64
+129 3 64
+130 3 64
+131 3 64
+132 3 64
+133 3 64
+134 3 64
+135 3 64
+136 3 64
+137 3 64
+138 3 64
+139 3 64
+140 3 64
+141 3 64
+142 3 64
+143 3 64
+144 3 64
+145 3 64
+146 3 64
+147 3 64
+148 3 64
+149 3 64
+150 3 64
+151 3 64
+152 3 64
+153 3 64
+154 3 64
+155 3 64
+156 3 64
+157 3 64
+158 3 64
+159 3 64
+160 3 64
+161 3 64
+162 3 64
+163 3 64
+164 3 64
+165 3 64
+166 3 64
+167 3 64
+168 3 64
+169 3 64
+170 3 64
+171 3 64
+172 3 64
+173 3 64
+174 3 64
+175 3 64
+176 3 64
+177 3 64
+178 3 64
+179 3 64
+180 3 64
+181 3 64
+182 3 64
+183 3 64
+184 3 64
+185 3 64
+186 3 64
+187 3 64
+188 3 64
+189 3 64
+190 3 64
+191 3 64
+192 3 64
+193 3 64
+194 3 64
+195 3 64
+196 3 64
+197 3 64
+198 3 64
+199 3 64
+200 3 64
+201 3 64
+202 3 64
+203 3 64
+204 3 64
+205 3 64
+206 3 64
+207 3 64
+208 3 64
+209 3 64
+210 3 64
+211 3 64
+212 3 64
+213 3 64
+214 3 64
+215 3 64
+216 3 64
+217 3 64
+218 3 64
+219 3 64
+220 3 64
+221 3 64
+222 3 64
+223 3 64
+224 3 64
+225 3 64
+226 3 64
+227 3 64
+228 3 64
+229 3 64
+230 3 64
+231 3 64
+232 3 64
+233 3 64
+234 3 64
+235 3 64
+236 3 64
+237 3 64
+238 3 64
+239 3 64
+240 3 64
+241 3 64
+242 3 64
+243 3 64
+244 3 64
+245 3 64
+246 3 64
+247 3 64
+248 3 64
+249 3 64
+250 3 64
+251 3 64
+252 3 64
+253 3 64
+254 3 64
+255 3 64
+0 2 64
+1 2 64
+2 2 64
+3 2 64
+4 2 64
+5 2 64
+6 2 64
+7 2 64
+8 2 64
+9 2 64
+10 2 64
+11 2 64
+12 2 64
+13 2 64
+14 2 64
+15 2 64
+16 2 64
+17 2 64
+18 2 64
+19 2 64
+20 2 64
+21 2 64
+22 2 64
+23 2 64
+24 2 64
+25 2 64
+26 2 64
+27 2 64
+28 2 64
+29 2 64
+30 2 64
+31 2 64
+32 2 64
+33 2 64
+34 2 64
+35 2 64
+36 2 64
+37 2 64
+38 2 64
+39 2 64
+40 2 64
+41 2 64
+42 2 64
+43 2 64
+44 2 64
+45 2 64
+46 2 64
+47 2 64
+48 2 64
+49 2 64
+50 2 64
+51 2 64
+52 2 64
+53 2 64
+54 2 64
+55 2 64
+56 2 64
+57 2 64
+58 2 64
+59 2 64
+60 2 64
+61 2 64
+62 2 64
+63 2 64
+64 2 64
+65 2 64
+66 2 64
+67 2 64
+68 2 64
+69 2 64
+70 2 64
+71 2 64
+72 2 64
+73 2 64
+74 2 64
+75 2 64
+76 2 64
+77 2 64
+78 2 64
+79 2 64
+80 2 64
+81 2 64
+82 2 64
+83 2 64
+84 2 64
+85 2 64
+86 2 64
+87 2 64
+88 2 64
+89 2 64
+90 2 64
+91 2 64
+92 2 64
+93 2 64
+94 2 64
+95 2 64
+96 2 64
+97 2 64
+98 2 64
+99 2 64
+100 2 64
+101 2 64
+102 2 64
+103 2 64
+104 2 64
+105 2 64
+106 2 64
+107 2 64
+108 2 64
+109 2 64
+110 2 64
+111 2 64
+112 2 64
+113 2 64
+114 2 64
+115 2 64
+116 2 64
+117 2 64
+118 2 64
+119 2 64
+120 2 64
+121 2 64
+122 2 64
+123 2 64
+124 2 64
+125 2 64
+126 2 64
+127 2 64
+128 2 64
+129 2 64
+130 2 64
+131 2 64
+132 2 64
+133 2 64
+134 2 64
+135 2 64
+136 2 64
+137 2 64
+138 2 64
+139 2 64
+140 2 64
+141 2 64
+142 2 64
+143 2 64
+144 2 64
+145 2 64
+146 2 64
+147 2 64
+148 2 64
+149 2 64
+150 2 64
+151 2 64
+152 2 64
+153 2 64
+154 2 64
+155 2 64
+156 2 64
+157 2 64
+158 2 64
+159 2 64
+160 2 64
+161 2 64
+162 2 64
+163 2 64
+164 2 64
+165 2 64
+166 2 64
+167 2 64
+168 2 64
+169 2 64
+170 2 64
+171 2 64
+172 2 64
+173 2 64
+174 2 64
+175 2 64
+176 2 64
+177 2 64
+178 2 64
+179 2 64
+180 2 64
+181 2 64
+182 2 64
+183 2 64
+184 2 64
+185 2 64
+186 2 64
+187 2 64
+188 2 64
+189 2 64
+190 2 64
+191 2 64
+192 2 64
+193 2 64
+194 2 64
+195 2 64
+196 2 64
+197 2 64
+198 2 64
+199 2 64
+200 2 64
+201 2 64
+202 2 64
+203 2 64
+204 2 64
+205 2 64
+206 2 64
+207 2 64
+208 2 64
+209 2 64
+210 2 64
+211 2 64
+212 2 64
+213 2 64
+214 2 64
+215 2 64
+216 2 64
+217 2 64
+218 2 64
+219 2 64
+220 2 64
+221 2 64
+222 2 64
+223 2 64
+224 2 64
+225 2 64
+226 2 64
+227 2 64
+228 2 64
+229 2 64
+230 2 64
+231 2 64
+232 2 64
+233 2 64
+234 2 64
+235 2 64
+236 2 64
+237 2 64
+238 2 64
+239 2 64
+240 2 64
+241 2 64
+242 2 64
+243 2 64
+244 2 64
+245 2 64
+246 2 64
+247 2 64
+248 2 64
+249 2 64
+250 2 64
+251 2 64
+252 2 64
+253 2 64
+254 2 64
+255 2 64
+0 1 64
+1 1 64
+2 1 64
+3 1 64
+4 1 64
+5 1 64
+6 1 64
+7 1 64
+8 1 64
+9 1 64
+10 1 64
+11 1 64
+12 1 64
+13 1 64
+14 1 64
+15 1 64
+16 1 64
+17 1 64
+18 1 64
+19 1 64
+20 1 64
+21 1 64
+22 1 64
+23 1 64
+24 1 64
+25 1 64
+26 1 64
+27 1 64
+28 1 64
+29 1 64
+30 1 64
+31 1 64
+32 1 64
+33 1 64
+34 1 64
+35 1 64
+36 1 64
+37 1 64
+38 1 64
+39 1 64
+40 1 64
+41 1 64
+42 1 64
+43 1 64
+44 1 64
+45 1 64
+46 1 64
+47 1 64
+48 1 64
+49 1 64
+50 1 64
+51 1 64
+52 1 64
+53 1 64
+54 1 64
+55 1 64
+56 1 64
+57 1 64
+58 1 64
+59 1 64
+60 1 64
+61 1 64
+62 1 64
+63 1 64
+64 1 64
+65 1 64
+66 1 64
+67 1 64
+68 1 64
+69 1 64
+70 1 64
+71 1 64
+72 1 64
+73 1 64
+74 1 64
+75 1 64
+76 1 64
+77 1 64
+78 1 64
+79 1 64
+80 1 64
+81 1 64
+82 1 64
+83 1 64
+84 1 64
+85 1 64
+86 1 64
+87 1 64
+88 1 64
+89 1 64
+90 1 64
+91 1 64
+92 1 64
+93 1 64
+94 1 64
+95 1 64
+96 1 64
+97 1 64
+98 1 64
+99 1 64
+100 1 64
+101 1 64
+102 1 64
+103 1 64
+104 1 64
+105 1 64
+106 1 64
+107 1 64
+108 1 64
+109 1 64
+110 1 64
+111 1 64
+112 1 64
+113 1 64
+114 1 64
+115 1 64
+116 1 64
+117 1 64
+118 1 64
+119 1 64
+120 1 64
+121 1 64
+122 1 64
+123 1 64
+124 1 64
+125 1 64
+126 1 64
+127 1 64
+128 1 64
+129 1 64
+130 1 64
+131 1 64
+132 1 64
+133 1 64
+134 1 64
+135 1 64
+136 1 64
+137 1 64
+138 1 64
+139 1 64
+140 1 64
+141 1 64
+142 1 64
+143 1 64
+144 1 64
+145 1 64
+146 1 64
+147 1 64
+148 1 64
+149 1 64
+150 1 64
+151 1 64
+152 1 64
+153 1 64
+154 1 64
+155 1 64
+156 1 64
+157 1 64
+158 1 64
+159 1 64
+160 1 64
+161 1 64
+162 1 64
+163 1 64
+164 1 64
+165 1 64
+166 1 64
+167 1 64
+168 1 64
+169 1 64
+170 1 64
+171 1 64
+172 1 64
+173 1 64
+174 1 64
+175 1 64
+176 1 64
+177 1 64
+178 1 64
+179 1 64
+180 1 64
+181 1 64
+182 1 64
+183 1 64
+184 1 64
+185 1 64
+186 1 64
+187 1 64
+188 1 64
+189 1 64
+190 1 64
+191 1 64
+192 1 64
+193 1 64
+194 1 64
+195 1 64
+196 1 64
+197 1 64
+198 1 64
+199 1 64
+200 1 64
+201 1 64
+202 1 64
+203 1 64
+204 1 64
+205 1 64
+206 1 64
+207 1 64
+208 1 64
+209 1 64
+210 1 64
+211 1 64
+212 1 64
+213 1 64
+214 1 64
+215 1 64
+216 1 64
+217 1 64
+218 1 64
+219 1 64
+220 1 64
+221 1 64
+222 1 64
+223 1 64
+224 1 64
+225 1 64
+226 1 64
+227 1 64
+228 1 64
+229 1 64
+230 1 64
+231 1 64
+232 1 64
+233 1 64
+234 1 64
+235 1 64
+236 1 64
+237 1 64
+238 1 64
+239 1 64
+240 1 64
+241 1 64
+242 1 64
+243 1 64
+244 1 64
+245 1 64
+246 1 64
+247 1 64
+248 1 64
+249 1 64
+250 1 64
+251 1 64
+252 1 64
+253 1 64
+254 1 64
+255 1 64
+0 0 64
+1 0 64
+2 0 64
+3 0 64
+4 0 64
+5 0 64
+6 0 64
+7 0 64
+8 0 64
+9 0 64
+10 0 64
+11 0 64
+12 0 64
+13 0 64
+14 0 64
+15 0 64
+16 0 64
+17 0 64
+18 0 64
+19 0 64
+20 0 64
+21 0 64
+22 0 64
+23 0 64
+24 0 64
+25 0 64
+26 0 64
+27 0 64
+28 0 64
+29 0 64
+30 0 64
+31 0 64
+32 0 64
+33 0 64
+34 0 64
+35 0 64
+36 0 64
+37 0 64
+38 0 64
+39 0 64
+40 0 64
+41 0 64
+42 0 64
+43 0 64
+44 0 64
+45 0 64
+46 0 64
+47 0 64
+48 0 64
+49 0 64
+50 0 64
+51 0 64
+52 0 64
+53 0 64
+54 0 64
+55 0 64
+56 0 64
+57 0 64
+58 0 64
+59 0 64
+60 0 64
+61 0 64
+62 0 64
+63 0 64
+64 0 64
+65 0 64
+66 0 64
+67 0 64
+68 0 64
+69 0 64
+70 0 64
+71 0 64
+72 0 64
+73 0 64
+74 0 64
+75 0 64
+76 0 64
+77 0 64
+78 0 64
+79 0 64
+80 0 64
+81 0 64
+82 0 64
+83 0 64
+84 0 64
+85 0 64
+86 0 64
+87 0 64
+88 0 64
+89 0 64
+90 0 64
+91 0 64
+92 0 64
+93 0 64
+94 0 64
+95 0 64
+96 0 64
+97 0 64
+98 0 64
+99 0 64
+100 0 64
+101 0 64
+102 0 64
+103 0 64
+104 0 64
+105 0 64
+106 0 64
+107 0 64
+108 0 64
+109 0 64
+110 0 64
+111 0 64
+112 0 64
+113 0 64
+114 0 64
+115 0 64
+116 0 64
+117 0 64
+118 0 64
+119 0 64
+120 0 64
+121 0 64
+122 0 64
+123 0 64
+124 0 64
+125 0 64
+126 0 64
+127 0 64
+128 0 64
+129 0 64
+130 0 64
+131 0 64
+132 0 64
+133 0 64
+134 0 64
+135 0 64
+136 0 64
+137 0 64
+138 0 64
+139 0 64
+140 0 64
+141 0 64
+142 0 64
+143 0 64
+144 0 64
+145 0 64
+146 0 64
+147 0 64
+148 0 64
+149 0 64
+150 0 64
+151 0 64
+152 0 64
+153 0 64
+154 0 64
+155 0 64
+156 0 64
+157 0 64
+158 0 64
+159 0 64
+160 0 64
+161 0 64
+162 0 64
+163 0 64
+164 0 64
+165 0 64
+166 0 64
+167 0 64
+168 0 64
+169 0 64
+170 0 64
+171 0 64
+172 0 64
+173 0 64
+174 0 64
+175 0 64
+176 0 64
+177 0 64
+178 0 64
+179 0 64
+180 0 64
+181 0 64
+182 0 64
+183 0 64
+184 0 64
+185 0 64
+186 0 64
+187 0 64
+188 0 64
+189 0 64
+190 0 64
+191 0 64
+192 0 64
+193 0 64
+194 0 64
+195 0 64
+196 0 64
+197 0 64
+198 0 64
+199 0 64
+200 0 64
+201 0 64
+202 0 64
+203 0 64
+204 0 64
+205 0 64
+206 0 64
+207 0 64
+208 0 64
+209 0 64
+210 0 64
+211 0 64
+212 0 64
+213 0 64
+214 0 64
+215 0 64
+216 0 64
+217 0 64
+218 0 64
+219 0 64
+220 0 64
+221 0 64
+222 0 64
+223 0 64
+224 0 64
+225 0 64
+226 0 64
+227 0 64
+228 0 64
+229 0 64
+230 0 64
+231 0 64
+232 0 64
+233 0 64
+234 0 64
+235 0 64
+236 0 64
+237 0 64
+238 0 64
+239 0 64
+240 0 64
+241 0 64
+242 0 64
+243 0 64
+244 0 64
+245 0 64
+246 0 64
+247 0 64
+248 0 64
+249 0 64
+250 0 64
+251 0 64
+252 0 64
+253 0 64
+254 0 64
+255 0 64
diff --git a/linux/raytracing/2.mu b/linux/raytracing/2.mu
new file mode 100644
index 00000000..e23ce3b4
--- /dev/null
+++ b/linux/raytracing/2.mu
@@ -0,0 +1,86 @@
+# Listing 7 of https://raytracing.github.io/books/RayTracingInOneWeekend.html
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/raytracing/2.mu
+#   $ ./a.elf > 2.ppm
+
+fn main -> _/ebx: int {
+  print-string 0, "P3\n256 256\n255\n"
+  var _four/edx: int <- copy 4
+  var four/xmm1: float <- convert _four
+  var one-fourth/xmm1: float <- reciprocal four
+  var max/edx: int <- copy 0xff
+  var image-size/xmm2: float <- convert max
+  var j/ecx: int <- copy 0xff
+  {
+    compare j, 0
+    break-if-<
+    var i/eax: int <- copy 0
+    {
+      compare i, 0xff
+      break-if->
+      var c: rgb
+      # compute r
+      var tmp/xmm0: float <- convert i
+      tmp <- divide image-size
+      var r-addr/edx: (addr float) <- get c, r
+      copy-to *r-addr, tmp
+#?       var tmp2/ebx: int <- reinterpret *r-addr
+#?       print-int32-hex 0, tmp2
+#?       print-string 0, "\n"
+      # compute g
+      tmp <- convert j
+      tmp <- divide image-size
+      var g-addr/edx: (addr float) <- get c, g
+      copy-to *g-addr, tmp
+      # compute b
+      var b-addr/edx: (addr float) <- get c, b
+      copy-to *b-addr, one-fourth
+      # emit
+      var c-addr/edx: (addr rgb) <- address c
+      print-rgb 0, c-addr
+      i <- increment
+      loop
+    }
+    j <- decrement
+    loop
+  }
+  return 0
+}
+
+type rgb {
+  # components normalized to within [0.0, 1.0]
+  r: float
+  g: float
+  b: float
+}
+
+# print translating to [0, 256)
+fn print-rgb screen: (addr screen), _c: (addr rgb) {
+  var c/esi: (addr rgb) <- copy _c
+  var n/ecx: int <- copy 0xff  # turns out 255 works just as well as 255.999, which is lucky because we don't have floating-point literals
+  var xn/xmm1: float <- convert n
+  # print 255 * c->r
+  var result/xmm0: float <- copy xn
+  var src-addr/eax: (addr float) <- get c, r
+  result <- multiply *src-addr
+  var result-int/edx: int <- convert result
+  print-int32-decimal screen, result-int
+  print-string screen, " "
+  # print 255 * c->g
+  src-addr <- get c, g
+  result <- copy xn
+  result <- multiply *src-addr
+  result-int <- convert result
+  print-int32-decimal screen, result-int
+  print-string screen, " "
+  # print 255 * c->b
+  src-addr <- get c, b
+  result <- copy xn
+  result <- multiply *src-addr
+  result-int <- convert result
+  print-int32-decimal screen, result-int
+  print-string screen, "\n"
+}
diff --git a/linux/raytracing/2.ppm b/linux/raytracing/2.ppm
new file mode 100644
index 00000000..902cc97f
--- /dev/null
+++ b/linux/raytracing/2.ppm
@@ -0,0 +1,65539 @@
+P3
+256 256
+255
+0 255 64
+1 255 64
+2 255 64
+3 255 64
+4 255 64
+5 255 64
+6 255 64
+7 255 64
+8 255 64
+9 255 64
+10 255 64
+11 255 64
+12 255 64
+13 255 64
+14 255 64
+15 255 64
+16 255 64
+17 255 64
+18 255 64
+19 255 64
+20 255 64
+21 255 64
+22 255 64
+23 255 64
+24 255 64
+25 255 64
+26 255 64
+27 255 64
+28 255 64
+29 255 64
+30 255 64
+31 255 64
+32 255 64
+33 255 64
+34 255 64
+35 255 64
+36 255 64
+37 255 64
+38 255 64
+39 255 64
+40 255 64
+41 255 64
+42 255 64
+43 255 64
+44 255 64
+45 255 64
+46 255 64
+47 255 64
+48 255 64
+49 255 64
+50 255 64
+51 255 64
+52 255 64
+53 255 64
+54 255 64
+55 255 64
+56 255 64
+57 255 64
+58 255 64
+59 255 64
+60 255 64
+61 255 64
+62 255 64
+63 255 64
+64 255 64
+65 255 64
+66 255 64
+67 255 64
+68 255 64
+69 255 64
+70 255 64
+71 255 64
+72 255 64
+73 255 64
+74 255 64
+75 255 64
+76 255 64
+77 255 64
+78 255 64
+79 255 64
+80 255 64
+81 255 64
+82 255 64
+83 255 64
+84 255 64
+85 255 64
+86 255 64
+87 255 64
+88 255 64
+89 255 64
+90 255 64
+91 255 64
+92 255 64
+93 255 64
+94 255 64
+95 255 64
+96 255 64
+97 255 64
+98 255 64
+99 255 64
+100 255 64
+101 255 64
+102 255 64
+103 255 64
+104 255 64
+105 255 64
+106 255 64
+107 255 64
+108 255 64
+109 255 64
+110 255 64
+111 255 64
+112 255 64
+113 255 64
+114 255 64
+115 255 64
+116 255 64
+117 255 64
+118 255 64
+119 255 64
+120 255 64
+121 255 64
+122 255 64
+123 255 64
+124 255 64
+125 255 64
+126 255 64
+127 255 64
+128 255 64
+129 255 64
+130 255 64
+131 255 64
+132 255 64
+133 255 64
+134 255 64
+135 255 64
+136 255 64
+137 255 64
+138 255 64
+139 255 64
+140 255 64
+141 255 64
+142 255 64
+143 255 64
+144 255 64
+145 255 64
+146 255 64
+147 255 64
+148 255 64
+149 255 64
+150 255 64
+151 255 64
+152 255 64
+153 255 64
+154 255 64
+155 255 64
+156 255 64
+157 255 64
+158 255 64
+159 255 64
+160 255 64
+161 255 64
+162 255 64
+163 255 64
+164 255 64
+165 255 64
+166 255 64
+167 255 64
+168 255 64
+169 255 64
+170 255 64
+171 255 64
+172 255 64
+173 255 64
+174 255 64
+175 255 64
+176 255 64
+177 255 64
+178 255 64
+179 255 64
+180 255 64
+181 255 64
+182 255 64
+183 255 64
+184 255 64
+185 255 64
+186 255 64
+187 255 64
+188 255 64
+189 255 64
+190 255 64
+191 255 64
+192 255 64
+193 255 64
+194 255 64
+195 255 64
+196 255 64
+197 255 64
+198 255 64
+199 255 64
+200 255 64
+201 255 64
+202 255 64
+203 255 64
+204 255 64
+205 255 64
+206 255 64
+207 255 64
+208 255 64
+209 255 64
+210 255 64
+211 255 64
+212 255 64
+213 255 64
+214 255 64
+215 255 64
+216 255 64
+217 255 64
+218 255 64
+219 255 64
+220 255 64
+221 255 64
+222 255 64
+223 255 64
+224 255 64
+225 255 64
+226 255 64
+227 255 64
+228 255 64
+229 255 64
+230 255 64
+231 255 64
+232 255 64
+233 255 64
+234 255 64
+235 255 64
+236 255 64
+237 255 64
+238 255 64
+239 255 64
+240 255 64
+241 255 64
+242 255 64
+243 255 64
+244 255 64
+245 255 64
+246 255 64
+247 255 64
+248 255 64
+249 255 64
+250 255 64
+251 255 64
+252 255 64
+253 255 64
+254 255 64
+255 255 64
+0 254 64
+1 254 64
+2 254 64
+3 254 64
+4 254 64
+5 254 64
+6 254 64
+7 254 64
+8 254 64
+9 254 64
+10 254 64
+11 254 64
+12 254 64
+13 254 64
+14 254 64
+15 254 64
+16 254 64
+17 254 64
+18 254 64
+19 254 64
+20 254 64
+21 254 64
+22 254 64
+23 254 64
+24 254 64
+25 254 64
+26 254 64
+27 254 64
+28 254 64
+29 254 64
+30 254 64
+31 254 64
+32 254 64
+33 254 64
+34 254 64
+35 254 64
+36 254 64
+37 254 64
+38 254 64
+39 254 64
+40 254 64
+41 254 64
+42 254 64
+43 254 64
+44 254 64
+45 254 64
+46 254 64
+47 254 64
+48 254 64
+49 254 64
+50 254 64
+51 254 64
+52 254 64
+53 254 64
+54 254 64
+55 254 64
+56 254 64
+57 254 64
+58 254 64
+59 254 64
+60 254 64
+61 254 64
+62 254 64
+63 254 64
+64 254 64
+65 254 64
+66 254 64
+67 254 64
+68 254 64
+69 254 64
+70 254 64
+71 254 64
+72 254 64
+73 254 64
+74 254 64
+75 254 64
+76 254 64
+77 254 64
+78 254 64
+79 254 64
+80 254 64
+81 254 64
+82 254 64
+83 254 64
+84 254 64
+85 254 64
+86 254 64
+87 254 64
+88 254 64
+89 254 64
+90 254 64
+91 254 64
+92 254 64
+93 254 64
+94 254 64
+95 254 64
+96 254 64
+97 254 64
+98 254 64
+99 254 64
+100 254 64
+101 254 64
+102 254 64
+103 254 64
+104 254 64
+105 254 64
+106 254 64
+107 254 64
+108 254 64
+109 254 64
+110 254 64
+111 254 64
+112 254 64
+113 254 64
+114 254 64
+115 254 64
+116 254 64
+117 254 64
+118 254 64
+119 254 64
+120 254 64
+121 254 64
+122 254 64
+123 254 64
+124 254 64
+125 254 64
+126 254 64
+127 254 64
+128 254 64
+129 254 64
+130 254 64
+131 254 64
+132 254 64
+133 254 64
+134 254 64
+135 254 64
+136 254 64
+137 254 64
+138 254 64
+139 254 64
+140 254 64
+141 254 64
+142 254 64
+143 254 64
+144 254 64
+145 254 64
+146 254 64
+147 254 64
+148 254 64
+149 254 64
+150 254 64
+151 254 64
+152 254 64
+153 254 64
+154 254 64
+155 254 64
+156 254 64
+157 254 64
+158 254 64
+159 254 64
+160 254 64
+161 254 64
+162 254 64
+163 254 64
+164 254 64
+165 254 64
+166 254 64
+167 254 64
+168 254 64
+169 254 64
+170 254 64
+171 254 64
+172 254 64
+173 254 64
+174 254 64
+175 254 64
+176 254 64
+177 254 64
+178 254 64
+179 254 64
+180 254 64
+181 254 64
+182 254 64
+183 254 64
+184 254 64
+185 254 64
+186 254 64
+187 254 64
+188 254 64
+189 254 64
+190 254 64
+191 254 64
+192 254 64
+193 254 64
+194 254 64
+195 254 64
+196 254 64
+197 254 64
+198 254 64
+199 254 64
+200 254 64
+201 254 64
+202 254 64
+203 254 64
+204 254 64
+205 254 64
+206 254 64
+207 254 64
+208 254 64
+209 254 64
+210 254 64
+211 254 64
+212 254 64
+213 254 64
+214 254 64
+215 254 64
+216 254 64
+217 254 64
+218 254 64
+219 254 64
+220 254 64
+221 254 64
+222 254 64
+223 254 64
+224 254 64
+225 254 64
+226 254 64
+227 254 64
+228 254 64
+229 254 64
+230 254 64
+231 254 64
+232 254 64
+233 254 64
+234 254 64
+235 254 64
+236 254 64
+237 254 64
+238 254 64
+239 254 64
+240 254 64
+241 254 64
+242 254 64
+243 254 64
+244 254 64
+245 254 64
+246 254 64
+247 254 64
+248 254 64
+249 254 64
+250 254 64
+251 254 64
+252 254 64
+253 254 64
+254 254 64
+255 254 64
+0 253 64
+1 253 64
+2 253 64
+3 253 64
+4 253 64
+5 253 64
+6 253 64
+7 253 64
+8 253 64
+9 253 64
+10 253 64
+11 253 64
+12 253 64
+13 253 64
+14 253 64
+15 253 64
+16 253 64
+17 253 64
+18 253 64
+19 253 64
+20 253 64
+21 253 64
+22 253 64
+23 253 64
+24 253 64
+25 253 64
+26 253 64
+27 253 64
+28 253 64
+29 253 64
+30 253 64
+31 253 64
+32 253 64
+33 253 64
+34 253 64
+35 253 64
+36 253 64
+37 253 64
+38 253 64
+39 253 64
+40 253 64
+41 253 64
+42 253 64
+43 253 64
+44 253 64
+45 253 64
+46 253 64
+47 253 64
+48 253 64
+49 253 64
+50 253 64
+51 253 64
+52 253 64
+53 253 64
+54 253 64
+55 253 64
+56 253 64
+57 253 64
+58 253 64
+59 253 64
+60 253 64
+61 253 64
+62 253 64
+63 253 64
+64 253 64
+65 253 64
+66 253 64
+67 253 64
+68 253 64
+69 253 64
+70 253 64
+71 253 64
+72 253 64
+73 253 64
+74 253 64
+75 253 64
+76 253 64
+77 253 64
+78 253 64
+79 253 64
+80 253 64
+81 253 64
+82 253 64
+83 253 64
+84 253 64
+85 253 64
+86 253 64
+87 253 64
+88 253 64
+89 253 64
+90 253 64
+91 253 64
+92 253 64
+93 253 64
+94 253 64
+95 253 64
+96 253 64
+97 253 64
+98 253 64
+99 253 64
+100 253 64
+101 253 64
+102 253 64
+103 253 64
+104 253 64
+105 253 64
+106 253 64
+107 253 64
+108 253 64
+109 253 64
+110 253 64
+111 253 64
+112 253 64
+113 253 64
+114 253 64
+115 253 64
+116 253 64
+117 253 64
+118 253 64
+119 253 64
+120 253 64
+121 253 64
+122 253 64
+123 253 64
+124 253 64
+125 253 64
+126 253 64
+127 253 64
+128 253 64
+129 253 64
+130 253 64
+131 253 64
+132 253 64
+133 253 64
+134 253 64
+135 253 64
+136 253 64
+137 253 64
+138 253 64
+139 253 64
+140 253 64
+141 253 64
+142 253 64
+143 253 64
+144 253 64
+145 253 64
+146 253 64
+147 253 64
+148 253 64
+149 253 64
+150 253 64
+151 253 64
+152 253 64
+153 253 64
+154 253 64
+155 253 64
+156 253 64
+157 253 64
+158 253 64
+159 253 64
+160 253 64
+161 253 64
+162 253 64
+163 253 64
+164 253 64
+165 253 64
+166 253 64
+167 253 64
+168 253 64
+169 253 64
+170 253 64
+171 253 64
+172 253 64
+173 253 64
+174 253 64
+175 253 64
+176 253 64
+177 253 64
+178 253 64
+179 253 64
+180 253 64
+181 253 64
+182 253 64
+183 253 64
+184 253 64
+185 253 64
+186 253 64
+187 253 64
+188 253 64
+189 253 64
+190 253 64
+191 253 64
+192 253 64
+193 253 64
+194 253 64
+195 253 64
+196 253 64
+197 253 64
+198 253 64
+199 253 64
+200 253 64
+201 253 64
+202 253 64
+203 253 64
+204 253 64
+205 253 64
+206 253 64
+207 253 64
+208 253 64
+209 253 64
+210 253 64
+211 253 64
+212 253 64
+213 253 64
+214 253 64
+215 253 64
+216 253 64
+217 253 64
+218 253 64
+219 253 64
+220 253 64
+221 253 64
+222 253 64
+223 253 64
+224 253 64
+225 253 64
+226 253 64
+227 253 64
+228 253 64
+229 253 64
+230 253 64
+231 253 64
+232 253 64
+233 253 64
+234 253 64
+235 253 64
+236 253 64
+237 253 64
+238 253 64
+239 253 64
+240 253 64
+241 253 64
+242 253 64
+243 253 64
+244 253 64
+245 253 64
+246 253 64
+247 253 64
+248 253 64
+249 253 64
+250 253 64
+251 253 64
+252 253 64
+253 253 64
+254 253 64
+255 253 64
+0 252 64
+1 252 64
+2 252 64
+3 252 64
+4 252 64
+5 252 64
+6 252 64
+7 252 64
+8 252 64
+9 252 64
+10 252 64
+11 252 64
+12 252 64
+13 252 64
+14 252 64
+15 252 64
+16 252 64
+17 252 64
+18 252 64
+19 252 64
+20 252 64
+21 252 64
+22 252 64
+23 252 64
+24 252 64
+25 252 64
+26 252 64
+27 252 64
+28 252 64
+29 252 64
+30 252 64
+31 252 64
+32 252 64
+33 252 64
+34 252 64
+35 252 64
+36 252 64
+37 252 64
+38 252 64
+39 252 64
+40 252 64
+41 252 64
+42 252 64
+43 252 64
+44 252 64
+45 252 64
+46 252 64
+47 252 64
+48 252 64
+49 252 64
+50 252 64
+51 252 64
+52 252 64
+53 252 64
+54 252 64
+55 252 64
+56 252 64
+57 252 64
+58 252 64
+59 252 64
+60 252 64
+61 252 64
+62 252 64
+63 252 64
+64 252 64
+65 252 64
+66 252 64
+67 252 64
+68 252 64
+69 252 64
+70 252 64
+71 252 64
+72 252 64
+73 252 64
+74 252 64
+75 252 64
+76 252 64
+77 252 64
+78 252 64
+79 252 64
+80 252 64
+81 252 64
+82 252 64
+83 252 64
+84 252 64
+85 252 64
+86 252 64
+87 252 64
+88 252 64
+89 252 64
+90 252 64
+91 252 64
+92 252 64
+93 252 64
+94 252 64
+95 252 64
+96 252 64
+97 252 64
+98 252 64
+99 252 64
+100 252 64
+101 252 64
+102 252 64
+103 252 64
+104 252 64
+105 252 64
+106 252 64
+107 252 64
+108 252 64
+109 252 64
+110 252 64
+111 252 64
+112 252 64
+113 252 64
+114 252 64
+115 252 64
+116 252 64
+117 252 64
+118 252 64
+119 252 64
+120 252 64
+121 252 64
+122 252 64
+123 252 64
+124 252 64
+125 252 64
+126 252 64
+127 252 64
+128 252 64
+129 252 64
+130 252 64
+131 252 64
+132 252 64
+133 252 64
+134 252 64
+135 252 64
+136 252 64
+137 252 64
+138 252 64
+139 252 64
+140 252 64
+141 252 64
+142 252 64
+143 252 64
+144 252 64
+145 252 64
+146 252 64
+147 252 64
+148 252 64
+149 252 64
+150 252 64
+151 252 64
+152 252 64
+153 252 64
+154 252 64
+155 252 64
+156 252 64
+157 252 64
+158 252 64
+159 252 64
+160 252 64
+161 252 64
+162 252 64
+163 252 64
+164 252 64
+165 252 64
+166 252 64
+167 252 64
+168 252 64
+169 252 64
+170 252 64
+171 252 64
+172 252 64
+173 252 64
+174 252 64
+175 252 64
+176 252 64
+177 252 64
+178 252 64
+179 252 64
+180 252 64
+181 252 64
+182 252 64
+183 252 64
+184 252 64
+185 252 64
+186 252 64
+187 252 64
+188 252 64
+189 252 64
+190 252 64
+191 252 64
+192 252 64
+193 252 64
+194 252 64
+195 252 64
+196 252 64
+197 252 64
+198 252 64
+199 252 64
+200 252 64
+201 252 64
+202 252 64
+203 252 64
+204 252 64
+205 252 64
+206 252 64
+207 252 64
+208 252 64
+209 252 64
+210 252 64
+211 252 64
+212 252 64
+213 252 64
+214 252 64
+215 252 64
+216 252 64
+217 252 64
+218 252 64
+219 252 64
+220 252 64
+221 252 64
+222 252 64
+223 252 64
+224 252 64
+225 252 64
+226 252 64
+227 252 64
+228 252 64
+229 252 64
+230 252 64
+231 252 64
+232 252 64
+233 252 64
+234 252 64
+235 252 64
+236 252 64
+237 252 64
+238 252 64
+239 252 64
+240 252 64
+241 252 64
+242 252 64
+243 252 64
+244 252 64
+245 252 64
+246 252 64
+247 252 64
+248 252 64
+249 252 64
+250 252 64
+251 252 64
+252 252 64
+253 252 64
+254 252 64
+255 252 64
+0 251 64
+1 251 64
+2 251 64
+3 251 64
+4 251 64
+5 251 64
+6 251 64
+7 251 64
+8 251 64
+9 251 64
+10 251 64
+11 251 64
+12 251 64
+13 251 64
+14 251 64
+15 251 64
+16 251 64
+17 251 64
+18 251 64
+19 251 64
+20 251 64
+21 251 64
+22 251 64
+23 251 64
+24 251 64
+25 251 64
+26 251 64
+27 251 64
+28 251 64
+29 251 64
+30 251 64
+31 251 64
+32 251 64
+33 251 64
+34 251 64
+35 251 64
+36 251 64
+37 251 64
+38 251 64
+39 251 64
+40 251 64
+41 251 64
+42 251 64
+43 251 64
+44 251 64
+45 251 64
+46 251 64
+47 251 64
+48 251 64
+49 251 64
+50 251 64
+51 251 64
+52 251 64
+53 251 64
+54 251 64
+55 251 64
+56 251 64
+57 251 64
+58 251 64
+59 251 64
+60 251 64
+61 251 64
+62 251 64
+63 251 64
+64 251 64
+65 251 64
+66 251 64
+67 251 64
+68 251 64
+69 251 64
+70 251 64
+71 251 64
+72 251 64
+73 251 64
+74 251 64
+75 251 64
+76 251 64
+77 251 64
+78 251 64
+79 251 64
+80 251 64
+81 251 64
+82 251 64
+83 251 64
+84 251 64
+85 251 64
+86 251 64
+87 251 64
+88 251 64
+89 251 64
+90 251 64
+91 251 64
+92 251 64
+93 251 64
+94 251 64
+95 251 64
+96 251 64
+97 251 64
+98 251 64
+99 251 64
+100 251 64
+101 251 64
+102 251 64
+103 251 64
+104 251 64
+105 251 64
+106 251 64
+107 251 64
+108 251 64
+109 251 64
+110 251 64
+111 251 64
+112 251 64
+113 251 64
+114 251 64
+115 251 64
+116 251 64
+117 251 64
+118 251 64
+119 251 64
+120 251 64
+121 251 64
+122 251 64
+123 251 64
+124 251 64
+125 251 64
+126 251 64
+127 251 64
+128 251 64
+129 251 64
+130 251 64
+131 251 64
+132 251 64
+133 251 64
+134 251 64
+135 251 64
+136 251 64
+137 251 64
+138 251 64
+139 251 64
+140 251 64
+141 251 64
+142 251 64
+143 251 64
+144 251 64
+145 251 64
+146 251 64
+147 251 64
+148 251 64
+149 251 64
+150 251 64
+151 251 64
+152 251 64
+153 251 64
+154 251 64
+155 251 64
+156 251 64
+157 251 64
+158 251 64
+159 251 64
+160 251 64
+161 251 64
+162 251 64
+163 251 64
+164 251 64
+165 251 64
+166 251 64
+167 251 64
+168 251 64
+169 251 64
+170 251 64
+171 251 64
+172 251 64
+173 251 64
+174 251 64
+175 251 64
+176 251 64
+177 251 64
+178 251 64
+179 251 64
+180 251 64
+181 251 64
+182 251 64
+183 251 64
+184 251 64
+185 251 64
+186 251 64
+187 251 64
+188 251 64
+189 251 64
+190 251 64
+191 251 64
+192 251 64
+193 251 64
+194 251 64
+195 251 64
+196 251 64
+197 251 64
+198 251 64
+199 251 64
+200 251 64
+201 251 64
+202 251 64
+203 251 64
+204 251 64
+205 251 64
+206 251 64
+207 251 64
+208 251 64
+209 251 64
+210 251 64
+211 251 64
+212 251 64
+213 251 64
+214 251 64
+215 251 64
+216 251 64
+217 251 64
+218 251 64
+219 251 64
+220 251 64
+221 251 64
+222 251 64
+223 251 64
+224 251 64
+225 251 64
+226 251 64
+227 251 64
+228 251 64
+229 251 64
+230 251 64
+231 251 64
+232 251 64
+233 251 64
+234 251 64
+235 251 64
+236 251 64
+237 251 64
+238 251 64
+239 251 64
+240 251 64
+241 251 64
+242 251 64
+243 251 64
+244 251 64
+245 251 64
+246 251 64
+247 251 64
+248 251 64
+249 251 64
+250 251 64
+251 251 64
+252 251 64
+253 251 64
+254 251 64
+255 251 64
+0 250 64
+1 250 64
+2 250 64
+3 250 64
+4 250 64
+5 250 64
+6 250 64
+7 250 64
+8 250 64
+9 250 64
+10 250 64
+11 250 64
+12 250 64
+13 250 64
+14 250 64
+15 250 64
+16 250 64
+17 250 64
+18 250 64
+19 250 64
+20 250 64
+21 250 64
+22 250 64
+23 250 64
+24 250 64
+25 250 64
+26 250 64
+27 250 64
+28 250 64
+29 250 64
+30 250 64
+31 250 64
+32 250 64
+33 250 64
+34 250 64
+35 250 64
+36 250 64
+37 250 64
+38 250 64
+39 250 64
+40 250 64
+41 250 64
+42 250 64
+43 250 64
+44 250 64
+45 250 64
+46 250 64
+47 250 64
+48 250 64
+49 250 64
+50 250 64
+51 250 64
+52 250 64
+53 250 64
+54 250 64
+55 250 64
+56 250 64
+57 250 64
+58 250 64
+59 250 64
+60 250 64
+61 250 64
+62 250 64
+63 250 64
+64 250 64
+65 250 64
+66 250 64
+67 250 64
+68 250 64
+69 250 64
+70 250 64
+71 250 64
+72 250 64
+73 250 64
+74 250 64
+75 250 64
+76 250 64
+77 250 64
+78 250 64
+79 250 64
+80 250 64
+81 250 64
+82 250 64
+83 250 64
+84 250 64
+85 250 64
+86 250 64
+87 250 64
+88 250 64
+89 250 64
+90 250 64
+91 250 64
+92 250 64
+93 250 64
+94 250 64
+95 250 64
+96 250 64
+97 250 64
+98 250 64
+99 250 64
+100 250 64
+101 250 64
+102 250 64
+103 250 64
+104 250 64
+105 250 64
+106 250 64
+107 250 64
+108 250 64
+109 250 64
+110 250 64
+111 250 64
+112 250 64
+113 250 64
+114 250 64
+115 250 64
+116 250 64
+117 250 64
+118 250 64
+119 250 64
+120 250 64
+121 250 64
+122 250 64
+123 250 64
+124 250 64
+125 250 64
+126 250 64
+127 250 64
+128 250 64
+129 250 64
+130 250 64
+131 250 64
+132 250 64
+133 250 64
+134 250 64
+135 250 64
+136 250 64
+137 250 64
+138 250 64
+139 250 64
+140 250 64
+141 250 64
+142 250 64
+143 250 64
+144 250 64
+145 250 64
+146 250 64
+147 250 64
+148 250 64
+149 250 64
+150 250 64
+151 250 64
+152 250 64
+153 250 64
+154 250 64
+155 250 64
+156 250 64
+157 250 64
+158 250 64
+159 250 64
+160 250 64
+161 250 64
+162 250 64
+163 250 64
+164 250 64
+165 250 64
+166 250 64
+167 250 64
+168 250 64
+169 250 64
+170 250 64
+171 250 64
+172 250 64
+173 250 64
+174 250 64
+175 250 64
+176 250 64
+177 250 64
+178 250 64
+179 250 64
+180 250 64
+181 250 64
+182 250 64
+183 250 64
+184 250 64
+185 250 64
+186 250 64
+187 250 64
+188 250 64
+189 250 64
+190 250 64
+191 250 64
+192 250 64
+193 250 64
+194 250 64
+195 250 64
+196 250 64
+197 250 64
+198 250 64
+199 250 64
+200 250 64
+201 250 64
+202 250 64
+203 250 64
+204 250 64
+205 250 64
+206 250 64
+207 250 64
+208 250 64
+209 250 64
+210 250 64
+211 250 64
+212 250 64
+213 250 64
+214 250 64
+215 250 64
+216 250 64
+217 250 64
+218 250 64
+219 250 64
+220 250 64
+221 250 64
+222 250 64
+223 250 64
+224 250 64
+225 250 64
+226 250 64
+227 250 64
+228 250 64
+229 250 64
+230 250 64
+231 250 64
+232 250 64
+233 250 64
+234 250 64
+235 250 64
+236 250 64
+237 250 64
+238 250 64
+239 250 64
+240 250 64
+241 250 64
+242 250 64
+243 250 64
+244 250 64
+245 250 64
+246 250 64
+247 250 64
+248 250 64
+249 250 64
+250 250 64
+251 250 64
+252 250 64
+253 250 64
+254 250 64
+255 250 64
+0 249 64
+1 249 64
+2 249 64
+3 249 64
+4 249 64
+5 249 64
+6 249 64
+7 249 64
+8 249 64
+9 249 64
+10 249 64
+11 249 64
+12 249 64
+13 249 64
+14 249 64
+15 249 64
+16 249 64
+17 249 64
+18 249 64
+19 249 64
+20 249 64
+21 249 64
+22 249 64
+23 249 64
+24 249 64
+25 249 64
+26 249 64
+27 249 64
+28 249 64
+29 249 64
+30 249 64
+31 249 64
+32 249 64
+33 249 64
+34 249 64
+35 249 64
+36 249 64
+37 249 64
+38 249 64
+39 249 64
+40 249 64
+41 249 64
+42 249 64
+43 249 64
+44 249 64
+45 249 64
+46 249 64
+47 249 64
+48 249 64
+49 249 64
+50 249 64
+51 249 64
+52 249 64
+53 249 64
+54 249 64
+55 249 64
+56 249 64
+57 249 64
+58 249 64
+59 249 64
+60 249 64
+61 249 64
+62 249 64
+63 249 64
+64 249 64
+65 249 64
+66 249 64
+67 249 64
+68 249 64
+69 249 64
+70 249 64
+71 249 64
+72 249 64
+73 249 64
+74 249 64
+75 249 64
+76 249 64
+77 249 64
+78 249 64
+79 249 64
+80 249 64
+81 249 64
+82 249 64
+83 249 64
+84 249 64
+85 249 64
+86 249 64
+87 249 64
+88 249 64
+89 249 64
+90 249 64
+91 249 64
+92 249 64
+93 249 64
+94 249 64
+95 249 64
+96 249 64
+97 249 64
+98 249 64
+99 249 64
+100 249 64
+101 249 64
+102 249 64
+103 249 64
+104 249 64
+105 249 64
+106 249 64
+107 249 64
+108 249 64
+109 249 64
+110 249 64
+111 249 64
+112 249 64
+113 249 64
+114 249 64
+115 249 64
+116 249 64
+117 249 64
+118 249 64
+119 249 64
+120 249 64
+121 249 64
+122 249 64
+123 249 64
+124 249 64
+125 249 64
+126 249 64
+127 249 64
+128 249 64
+129 249 64
+130 249 64
+131 249 64
+132 249 64
+133 249 64
+134 249 64
+135 249 64
+136 249 64
+137 249 64
+138 249 64
+139 249 64
+140 249 64
+141 249 64
+142 249 64
+143 249 64
+144 249 64
+145 249 64
+146 249 64
+147 249 64
+148 249 64
+149 249 64
+150 249 64
+151 249 64
+152 249 64
+153 249 64
+154 249 64
+155 249 64
+156 249 64
+157 249 64
+158 249 64
+159 249 64
+160 249 64
+161 249 64
+162 249 64
+163 249 64
+164 249 64
+165 249 64
+166 249 64
+167 249 64
+168 249 64
+169 249 64
+170 249 64
+171 249 64
+172 249 64
+173 249 64
+174 249 64
+175 249 64
+176 249 64
+177 249 64
+178 249 64
+179 249 64
+180 249 64
+181 249 64
+182 249 64
+183 249 64
+184 249 64
+185 249 64
+186 249 64
+187 249 64
+188 249 64
+189 249 64
+190 249 64
+191 249 64
+192 249 64
+193 249 64
+194 249 64
+195 249 64
+196 249 64
+197 249 64
+198 249 64
+199 249 64
+200 249 64
+201 249 64
+202 249 64
+203 249 64
+204 249 64
+205 249 64
+206 249 64
+207 249 64
+208 249 64
+209 249 64
+210 249 64
+211 249 64
+212 249 64
+213 249 64
+214 249 64
+215 249 64
+216 249 64
+217 249 64
+218 249 64
+219 249 64
+220 249 64
+221 249 64
+222 249 64
+223 249 64
+224 249 64
+225 249 64
+226 249 64
+227 249 64
+228 249 64
+229 249 64
+230 249 64
+231 249 64
+232 249 64
+233 249 64
+234 249 64
+235 249 64
+236 249 64
+237 249 64
+238 249 64
+239 249 64
+240 249 64
+241 249 64
+242 249 64
+243 249 64
+244 249 64
+245 249 64
+246 249 64
+247 249 64
+248 249 64
+249 249 64
+250 249 64
+251 249 64
+252 249 64
+253 249 64
+254 249 64
+255 249 64
+0 248 64
+1 248 64
+2 248 64
+3 248 64
+4 248 64
+5 248 64
+6 248 64
+7 248 64
+8 248 64
+9 248 64
+10 248 64
+11 248 64
+12 248 64
+13 248 64
+14 248 64
+15 248 64
+16 248 64
+17 248 64
+18 248 64
+19 248 64
+20 248 64
+21 248 64
+22 248 64
+23 248 64
+24 248 64
+25 248 64
+26 248 64
+27 248 64
+28 248 64
+29 248 64
+30 248 64
+31 248 64
+32 248 64
+33 248 64
+34 248 64
+35 248 64
+36 248 64
+37 248 64
+38 248 64
+39 248 64
+40 248 64
+41 248 64
+42 248 64
+43 248 64
+44 248 64
+45 248 64
+46 248 64
+47 248 64
+48 248 64
+49 248 64
+50 248 64
+51 248 64
+52 248 64
+53 248 64
+54 248 64
+55 248 64
+56 248 64
+57 248 64
+58 248 64
+59 248 64
+60 248 64
+61 248 64
+62 248 64
+63 248 64
+64 248 64
+65 248 64
+66 248 64
+67 248 64
+68 248 64
+69 248 64
+70 248 64
+71 248 64
+72 248 64
+73 248 64
+74 248 64
+75 248 64
+76 248 64
+77 248 64
+78 248 64
+79 248 64
+80 248 64
+81 248 64
+82 248 64
+83 248 64
+84 248 64
+85 248 64
+86 248 64
+87 248 64
+88 248 64
+89 248 64
+90 248 64
+91 248 64
+92 248 64
+93 248 64
+94 248 64
+95 248 64
+96 248 64
+97 248 64
+98 248 64
+99 248 64
+100 248 64
+101 248 64
+102 248 64
+103 248 64
+104 248 64
+105 248 64
+106 248 64
+107 248 64
+108 248 64
+109 248 64
+110 248 64
+111 248 64
+112 248 64
+113 248 64
+114 248 64
+115 248 64
+116 248 64
+117 248 64
+118 248 64
+119 248 64
+120 248 64
+121 248 64
+122 248 64
+123 248 64
+124 248 64
+125 248 64
+126 248 64
+127 248 64
+128 248 64
+129 248 64
+130 248 64
+131 248 64
+132 248 64
+133 248 64
+134 248 64
+135 248 64
+136 248 64
+137 248 64
+138 248 64
+139 248 64
+140 248 64
+141 248 64
+142 248 64
+143 248 64
+144 248 64
+145 248 64
+146 248 64
+147 248 64
+148 248 64
+149 248 64
+150 248 64
+151 248 64
+152 248 64
+153 248 64
+154 248 64
+155 248 64
+156 248 64
+157 248 64
+158 248 64
+159 248 64
+160 248 64
+161 248 64
+162 248 64
+163 248 64
+164 248 64
+165 248 64
+166 248 64
+167 248 64
+168 248 64
+169 248 64
+170 248 64
+171 248 64
+172 248 64
+173 248 64
+174 248 64
+175 248 64
+176 248 64
+177 248 64
+178 248 64
+179 248 64
+180 248 64
+181 248 64
+182 248 64
+183 248 64
+184 248 64
+185 248 64
+186 248 64
+187 248 64
+188 248 64
+189 248 64
+190 248 64
+191 248 64
+192 248 64
+193 248 64
+194 248 64
+195 248 64
+196 248 64
+197 248 64
+198 248 64
+199 248 64
+200 248 64
+201 248 64
+202 248 64
+203 248 64
+204 248 64
+205 248 64
+206 248 64
+207 248 64
+208 248 64
+209 248 64
+210 248 64
+211 248 64
+212 248 64
+213 248 64
+214 248 64
+215 248 64
+216 248 64
+217 248 64
+218 248 64
+219 248 64
+220 248 64
+221 248 64
+222 248 64
+223 248 64
+224 248 64
+225 248 64
+226 248 64
+227 248 64
+228 248 64
+229 248 64
+230 248 64
+231 248 64
+232 248 64
+233 248 64
+234 248 64
+235 248 64
+236 248 64
+237 248 64
+238 248 64
+239 248 64
+240 248 64
+241 248 64
+242 248 64
+243 248 64
+244 248 64
+245 248 64
+246 248 64
+247 248 64
+248 248 64
+249 248 64
+250 248 64
+251 248 64
+252 248 64
+253 248 64
+254 248 64
+255 248 64
+0 247 64
+1 247 64
+2 247 64
+3 247 64
+4 247 64
+5 247 64
+6 247 64
+7 247 64
+8 247 64
+9 247 64
+10 247 64
+11 247 64
+12 247 64
+13 247 64
+14 247 64
+15 247 64
+16 247 64
+17 247 64
+18 247 64
+19 247 64
+20 247 64
+21 247 64
+22 247 64
+23 247 64
+24 247 64
+25 247 64
+26 247 64
+27 247 64
+28 247 64
+29 247 64
+30 247 64
+31 247 64
+32 247 64
+33 247 64
+34 247 64
+35 247 64
+36 247 64
+37 247 64
+38 247 64
+39 247 64
+40 247 64
+41 247 64
+42 247 64
+43 247 64
+44 247 64
+45 247 64
+46 247 64
+47 247 64
+48 247 64
+49 247 64
+50 247 64
+51 247 64
+52 247 64
+53 247 64
+54 247 64
+55 247 64
+56 247 64
+57 247 64
+58 247 64
+59 247 64
+60 247 64
+61 247 64
+62 247 64
+63 247 64
+64 247 64
+65 247 64
+66 247 64
+67 247 64
+68 247 64
+69 247 64
+70 247 64
+71 247 64
+72 247 64
+73 247 64
+74 247 64
+75 247 64
+76 247 64
+77 247 64
+78 247 64
+79 247 64
+80 247 64
+81 247 64
+82 247 64
+83 247 64
+84 247 64
+85 247 64
+86 247 64
+87 247 64
+88 247 64
+89 247 64
+90 247 64
+91 247 64
+92 247 64
+93 247 64
+94 247 64
+95 247 64
+96 247 64
+97 247 64
+98 247 64
+99 247 64
+100 247 64
+101 247 64
+102 247 64
+103 247 64
+104 247 64
+105 247 64
+106 247 64
+107 247 64
+108 247 64
+109 247 64
+110 247 64
+111 247 64
+112 247 64
+113 247 64
+114 247 64
+115 247 64
+116 247 64
+117 247 64
+118 247 64
+119 247 64
+120 247 64
+121 247 64
+122 247 64
+123 247 64
+124 247 64
+125 247 64
+126 247 64
+127 247 64
+128 247 64
+129 247 64
+130 247 64
+131 247 64
+132 247 64
+133 247 64
+134 247 64
+135 247 64
+136 247 64
+137 247 64
+138 247 64
+139 247 64
+140 247 64
+141 247 64
+142 247 64
+143 247 64
+144 247 64
+145 247 64
+146 247 64
+147 247 64
+148 247 64
+149 247 64
+150 247 64
+151 247 64
+152 247 64
+153 247 64
+154 247 64
+155 247 64
+156 247 64
+157 247 64
+158 247 64
+159 247 64
+160 247 64
+161 247 64
+162 247 64
+163 247 64
+164 247 64
+165 247 64
+166 247 64
+167 247 64
+168 247 64
+169 247 64
+170 247 64
+171 247 64
+172 247 64
+173 247 64
+174 247 64
+175 247 64
+176 247 64
+177 247 64
+178 247 64
+179 247 64
+180 247 64
+181 247 64
+182 247 64
+183 247 64
+184 247 64
+185 247 64
+186 247 64
+187 247 64
+188 247 64
+189 247 64
+190 247 64
+191 247 64
+192 247 64
+193 247 64
+194 247 64
+195 247 64
+196 247 64
+197 247 64
+198 247 64
+199 247 64
+200 247 64
+201 247 64
+202 247 64
+203 247 64
+204 247 64
+205 247 64
+206 247 64
+207 247 64
+208 247 64
+209 247 64
+210 247 64
+211 247 64
+212 247 64
+213 247 64
+214 247 64
+215 247 64
+216 247 64
+217 247 64
+218 247 64
+219 247 64
+220 247 64
+221 247 64
+222 247 64
+223 247 64
+224 247 64
+225 247 64
+226 247 64
+227 247 64
+228 247 64
+229 247 64
+230 247 64
+231 247 64
+232 247 64
+233 247 64
+234 247 64
+235 247 64
+236 247 64
+237 247 64
+238 247 64
+239 247 64
+240 247 64
+241 247 64
+242 247 64
+243 247 64
+244 247 64
+245 247 64
+246 247 64
+247 247 64
+248 247 64
+249 247 64
+250 247 64
+251 247 64
+252 247 64
+253 247 64
+254 247 64
+255 247 64
+0 246 64
+1 246 64
+2 246 64
+3 246 64
+4 246 64
+5 246 64
+6 246 64
+7 246 64
+8 246 64
+9 246 64
+10 246 64
+11 246 64
+12 246 64
+13 246 64
+14 246 64
+15 246 64
+16 246 64
+17 246 64
+18 246 64
+19 246 64
+20 246 64
+21 246 64
+22 246 64
+23 246 64
+24 246 64
+25 246 64
+26 246 64
+27 246 64
+28 246 64
+29 246 64
+30 246 64
+31 246 64
+32 246 64
+33 246 64
+34 246 64
+35 246 64
+36 246 64
+37 246 64
+38 246 64
+39 246 64
+40 246 64
+41 246 64
+42 246 64
+43 246 64
+44 246 64
+45 246 64
+46 246 64
+47 246 64
+48 246 64
+49 246 64
+50 246 64
+51 246 64
+52 246 64
+53 246 64
+54 246 64
+55 246 64
+56 246 64
+57 246 64
+58 246 64
+59 246 64
+60 246 64
+61 246 64
+62 246 64
+63 246 64
+64 246 64
+65 246 64
+66 246 64
+67 246 64
+68 246 64
+69 246 64
+70 246 64
+71 246 64
+72 246 64
+73 246 64
+74 246 64
+75 246 64
+76 246 64
+77 246 64
+78 246 64
+79 246 64
+80 246 64
+81 246 64
+82 246 64
+83 246 64
+84 246 64
+85 246 64
+86 246 64
+87 246 64
+88 246 64
+89 246 64
+90 246 64
+91 246 64
+92 246 64
+93 246 64
+94 246 64
+95 246 64
+96 246 64
+97 246 64
+98 246 64
+99 246 64
+100 246 64
+101 246 64
+102 246 64
+103 246 64
+104 246 64
+105 246 64
+106 246 64
+107 246 64
+108 246 64
+109 246 64
+110 246 64
+111 246 64
+112 246 64
+113 246 64
+114 246 64
+115 246 64
+116 246 64
+117 246 64
+118 246 64
+119 246 64
+120 246 64
+121 246 64
+122 246 64
+123 246 64
+124 246 64
+125 246 64
+126 246 64
+127 246 64
+128 246 64
+129 246 64
+130 246 64
+131 246 64
+132 246 64
+133 246 64
+134 246 64
+135 246 64
+136 246 64
+137 246 64
+138 246 64
+139 246 64
+140 246 64
+141 246 64
+142 246 64
+143 246 64
+144 246 64
+145 246 64
+146 246 64
+147 246 64
+148 246 64
+149 246 64
+150 246 64
+151 246 64
+152 246 64
+153 246 64
+154 246 64
+155 246 64
+156 246 64
+157 246 64
+158 246 64
+159 246 64
+160 246 64
+161 246 64
+162 246 64
+163 246 64
+164 246 64
+165 246 64
+166 246 64
+167 246 64
+168 246 64
+169 246 64
+170 246 64
+171 246 64
+172 246 64
+173 246 64
+174 246 64
+175 246 64
+176 246 64
+177 246 64
+178 246 64
+179 246 64
+180 246 64
+181 246 64
+182 246 64
+183 246 64
+184 246 64
+185 246 64
+186 246 64
+187 246 64
+188 246 64
+189 246 64
+190 246 64
+191 246 64
+192 246 64
+193 246 64
+194 246 64
+195 246 64
+196 246 64
+197 246 64
+198 246 64
+199 246 64
+200 246 64
+201 246 64
+202 246 64
+203 246 64
+204 246 64
+205 246 64
+206 246 64
+207 246 64
+208 246 64
+209 246 64
+210 246 64
+211 246 64
+212 246 64
+213 246 64
+214 246 64
+215 246 64
+216 246 64
+217 246 64
+218 246 64
+219 246 64
+220 246 64
+221 246 64
+222 246 64
+223 246 64
+224 246 64
+225 246 64
+226 246 64
+227 246 64
+228 246 64
+229 246 64
+230 246 64
+231 246 64
+232 246 64
+233 246 64
+234 246 64
+235 246 64
+236 246 64
+237 246 64
+238 246 64
+239 246 64
+240 246 64
+241 246 64
+242 246 64
+243 246 64
+244 246 64
+245 246 64
+246 246 64
+247 246 64
+248 246 64
+249 246 64
+250 246 64
+251 246 64
+252 246 64
+253 246 64
+254 246 64
+255 246 64
+0 245 64
+1 245 64
+2 245 64
+3 245 64
+4 245 64
+5 245 64
+6 245 64
+7 245 64
+8 245 64
+9 245 64
+10 245 64
+11 245 64
+12 245 64
+13 245 64
+14 245 64
+15 245 64
+16 245 64
+17 245 64
+18 245 64
+19 245 64
+20 245 64
+21 245 64
+22 245 64
+23 245 64
+24 245 64
+25 245 64
+26 245 64
+27 245 64
+28 245 64
+29 245 64
+30 245 64
+31 245 64
+32 245 64
+33 245 64
+34 245 64
+35 245 64
+36 245 64
+37 245 64
+38 245 64
+39 245 64
+40 245 64
+41 245 64
+42 245 64
+43 245 64
+44 245 64
+45 245 64
+46 245 64
+47 245 64
+48 245 64
+49 245 64
+50 245 64
+51 245 64
+52 245 64
+53 245 64
+54 245 64
+55 245 64
+56 245 64
+57 245 64
+58 245 64
+59 245 64
+60 245 64
+61 245 64
+62 245 64
+63 245 64
+64 245 64
+65 245 64
+66 245 64
+67 245 64
+68 245 64
+69 245 64
+70 245 64
+71 245 64
+72 245 64
+73 245 64
+74 245 64
+75 245 64
+76 245 64
+77 245 64
+78 245 64
+79 245 64
+80 245 64
+81 245 64
+82 245 64
+83 245 64
+84 245 64
+85 245 64
+86 245 64
+87 245 64
+88 245 64
+89 245 64
+90 245 64
+91 245 64
+92 245 64
+93 245 64
+94 245 64
+95 245 64
+96 245 64
+97 245 64
+98 245 64
+99 245 64
+100 245 64
+101 245 64
+102 245 64
+103 245 64
+104 245 64
+105 245 64
+106 245 64
+107 245 64
+108 245 64
+109 245 64
+110 245 64
+111 245 64
+112 245 64
+113 245 64
+114 245 64
+115 245 64
+116 245 64
+117 245 64
+118 245 64
+119 245 64
+120 245 64
+121 245 64
+122 245 64
+123 245 64
+124 245 64
+125 245 64
+126 245 64
+127 245 64
+128 245 64
+129 245 64
+130 245 64
+131 245 64
+132 245 64
+133 245 64
+134 245 64
+135 245 64
+136 245 64
+137 245 64
+138 245 64
+139 245 64
+140 245 64
+141 245 64
+142 245 64
+143 245 64
+144 245 64
+145 245 64
+146 245 64
+147 245 64
+148 245 64
+149 245 64
+150 245 64
+151 245 64
+152 245 64
+153 245 64
+154 245 64
+155 245 64
+156 245 64
+157 245 64
+158 245 64
+159 245 64
+160 245 64
+161 245 64
+162 245 64
+163 245 64
+164 245 64
+165 245 64
+166 245 64
+167 245 64
+168 245 64
+169 245 64
+170 245 64
+171 245 64
+172 245 64
+173 245 64
+174 245 64
+175 245 64
+176 245 64
+177 245 64
+178 245 64
+179 245 64
+180 245 64
+181 245 64
+182 245 64
+183 245 64
+184 245 64
+185 245 64
+186 245 64
+187 245 64
+188 245 64
+189 245 64
+190 245 64
+191 245 64
+192 245 64
+193 245 64
+194 245 64
+195 245 64
+196 245 64
+197 245 64
+198 245 64
+199 245 64
+200 245 64
+201 245 64
+202 245 64
+203 245 64
+204 245 64
+205 245 64
+206 245 64
+207 245 64
+208 245 64
+209 245 64
+210 245 64
+211 245 64
+212 245 64
+213 245 64
+214 245 64
+215 245 64
+216 245 64
+217 245 64
+218 245 64
+219 245 64
+220 245 64
+221 245 64
+222 245 64
+223 245 64
+224 245 64
+225 245 64
+226 245 64
+227 245 64
+228 245 64
+229 245 64
+230 245 64
+231 245 64
+232 245 64
+233 245 64
+234 245 64
+235 245 64
+236 245 64
+237 245 64
+238 245 64
+239 245 64
+240 245 64
+241 245 64
+242 245 64
+243 245 64
+244 245 64
+245 245 64
+246 245 64
+247 245 64
+248 245 64
+249 245 64
+250 245 64
+251 245 64
+252 245 64
+253 245 64
+254 245 64
+255 245 64
+0 244 64
+1 244 64
+2 244 64
+3 244 64
+4 244 64
+5 244 64
+6 244 64
+7 244 64
+8 244 64
+9 244 64
+10 244 64
+11 244 64
+12 244 64
+13 244 64
+14 244 64
+15 244 64
+16 244 64
+17 244 64
+18 244 64
+19 244 64
+20 244 64
+21 244 64
+22 244 64
+23 244 64
+24 244 64
+25 244 64
+26 244 64
+27 244 64
+28 244 64
+29 244 64
+30 244 64
+31 244 64
+32 244 64
+33 244 64
+34 244 64
+35 244 64
+36 244 64
+37 244 64
+38 244 64
+39 244 64
+40 244 64
+41 244 64
+42 244 64
+43 244 64
+44 244 64
+45 244 64
+46 244 64
+47 244 64
+48 244 64
+49 244 64
+50 244 64
+51 244 64
+52 244 64
+53 244 64
+54 244 64
+55 244 64
+56 244 64
+57 244 64
+58 244 64
+59 244 64
+60 244 64
+61 244 64
+62 244 64
+63 244 64
+64 244 64
+65 244 64
+66 244 64
+67 244 64
+68 244 64
+69 244 64
+70 244 64
+71 244 64
+72 244 64
+73 244 64
+74 244 64
+75 244 64
+76 244 64
+77 244 64
+78 244 64
+79 244 64
+80 244 64
+81 244 64
+82 244 64
+83 244 64
+84 244 64
+85 244 64
+86 244 64
+87 244 64
+88 244 64
+89 244 64
+90 244 64
+91 244 64
+92 244 64
+93 244 64
+94 244 64
+95 244 64
+96 244 64
+97 244 64
+98 244 64
+99 244 64
+100 244 64
+101 244 64
+102 244 64
+103 244 64
+104 244 64
+105 244 64
+106 244 64
+107 244 64
+108 244 64
+109 244 64
+110 244 64
+111 244 64
+112 244 64
+113 244 64
+114 244 64
+115 244 64
+116 244 64
+117 244 64
+118 244 64
+119 244 64
+120 244 64
+121 244 64
+122 244 64
+123 244 64
+124 244 64
+125 244 64
+126 244 64
+127 244 64
+128 244 64
+129 244 64
+130 244 64
+131 244 64
+132 244 64
+133 244 64
+134 244 64
+135 244 64
+136 244 64
+137 244 64
+138 244 64
+139 244 64
+140 244 64
+141 244 64
+142 244 64
+143 244 64
+144 244 64
+145 244 64
+146 244 64
+147 244 64
+148 244 64
+149 244 64
+150 244 64
+151 244 64
+152 244 64
+153 244 64
+154 244 64
+155 244 64
+156 244 64
+157 244 64
+158 244 64
+159 244 64
+160 244 64
+161 244 64
+162 244 64
+163 244 64
+164 244 64
+165 244 64
+166 244 64
+167 244 64
+168 244 64
+169 244 64
+170 244 64
+171 244 64
+172 244 64
+173 244 64
+174 244 64
+175 244 64
+176 244 64
+177 244 64
+178 244 64
+179 244 64
+180 244 64
+181 244 64
+182 244 64
+183 244 64
+184 244 64
+185 244 64
+186 244 64
+187 244 64
+188 244 64
+189 244 64
+190 244 64
+191 244 64
+192 244 64
+193 244 64
+194 244 64
+195 244 64
+196 244 64
+197 244 64
+198 244 64
+199 244 64
+200 244 64
+201 244 64
+202 244 64
+203 244 64
+204 244 64
+205 244 64
+206 244 64
+207 244 64
+208 244 64
+209 244 64
+210 244 64
+211 244 64
+212 244 64
+213 244 64
+214 244 64
+215 244 64
+216 244 64
+217 244 64
+218 244 64
+219 244 64
+220 244 64
+221 244 64
+222 244 64
+223 244 64
+224 244 64
+225 244 64
+226 244 64
+227 244 64
+228 244 64
+229 244 64
+230 244 64
+231 244 64
+232 244 64
+233 244 64
+234 244 64
+235 244 64
+236 244 64
+237 244 64
+238 244 64
+239 244 64
+240 244 64
+241 244 64
+242 244 64
+243 244 64
+244 244 64
+245 244 64
+246 244 64
+247 244 64
+248 244 64
+249 244 64
+250 244 64
+251 244 64
+252 244 64
+253 244 64
+254 244 64
+255 244 64
+0 243 64
+1 243 64
+2 243 64
+3 243 64
+4 243 64
+5 243 64
+6 243 64
+7 243 64
+8 243 64
+9 243 64
+10 243 64
+11 243 64
+12 243 64
+13 243 64
+14 243 64
+15 243 64
+16 243 64
+17 243 64
+18 243 64
+19 243 64
+20 243 64
+21 243 64
+22 243 64
+23 243 64
+24 243 64
+25 243 64
+26 243 64
+27 243 64
+28 243 64
+29 243 64
+30 243 64
+31 243 64
+32 243 64
+33 243 64
+34 243 64
+35 243 64
+36 243 64
+37 243 64
+38 243 64
+39 243 64
+40 243 64
+41 243 64
+42 243 64
+43 243 64
+44 243 64
+45 243 64
+46 243 64
+47 243 64
+48 243 64
+49 243 64
+50 243 64
+51 243 64
+52 243 64
+53 243 64
+54 243 64
+55 243 64
+56 243 64
+57 243 64
+58 243 64
+59 243 64
+60 243 64
+61 243 64
+62 243 64
+63 243 64
+64 243 64
+65 243 64
+66 243 64
+67 243 64
+68 243 64
+69 243 64
+70 243 64
+71 243 64
+72 243 64
+73 243 64
+74 243 64
+75 243 64
+76 243 64
+77 243 64
+78 243 64
+79 243 64
+80 243 64
+81 243 64
+82 243 64
+83 243 64
+84 243 64
+85 243 64
+86 243 64
+87 243 64
+88 243 64
+89 243 64
+90 243 64
+91 243 64
+92 243 64
+93 243 64
+94 243 64
+95 243 64
+96 243 64
+97 243 64
+98 243 64
+99 243 64
+100 243 64
+101 243 64
+102 243 64
+103 243 64
+104 243 64
+105 243 64
+106 243 64
+107 243 64
+108 243 64
+109 243 64
+110 243 64
+111 243 64
+112 243 64
+113 243 64
+114 243 64
+115 243 64
+116 243 64
+117 243 64
+118 243 64
+119 243 64
+120 243 64
+121 243 64
+122 243 64
+123 243 64
+124 243 64
+125 243 64
+126 243 64
+127 243 64
+128 243 64
+129 243 64
+130 243 64
+131 243 64
+132 243 64
+133 243 64
+134 243 64
+135 243 64
+136 243 64
+137 243 64
+138 243 64
+139 243 64
+140 243 64
+141 243 64
+142 243 64
+143 243 64
+144 243 64
+145 243 64
+146 243 64
+147 243 64
+148 243 64
+149 243 64
+150 243 64
+151 243 64
+152 243 64
+153 243 64
+154 243 64
+155 243 64
+156 243 64
+157 243 64
+158 243 64
+159 243 64
+160 243 64
+161 243 64
+162 243 64
+163 243 64
+164 243 64
+165 243 64
+166 243 64
+167 243 64
+168 243 64
+169 243 64
+170 243 64
+171 243 64
+172 243 64
+173 243 64
+174 243 64
+175 243 64
+176 243 64
+177 243 64
+178 243 64
+179 243 64
+180 243 64
+181 243 64
+182 243 64
+183 243 64
+184 243 64
+185 243 64
+186 243 64
+187 243 64
+188 243 64
+189 243 64
+190 243 64
+191 243 64
+192 243 64
+193 243 64
+194 243 64
+195 243 64
+196 243 64
+197 243 64
+198 243 64
+199 243 64
+200 243 64
+201 243 64
+202 243 64
+203 243 64
+204 243 64
+205 243 64
+206 243 64
+207 243 64
+208 243 64
+209 243 64
+210 243 64
+211 243 64
+212 243 64
+213 243 64
+214 243 64
+215 243 64
+216 243 64
+217 243 64
+218 243 64
+219 243 64
+220 243 64
+221 243 64
+222 243 64
+223 243 64
+224 243 64
+225 243 64
+226 243 64
+227 243 64
+228 243 64
+229 243 64
+230 243 64
+231 243 64
+232 243 64
+233 243 64
+234 243 64
+235 243 64
+236 243 64
+237 243 64
+238 243 64
+239 243 64
+240 243 64
+241 243 64
+242 243 64
+243 243 64
+244 243 64
+245 243 64
+246 243 64
+247 243 64
+248 243 64
+249 243 64
+250 243 64
+251 243 64
+252 243 64
+253 243 64
+254 243 64
+255 243 64
+0 242 64
+1 242 64
+2 242 64
+3 242 64
+4 242 64
+5 242 64
+6 242 64
+7 242 64
+8 242 64
+9 242 64
+10 242 64
+11 242 64
+12 242 64
+13 242 64
+14 242 64
+15 242 64
+16 242 64
+17 242 64
+18 242 64
+19 242 64
+20 242 64
+21 242 64
+22 242 64
+23 242 64
+24 242 64
+25 242 64
+26 242 64
+27 242 64
+28 242 64
+29 242 64
+30 242 64
+31 242 64
+32 242 64
+33 242 64
+34 242 64
+35 242 64
+36 242 64
+37 242 64
+38 242 64
+39 242 64
+40 242 64
+41 242 64
+42 242 64
+43 242 64
+44 242 64
+45 242 64
+46 242 64
+47 242 64
+48 242 64
+49 242 64
+50 242 64
+51 242 64
+52 242 64
+53 242 64
+54 242 64
+55 242 64
+56 242 64
+57 242 64
+58 242 64
+59 242 64
+60 242 64
+61 242 64
+62 242 64
+63 242 64
+64 242 64
+65 242 64
+66 242 64
+67 242 64
+68 242 64
+69 242 64
+70 242 64
+71 242 64
+72 242 64
+73 242 64
+74 242 64
+75 242 64
+76 242 64
+77 242 64
+78 242 64
+79 242 64
+80 242 64
+81 242 64
+82 242 64
+83 242 64
+84 242 64
+85 242 64
+86 242 64
+87 242 64
+88 242 64
+89 242 64
+90 242 64
+91 242 64
+92 242 64
+93 242 64
+94 242 64
+95 242 64
+96 242 64
+97 242 64
+98 242 64
+99 242 64
+100 242 64
+101 242 64
+102 242 64
+103 242 64
+104 242 64
+105 242 64
+106 242 64
+107 242 64
+108 242 64
+109 242 64
+110 242 64
+111 242 64
+112 242 64
+113 242 64
+114 242 64
+115 242 64
+116 242 64
+117 242 64
+118 242 64
+119 242 64
+120 242 64
+121 242 64
+122 242 64
+123 242 64
+124 242 64
+125 242 64
+126 242 64
+127 242 64
+128 242 64
+129 242 64
+130 242 64
+131 242 64
+132 242 64
+133 242 64
+134 242 64
+135 242 64
+136 242 64
+137 242 64
+138 242 64
+139 242 64
+140 242 64
+141 242 64
+142 242 64
+143 242 64
+144 242 64
+145 242 64
+146 242 64
+147 242 64
+148 242 64
+149 242 64
+150 242 64
+151 242 64
+152 242 64
+153 242 64
+154 242 64
+155 242 64
+156 242 64
+157 242 64
+158 242 64
+159 242 64
+160 242 64
+161 242 64
+162 242 64
+163 242 64
+164 242 64
+165 242 64
+166 242 64
+167 242 64
+168 242 64
+169 242 64
+170 242 64
+171 242 64
+172 242 64
+173 242 64
+174 242 64
+175 242 64
+176 242 64
+177 242 64
+178 242 64
+179 242 64
+180 242 64
+181 242 64
+182 242 64
+183 242 64
+184 242 64
+185 242 64
+186 242 64
+187 242 64
+188 242 64
+189 242 64
+190 242 64
+191 242 64
+192 242 64
+193 242 64
+194 242 64
+195 242 64
+196 242 64
+197 242 64
+198 242 64
+199 242 64
+200 242 64
+201 242 64
+202 242 64
+203 242 64
+204 242 64
+205 242 64
+206 242 64
+207 242 64
+208 242 64
+209 242 64
+210 242 64
+211 242 64
+212 242 64
+213 242 64
+214 242 64
+215 242 64
+216 242 64
+217 242 64
+218 242 64
+219 242 64
+220 242 64
+221 242 64
+222 242 64
+223 242 64
+224 242 64
+225 242 64
+226 242 64
+227 242 64
+228 242 64
+229 242 64
+230 242 64
+231 242 64
+232 242 64
+233 242 64
+234 242 64
+235 242 64
+236 242 64
+237 242 64
+238 242 64
+239 242 64
+240 242 64
+241 242 64
+242 242 64
+243 242 64
+244 242 64
+245 242 64
+246 242 64
+247 242 64
+248 242 64
+249 242 64
+250 242 64
+251 242 64
+252 242 64
+253 242 64
+254 242 64
+255 242 64
+0 241 64
+1 241 64
+2 241 64
+3 241 64
+4 241 64
+5 241 64
+6 241 64
+7 241 64
+8 241 64
+9 241 64
+10 241 64
+11 241 64
+12 241 64
+13 241 64
+14 241 64
+15 241 64
+16 241 64
+17 241 64
+18 241 64
+19 241 64
+20 241 64
+21 241 64
+22 241 64
+23 241 64
+24 241 64
+25 241 64
+26 241 64
+27 241 64
+28 241 64
+29 241 64
+30 241 64
+31 241 64
+32 241 64
+33 241 64
+34 241 64
+35 241 64
+36 241 64
+37 241 64
+38 241 64
+39 241 64
+40 241 64
+41 241 64
+42 241 64
+43 241 64
+44 241 64
+45 241 64
+46 241 64
+47 241 64
+48 241 64
+49 241 64
+50 241 64
+51 241 64
+52 241 64
+53 241 64
+54 241 64
+55 241 64
+56 241 64
+57 241 64
+58 241 64
+59 241 64
+60 241 64
+61 241 64
+62 241 64
+63 241 64
+64 241 64
+65 241 64
+66 241 64
+67 241 64
+68 241 64
+69 241 64
+70 241 64
+71 241 64
+72 241 64
+73 241 64
+74 241 64
+75 241 64
+76 241 64
+77 241 64
+78 241 64
+79 241 64
+80 241 64
+81 241 64
+82 241 64
+83 241 64
+84 241 64
+85 241 64
+86 241 64
+87 241 64
+88 241 64
+89 241 64
+90 241 64
+91 241 64
+92 241 64
+93 241 64
+94 241 64
+95 241 64
+96 241 64
+97 241 64
+98 241 64
+99 241 64
+100 241 64
+101 241 64
+102 241 64
+103 241 64
+104 241 64
+105 241 64
+106 241 64
+107 241 64
+108 241 64
+109 241 64
+110 241 64
+111 241 64
+112 241 64
+113 241 64
+114 241 64
+115 241 64
+116 241 64
+117 241 64
+118 241 64
+119 241 64
+120 241 64
+121 241 64
+122 241 64
+123 241 64
+124 241 64
+125 241 64
+126 241 64
+127 241 64
+128 241 64
+129 241 64
+130 241 64
+131 241 64
+132 241 64
+133 241 64
+134 241 64
+135 241 64
+136 241 64
+137 241 64
+138 241 64
+139 241 64
+140 241 64
+141 241 64
+142 241 64
+143 241 64
+144 241 64
+145 241 64
+146 241 64
+147 241 64
+148 241 64
+149 241 64
+150 241 64
+151 241 64
+152 241 64
+153 241 64
+154 241 64
+155 241 64
+156 241 64
+157 241 64
+158 241 64
+159 241 64
+160 241 64
+161 241 64
+162 241 64
+163 241 64
+164 241 64
+165 241 64
+166 241 64
+167 241 64
+168 241 64
+169 241 64
+170 241 64
+171 241 64
+172 241 64
+173 241 64
+174 241 64
+175 241 64
+176 241 64
+177 241 64
+178 241 64
+179 241 64
+180 241 64
+181 241 64
+182 241 64
+183 241 64
+184 241 64
+185 241 64
+186 241 64
+187 241 64
+188 241 64
+189 241 64
+190 241 64
+191 241 64
+192 241 64
+193 241 64
+194 241 64
+195 241 64
+196 241 64
+197 241 64
+198 241 64
+199 241 64
+200 241 64
+201 241 64
+202 241 64
+203 241 64
+204 241 64
+205 241 64
+206 241 64
+207 241 64
+208 241 64
+209 241 64
+210 241 64
+211 241 64
+212 241 64
+213 241 64
+214 241 64
+215 241 64
+216 241 64
+217 241 64
+218 241 64
+219 241 64
+220 241 64
+221 241 64
+222 241 64
+223 241 64
+224 241 64
+225 241 64
+226 241 64
+227 241 64
+228 241 64
+229 241 64
+230 241 64
+231 241 64
+232 241 64
+233 241 64
+234 241 64
+235 241 64
+236 241 64
+237 241 64
+238 241 64
+239 241 64
+240 241 64
+241 241 64
+242 241 64
+243 241 64
+244 241 64
+245 241 64
+246 241 64
+247 241 64
+248 241 64
+249 241 64
+250 241 64
+251 241 64
+252 241 64
+253 241 64
+254 241 64
+255 241 64
+0 240 64
+1 240 64
+2 240 64
+3 240 64
+4 240 64
+5 240 64
+6 240 64
+7 240 64
+8 240 64
+9 240 64
+10 240 64
+11 240 64
+12 240 64
+13 240 64
+14 240 64
+15 240 64
+16 240 64
+17 240 64
+18 240 64
+19 240 64
+20 240 64
+21 240 64
+22 240 64
+23 240 64
+24 240 64
+25 240 64
+26 240 64
+27 240 64
+28 240 64
+29 240 64
+30 240 64
+31 240 64
+32 240 64
+33 240 64
+34 240 64
+35 240 64
+36 240 64
+37 240 64
+38 240 64
+39 240 64
+40 240 64
+41 240 64
+42 240 64
+43 240 64
+44 240 64
+45 240 64
+46 240 64
+47 240 64
+48 240 64
+49 240 64
+50 240 64
+51 240 64
+52 240 64
+53 240 64
+54 240 64
+55 240 64
+56 240 64
+57 240 64
+58 240 64
+59 240 64
+60 240 64
+61 240 64
+62 240 64
+63 240 64
+64 240 64
+65 240 64
+66 240 64
+67 240 64
+68 240 64
+69 240 64
+70 240 64
+71 240 64
+72 240 64
+73 240 64
+74 240 64
+75 240 64
+76 240 64
+77 240 64
+78 240 64
+79 240 64
+80 240 64
+81 240 64
+82 240 64
+83 240 64
+84 240 64
+85 240 64
+86 240 64
+87 240 64
+88 240 64
+89 240 64
+90 240 64
+91 240 64
+92 240 64
+93 240 64
+94 240 64
+95 240 64
+96 240 64
+97 240 64
+98 240 64
+99 240 64
+100 240 64
+101 240 64
+102 240 64
+103 240 64
+104 240 64
+105 240 64
+106 240 64
+107 240 64
+108 240 64
+109 240 64
+110 240 64
+111 240 64
+112 240 64
+113 240 64
+114 240 64
+115 240 64
+116 240 64
+117 240 64
+118 240 64
+119 240 64
+120 240 64
+121 240 64
+122 240 64
+123 240 64
+124 240 64
+125 240 64
+126 240 64
+127 240 64
+128 240 64
+129 240 64
+130 240 64
+131 240 64
+132 240 64
+133 240 64
+134 240 64
+135 240 64
+136 240 64
+137 240 64
+138 240 64
+139 240 64
+140 240 64
+141 240 64
+142 240 64
+143 240 64
+144 240 64
+145 240 64
+146 240 64
+147 240 64
+148 240 64
+149 240 64
+150 240 64
+151 240 64
+152 240 64
+153 240 64
+154 240 64
+155 240 64
+156 240 64
+157 240 64
+158 240 64
+159 240 64
+160 240 64
+161 240 64
+162 240 64
+163 240 64
+164 240 64
+165 240 64
+166 240 64
+167 240 64
+168 240 64
+169 240 64
+170 240 64
+171 240 64
+172 240 64
+173 240 64
+174 240 64
+175 240 64
+176 240 64
+177 240 64
+178 240 64
+179 240 64
+180 240 64
+181 240 64
+182 240 64
+183 240 64
+184 240 64
+185 240 64
+186 240 64
+187 240 64
+188 240 64
+189 240 64
+190 240 64
+191 240 64
+192 240 64
+193 240 64
+194 240 64
+195 240 64
+196 240 64
+197 240 64
+198 240 64
+199 240 64
+200 240 64
+201 240 64
+202 240 64
+203 240 64
+204 240 64
+205 240 64
+206 240 64
+207 240 64
+208 240 64
+209 240 64
+210 240 64
+211 240 64
+212 240 64
+213 240 64
+214 240 64
+215 240 64
+216 240 64
+217 240 64
+218 240 64
+219 240 64
+220 240 64
+221 240 64
+222 240 64
+223 240 64
+224 240 64
+225 240 64
+226 240 64
+227 240 64
+228 240 64
+229 240 64
+230 240 64
+231 240 64
+232 240 64
+233 240 64
+234 240 64
+235 240 64
+236 240 64
+237 240 64
+238 240 64
+239 240 64
+240 240 64
+241 240 64
+242 240 64
+243 240 64
+244 240 64
+245 240 64
+246 240 64
+247 240 64
+248 240 64
+249 240 64
+250 240 64
+251 240 64
+252 240 64
+253 240 64
+254 240 64
+255 240 64
+0 239 64
+1 239 64
+2 239 64
+3 239 64
+4 239 64
+5 239 64
+6 239 64
+7 239 64
+8 239 64
+9 239 64
+10 239 64
+11 239 64
+12 239 64
+13 239 64
+14 239 64
+15 239 64
+16 239 64
+17 239 64
+18 239 64
+19 239 64
+20 239 64
+21 239 64
+22 239 64
+23 239 64
+24 239 64
+25 239 64
+26 239 64
+27 239 64
+28 239 64
+29 239 64
+30 239 64
+31 239 64
+32 239 64
+33 239 64
+34 239 64
+35 239 64
+36 239 64
+37 239 64
+38 239 64
+39 239 64
+40 239 64
+41 239 64
+42 239 64
+43 239 64
+44 239 64
+45 239 64
+46 239 64
+47 239 64
+48 239 64
+49 239 64
+50 239 64
+51 239 64
+52 239 64
+53 239 64
+54 239 64
+55 239 64
+56 239 64
+57 239 64
+58 239 64
+59 239 64
+60 239 64
+61 239 64
+62 239 64
+63 239 64
+64 239 64
+65 239 64
+66 239 64
+67 239 64
+68 239 64
+69 239 64
+70 239 64
+71 239 64
+72 239 64
+73 239 64
+74 239 64
+75 239 64
+76 239 64
+77 239 64
+78 239 64
+79 239 64
+80 239 64
+81 239 64
+82 239 64
+83 239 64
+84 239 64
+85 239 64
+86 239 64
+87 239 64
+88 239 64
+89 239 64
+90 239 64
+91 239 64
+92 239 64
+93 239 64
+94 239 64
+95 239 64
+96 239 64
+97 239 64
+98 239 64
+99 239 64
+100 239 64
+101 239 64
+102 239 64
+103 239 64
+104 239 64
+105 239 64
+106 239 64
+107 239 64
+108 239 64
+109 239 64
+110 239 64
+111 239 64
+112 239 64
+113 239 64
+114 239 64
+115 239 64
+116 239 64
+117 239 64
+118 239 64
+119 239 64
+120 239 64
+121 239 64
+122 239 64
+123 239 64
+124 239 64
+125 239 64
+126 239 64
+127 239 64
+128 239 64
+129 239 64
+130 239 64
+131 239 64
+132 239 64
+133 239 64
+134 239 64
+135 239 64
+136 239 64
+137 239 64
+138 239 64
+139 239 64
+140 239 64
+141 239 64
+142 239 64
+143 239 64
+144 239 64
+145 239 64
+146 239 64
+147 239 64
+148 239 64
+149 239 64
+150 239 64
+151 239 64
+152 239 64
+153 239 64
+154 239 64
+155 239 64
+156 239 64
+157 239 64
+158 239 64
+159 239 64
+160 239 64
+161 239 64
+162 239 64
+163 239 64
+164 239 64
+165 239 64
+166 239 64
+167 239 64
+168 239 64
+169 239 64
+170 239 64
+171 239 64
+172 239 64
+173 239 64
+174 239 64
+175 239 64
+176 239 64
+177 239 64
+178 239 64
+179 239 64
+180 239 64
+181 239 64
+182 239 64
+183 239 64
+184 239 64
+185 239 64
+186 239 64
+187 239 64
+188 239 64
+189 239 64
+190 239 64
+191 239 64
+192 239 64
+193 239 64
+194 239 64
+195 239 64
+196 239 64
+197 239 64
+198 239 64
+199 239 64
+200 239 64
+201 239 64
+202 239 64
+203 239 64
+204 239 64
+205 239 64
+206 239 64
+207 239 64
+208 239 64
+209 239 64
+210 239 64
+211 239 64
+212 239 64
+213 239 64
+214 239 64
+215 239 64
+216 239 64
+217 239 64
+218 239 64
+219 239 64
+220 239 64
+221 239 64
+222 239 64
+223 239 64
+224 239 64
+225 239 64
+226 239 64
+227 239 64
+228 239 64
+229 239 64
+230 239 64
+231 239 64
+232 239 64
+233 239 64
+234 239 64
+235 239 64
+236 239 64
+237 239 64
+238 239 64
+239 239 64
+240 239 64
+241 239 64
+242 239 64
+243 239 64
+244 239 64
+245 239 64
+246 239 64
+247 239 64
+248 239 64
+249 239 64
+250 239 64
+251 239 64
+252 239 64
+253 239 64
+254 239 64
+255 239 64
+0 238 64
+1 238 64
+2 238 64
+3 238 64
+4 238 64
+5 238 64
+6 238 64
+7 238 64
+8 238 64
+9 238 64
+10 238 64
+11 238 64
+12 238 64
+13 238 64
+14 238 64
+15 238 64
+16 238 64
+17 238 64
+18 238 64
+19 238 64
+20 238 64
+21 238 64
+22 238 64
+23 238 64
+24 238 64
+25 238 64
+26 238 64
+27 238 64
+28 238 64
+29 238 64
+30 238 64
+31 238 64
+32 238 64
+33 238 64
+34 238 64
+35 238 64
+36 238 64
+37 238 64
+38 238 64
+39 238 64
+40 238 64
+41 238 64
+42 238 64
+43 238 64
+44 238 64
+45 238 64
+46 238 64
+47 238 64
+48 238 64
+49 238 64
+50 238 64
+51 238 64
+52 238 64
+53 238 64
+54 238 64
+55 238 64
+56 238 64
+57 238 64
+58 238 64
+59 238 64
+60 238 64
+61 238 64
+62 238 64
+63 238 64
+64 238 64
+65 238 64
+66 238 64
+67 238 64
+68 238 64
+69 238 64
+70 238 64
+71 238 64
+72 238 64
+73 238 64
+74 238 64
+75 238 64
+76 238 64
+77 238 64
+78 238 64
+79 238 64
+80 238 64
+81 238 64
+82 238 64
+83 238 64
+84 238 64
+85 238 64
+86 238 64
+87 238 64
+88 238 64
+89 238 64
+90 238 64
+91 238 64
+92 238 64
+93 238 64
+94 238 64
+95 238 64
+96 238 64
+97 238 64
+98 238 64
+99 238 64
+100 238 64
+101 238 64
+102 238 64
+103 238 64
+104 238 64
+105 238 64
+106 238 64
+107 238 64
+108 238 64
+109 238 64
+110 238 64
+111 238 64
+112 238 64
+113 238 64
+114 238 64
+115 238 64
+116 238 64
+117 238 64
+118 238 64
+119 238 64
+120 238 64
+121 238 64
+122 238 64
+123 238 64
+124 238 64
+125 238 64
+126 238 64
+127 238 64
+128 238 64
+129 238 64
+130 238 64
+131 238 64
+132 238 64
+133 238 64
+134 238 64
+135 238 64
+136 238 64
+137 238 64
+138 238 64
+139 238 64
+140 238 64
+141 238 64
+142 238 64
+143 238 64
+144 238 64
+145 238 64
+146 238 64
+147 238 64
+148 238 64
+149 238 64
+150 238 64
+151 238 64
+152 238 64
+153 238 64
+154 238 64
+155 238 64
+156 238 64
+157 238 64
+158 238 64
+159 238 64
+160 238 64
+161 238 64
+162 238 64
+163 238 64
+164 238 64
+165 238 64
+166 238 64
+167 238 64
+168 238 64
+169 238 64
+170 238 64
+171 238 64
+172 238 64
+173 238 64
+174 238 64
+175 238 64
+176 238 64
+177 238 64
+178 238 64
+179 238 64
+180 238 64
+181 238 64
+182 238 64
+183 238 64
+184 238 64
+185 238 64
+186 238 64
+187 238 64
+188 238 64
+189 238 64
+190 238 64
+191 238 64
+192 238 64
+193 238 64
+194 238 64
+195 238 64
+196 238 64
+197 238 64
+198 238 64
+199 238 64
+200 238 64
+201 238 64
+202 238 64
+203 238 64
+204 238 64
+205 238 64
+206 238 64
+207 238 64
+208 238 64
+209 238 64
+210 238 64
+211 238 64
+212 238 64
+213 238 64
+214 238 64
+215 238 64
+216 238 64
+217 238 64
+218 238 64
+219 238 64
+220 238 64
+221 238 64
+222 238 64
+223 238 64
+224 238 64
+225 238 64
+226 238 64
+227 238 64
+228 238 64
+229 238 64
+230 238 64
+231 238 64
+232 238 64
+233 238 64
+234 238 64
+235 238 64
+236 238 64
+237 238 64
+238 238 64
+239 238 64
+240 238 64
+241 238 64
+242 238 64
+243 238 64
+244 238 64
+245 238 64
+246 238 64
+247 238 64
+248 238 64
+249 238 64
+250 238 64
+251 238 64
+252 238 64
+253 238 64
+254 238 64
+255 238 64
+0 237 64
+1 237 64
+2 237 64
+3 237 64
+4 237 64
+5 237 64
+6 237 64
+7 237 64
+8 237 64
+9 237 64
+10 237 64
+11 237 64
+12 237 64
+13 237 64
+14 237 64
+15 237 64
+16 237 64
+17 237 64
+18 237 64
+19 237 64
+20 237 64
+21 237 64
+22 237 64
+23 237 64
+24 237 64
+25 237 64
+26 237 64
+27 237 64
+28 237 64
+29 237 64
+30 237 64
+31 237 64
+32 237 64
+33 237 64
+34 237 64
+35 237 64
+36 237 64
+37 237 64
+38 237 64
+39 237 64
+40 237 64
+41 237 64
+42 237 64
+43 237 64
+44 237 64
+45 237 64
+46 237 64
+47 237 64
+48 237 64
+49 237 64
+50 237 64
+51 237 64
+52 237 64
+53 237 64
+54 237 64
+55 237 64
+56 237 64
+57 237 64
+58 237 64
+59 237 64
+60 237 64
+61 237 64
+62 237 64
+63 237 64
+64 237 64
+65 237 64
+66 237 64
+67 237 64
+68 237 64
+69 237 64
+70 237 64
+71 237 64
+72 237 64
+73 237 64
+74 237 64
+75 237 64
+76 237 64
+77 237 64
+78 237 64
+79 237 64
+80 237 64
+81 237 64
+82 237 64
+83 237 64
+84 237 64
+85 237 64
+86 237 64
+87 237 64
+88 237 64
+89 237 64
+90 237 64
+91 237 64
+92 237 64
+93 237 64
+94 237 64
+95 237 64
+96 237 64
+97 237 64
+98 237 64
+99 237 64
+100 237 64
+101 237 64
+102 237 64
+103 237 64
+104 237 64
+105 237 64
+106 237 64
+107 237 64
+108 237 64
+109 237 64
+110 237 64
+111 237 64
+112 237 64
+113 237 64
+114 237 64
+115 237 64
+116 237 64
+117 237 64
+118 237 64
+119 237 64
+120 237 64
+121 237 64
+122 237 64
+123 237 64
+124 237 64
+125 237 64
+126 237 64
+127 237 64
+128 237 64
+129 237 64
+130 237 64
+131 237 64
+132 237 64
+133 237 64
+134 237 64
+135 237 64
+136 237 64
+137 237 64
+138 237 64
+139 237 64
+140 237 64
+141 237 64
+142 237 64
+143 237 64
+144 237 64
+145 237 64
+146 237 64
+147 237 64
+148 237 64
+149 237 64
+150 237 64
+151 237 64
+152 237 64
+153 237 64
+154 237 64
+155 237 64
+156 237 64
+157 237 64
+158 237 64
+159 237 64
+160 237 64
+161 237 64
+162 237 64
+163 237 64
+164 237 64
+165 237 64
+166 237 64
+167 237 64
+168 237 64
+169 237 64
+170 237 64
+171 237 64
+172 237 64
+173 237 64
+174 237 64
+175 237 64
+176 237 64
+177 237 64
+178 237 64
+179 237 64
+180 237 64
+181 237 64
+182 237 64
+183 237 64
+184 237 64
+185 237 64
+186 237 64
+187 237 64
+188 237 64
+189 237 64
+190 237 64
+191 237 64
+192 237 64
+193 237 64
+194 237 64
+195 237 64
+196 237 64
+197 237 64
+198 237 64
+199 237 64
+200 237 64
+201 237 64
+202 237 64
+203 237 64
+204 237 64
+205 237 64
+206 237 64
+207 237 64
+208 237 64
+209 237 64
+210 237 64
+211 237 64
+212 237 64
+213 237 64
+214 237 64
+215 237 64
+216 237 64
+217 237 64
+218 237 64
+219 237 64
+220 237 64
+221 237 64
+222 237 64
+223 237 64
+224 237 64
+225 237 64
+226 237 64
+227 237 64
+228 237 64
+229 237 64
+230 237 64
+231 237 64
+232 237 64
+233 237 64
+234 237 64
+235 237 64
+236 237 64
+237 237 64
+238 237 64
+239 237 64
+240 237 64
+241 237 64
+242 237 64
+243 237 64
+244 237 64
+245 237 64
+246 237 64
+247 237 64
+248 237 64
+249 237 64
+250 237 64
+251 237 64
+252 237 64
+253 237 64
+254 237 64
+255 237 64
+0 236 64
+1 236 64
+2 236 64
+3 236 64
+4 236 64
+5 236 64
+6 236 64
+7 236 64
+8 236 64
+9 236 64
+10 236 64
+11 236 64
+12 236 64
+13 236 64
+14 236 64
+15 236 64
+16 236 64
+17 236 64
+18 236 64
+19 236 64
+20 236 64
+21 236 64
+22 236 64
+23 236 64
+24 236 64
+25 236 64
+26 236 64
+27 236 64
+28 236 64
+29 236 64
+30 236 64
+31 236 64
+32 236 64
+33 236 64
+34 236 64
+35 236 64
+36 236 64
+37 236 64
+38 236 64
+39 236 64
+40 236 64
+41 236 64
+42 236 64
+43 236 64
+44 236 64
+45 236 64
+46 236 64
+47 236 64
+48 236 64
+49 236 64
+50 236 64
+51 236 64
+52 236 64
+53 236 64
+54 236 64
+55 236 64
+56 236 64
+57 236 64
+58 236 64
+59 236 64
+60 236 64
+61 236 64
+62 236 64
+63 236 64
+64 236 64
+65 236 64
+66 236 64
+67 236 64
+68 236 64
+69 236 64
+70 236 64
+71 236 64
+72 236 64
+73 236 64
+74 236 64
+75 236 64
+76 236 64
+77 236 64
+78 236 64
+79 236 64
+80 236 64
+81 236 64
+82 236 64
+83 236 64
+84 236 64
+85 236 64
+86 236 64
+87 236 64
+88 236 64
+89 236 64
+90 236 64
+91 236 64
+92 236 64
+93 236 64
+94 236 64
+95 236 64
+96 236 64
+97 236 64
+98 236 64
+99 236 64
+100 236 64
+101 236 64
+102 236 64
+103 236 64
+104 236 64
+105 236 64
+106 236 64
+107 236 64
+108 236 64
+109 236 64
+110 236 64
+111 236 64
+112 236 64
+113 236 64
+114 236 64
+115 236 64
+116 236 64
+117 236 64
+118 236 64
+119 236 64
+120 236 64
+121 236 64
+122 236 64
+123 236 64
+124 236 64
+125 236 64
+126 236 64
+127 236 64
+128 236 64
+129 236 64
+130 236 64
+131 236 64
+132 236 64
+133 236 64
+134 236 64
+135 236 64
+136 236 64
+137 236 64
+138 236 64
+139 236 64
+140 236 64
+141 236 64
+142 236 64
+143 236 64
+144 236 64
+145 236 64
+146 236 64
+147 236 64
+148 236 64
+149 236 64
+150 236 64
+151 236 64
+152 236 64
+153 236 64
+154 236 64
+155 236 64
+156 236 64
+157 236 64
+158 236 64
+159 236 64
+160 236 64
+161 236 64
+162 236 64
+163 236 64
+164 236 64
+165 236 64
+166 236 64
+167 236 64
+168 236 64
+169 236 64
+170 236 64
+171 236 64
+172 236 64
+173 236 64
+174 236 64
+175 236 64
+176 236 64
+177 236 64
+178 236 64
+179 236 64
+180 236 64
+181 236 64
+182 236 64
+183 236 64
+184 236 64
+185 236 64
+186 236 64
+187 236 64
+188 236 64
+189 236 64
+190 236 64
+191 236 64
+192 236 64
+193 236 64
+194 236 64
+195 236 64
+196 236 64
+197 236 64
+198 236 64
+199 236 64
+200 236 64
+201 236 64
+202 236 64
+203 236 64
+204 236 64
+205 236 64
+206 236 64
+207 236 64
+208 236 64
+209 236 64
+210 236 64
+211 236 64
+212 236 64
+213 236 64
+214 236 64
+215 236 64
+216 236 64
+217 236 64
+218 236 64
+219 236 64
+220 236 64
+221 236 64
+222 236 64
+223 236 64
+224 236 64
+225 236 64
+226 236 64
+227 236 64
+228 236 64
+229 236 64
+230 236 64
+231 236 64
+232 236 64
+233 236 64
+234 236 64
+235 236 64
+236 236 64
+237 236 64
+238 236 64
+239 236 64
+240 236 64
+241 236 64
+242 236 64
+243 236 64
+244 236 64
+245 236 64
+246 236 64
+247 236 64
+248 236 64
+249 236 64
+250 236 64
+251 236 64
+252 236 64
+253 236 64
+254 236 64
+255 236 64
+0 235 64
+1 235 64
+2 235 64
+3 235 64
+4 235 64
+5 235 64
+6 235 64
+7 235 64
+8 235 64
+9 235 64
+10 235 64
+11 235 64
+12 235 64
+13 235 64
+14 235 64
+15 235 64
+16 235 64
+17 235 64
+18 235 64
+19 235 64
+20 235 64
+21 235 64
+22 235 64
+23 235 64
+24 235 64
+25 235 64
+26 235 64
+27 235 64
+28 235 64
+29 235 64
+30 235 64
+31 235 64
+32 235 64
+33 235 64
+34 235 64
+35 235 64
+36 235 64
+37 235 64
+38 235 64
+39 235 64
+40 235 64
+41 235 64
+42 235 64
+43 235 64
+44 235 64
+45 235 64
+46 235 64
+47 235 64
+48 235 64
+49 235 64
+50 235 64
+51 235 64
+52 235 64
+53 235 64
+54 235 64
+55 235 64
+56 235 64
+57 235 64
+58 235 64
+59 235 64
+60 235 64
+61 235 64
+62 235 64
+63 235 64
+64 235 64
+65 235 64
+66 235 64
+67 235 64
+68 235 64
+69 235 64
+70 235 64
+71 235 64
+72 235 64
+73 235 64
+74 235 64
+75 235 64
+76 235 64
+77 235 64
+78 235 64
+79 235 64
+80 235 64
+81 235 64
+82 235 64
+83 235 64
+84 235 64
+85 235 64
+86 235 64
+87 235 64
+88 235 64
+89 235 64
+90 235 64
+91 235 64
+92 235 64
+93 235 64
+94 235 64
+95 235 64
+96 235 64
+97 235 64
+98 235 64
+99 235 64
+100 235 64
+101 235 64
+102 235 64
+103 235 64
+104 235 64
+105 235 64
+106 235 64
+107 235 64
+108 235 64
+109 235 64
+110 235 64
+111 235 64
+112 235 64
+113 235 64
+114 235 64
+115 235 64
+116 235 64
+117 235 64
+118 235 64
+119 235 64
+120 235 64
+121 235 64
+122 235 64
+123 235 64
+124 235 64
+125 235 64
+126 235 64
+127 235 64
+128 235 64
+129 235 64
+130 235 64
+131 235 64
+132 235 64
+133 235 64
+134 235 64
+135 235 64
+136 235 64
+137 235 64
+138 235 64
+139 235 64
+140 235 64
+141 235 64
+142 235 64
+143 235 64
+144 235 64
+145 235 64
+146 235 64
+147 235 64
+148 235 64
+149 235 64
+150 235 64
+151 235 64
+152 235 64
+153 235 64
+154 235 64
+155 235 64
+156 235 64
+157 235 64
+158 235 64
+159 235 64
+160 235 64
+161 235 64
+162 235 64
+163 235 64
+164 235 64
+165 235 64
+166 235 64
+167 235 64
+168 235 64
+169 235 64
+170 235 64
+171 235 64
+172 235 64
+173 235 64
+174 235 64
+175 235 64
+176 235 64
+177 235 64
+178 235 64
+179 235 64
+180 235 64
+181 235 64
+182 235 64
+183 235 64
+184 235 64
+185 235 64
+186 235 64
+187 235 64
+188 235 64
+189 235 64
+190 235 64
+191 235 64
+192 235 64
+193 235 64
+194 235 64
+195 235 64
+196 235 64
+197 235 64
+198 235 64
+199 235 64
+200 235 64
+201 235 64
+202 235 64
+203 235 64
+204 235 64
+205 235 64
+206 235 64
+207 235 64
+208 235 64
+209 235 64
+210 235 64
+211 235 64
+212 235 64
+213 235 64
+214 235 64
+215 235 64
+216 235 64
+217 235 64
+218 235 64
+219 235 64
+220 235 64
+221 235 64
+222 235 64
+223 235 64
+224 235 64
+225 235 64
+226 235 64
+227 235 64
+228 235 64
+229 235 64
+230 235 64
+231 235 64
+232 235 64
+233 235 64
+234 235 64
+235 235 64
+236 235 64
+237 235 64
+238 235 64
+239 235 64
+240 235 64
+241 235 64
+242 235 64
+243 235 64
+244 235 64
+245 235 64
+246 235 64
+247 235 64
+248 235 64
+249 235 64
+250 235 64
+251 235 64
+252 235 64
+253 235 64
+254 235 64
+255 235 64
+0 234 64
+1 234 64
+2 234 64
+3 234 64
+4 234 64
+5 234 64
+6 234 64
+7 234 64
+8 234 64
+9 234 64
+10 234 64
+11 234 64
+12 234 64
+13 234 64
+14 234 64
+15 234 64
+16 234 64
+17 234 64
+18 234 64
+19 234 64
+20 234 64
+21 234 64
+22 234 64
+23 234 64
+24 234 64
+25 234 64
+26 234 64
+27 234 64
+28 234 64
+29 234 64
+30 234 64
+31 234 64
+32 234 64
+33 234 64
+34 234 64
+35 234 64
+36 234 64
+37 234 64
+38 234 64
+39 234 64
+40 234 64
+41 234 64
+42 234 64
+43 234 64
+44 234 64
+45 234 64
+46 234 64
+47 234 64
+48 234 64
+49 234 64
+50 234 64
+51 234 64
+52 234 64
+53 234 64
+54 234 64
+55 234 64
+56 234 64
+57 234 64
+58 234 64
+59 234 64
+60 234 64
+61 234 64
+62 234 64
+63 234 64
+64 234 64
+65 234 64
+66 234 64
+67 234 64
+68 234 64
+69 234 64
+70 234 64
+71 234 64
+72 234 64
+73 234 64
+74 234 64
+75 234 64
+76 234 64
+77 234 64
+78 234 64
+79 234 64
+80 234 64
+81 234 64
+82 234 64
+83 234 64
+84 234 64
+85 234 64
+86 234 64
+87 234 64
+88 234 64
+89 234 64
+90 234 64
+91 234 64
+92 234 64
+93 234 64
+94 234 64
+95 234 64
+96 234 64
+97 234 64
+98 234 64
+99 234 64
+100 234 64
+101 234 64
+102 234 64
+103 234 64
+104 234 64
+105 234 64
+106 234 64
+107 234 64
+108 234 64
+109 234 64
+110 234 64
+111 234 64
+112 234 64
+113 234 64
+114 234 64
+115 234 64
+116 234 64
+117 234 64
+118 234 64
+119 234 64
+120 234 64
+121 234 64
+122 234 64
+123 234 64
+124 234 64
+125 234 64
+126 234 64
+127 234 64
+128 234 64
+129 234 64
+130 234 64
+131 234 64
+132 234 64
+133 234 64
+134 234 64
+135 234 64
+136 234 64
+137 234 64
+138 234 64
+139 234 64
+140 234 64
+141 234 64
+142 234 64
+143 234 64
+144 234 64
+145 234 64
+146 234 64
+147 234 64
+148 234 64
+149 234 64
+150 234 64
+151 234 64
+152 234 64
+153 234 64
+154 234 64
+155 234 64
+156 234 64
+157 234 64
+158 234 64
+159 234 64
+160 234 64
+161 234 64
+162 234 64
+163 234 64
+164 234 64
+165 234 64
+166 234 64
+167 234 64
+168 234 64
+169 234 64
+170 234 64
+171 234 64
+172 234 64
+173 234 64
+174 234 64
+175 234 64
+176 234 64
+177 234 64
+178 234 64
+179 234 64
+180 234 64
+181 234 64
+182 234 64
+183 234 64
+184 234 64
+185 234 64
+186 234 64
+187 234 64
+188 234 64
+189 234 64
+190 234 64
+191 234 64
+192 234 64
+193 234 64
+194 234 64
+195 234 64
+196 234 64
+197 234 64
+198 234 64
+199 234 64
+200 234 64
+201 234 64
+202 234 64
+203 234 64
+204 234 64
+205 234 64
+206 234 64
+207 234 64
+208 234 64
+209 234 64
+210 234 64
+211 234 64
+212 234 64
+213 234 64
+214 234 64
+215 234 64
+216 234 64
+217 234 64
+218 234 64
+219 234 64
+220 234 64
+221 234 64
+222 234 64
+223 234 64
+224 234 64
+225 234 64
+226 234 64
+227 234 64
+228 234 64
+229 234 64
+230 234 64
+231 234 64
+232 234 64
+233 234 64
+234 234 64
+235 234 64
+236 234 64
+237 234 64
+238 234 64
+239 234 64
+240 234 64
+241 234 64
+242 234 64
+243 234 64
+244 234 64
+245 234 64
+246 234 64
+247 234 64
+248 234 64
+249 234 64
+250 234 64
+251 234 64
+252 234 64
+253 234 64
+254 234 64
+255 234 64
+0 233 64
+1 233 64
+2 233 64
+3 233 64
+4 233 64
+5 233 64
+6 233 64
+7 233 64
+8 233 64
+9 233 64
+10 233 64
+11 233 64
+12 233 64
+13 233 64
+14 233 64
+15 233 64
+16 233 64
+17 233 64
+18 233 64
+19 233 64
+20 233 64
+21 233 64
+22 233 64
+23 233 64
+24 233 64
+25 233 64
+26 233 64
+27 233 64
+28 233 64
+29 233 64
+30 233 64
+31 233 64
+32 233 64
+33 233 64
+34 233 64
+35 233 64
+36 233 64
+37 233 64
+38 233 64
+39 233 64
+40 233 64
+41 233 64
+42 233 64
+43 233 64
+44 233 64
+45 233 64
+46 233 64
+47 233 64
+48 233 64
+49 233 64
+50 233 64
+51 233 64
+52 233 64
+53 233 64
+54 233 64
+55 233 64
+56 233 64
+57 233 64
+58 233 64
+59 233 64
+60 233 64
+61 233 64
+62 233 64
+63 233 64
+64 233 64
+65 233 64
+66 233 64
+67 233 64
+68 233 64
+69 233 64
+70 233 64
+71 233 64
+72 233 64
+73 233 64
+74 233 64
+75 233 64
+76 233 64
+77 233 64
+78 233 64
+79 233 64
+80 233 64
+81 233 64
+82 233 64
+83 233 64
+84 233 64
+85 233 64
+86 233 64
+87 233 64
+88 233 64
+89 233 64
+90 233 64
+91 233 64
+92 233 64
+93 233 64
+94 233 64
+95 233 64
+96 233 64
+97 233 64
+98 233 64
+99 233 64
+100 233 64
+101 233 64
+102 233 64
+103 233 64
+104 233 64
+105 233 64
+106 233 64
+107 233 64
+108 233 64
+109 233 64
+110 233 64
+111 233 64
+112 233 64
+113 233 64
+114 233 64
+115 233 64
+116 233 64
+117 233 64
+118 233 64
+119 233 64
+120 233 64
+121 233 64
+122 233 64
+123 233 64
+124 233 64
+125 233 64
+126 233 64
+127 233 64
+128 233 64
+129 233 64
+130 233 64
+131 233 64
+132 233 64
+133 233 64
+134 233 64
+135 233 64
+136 233 64
+137 233 64
+138 233 64
+139 233 64
+140 233 64
+141 233 64
+142 233 64
+143 233 64
+144 233 64
+145 233 64
+146 233 64
+147 233 64
+148 233 64
+149 233 64
+150 233 64
+151 233 64
+152 233 64
+153 233 64
+154 233 64
+155 233 64
+156 233 64
+157 233 64
+158 233 64
+159 233 64
+160 233 64
+161 233 64
+162 233 64
+163 233 64
+164 233 64
+165 233 64
+166 233 64
+167 233 64
+168 233 64
+169 233 64
+170 233 64
+171 233 64
+172 233 64
+173 233 64
+174 233 64
+175 233 64
+176 233 64
+177 233 64
+178 233 64
+179 233 64
+180 233 64
+181 233 64
+182 233 64
+183 233 64
+184 233 64
+185 233 64
+186 233 64
+187 233 64
+188 233 64
+189 233 64
+190 233 64
+191 233 64
+192 233 64
+193 233 64
+194 233 64
+195 233 64
+196 233 64
+197 233 64
+198 233 64
+199 233 64
+200 233 64
+201 233 64
+202 233 64
+203 233 64
+204 233 64
+205 233 64
+206 233 64
+207 233 64
+208 233 64
+209 233 64
+210 233 64
+211 233 64
+212 233 64
+213 233 64
+214 233 64
+215 233 64
+216 233 64
+217 233 64
+218 233 64
+219 233 64
+220 233 64
+221 233 64
+222 233 64
+223 233 64
+224 233 64
+225 233 64
+226 233 64
+227 233 64
+228 233 64
+229 233 64
+230 233 64
+231 233 64
+232 233 64
+233 233 64
+234 233 64
+235 233 64
+236 233 64
+237 233 64
+238 233 64
+239 233 64
+240 233 64
+241 233 64
+242 233 64
+243 233 64
+244 233 64
+245 233 64
+246 233 64
+247 233 64
+248 233 64
+249 233 64
+250 233 64
+251 233 64
+252 233 64
+253 233 64
+254 233 64
+255 233 64
+0 232 64
+1 232 64
+2 232 64
+3 232 64
+4 232 64
+5 232 64
+6 232 64
+7 232 64
+8 232 64
+9 232 64
+10 232 64
+11 232 64
+12 232 64
+13 232 64
+14 232 64
+15 232 64
+16 232 64
+17 232 64
+18 232 64
+19 232 64
+20 232 64
+21 232 64
+22 232 64
+23 232 64
+24 232 64
+25 232 64
+26 232 64
+27 232 64
+28 232 64
+29 232 64
+30 232 64
+31 232 64
+32 232 64
+33 232 64
+34 232 64
+35 232 64
+36 232 64
+37 232 64
+38 232 64
+39 232 64
+40 232 64
+41 232 64
+42 232 64
+43 232 64
+44 232 64
+45 232 64
+46 232 64
+47 232 64
+48 232 64
+49 232 64
+50 232 64
+51 232 64
+52 232 64
+53 232 64
+54 232 64
+55 232 64
+56 232 64
+57 232 64
+58 232 64
+59 232 64
+60 232 64
+61 232 64
+62 232 64
+63 232 64
+64 232 64
+65 232 64
+66 232 64
+67 232 64
+68 232 64
+69 232 64
+70 232 64
+71 232 64
+72 232 64
+73 232 64
+74 232 64
+75 232 64
+76 232 64
+77 232 64
+78 232 64
+79 232 64
+80 232 64
+81 232 64
+82 232 64
+83 232 64
+84 232 64
+85 232 64
+86 232 64
+87 232 64
+88 232 64
+89 232 64
+90 232 64
+91 232 64
+92 232 64
+93 232 64
+94 232 64
+95 232 64
+96 232 64
+97 232 64
+98 232 64
+99 232 64
+100 232 64
+101 232 64
+102 232 64
+103 232 64
+104 232 64
+105 232 64
+106 232 64
+107 232 64
+108 232 64
+109 232 64
+110 232 64
+111 232 64
+112 232 64
+113 232 64
+114 232 64
+115 232 64
+116 232 64
+117 232 64
+118 232 64
+119 232 64
+120 232 64
+121 232 64
+122 232 64
+123 232 64
+124 232 64
+125 232 64
+126 232 64
+127 232 64
+128 232 64
+129 232 64
+130 232 64
+131 232 64
+132 232 64
+133 232 64
+134 232 64
+135 232 64
+136 232 64
+137 232 64
+138 232 64
+139 232 64
+140 232 64
+141 232 64
+142 232 64
+143 232 64
+144 232 64
+145 232 64
+146 232 64
+147 232 64
+148 232 64
+149 232 64
+150 232 64
+151 232 64
+152 232 64
+153 232 64
+154 232 64
+155 232 64
+156 232 64
+157 232 64
+158 232 64
+159 232 64
+160 232 64
+161 232 64
+162 232 64
+163 232 64
+164 232 64
+165 232 64
+166 232 64
+167 232 64
+168 232 64
+169 232 64
+170 232 64
+171 232 64
+172 232 64
+173 232 64
+174 232 64
+175 232 64
+176 232 64
+177 232 64
+178 232 64
+179 232 64
+180 232 64
+181 232 64
+182 232 64
+183 232 64
+184 232 64
+185 232 64
+186 232 64
+187 232 64
+188 232 64
+189 232 64
+190 232 64
+191 232 64
+192 232 64
+193 232 64
+194 232 64
+195 232 64
+196 232 64
+197 232 64
+198 232 64
+199 232 64
+200 232 64
+201 232 64
+202 232 64
+203 232 64
+204 232 64
+205 232 64
+206 232 64
+207 232 64
+208 232 64
+209 232 64
+210 232 64
+211 232 64
+212 232 64
+213 232 64
+214 232 64
+215 232 64
+216 232 64
+217 232 64
+218 232 64
+219 232 64
+220 232 64
+221 232 64
+222 232 64
+223 232 64
+224 232 64
+225 232 64
+226 232 64
+227 232 64
+228 232 64
+229 232 64
+230 232 64
+231 232 64
+232 232 64
+233 232 64
+234 232 64
+235 232 64
+236 232 64
+237 232 64
+238 232 64
+239 232 64
+240 232 64
+241 232 64
+242 232 64
+243 232 64
+244 232 64
+245 232 64
+246 232 64
+247 232 64
+248 232 64
+249 232 64
+250 232 64
+251 232 64
+252 232 64
+253 232 64
+254 232 64
+255 232 64
+0 231 64
+1 231 64
+2 231 64
+3 231 64
+4 231 64
+5 231 64
+6 231 64
+7 231 64
+8 231 64
+9 231 64
+10 231 64
+11 231 64
+12 231 64
+13 231 64
+14 231 64
+15 231 64
+16 231 64
+17 231 64
+18 231 64
+19 231 64
+20 231 64
+21 231 64
+22 231 64
+23 231 64
+24 231 64
+25 231 64
+26 231 64
+27 231 64
+28 231 64
+29 231 64
+30 231 64
+31 231 64
+32 231 64
+33 231 64
+34 231 64
+35 231 64
+36 231 64
+37 231 64
+38 231 64
+39 231 64
+40 231 64
+41 231 64
+42 231 64
+43 231 64
+44 231 64
+45 231 64
+46 231 64
+47 231 64
+48 231 64
+49 231 64
+50 231 64
+51 231 64
+52 231 64
+53 231 64
+54 231 64
+55 231 64
+56 231 64
+57 231 64
+58 231 64
+59 231 64
+60 231 64
+61 231 64
+62 231 64
+63 231 64
+64 231 64
+65 231 64
+66 231 64
+67 231 64
+68 231 64
+69 231 64
+70 231 64
+71 231 64
+72 231 64
+73 231 64
+74 231 64
+75 231 64
+76 231 64
+77 231 64
+78 231 64
+79 231 64
+80 231 64
+81 231 64
+82 231 64
+83 231 64
+84 231 64
+85 231 64
+86 231 64
+87 231 64
+88 231 64
+89 231 64
+90 231 64
+91 231 64
+92 231 64
+93 231 64
+94 231 64
+95 231 64
+96 231 64
+97 231 64
+98 231 64
+99 231 64
+100 231 64
+101 231 64
+102 231 64
+103 231 64
+104 231 64
+105 231 64
+106 231 64
+107 231 64
+108 231 64
+109 231 64
+110 231 64
+111 231 64
+112 231 64
+113 231 64
+114 231 64
+115 231 64
+116 231 64
+117 231 64
+118 231 64
+119 231 64
+120 231 64
+121 231 64
+122 231 64
+123 231 64
+124 231 64
+125 231 64
+126 231 64
+127 231 64
+128 231 64
+129 231 64
+130 231 64
+131 231 64
+132 231 64
+133 231 64
+134 231 64
+135 231 64
+136 231 64
+137 231 64
+138 231 64
+139 231 64
+140 231 64
+141 231 64
+142 231 64
+143 231 64
+144 231 64
+145 231 64
+146 231 64
+147 231 64
+148 231 64
+149 231 64
+150 231 64
+151 231 64
+152 231 64
+153 231 64
+154 231 64
+155 231 64
+156 231 64
+157 231 64
+158 231 64
+159 231 64
+160 231 64
+161 231 64
+162 231 64
+163 231 64
+164 231 64
+165 231 64
+166 231 64
+167 231 64
+168 231 64
+169 231 64
+170 231 64
+171 231 64
+172 231 64
+173 231 64
+174 231 64
+175 231 64
+176 231 64
+177 231 64
+178 231 64
+179 231 64
+180 231 64
+181 231 64
+182 231 64
+183 231 64
+184 231 64
+185 231 64
+186 231 64
+187 231 64
+188 231 64
+189 231 64
+190 231 64
+191 231 64
+192 231 64
+193 231 64
+194 231 64
+195 231 64
+196 231 64
+197 231 64
+198 231 64
+199 231 64
+200 231 64
+201 231 64
+202 231 64
+203 231 64
+204 231 64
+205 231 64
+206 231 64
+207 231 64
+208 231 64
+209 231 64
+210 231 64
+211 231 64
+212 231 64
+213 231 64
+214 231 64
+215 231 64
+216 231 64
+217 231 64
+218 231 64
+219 231 64
+220 231 64
+221 231 64
+222 231 64
+223 231 64
+224 231 64
+225 231 64
+226 231 64
+227 231 64
+228 231 64
+229 231 64
+230 231 64
+231 231 64
+232 231 64
+233 231 64
+234 231 64
+235 231 64
+236 231 64
+237 231 64
+238 231 64
+239 231 64
+240 231 64
+241 231 64
+242 231 64
+243 231 64
+244 231 64
+245 231 64
+246 231 64
+247 231 64
+248 231 64
+249 231 64
+250 231 64
+251 231 64
+252 231 64
+253 231 64
+254 231 64
+255 231 64
+0 230 64
+1 230 64
+2 230 64
+3 230 64
+4 230 64
+5 230 64
+6 230 64
+7 230 64
+8 230 64
+9 230 64
+10 230 64
+11 230 64
+12 230 64
+13 230 64
+14 230 64
+15 230 64
+16 230 64
+17 230 64
+18 230 64
+19 230 64
+20 230 64
+21 230 64
+22 230 64
+23 230 64
+24 230 64
+25 230 64
+26 230 64
+27 230 64
+28 230 64
+29 230 64
+30 230 64
+31 230 64
+32 230 64
+33 230 64
+34 230 64
+35 230 64
+36 230 64
+37 230 64
+38 230 64
+39 230 64
+40 230 64
+41 230 64
+42 230 64
+43 230 64
+44 230 64
+45 230 64
+46 230 64
+47 230 64
+48 230 64
+49 230 64
+50 230 64
+51 230 64
+52 230 64
+53 230 64
+54 230 64
+55 230 64
+56 230 64
+57 230 64
+58 230 64
+59 230 64
+60 230 64
+61 230 64
+62 230 64
+63 230 64
+64 230 64
+65 230 64
+66 230 64
+67 230 64
+68 230 64
+69 230 64
+70 230 64
+71 230 64
+72 230 64
+73 230 64
+74 230 64
+75 230 64
+76 230 64
+77 230 64
+78 230 64
+79 230 64
+80 230 64
+81 230 64
+82 230 64
+83 230 64
+84 230 64
+85 230 64
+86 230 64
+87 230 64
+88 230 64
+89 230 64
+90 230 64
+91 230 64
+92 230 64
+93 230 64
+94 230 64
+95 230 64
+96 230 64
+97 230 64
+98 230 64
+99 230 64
+100 230 64
+101 230 64
+102 230 64
+103 230 64
+104 230 64
+105 230 64
+106 230 64
+107 230 64
+108 230 64
+109 230 64
+110 230 64
+111 230 64
+112 230 64
+113 230 64
+114 230 64
+115 230 64
+116 230 64
+117 230 64
+118 230 64
+119 230 64
+120 230 64
+121 230 64
+122 230 64
+123 230 64
+124 230 64
+125 230 64
+126 230 64
+127 230 64
+128 230 64
+129 230 64
+130 230 64
+131 230 64
+132 230 64
+133 230 64
+134 230 64
+135 230 64
+136 230 64
+137 230 64
+138 230 64
+139 230 64
+140 230 64
+141 230 64
+142 230 64
+143 230 64
+144 230 64
+145 230 64
+146 230 64
+147 230 64
+148 230 64
+149 230 64
+150 230 64
+151 230 64
+152 230 64
+153 230 64
+154 230 64
+155 230 64
+156 230 64
+157 230 64
+158 230 64
+159 230 64
+160 230 64
+161 230 64
+162 230 64
+163 230 64
+164 230 64
+165 230 64
+166 230 64
+167 230 64
+168 230 64
+169 230 64
+170 230 64
+171 230 64
+172 230 64
+173 230 64
+174 230 64
+175 230 64
+176 230 64
+177 230 64
+178 230 64
+179 230 64
+180 230 64
+181 230 64
+182 230 64
+183 230 64
+184 230 64
+185 230 64
+186 230 64
+187 230 64
+188 230 64
+189 230 64
+190 230 64
+191 230 64
+192 230 64
+193 230 64
+194 230 64
+195 230 64
+196 230 64
+197 230 64
+198 230 64
+199 230 64
+200 230 64
+201 230 64
+202 230 64
+203 230 64
+204 230 64
+205 230 64
+206 230 64
+207 230 64
+208 230 64
+209 230 64
+210 230 64
+211 230 64
+212 230 64
+213 230 64
+214 230 64
+215 230 64
+216 230 64
+217 230 64
+218 230 64
+219 230 64
+220 230 64
+221 230 64
+222 230 64
+223 230 64
+224 230 64
+225 230 64
+226 230 64
+227 230 64
+228 230 64
+229 230 64
+230 230 64
+231 230 64
+232 230 64
+233 230 64
+234 230 64
+235 230 64
+236 230 64
+237 230 64
+238 230 64
+239 230 64
+240 230 64
+241 230 64
+242 230 64
+243 230 64
+244 230 64
+245 230 64
+246 230 64
+247 230 64
+248 230 64
+249 230 64
+250 230 64
+251 230 64
+252 230 64
+253 230 64
+254 230 64
+255 230 64
+0 229 64
+1 229 64
+2 229 64
+3 229 64
+4 229 64
+5 229 64
+6 229 64
+7 229 64
+8 229 64
+9 229 64
+10 229 64
+11 229 64
+12 229 64
+13 229 64
+14 229 64
+15 229 64
+16 229 64
+17 229 64
+18 229 64
+19 229 64
+20 229 64
+21 229 64
+22 229 64
+23 229 64
+24 229 64
+25 229 64
+26 229 64
+27 229 64
+28 229 64
+29 229 64
+30 229 64
+31 229 64
+32 229 64
+33 229 64
+34 229 64
+35 229 64
+36 229 64
+37 229 64
+38 229 64
+39 229 64
+40 229 64
+41 229 64
+42 229 64
+43 229 64
+44 229 64
+45 229 64
+46 229 64
+47 229 64
+48 229 64
+49 229 64
+50 229 64
+51 229 64
+52 229 64
+53 229 64
+54 229 64
+55 229 64
+56 229 64
+57 229 64
+58 229 64
+59 229 64
+60 229 64
+61 229 64
+62 229 64
+63 229 64
+64 229 64
+65 229 64
+66 229 64
+67 229 64
+68 229 64
+69 229 64
+70 229 64
+71 229 64
+72 229 64
+73 229 64
+74 229 64
+75 229 64
+76 229 64
+77 229 64
+78 229 64
+79 229 64
+80 229 64
+81 229 64
+82 229 64
+83 229 64
+84 229 64
+85 229 64
+86 229 64
+87 229 64
+88 229 64
+89 229 64
+90 229 64
+91 229 64
+92 229 64
+93 229 64
+94 229 64
+95 229 64
+96 229 64
+97 229 64
+98 229 64
+99 229 64
+100 229 64
+101 229 64
+102 229 64
+103 229 64
+104 229 64
+105 229 64
+106 229 64
+107 229 64
+108 229 64
+109 229 64
+110 229 64
+111 229 64
+112 229 64
+113 229 64
+114 229 64
+115 229 64
+116 229 64
+117 229 64
+118 229 64
+119 229 64
+120 229 64
+121 229 64
+122 229 64
+123 229 64
+124 229 64
+125 229 64
+126 229 64
+127 229 64
+128 229 64
+129 229 64
+130 229 64
+131 229 64
+132 229 64
+133 229 64
+134 229 64
+135 229 64
+136 229 64
+137 229 64
+138 229 64
+139 229 64
+140 229 64
+141 229 64
+142 229 64
+143 229 64
+144 229 64
+145 229 64
+146 229 64
+147 229 64
+148 229 64
+149 229 64
+150 229 64
+151 229 64
+152 229 64
+153 229 64
+154 229 64
+155 229 64
+156 229 64
+157 229 64
+158 229 64
+159 229 64
+160 229 64
+161 229 64
+162 229 64
+163 229 64
+164 229 64
+165 229 64
+166 229 64
+167 229 64
+168 229 64
+169 229 64
+170 229 64
+171 229 64
+172 229 64
+173 229 64
+174 229 64
+175 229 64
+176 229 64
+177 229 64
+178 229 64
+179 229 64
+180 229 64
+181 229 64
+182 229 64
+183 229 64
+184 229 64
+185 229 64
+186 229 64
+187 229 64
+188 229 64
+189 229 64
+190 229 64
+191 229 64
+192 229 64
+193 229 64
+194 229 64
+195 229 64
+196 229 64
+197 229 64
+198 229 64
+199 229 64
+200 229 64
+201 229 64
+202 229 64
+203 229 64
+204 229 64
+205 229 64
+206 229 64
+207 229 64
+208 229 64
+209 229 64
+210 229 64
+211 229 64
+212 229 64
+213 229 64
+214 229 64
+215 229 64
+216 229 64
+217 229 64
+218 229 64
+219 229 64
+220 229 64
+221 229 64
+222 229 64
+223 229 64
+224 229 64
+225 229 64
+226 229 64
+227 229 64
+228 229 64
+229 229 64
+230 229 64
+231 229 64
+232 229 64
+233 229 64
+234 229 64
+235 229 64
+236 229 64
+237 229 64
+238 229 64
+239 229 64
+240 229 64
+241 229 64
+242 229 64
+243 229 64
+244 229 64
+245 229 64
+246 229 64
+247 229 64
+248 229 64
+249 229 64
+250 229 64
+251 229 64
+252 229 64
+253 229 64
+254 229 64
+255 229 64
+0 228 64
+1 228 64
+2 228 64
+3 228 64
+4 228 64
+5 228 64
+6 228 64
+7 228 64
+8 228 64
+9 228 64
+10 228 64
+11 228 64
+12 228 64
+13 228 64
+14 228 64
+15 228 64
+16 228 64
+17 228 64
+18 228 64
+19 228 64
+20 228 64
+21 228 64
+22 228 64
+23 228 64
+24 228 64
+25 228 64
+26 228 64
+27 228 64
+28 228 64
+29 228 64
+30 228 64
+31 228 64
+32 228 64
+33 228 64
+34 228 64
+35 228 64
+36 228 64
+37 228 64
+38 228 64
+39 228 64
+40 228 64
+41 228 64
+42 228 64
+43 228 64
+44 228 64
+45 228 64
+46 228 64
+47 228 64
+48 228 64
+49 228 64
+50 228 64
+51 228 64
+52 228 64
+53 228 64
+54 228 64
+55 228 64
+56 228 64
+57 228 64
+58 228 64
+59 228 64
+60 228 64
+61 228 64
+62 228 64
+63 228 64
+64 228 64
+65 228 64
+66 228 64
+67 228 64
+68 228 64
+69 228 64
+70 228 64
+71 228 64
+72 228 64
+73 228 64
+74 228 64
+75 228 64
+76 228 64
+77 228 64
+78 228 64
+79 228 64
+80 228 64
+81 228 64
+82 228 64
+83 228 64
+84 228 64
+85 228 64
+86 228 64
+87 228 64
+88 228 64
+89 228 64
+90 228 64
+91 228 64
+92 228 64
+93 228 64
+94 228 64
+95 228 64
+96 228 64
+97 228 64
+98 228 64
+99 228 64
+100 228 64
+101 228 64
+102 228 64
+103 228 64
+104 228 64
+105 228 64
+106 228 64
+107 228 64
+108 228 64
+109 228 64
+110 228 64
+111 228 64
+112 228 64
+113 228 64
+114 228 64
+115 228 64
+116 228 64
+117 228 64
+118 228 64
+119 228 64
+120 228 64
+121 228 64
+122 228 64
+123 228 64
+124 228 64
+125 228 64
+126 228 64
+127 228 64
+128 228 64
+129 228 64
+130 228 64
+131 228 64
+132 228 64
+133 228 64
+134 228 64
+135 228 64
+136 228 64
+137 228 64
+138 228 64
+139 228 64
+140 228 64
+141 228 64
+142 228 64
+143 228 64
+144 228 64
+145 228 64
+146 228 64
+147 228 64
+148 228 64
+149 228 64
+150 228 64
+151 228 64
+152 228 64
+153 228 64
+154 228 64
+155 228 64
+156 228 64
+157 228 64
+158 228 64
+159 228 64
+160 228 64
+161 228 64
+162 228 64
+163 228 64
+164 228 64
+165 228 64
+166 228 64
+167 228 64
+168 228 64
+169 228 64
+170 228 64
+171 228 64
+172 228 64
+173 228 64
+174 228 64
+175 228 64
+176 228 64
+177 228 64
+178 228 64
+179 228 64
+180 228 64
+181 228 64
+182 228 64
+183 228 64
+184 228 64
+185 228 64
+186 228 64
+187 228 64
+188 228 64
+189 228 64
+190 228 64
+191 228 64
+192 228 64
+193 228 64
+194 228 64
+195 228 64
+196 228 64
+197 228 64
+198 228 64
+199 228 64
+200 228 64
+201 228 64
+202 228 64
+203 228 64
+204 228 64
+205 228 64
+206 228 64
+207 228 64
+208 228 64
+209 228 64
+210 228 64
+211 228 64
+212 228 64
+213 228 64
+214 228 64
+215 228 64
+216 228 64
+217 228 64
+218 228 64
+219 228 64
+220 228 64
+221 228 64
+222 228 64
+223 228 64
+224 228 64
+225 228 64
+226 228 64
+227 228 64
+228 228 64
+229 228 64
+230 228 64
+231 228 64
+232 228 64
+233 228 64
+234 228 64
+235 228 64
+236 228 64
+237 228 64
+238 228 64
+239 228 64
+240 228 64
+241 228 64
+242 228 64
+243 228 64
+244 228 64
+245 228 64
+246 228 64
+247 228 64
+248 228 64
+249 228 64
+250 228 64
+251 228 64
+252 228 64
+253 228 64
+254 228 64
+255 228 64
+0 227 64
+1 227 64
+2 227 64
+3 227 64
+4 227 64
+5 227 64
+6 227 64
+7 227 64
+8 227 64
+9 227 64
+10 227 64
+11 227 64
+12 227 64
+13 227 64
+14 227 64
+15 227 64
+16 227 64
+17 227 64
+18 227 64
+19 227 64
+20 227 64
+21 227 64
+22 227 64
+23 227 64
+24 227 64
+25 227 64
+26 227 64
+27 227 64
+28 227 64
+29 227 64
+30 227 64
+31 227 64
+32 227 64
+33 227 64
+34 227 64
+35 227 64
+36 227 64
+37 227 64
+38 227 64
+39 227 64
+40 227 64
+41 227 64
+42 227 64
+43 227 64
+44 227 64
+45 227 64
+46 227 64
+47 227 64
+48 227 64
+49 227 64
+50 227 64
+51 227 64
+52 227 64
+53 227 64
+54 227 64
+55 227 64
+56 227 64
+57 227 64
+58 227 64
+59 227 64
+60 227 64
+61 227 64
+62 227 64
+63 227 64
+64 227 64
+65 227 64
+66 227 64
+67 227 64
+68 227 64
+69 227 64
+70 227 64
+71 227 64
+72 227 64
+73 227 64
+74 227 64
+75 227 64
+76 227 64
+77 227 64
+78 227 64
+79 227 64
+80 227 64
+81 227 64
+82 227 64
+83 227 64
+84 227 64
+85 227 64
+86 227 64
+87 227 64
+88 227 64
+89 227 64
+90 227 64
+91 227 64
+92 227 64
+93 227 64
+94 227 64
+95 227 64
+96 227 64
+97 227 64
+98 227 64
+99 227 64
+100 227 64
+101 227 64
+102 227 64
+103 227 64
+104 227 64
+105 227 64
+106 227 64
+107 227 64
+108 227 64
+109 227 64
+110 227 64
+111 227 64
+112 227 64
+113 227 64
+114 227 64
+115 227 64
+116 227 64
+117 227 64
+118 227 64
+119 227 64
+120 227 64
+121 227 64
+122 227 64
+123 227 64
+124 227 64
+125 227 64
+126 227 64
+127 227 64
+128 227 64
+129 227 64
+130 227 64
+131 227 64
+132 227 64
+133 227 64
+134 227 64
+135 227 64
+136 227 64
+137 227 64
+138 227 64
+139 227 64
+140 227 64
+141 227 64
+142 227 64
+143 227 64
+144 227 64
+145 227 64
+146 227 64
+147 227 64
+148 227 64
+149 227 64
+150 227 64
+151 227 64
+152 227 64
+153 227 64
+154 227 64
+155 227 64
+156 227 64
+157 227 64
+158 227 64
+159 227 64
+160 227 64
+161 227 64
+162 227 64
+163 227 64
+164 227 64
+165 227 64
+166 227 64
+167 227 64
+168 227 64
+169 227 64
+170 227 64
+171 227 64
+172 227 64
+173 227 64
+174 227 64
+175 227 64
+176 227 64
+177 227 64
+178 227 64
+179 227 64
+180 227 64
+181 227 64
+182 227 64
+183 227 64
+184 227 64
+185 227 64
+186 227 64
+187 227 64
+188 227 64
+189 227 64
+190 227 64
+191 227 64
+192 227 64
+193 227 64
+194 227 64
+195 227 64
+196 227 64
+197 227 64
+198 227 64
+199 227 64
+200 227 64
+201 227 64
+202 227 64
+203 227 64
+204 227 64
+205 227 64
+206 227 64
+207 227 64
+208 227 64
+209 227 64
+210 227 64
+211 227 64
+212 227 64
+213 227 64
+214 227 64
+215 227 64
+216 227 64
+217 227 64
+218 227 64
+219 227 64
+220 227 64
+221 227 64
+222 227 64
+223 227 64
+224 227 64
+225 227 64
+226 227 64
+227 227 64
+228 227 64
+229 227 64
+230 227 64
+231 227 64
+232 227 64
+233 227 64
+234 227 64
+235 227 64
+236 227 64
+237 227 64
+238 227 64
+239 227 64
+240 227 64
+241 227 64
+242 227 64
+243 227 64
+244 227 64
+245 227 64
+246 227 64
+247 227 64
+248 227 64
+249 227 64
+250 227 64
+251 227 64
+252 227 64
+253 227 64
+254 227 64
+255 227 64
+0 226 64
+1 226 64
+2 226 64
+3 226 64
+4 226 64
+5 226 64
+6 226 64
+7 226 64
+8 226 64
+9 226 64
+10 226 64
+11 226 64
+12 226 64
+13 226 64
+14 226 64
+15 226 64
+16 226 64
+17 226 64
+18 226 64
+19 226 64
+20 226 64
+21 226 64
+22 226 64
+23 226 64
+24 226 64
+25 226 64
+26 226 64
+27 226 64
+28 226 64
+29 226 64
+30 226 64
+31 226 64
+32 226 64
+33 226 64
+34 226 64
+35 226 64
+36 226 64
+37 226 64
+38 226 64
+39 226 64
+40 226 64
+41 226 64
+42 226 64
+43 226 64
+44 226 64
+45 226 64
+46 226 64
+47 226 64
+48 226 64
+49 226 64
+50 226 64
+51 226 64
+52 226 64
+53 226 64
+54 226 64
+55 226 64
+56 226 64
+57 226 64
+58 226 64
+59 226 64
+60 226 64
+61 226 64
+62 226 64
+63 226 64
+64 226 64
+65 226 64
+66 226 64
+67 226 64
+68 226 64
+69 226 64
+70 226 64
+71 226 64
+72 226 64
+73 226 64
+74 226 64
+75 226 64
+76 226 64
+77 226 64
+78 226 64
+79 226 64
+80 226 64
+81 226 64
+82 226 64
+83 226 64
+84 226 64
+85 226 64
+86 226 64
+87 226 64
+88 226 64
+89 226 64
+90 226 64
+91 226 64
+92 226 64
+93 226 64
+94 226 64
+95 226 64
+96 226 64
+97 226 64
+98 226 64
+99 226 64
+100 226 64
+101 226 64
+102 226 64
+103 226 64
+104 226 64
+105 226 64
+106 226 64
+107 226 64
+108 226 64
+109 226 64
+110 226 64
+111 226 64
+112 226 64
+113 226 64
+114 226 64
+115 226 64
+116 226 64
+117 226 64
+118 226 64
+119 226 64
+120 226 64
+121 226 64
+122 226 64
+123 226 64
+124 226 64
+125 226 64
+126 226 64
+127 226 64
+128 226 64
+129 226 64
+130 226 64
+131 226 64
+132 226 64
+133 226 64
+134 226 64
+135 226 64
+136 226 64
+137 226 64
+138 226 64
+139 226 64
+140 226 64
+141 226 64
+142 226 64
+143 226 64
+144 226 64
+145 226 64
+146 226 64
+147 226 64
+148 226 64
+149 226 64
+150 226 64
+151 226 64
+152 226 64
+153 226 64
+154 226 64
+155 226 64
+156 226 64
+157 226 64
+158 226 64
+159 226 64
+160 226 64
+161 226 64
+162 226 64
+163 226 64
+164 226 64
+165 226 64
+166 226 64
+167 226 64
+168 226 64
+169 226 64
+170 226 64
+171 226 64
+172 226 64
+173 226 64
+174 226 64
+175 226 64
+176 226 64
+177 226 64
+178 226 64
+179 226 64
+180 226 64
+181 226 64
+182 226 64
+183 226 64
+184 226 64
+185 226 64
+186 226 64
+187 226 64
+188 226 64
+189 226 64
+190 226 64
+191 226 64
+192 226 64
+193 226 64
+194 226 64
+195 226 64
+196 226 64
+197 226 64
+198 226 64
+199 226 64
+200 226 64
+201 226 64
+202 226 64
+203 226 64
+204 226 64
+205 226 64
+206 226 64
+207 226 64
+208 226 64
+209 226 64
+210 226 64
+211 226 64
+212 226 64
+213 226 64
+214 226 64
+215 226 64
+216 226 64
+217 226 64
+218 226 64
+219 226 64
+220 226 64
+221 226 64
+222 226 64
+223 226 64
+224 226 64
+225 226 64
+226 226 64
+227 226 64
+228 226 64
+229 226 64
+230 226 64
+231 226 64
+232 226 64
+233 226 64
+234 226 64
+235 226 64
+236 226 64
+237 226 64
+238 226 64
+239 226 64
+240 226 64
+241 226 64
+242 226 64
+243 226 64
+244 226 64
+245 226 64
+246 226 64
+247 226 64
+248 226 64
+249 226 64
+250 226 64
+251 226 64
+252 226 64
+253 226 64
+254 226 64
+255 226 64
+0 225 64
+1 225 64
+2 225 64
+3 225 64
+4 225 64
+5 225 64
+6 225 64
+7 225 64
+8 225 64
+9 225 64
+10 225 64
+11 225 64
+12 225 64
+13 225 64
+14 225 64
+15 225 64
+16 225 64
+17 225 64
+18 225 64
+19 225 64
+20 225 64
+21 225 64
+22 225 64
+23 225 64
+24 225 64
+25 225 64
+26 225 64
+27 225 64
+28 225 64
+29 225 64
+30 225 64
+31 225 64
+32 225 64
+33 225 64
+34 225 64
+35 225 64
+36 225 64
+37 225 64
+38 225 64
+39 225 64
+40 225 64
+41 225 64
+42 225 64
+43 225 64
+44 225 64
+45 225 64
+46 225 64
+47 225 64
+48 225 64
+49 225 64
+50 225 64
+51 225 64
+52 225 64
+53 225 64
+54 225 64
+55 225 64
+56 225 64
+57 225 64
+58 225 64
+59 225 64
+60 225 64
+61 225 64
+62 225 64
+63 225 64
+64 225 64
+65 225 64
+66 225 64
+67 225 64
+68 225 64
+69 225 64
+70 225 64
+71 225 64
+72 225 64
+73 225 64
+74 225 64
+75 225 64
+76 225 64
+77 225 64
+78 225 64
+79 225 64
+80 225 64
+81 225 64
+82 225 64
+83 225 64
+84 225 64
+85 225 64
+86 225 64
+87 225 64
+88 225 64
+89 225 64
+90 225 64
+91 225 64
+92 225 64
+93 225 64
+94 225 64
+95 225 64
+96 225 64
+97 225 64
+98 225 64
+99 225 64
+100 225 64
+101 225 64
+102 225 64
+103 225 64
+104 225 64
+105 225 64
+106 225 64
+107 225 64
+108 225 64
+109 225 64
+110 225 64
+111 225 64
+112 225 64
+113 225 64
+114 225 64
+115 225 64
+116 225 64
+117 225 64
+118 225 64
+119 225 64
+120 225 64
+121 225 64
+122 225 64
+123 225 64
+124 225 64
+125 225 64
+126 225 64
+127 225 64
+128 225 64
+129 225 64
+130 225 64
+131 225 64
+132 225 64
+133 225 64
+134 225 64
+135 225 64
+136 225 64
+137 225 64
+138 225 64
+139 225 64
+140 225 64
+141 225 64
+142 225 64
+143 225 64
+144 225 64
+145 225 64
+146 225 64
+147 225 64
+148 225 64
+149 225 64
+150 225 64
+151 225 64
+152 225 64
+153 225 64
+154 225 64
+155 225 64
+156 225 64
+157 225 64
+158 225 64
+159 225 64
+160 225 64
+161 225 64
+162 225 64
+163 225 64
+164 225 64
+165 225 64
+166 225 64
+167 225 64
+168 225 64
+169 225 64
+170 225 64
+171 225 64
+172 225 64
+173 225 64
+174 225 64
+175 225 64
+176 225 64
+177 225 64
+178 225 64
+179 225 64
+180 225 64
+181 225 64
+182 225 64
+183 225 64
+184 225 64
+185 225 64
+186 225 64
+187 225 64
+188 225 64
+189 225 64
+190 225 64
+191 225 64
+192 225 64
+193 225 64
+194 225 64
+195 225 64
+196 225 64
+197 225 64
+198 225 64
+199 225 64
+200 225 64
+201 225 64
+202 225 64
+203 225 64
+204 225 64
+205 225 64
+206 225 64
+207 225 64
+208 225 64
+209 225 64
+210 225 64
+211 225 64
+212 225 64
+213 225 64
+214 225 64
+215 225 64
+216 225 64
+217 225 64
+218 225 64
+219 225 64
+220 225 64
+221 225 64
+222 225 64
+223 225 64
+224 225 64
+225 225 64
+226 225 64
+227 225 64
+228 225 64
+229 225 64
+230 225 64
+231 225 64
+232 225 64
+233 225 64
+234 225 64
+235 225 64
+236 225 64
+237 225 64
+238 225 64
+239 225 64
+240 225 64
+241 225 64
+242 225 64
+243 225 64
+244 225 64
+245 225 64
+246 225 64
+247 225 64
+248 225 64
+249 225 64
+250 225 64
+251 225 64
+252 225 64
+253 225 64
+254 225 64
+255 225 64
+0 224 64
+1 224 64
+2 224 64
+3 224 64
+4 224 64
+5 224 64
+6 224 64
+7 224 64
+8 224 64
+9 224 64
+10 224 64
+11 224 64
+12 224 64
+13 224 64
+14 224 64
+15 224 64
+16 224 64
+17 224 64
+18 224 64
+19 224 64
+20 224 64
+21 224 64
+22 224 64
+23 224 64
+24 224 64
+25 224 64
+26 224 64
+27 224 64
+28 224 64
+29 224 64
+30 224 64
+31 224 64
+32 224 64
+33 224 64
+34 224 64
+35 224 64
+36 224 64
+37 224 64
+38 224 64
+39 224 64
+40 224 64
+41 224 64
+42 224 64
+43 224 64
+44 224 64
+45 224 64
+46 224 64
+47 224 64
+48 224 64
+49 224 64
+50 224 64
+51 224 64
+52 224 64
+53 224 64
+54 224 64
+55 224 64
+56 224 64
+57 224 64
+58 224 64
+59 224 64
+60 224 64
+61 224 64
+62 224 64
+63 224 64
+64 224 64
+65 224 64
+66 224 64
+67 224 64
+68 224 64
+69 224 64
+70 224 64
+71 224 64
+72 224 64
+73 224 64
+74 224 64
+75 224 64
+76 224 64
+77 224 64
+78 224 64
+79 224 64
+80 224 64
+81 224 64
+82 224 64
+83 224 64
+84 224 64
+85 224 64
+86 224 64
+87 224 64
+88 224 64
+89 224 64
+90 224 64
+91 224 64
+92 224 64
+93 224 64
+94 224 64
+95 224 64
+96 224 64
+97 224 64
+98 224 64
+99 224 64
+100 224 64
+101 224 64
+102 224 64
+103 224 64
+104 224 64
+105 224 64
+106 224 64
+107 224 64
+108 224 64
+109 224 64
+110 224 64
+111 224 64
+112 224 64
+113 224 64
+114 224 64
+115 224 64
+116 224 64
+117 224 64
+118 224 64
+119 224 64
+120 224 64
+121 224 64
+122 224 64
+123 224 64
+124 224 64
+125 224 64
+126 224 64
+127 224 64
+128 224 64
+129 224 64
+130 224 64
+131 224 64
+132 224 64
+133 224 64
+134 224 64
+135 224 64
+136 224 64
+137 224 64
+138 224 64
+139 224 64
+140 224 64
+141 224 64
+142 224 64
+143 224 64
+144 224 64
+145 224 64
+146 224 64
+147 224 64
+148 224 64
+149 224 64
+150 224 64
+151 224 64
+152 224 64
+153 224 64
+154 224 64
+155 224 64
+156 224 64
+157 224 64
+158 224 64
+159 224 64
+160 224 64
+161 224 64
+162 224 64
+163 224 64
+164 224 64
+165 224 64
+166 224 64
+167 224 64
+168 224 64
+169 224 64
+170 224 64
+171 224 64
+172 224 64
+173 224 64
+174 224 64
+175 224 64
+176 224 64
+177 224 64
+178 224 64
+179 224 64
+180 224 64
+181 224 64
+182 224 64
+183 224 64
+184 224 64
+185 224 64
+186 224 64
+187 224 64
+188 224 64
+189 224 64
+190 224 64
+191 224 64
+192 224 64
+193 224 64
+194 224 64
+195 224 64
+196 224 64
+197 224 64
+198 224 64
+199 224 64
+200 224 64
+201 224 64
+202 224 64
+203 224 64
+204 224 64
+205 224 64
+206 224 64
+207 224 64
+208 224 64
+209 224 64
+210 224 64
+211 224 64
+212 224 64
+213 224 64
+214 224 64
+215 224 64
+216 224 64
+217 224 64
+218 224 64
+219 224 64
+220 224 64
+221 224 64
+222 224 64
+223 224 64
+224 224 64
+225 224 64
+226 224 64
+227 224 64
+228 224 64
+229 224 64
+230 224 64
+231 224 64
+232 224 64
+233 224 64
+234 224 64
+235 224 64
+236 224 64
+237 224 64
+238 224 64
+239 224 64
+240 224 64
+241 224 64
+242 224 64
+243 224 64
+244 224 64
+245 224 64
+246 224 64
+247 224 64
+248 224 64
+249 224 64
+250 224 64
+251 224 64
+252 224 64
+253 224 64
+254 224 64
+255 224 64
+0 223 64
+1 223 64
+2 223 64
+3 223 64
+4 223 64
+5 223 64
+6 223 64
+7 223 64
+8 223 64
+9 223 64
+10 223 64
+11 223 64
+12 223 64
+13 223 64
+14 223 64
+15 223 64
+16 223 64
+17 223 64
+18 223 64
+19 223 64
+20 223 64
+21 223 64
+22 223 64
+23 223 64
+24 223 64
+25 223 64
+26 223 64
+27 223 64
+28 223 64
+29 223 64
+30 223 64
+31 223 64
+32 223 64
+33 223 64
+34 223 64
+35 223 64
+36 223 64
+37 223 64
+38 223 64
+39 223 64
+40 223 64
+41 223 64
+42 223 64
+43 223 64
+44 223 64
+45 223 64
+46 223 64
+47 223 64
+48 223 64
+49 223 64
+50 223 64
+51 223 64
+52 223 64
+53 223 64
+54 223 64
+55 223 64
+56 223 64
+57 223 64
+58 223 64
+59 223 64
+60 223 64
+61 223 64
+62 223 64
+63 223 64
+64 223 64
+65 223 64
+66 223 64
+67 223 64
+68 223 64
+69 223 64
+70 223 64
+71 223 64
+72 223 64
+73 223 64
+74 223 64
+75 223 64
+76 223 64
+77 223 64
+78 223 64
+79 223 64
+80 223 64
+81 223 64
+82 223 64
+83 223 64
+84 223 64
+85 223 64
+86 223 64
+87 223 64
+88 223 64
+89 223 64
+90 223 64
+91 223 64
+92 223 64
+93 223 64
+94 223 64
+95 223 64
+96 223 64
+97 223 64
+98 223 64
+99 223 64
+100 223 64
+101 223 64
+102 223 64
+103 223 64
+104 223 64
+105 223 64
+106 223 64
+107 223 64
+108 223 64
+109 223 64
+110 223 64
+111 223 64
+112 223 64
+113 223 64
+114 223 64
+115 223 64
+116 223 64
+117 223 64
+118 223 64
+119 223 64
+120 223 64
+121 223 64
+122 223 64
+123 223 64
+124 223 64
+125 223 64
+126 223 64
+127 223 64
+128 223 64
+129 223 64
+130 223 64
+131 223 64
+132 223 64
+133 223 64
+134 223 64
+135 223 64
+136 223 64
+137 223 64
+138 223 64
+139 223 64
+140 223 64
+141 223 64
+142 223 64
+143 223 64
+144 223 64
+145 223 64
+146 223 64
+147 223 64
+148 223 64
+149 223 64
+150 223 64
+151 223 64
+152 223 64
+153 223 64
+154 223 64
+155 223 64
+156 223 64
+157 223 64
+158 223 64
+159 223 64
+160 223 64
+161 223 64
+162 223 64
+163 223 64
+164 223 64
+165 223 64
+166 223 64
+167 223 64
+168 223 64
+169 223 64
+170 223 64
+171 223 64
+172 223 64
+173 223 64
+174 223 64
+175 223 64
+176 223 64
+177 223 64
+178 223 64
+179 223 64
+180 223 64
+181 223 64
+182 223 64
+183 223 64
+184 223 64
+185 223 64
+186 223 64
+187 223 64
+188 223 64
+189 223 64
+190 223 64
+191 223 64
+192 223 64
+193 223 64
+194 223 64
+195 223 64
+196 223 64
+197 223 64
+198 223 64
+199 223 64
+200 223 64
+201 223 64
+202 223 64
+203 223 64
+204 223 64
+205 223 64
+206 223 64
+207 223 64
+208 223 64
+209 223 64
+210 223 64
+211 223 64
+212 223 64
+213 223 64
+214 223 64
+215 223 64
+216 223 64
+217 223 64
+218 223 64
+219 223 64
+220 223 64
+221 223 64
+222 223 64
+223 223 64
+224 223 64
+225 223 64
+226 223 64
+227 223 64
+228 223 64
+229 223 64
+230 223 64
+231 223 64
+232 223 64
+233 223 64
+234 223 64
+235 223 64
+236 223 64
+237 223 64
+238 223 64
+239 223 64
+240 223 64
+241 223 64
+242 223 64
+243 223 64
+244 223 64
+245 223 64
+246 223 64
+247 223 64
+248 223 64
+249 223 64
+250 223 64
+251 223 64
+252 223 64
+253 223 64
+254 223 64
+255 223 64
+0 222 64
+1 222 64
+2 222 64
+3 222 64
+4 222 64
+5 222 64
+6 222 64
+7 222 64
+8 222 64
+9 222 64
+10 222 64
+11 222 64
+12 222 64
+13 222 64
+14 222 64
+15 222 64
+16 222 64
+17 222 64
+18 222 64
+19 222 64
+20 222 64
+21 222 64
+22 222 64
+23 222 64
+24 222 64
+25 222 64
+26 222 64
+27 222 64
+28 222 64
+29 222 64
+30 222 64
+31 222 64
+32 222 64
+33 222 64
+34 222 64
+35 222 64
+36 222 64
+37 222 64
+38 222 64
+39 222 64
+40 222 64
+41 222 64
+42 222 64
+43 222 64
+44 222 64
+45 222 64
+46 222 64
+47 222 64
+48 222 64
+49 222 64
+50 222 64
+51 222 64
+52 222 64
+53 222 64
+54 222 64
+55 222 64
+56 222 64
+57 222 64
+58 222 64
+59 222 64
+60 222 64
+61 222 64
+62 222 64
+63 222 64
+64 222 64
+65 222 64
+66 222 64
+67 222 64
+68 222 64
+69 222 64
+70 222 64
+71 222 64
+72 222 64
+73 222 64
+74 222 64
+75 222 64
+76 222 64
+77 222 64
+78 222 64
+79 222 64
+80 222 64
+81 222 64
+82 222 64
+83 222 64
+84 222 64
+85 222 64
+86 222 64
+87 222 64
+88 222 64
+89 222 64
+90 222 64
+91 222 64
+92 222 64
+93 222 64
+94 222 64
+95 222 64
+96 222 64
+97 222 64
+98 222 64
+99 222 64
+100 222 64
+101 222 64
+102 222 64
+103 222 64
+104 222 64
+105 222 64
+106 222 64
+107 222 64
+108 222 64
+109 222 64
+110 222 64
+111 222 64
+112 222 64
+113 222 64
+114 222 64
+115 222 64
+116 222 64
+117 222 64
+118 222 64
+119 222 64
+120 222 64
+121 222 64
+122 222 64
+123 222 64
+124 222 64
+125 222 64
+126 222 64
+127 222 64
+128 222 64
+129 222 64
+130 222 64
+131 222 64
+132 222 64
+133 222 64
+134 222 64
+135 222 64
+136 222 64
+137 222 64
+138 222 64
+139 222 64
+140 222 64
+141 222 64
+142 222 64
+143 222 64
+144 222 64
+145 222 64
+146 222 64
+147 222 64
+148 222 64
+149 222 64
+150 222 64
+151 222 64
+152 222 64
+153 222 64
+154 222 64
+155 222 64
+156 222 64
+157 222 64
+158 222 64
+159 222 64
+160 222 64
+161 222 64
+162 222 64
+163 222 64
+164 222 64
+165 222 64
+166 222 64
+167 222 64
+168 222 64
+169 222 64
+170 222 64
+171 222 64
+172 222 64
+173 222 64
+174 222 64
+175 222 64
+176 222 64
+177 222 64
+178 222 64
+179 222 64
+180 222 64
+181 222 64
+182 222 64
+183 222 64
+184 222 64
+185 222 64
+186 222 64
+187 222 64
+188 222 64
+189 222 64
+190 222 64
+191 222 64
+192 222 64
+193 222 64
+194 222 64
+195 222 64
+196 222 64
+197 222 64
+198 222 64
+199 222 64
+200 222 64
+201 222 64
+202 222 64
+203 222 64
+204 222 64
+205 222 64
+206 222 64
+207 222 64
+208 222 64
+209 222 64
+210 222 64
+211 222 64
+212 222 64
+213 222 64
+214 222 64
+215 222 64
+216 222 64
+217 222 64
+218 222 64
+219 222 64
+220 222 64
+221 222 64
+222 222 64
+223 222 64
+224 222 64
+225 222 64
+226 222 64
+227 222 64
+228 222 64
+229 222 64
+230 222 64
+231 222 64
+232 222 64
+233 222 64
+234 222 64
+235 222 64
+236 222 64
+237 222 64
+238 222 64
+239 222 64
+240 222 64
+241 222 64
+242 222 64
+243 222 64
+244 222 64
+245 222 64
+246 222 64
+247 222 64
+248 222 64
+249 222 64
+250 222 64
+251 222 64
+252 222 64
+253 222 64
+254 222 64
+255 222 64
+0 221 64
+1 221 64
+2 221 64
+3 221 64
+4 221 64
+5 221 64
+6 221 64
+7 221 64
+8 221 64
+9 221 64
+10 221 64
+11 221 64
+12 221 64
+13 221 64
+14 221 64
+15 221 64
+16 221 64
+17 221 64
+18 221 64
+19 221 64
+20 221 64
+21 221 64
+22 221 64
+23 221 64
+24 221 64
+25 221 64
+26 221 64
+27 221 64
+28 221 64
+29 221 64
+30 221 64
+31 221 64
+32 221 64
+33 221 64
+34 221 64
+35 221 64
+36 221 64
+37 221 64
+38 221 64
+39 221 64
+40 221 64
+41 221 64
+42 221 64
+43 221 64
+44 221 64
+45 221 64
+46 221 64
+47 221 64
+48 221 64
+49 221 64
+50 221 64
+51 221 64
+52 221 64
+53 221 64
+54 221 64
+55 221 64
+56 221 64
+57 221 64
+58 221 64
+59 221 64
+60 221 64
+61 221 64
+62 221 64
+63 221 64
+64 221 64
+65 221 64
+66 221 64
+67 221 64
+68 221 64
+69 221 64
+70 221 64
+71 221 64
+72 221 64
+73 221 64
+74 221 64
+75 221 64
+76 221 64
+77 221 64
+78 221 64
+79 221 64
+80 221 64
+81 221 64
+82 221 64
+83 221 64
+84 221 64
+85 221 64
+86 221 64
+87 221 64
+88 221 64
+89 221 64
+90 221 64
+91 221 64
+92 221 64
+93 221 64
+94 221 64
+95 221 64
+96 221 64
+97 221 64
+98 221 64
+99 221 64
+100 221 64
+101 221 64
+102 221 64
+103 221 64
+104 221 64
+105 221 64
+106 221 64
+107 221 64
+108 221 64
+109 221 64
+110 221 64
+111 221 64
+112 221 64
+113 221 64
+114 221 64
+115 221 64
+116 221 64
+117 221 64
+118 221 64
+119 221 64
+120 221 64
+121 221 64
+122 221 64
+123 221 64
+124 221 64
+125 221 64
+126 221 64
+127 221 64
+128 221 64
+129 221 64
+130 221 64
+131 221 64
+132 221 64
+133 221 64
+134 221 64
+135 221 64
+136 221 64
+137 221 64
+138 221 64
+139 221 64
+140 221 64
+141 221 64
+142 221 64
+143 221 64
+144 221 64
+145 221 64
+146 221 64
+147 221 64
+148 221 64
+149 221 64
+150 221 64
+151 221 64
+152 221 64
+153 221 64
+154 221 64
+155 221 64
+156 221 64
+157 221 64
+158 221 64
+159 221 64
+160 221 64
+161 221 64
+162 221 64
+163 221 64
+164 221 64
+165 221 64
+166 221 64
+167 221 64
+168 221 64
+169 221 64
+170 221 64
+171 221 64
+172 221 64
+173 221 64
+174 221 64
+175 221 64
+176 221 64
+177 221 64
+178 221 64
+179 221 64
+180 221 64
+181 221 64
+182 221 64
+183 221 64
+184 221 64
+185 221 64
+186 221 64
+187 221 64
+188 221 64
+189 221 64
+190 221 64
+191 221 64
+192 221 64
+193 221 64
+194 221 64
+195 221 64
+196 221 64
+197 221 64
+198 221 64
+199 221 64
+200 221 64
+201 221 64
+202 221 64
+203 221 64
+204 221 64
+205 221 64
+206 221 64
+207 221 64
+208 221 64
+209 221 64
+210 221 64
+211 221 64
+212 221 64
+213 221 64
+214 221 64
+215 221 64
+216 221 64
+217 221 64
+218 221 64
+219 221 64
+220 221 64
+221 221 64
+222 221 64
+223 221 64
+224 221 64
+225 221 64
+226 221 64
+227 221 64
+228 221 64
+229 221 64
+230 221 64
+231 221 64
+232 221 64
+233 221 64
+234 221 64
+235 221 64
+236 221 64
+237 221 64
+238 221 64
+239 221 64
+240 221 64
+241 221 64
+242 221 64
+243 221 64
+244 221 64
+245 221 64
+246 221 64
+247 221 64
+248 221 64
+249 221 64
+250 221 64
+251 221 64
+252 221 64
+253 221 64
+254 221 64
+255 221 64
+0 220 64
+1 220 64
+2 220 64
+3 220 64
+4 220 64
+5 220 64
+6 220 64
+7 220 64
+8 220 64
+9 220 64
+10 220 64
+11 220 64
+12 220 64
+13 220 64
+14 220 64
+15 220 64
+16 220 64
+17 220 64
+18 220 64
+19 220 64
+20 220 64
+21 220 64
+22 220 64
+23 220 64
+24 220 64
+25 220 64
+26 220 64
+27 220 64
+28 220 64
+29 220 64
+30 220 64
+31 220 64
+32 220 64
+33 220 64
+34 220 64
+35 220 64
+36 220 64
+37 220 64
+38 220 64
+39 220 64
+40 220 64
+41 220 64
+42 220 64
+43 220 64
+44 220 64
+45 220 64
+46 220 64
+47 220 64
+48 220 64
+49 220 64
+50 220 64
+51 220 64
+52 220 64
+53 220 64
+54 220 64
+55 220 64
+56 220 64
+57 220 64
+58 220 64
+59 220 64
+60 220 64
+61 220 64
+62 220 64
+63 220 64
+64 220 64
+65 220 64
+66 220 64
+67 220 64
+68 220 64
+69 220 64
+70 220 64
+71 220 64
+72 220 64
+73 220 64
+74 220 64
+75 220 64
+76 220 64
+77 220 64
+78 220 64
+79 220 64
+80 220 64
+81 220 64
+82 220 64
+83 220 64
+84 220 64
+85 220 64
+86 220 64
+87 220 64
+88 220 64
+89 220 64
+90 220 64
+91 220 64
+92 220 64
+93 220 64
+94 220 64
+95 220 64
+96 220 64
+97 220 64
+98 220 64
+99 220 64
+100 220 64
+101 220 64
+102 220 64
+103 220 64
+104 220 64
+105 220 64
+106 220 64
+107 220 64
+108 220 64
+109 220 64
+110 220 64
+111 220 64
+112 220 64
+113 220 64
+114 220 64
+115 220 64
+116 220 64
+117 220 64
+118 220 64
+119 220 64
+120 220 64
+121 220 64
+122 220 64
+123 220 64
+124 220 64
+125 220 64
+126 220 64
+127 220 64
+128 220 64
+129 220 64
+130 220 64
+131 220 64
+132 220 64
+133 220 64
+134 220 64
+135 220 64
+136 220 64
+137 220 64
+138 220 64
+139 220 64
+140 220 64
+141 220 64
+142 220 64
+143 220 64
+144 220 64
+145 220 64
+146 220 64
+147 220 64
+148 220 64
+149 220 64
+150 220 64
+151 220 64
+152 220 64
+153 220 64
+154 220 64
+155 220 64
+156 220 64
+157 220 64
+158 220 64
+159 220 64
+160 220 64
+161 220 64
+162 220 64
+163 220 64
+164 220 64
+165 220 64
+166 220 64
+167 220 64
+168 220 64
+169 220 64
+170 220 64
+171 220 64
+172 220 64
+173 220 64
+174 220 64
+175 220 64
+176 220 64
+177 220 64
+178 220 64
+179 220 64
+180 220 64
+181 220 64
+182 220 64
+183 220 64
+184 220 64
+185 220 64
+186 220 64
+187 220 64
+188 220 64
+189 220 64
+190 220 64
+191 220 64
+192 220 64
+193 220 64
+194 220 64
+195 220 64
+196 220 64
+197 220 64
+198 220 64
+199 220 64
+200 220 64
+201 220 64
+202 220 64
+203 220 64
+204 220 64
+205 220 64
+206 220 64
+207 220 64
+208 220 64
+209 220 64
+210 220 64
+211 220 64
+212 220 64
+213 220 64
+214 220 64
+215 220 64
+216 220 64
+217 220 64
+218 220 64
+219 220 64
+220 220 64
+221 220 64
+222 220 64
+223 220 64
+224 220 64
+225 220 64
+226 220 64
+227 220 64
+228 220 64
+229 220 64
+230 220 64
+231 220 64
+232 220 64
+233 220 64
+234 220 64
+235 220 64
+236 220 64
+237 220 64
+238 220 64
+239 220 64
+240 220 64
+241 220 64
+242 220 64
+243 220 64
+244 220 64
+245 220 64
+246 220 64
+247 220 64
+248 220 64
+249 220 64
+250 220 64
+251 220 64
+252 220 64
+253 220 64
+254 220 64
+255 220 64
+0 219 64
+1 219 64
+2 219 64
+3 219 64
+4 219 64
+5 219 64
+6 219 64
+7 219 64
+8 219 64
+9 219 64
+10 219 64
+11 219 64
+12 219 64
+13 219 64
+14 219 64
+15 219 64
+16 219 64
+17 219 64
+18 219 64
+19 219 64
+20 219 64
+21 219 64
+22 219 64
+23 219 64
+24 219 64
+25 219 64
+26 219 64
+27 219 64
+28 219 64
+29 219 64
+30 219 64
+31 219 64
+32 219 64
+33 219 64
+34 219 64
+35 219 64
+36 219 64
+37 219 64
+38 219 64
+39 219 64
+40 219 64
+41 219 64
+42 219 64
+43 219 64
+44 219 64
+45 219 64
+46 219 64
+47 219 64
+48 219 64
+49 219 64
+50 219 64
+51 219 64
+52 219 64
+53 219 64
+54 219 64
+55 219 64
+56 219 64
+57 219 64
+58 219 64
+59 219 64
+60 219 64
+61 219 64
+62 219 64
+63 219 64
+64 219 64
+65 219 64
+66 219 64
+67 219 64
+68 219 64
+69 219 64
+70 219 64
+71 219 64
+72 219 64
+73 219 64
+74 219 64
+75 219 64
+76 219 64
+77 219 64
+78 219 64
+79 219 64
+80 219 64
+81 219 64
+82 219 64
+83 219 64
+84 219 64
+85 219 64
+86 219 64
+87 219 64
+88 219 64
+89 219 64
+90 219 64
+91 219 64
+92 219 64
+93 219 64
+94 219 64
+95 219 64
+96 219 64
+97 219 64
+98 219 64
+99 219 64
+100 219 64
+101 219 64
+102 219 64
+103 219 64
+104 219 64
+105 219 64
+106 219 64
+107 219 64
+108 219 64
+109 219 64
+110 219 64
+111 219 64
+112 219 64
+113 219 64
+114 219 64
+115 219 64
+116 219 64
+117 219 64
+118 219 64
+119 219 64
+120 219 64
+121 219 64
+122 219 64
+123 219 64
+124 219 64
+125 219 64
+126 219 64
+127 219 64
+128 219 64
+129 219 64
+130 219 64
+131 219 64
+132 219 64
+133 219 64
+134 219 64
+135 219 64
+136 219 64
+137 219 64
+138 219 64
+139 219 64
+140 219 64
+141 219 64
+142 219 64
+143 219 64
+144 219 64
+145 219 64
+146 219 64
+147 219 64
+148 219 64
+149 219 64
+150 219 64
+151 219 64
+152 219 64
+153 219 64
+154 219 64
+155 219 64
+156 219 64
+157 219 64
+158 219 64
+159 219 64
+160 219 64
+161 219 64
+162 219 64
+163 219 64
+164 219 64
+165 219 64
+166 219 64
+167 219 64
+168 219 64
+169 219 64
+170 219 64
+171 219 64
+172 219 64
+173 219 64
+174 219 64
+175 219 64
+176 219 64
+177 219 64
+178 219 64
+179 219 64
+180 219 64
+181 219 64
+182 219 64
+183 219 64
+184 219 64
+185 219 64
+186 219 64
+187 219 64
+188 219 64
+189 219 64
+190 219 64
+191 219 64
+192 219 64
+193 219 64
+194 219 64
+195 219 64
+196 219 64
+197 219 64
+198 219 64
+199 219 64
+200 219 64
+201 219 64
+202 219 64
+203 219 64
+204 219 64
+205 219 64
+206 219 64
+207 219 64
+208 219 64
+209 219 64
+210 219 64
+211 219 64
+212 219 64
+213 219 64
+214 219 64
+215 219 64
+216 219 64
+217 219 64
+218 219 64
+219 219 64
+220 219 64
+221 219 64
+222 219 64
+223 219 64
+224 219 64
+225 219 64
+226 219 64
+227 219 64
+228 219 64
+229 219 64
+230 219 64
+231 219 64
+232 219 64
+233 219 64
+234 219 64
+235 219 64
+236 219 64
+237 219 64
+238 219 64
+239 219 64
+240 219 64
+241 219 64
+242 219 64
+243 219 64
+244 219 64
+245 219 64
+246 219 64
+247 219 64
+248 219 64
+249 219 64
+250 219 64
+251 219 64
+252 219 64
+253 219 64
+254 219 64
+255 219 64
+0 218 64
+1 218 64
+2 218 64
+3 218 64
+4 218 64
+5 218 64
+6 218 64
+7 218 64
+8 218 64
+9 218 64
+10 218 64
+11 218 64
+12 218 64
+13 218 64
+14 218 64
+15 218 64
+16 218 64
+17 218 64
+18 218 64
+19 218 64
+20 218 64
+21 218 64
+22 218 64
+23 218 64
+24 218 64
+25 218 64
+26 218 64
+27 218 64
+28 218 64
+29 218 64
+30 218 64
+31 218 64
+32 218 64
+33 218 64
+34 218 64
+35 218 64
+36 218 64
+37 218 64
+38 218 64
+39 218 64
+40 218 64
+41 218 64
+42 218 64
+43 218 64
+44 218 64
+45 218 64
+46 218 64
+47 218 64
+48 218 64
+49 218 64
+50 218 64
+51 218 64
+52 218 64
+53 218 64
+54 218 64
+55 218 64
+56 218 64
+57 218 64
+58 218 64
+59 218 64
+60 218 64
+61 218 64
+62 218 64
+63 218 64
+64 218 64
+65 218 64
+66 218 64
+67 218 64
+68 218 64
+69 218 64
+70 218 64
+71 218 64
+72 218 64
+73 218 64
+74 218 64
+75 218 64
+76 218 64
+77 218 64
+78 218 64
+79 218 64
+80 218 64
+81 218 64
+82 218 64
+83 218 64
+84 218 64
+85 218 64
+86 218 64
+87 218 64
+88 218 64
+89 218 64
+90 218 64
+91 218 64
+92 218 64
+93 218 64
+94 218 64
+95 218 64
+96 218 64
+97 218 64
+98 218 64
+99 218 64
+100 218 64
+101 218 64
+102 218 64
+103 218 64
+104 218 64
+105 218 64
+106 218 64
+107 218 64
+108 218 64
+109 218 64
+110 218 64
+111 218 64
+112 218 64
+113 218 64
+114 218 64
+115 218 64
+116 218 64
+117 218 64
+118 218 64
+119 218 64
+120 218 64
+121 218 64
+122 218 64
+123 218 64
+124 218 64
+125 218 64
+126 218 64
+127 218 64
+128 218 64
+129 218 64
+130 218 64
+131 218 64
+132 218 64
+133 218 64
+134 218 64
+135 218 64
+136 218 64
+137 218 64
+138 218 64
+139 218 64
+140 218 64
+141 218 64
+142 218 64
+143 218 64
+144 218 64
+145 218 64
+146 218 64
+147 218 64
+148 218 64
+149 218 64
+150 218 64
+151 218 64
+152 218 64
+153 218 64
+154 218 64
+155 218 64
+156 218 64
+157 218 64
+158 218 64
+159 218 64
+160 218 64
+161 218 64
+162 218 64
+163 218 64
+164 218 64
+165 218 64
+166 218 64
+167 218 64
+168 218 64
+169 218 64
+170 218 64
+171 218 64
+172 218 64
+173 218 64
+174 218 64
+175 218 64
+176 218 64
+177 218 64
+178 218 64
+179 218 64
+180 218 64
+181 218 64
+182 218 64
+183 218 64
+184 218 64
+185 218 64
+186 218 64
+187 218 64
+188 218 64
+189 218 64
+190 218 64
+191 218 64
+192 218 64
+193 218 64
+194 218 64
+195 218 64
+196 218 64
+197 218 64
+198 218 64
+199 218 64
+200 218 64
+201 218 64
+202 218 64
+203 218 64
+204 218 64
+205 218 64
+206 218 64
+207 218 64
+208 218 64
+209 218 64
+210 218 64
+211 218 64
+212 218 64
+213 218 64
+214 218 64
+215 218 64
+216 218 64
+217 218 64
+218 218 64
+219 218 64
+220 218 64
+221 218 64
+222 218 64
+223 218 64
+224 218 64
+225 218 64
+226 218 64
+227 218 64
+228 218 64
+229 218 64
+230 218 64
+231 218 64
+232 218 64
+233 218 64
+234 218 64
+235 218 64
+236 218 64
+237 218 64
+238 218 64
+239 218 64
+240 218 64
+241 218 64
+242 218 64
+243 218 64
+244 218 64
+245 218 64
+246 218 64
+247 218 64
+248 218 64
+249 218 64
+250 218 64
+251 218 64
+252 218 64
+253 218 64
+254 218 64
+255 218 64
+0 217 64
+1 217 64
+2 217 64
+3 217 64
+4 217 64
+5 217 64
+6 217 64
+7 217 64
+8 217 64
+9 217 64
+10 217 64
+11 217 64
+12 217 64
+13 217 64
+14 217 64
+15 217 64
+16 217 64
+17 217 64
+18 217 64
+19 217 64
+20 217 64
+21 217 64
+22 217 64
+23 217 64
+24 217 64
+25 217 64
+26 217 64
+27 217 64
+28 217 64
+29 217 64
+30 217 64
+31 217 64
+32 217 64
+33 217 64
+34 217 64
+35 217 64
+36 217 64
+37 217 64
+38 217 64
+39 217 64
+40 217 64
+41 217 64
+42 217 64
+43 217 64
+44 217 64
+45 217 64
+46 217 64
+47 217 64
+48 217 64
+49 217 64
+50 217 64
+51 217 64
+52 217 64
+53 217 64
+54 217 64
+55 217 64
+56 217 64
+57 217 64
+58 217 64
+59 217 64
+60 217 64
+61 217 64
+62 217 64
+63 217 64
+64 217 64
+65 217 64
+66 217 64
+67 217 64
+68 217 64
+69 217 64
+70 217 64
+71 217 64
+72 217 64
+73 217 64
+74 217 64
+75 217 64
+76 217 64
+77 217 64
+78 217 64
+79 217 64
+80 217 64
+81 217 64
+82 217 64
+83 217 64
+84 217 64
+85 217 64
+86 217 64
+87 217 64
+88 217 64
+89 217 64
+90 217 64
+91 217 64
+92 217 64
+93 217 64
+94 217 64
+95 217 64
+96 217 64
+97 217 64
+98 217 64
+99 217 64
+100 217 64
+101 217 64
+102 217 64
+103 217 64
+104 217 64
+105 217 64
+106 217 64
+107 217 64
+108 217 64
+109 217 64
+110 217 64
+111 217 64
+112 217 64
+113 217 64
+114 217 64
+115 217 64
+116 217 64
+117 217 64
+118 217 64
+119 217 64
+120 217 64
+121 217 64
+122 217 64
+123 217 64
+124 217 64
+125 217 64
+126 217 64
+127 217 64
+128 217 64
+129 217 64
+130 217 64
+131 217 64
+132 217 64
+133 217 64
+134 217 64
+135 217 64
+136 217 64
+137 217 64
+138 217 64
+139 217 64
+140 217 64
+141 217 64
+142 217 64
+143 217 64
+144 217 64
+145 217 64
+146 217 64
+147 217 64
+148 217 64
+149 217 64
+150 217 64
+151 217 64
+152 217 64
+153 217 64
+154 217 64
+155 217 64
+156 217 64
+157 217 64
+158 217 64
+159 217 64
+160 217 64
+161 217 64
+162 217 64
+163 217 64
+164 217 64
+165 217 64
+166 217 64
+167 217 64
+168 217 64
+169 217 64
+170 217 64
+171 217 64
+172 217 64
+173 217 64
+174 217 64
+175 217 64
+176 217 64
+177 217 64
+178 217 64
+179 217 64
+180 217 64
+181 217 64
+182 217 64
+183 217 64
+184 217 64
+185 217 64
+186 217 64
+187 217 64
+188 217 64
+189 217 64
+190 217 64
+191 217 64
+192 217 64
+193 217 64
+194 217 64
+195 217 64
+196 217 64
+197 217 64
+198 217 64
+199 217 64
+200 217 64
+201 217 64
+202 217 64
+203 217 64
+204 217 64
+205 217 64
+206 217 64
+207 217 64
+208 217 64
+209 217 64
+210 217 64
+211 217 64
+212 217 64
+213 217 64
+214 217 64
+215 217 64
+216 217 64
+217 217 64
+218 217 64
+219 217 64
+220 217 64
+221 217 64
+222 217 64
+223 217 64
+224 217 64
+225 217 64
+226 217 64
+227 217 64
+228 217 64
+229 217 64
+230 217 64
+231 217 64
+232 217 64
+233 217 64
+234 217 64
+235 217 64
+236 217 64
+237 217 64
+238 217 64
+239 217 64
+240 217 64
+241 217 64
+242 217 64
+243 217 64
+244 217 64
+245 217 64
+246 217 64
+247 217 64
+248 217 64
+249 217 64
+250 217 64
+251 217 64
+252 217 64
+253 217 64
+254 217 64
+255 217 64
+0 216 64
+1 216 64
+2 216 64
+3 216 64
+4 216 64
+5 216 64
+6 216 64
+7 216 64
+8 216 64
+9 216 64
+10 216 64
+11 216 64
+12 216 64
+13 216 64
+14 216 64
+15 216 64
+16 216 64
+17 216 64
+18 216 64
+19 216 64
+20 216 64
+21 216 64
+22 216 64
+23 216 64
+24 216 64
+25 216 64
+26 216 64
+27 216 64
+28 216 64
+29 216 64
+30 216 64
+31 216 64
+32 216 64
+33 216 64
+34 216 64
+35 216 64
+36 216 64
+37 216 64
+38 216 64
+39 216 64
+40 216 64
+41 216 64
+42 216 64
+43 216 64
+44 216 64
+45 216 64
+46 216 64
+47 216 64
+48 216 64
+49 216 64
+50 216 64
+51 216 64
+52 216 64
+53 216 64
+54 216 64
+55 216 64
+56 216 64
+57 216 64
+58 216 64
+59 216 64
+60 216 64
+61 216 64
+62 216 64
+63 216 64
+64 216 64
+65 216 64
+66 216 64
+67 216 64
+68 216 64
+69 216 64
+70 216 64
+71 216 64
+72 216 64
+73 216 64
+74 216 64
+75 216 64
+76 216 64
+77 216 64
+78 216 64
+79 216 64
+80 216 64
+81 216 64
+82 216 64
+83 216 64
+84 216 64
+85 216 64
+86 216 64
+87 216 64
+88 216 64
+89 216 64
+90 216 64
+91 216 64
+92 216 64
+93 216 64
+94 216 64
+95 216 64
+96 216 64
+97 216 64
+98 216 64
+99 216 64
+100 216 64
+101 216 64
+102 216 64
+103 216 64
+104 216 64
+105 216 64
+106 216 64
+107 216 64
+108 216 64
+109 216 64
+110 216 64
+111 216 64
+112 216 64
+113 216 64
+114 216 64
+115 216 64
+116 216 64
+117 216 64
+118 216 64
+119 216 64
+120 216 64
+121 216 64
+122 216 64
+123 216 64
+124 216 64
+125 216 64
+126 216 64
+127 216 64
+128 216 64
+129 216 64
+130 216 64
+131 216 64
+132 216 64
+133 216 64
+134 216 64
+135 216 64
+136 216 64
+137 216 64
+138 216 64
+139 216 64
+140 216 64
+141 216 64
+142 216 64
+143 216 64
+144 216 64
+145 216 64
+146 216 64
+147 216 64
+148 216 64
+149 216 64
+150 216 64
+151 216 64
+152 216 64
+153 216 64
+154 216 64
+155 216 64
+156 216 64
+157 216 64
+158 216 64
+159 216 64
+160 216 64
+161 216 64
+162 216 64
+163 216 64
+164 216 64
+165 216 64
+166 216 64
+167 216 64
+168 216 64
+169 216 64
+170 216 64
+171 216 64
+172 216 64
+173 216 64
+174 216 64
+175 216 64
+176 216 64
+177 216 64
+178 216 64
+179 216 64
+180 216 64
+181 216 64
+182 216 64
+183 216 64
+184 216 64
+185 216 64
+186 216 64
+187 216 64
+188 216 64
+189 216 64
+190 216 64
+191 216 64
+192 216 64
+193 216 64
+194 216 64
+195 216 64
+196 216 64
+197 216 64
+198 216 64
+199 216 64
+200 216 64
+201 216 64
+202 216 64
+203 216 64
+204 216 64
+205 216 64
+206 216 64
+207 216 64
+208 216 64
+209 216 64
+210 216 64
+211 216 64
+212 216 64
+213 216 64
+214 216 64
+215 216 64
+216 216 64
+217 216 64
+218 216 64
+219 216 64
+220 216 64
+221 216 64
+222 216 64
+223 216 64
+224 216 64
+225 216 64
+226 216 64
+227 216 64
+228 216 64
+229 216 64
+230 216 64
+231 216 64
+232 216 64
+233 216 64
+234 216 64
+235 216 64
+236 216 64
+237 216 64
+238 216 64
+239 216 64
+240 216 64
+241 216 64
+242 216 64
+243 216 64
+244 216 64
+245 216 64
+246 216 64
+247 216 64
+248 216 64
+249 216 64
+250 216 64
+251 216 64
+252 216 64
+253 216 64
+254 216 64
+255 216 64
+0 215 64
+1 215 64
+2 215 64
+3 215 64
+4 215 64
+5 215 64
+6 215 64
+7 215 64
+8 215 64
+9 215 64
+10 215 64
+11 215 64
+12 215 64
+13 215 64
+14 215 64
+15 215 64
+16 215 64
+17 215 64
+18 215 64
+19 215 64
+20 215 64
+21 215 64
+22 215 64
+23 215 64
+24 215 64
+25 215 64
+26 215 64
+27 215 64
+28 215 64
+29 215 64
+30 215 64
+31 215 64
+32 215 64
+33 215 64
+34 215 64
+35 215 64
+36 215 64
+37 215 64
+38 215 64
+39 215 64
+40 215 64
+41 215 64
+42 215 64
+43 215 64
+44 215 64
+45 215 64
+46 215 64
+47 215 64
+48 215 64
+49 215 64
+50 215 64
+51 215 64
+52 215 64
+53 215 64
+54 215 64
+55 215 64
+56 215 64
+57 215 64
+58 215 64
+59 215 64
+60 215 64
+61 215 64
+62 215 64
+63 215 64
+64 215 64
+65 215 64
+66 215 64
+67 215 64
+68 215 64
+69 215 64
+70 215 64
+71 215 64
+72 215 64
+73 215 64
+74 215 64
+75 215 64
+76 215 64
+77 215 64
+78 215 64
+79 215 64
+80 215 64
+81 215 64
+82 215 64
+83 215 64
+84 215 64
+85 215 64
+86 215 64
+87 215 64
+88 215 64
+89 215 64
+90 215 64
+91 215 64
+92 215 64
+93 215 64
+94 215 64
+95 215 64
+96 215 64
+97 215 64
+98 215 64
+99 215 64
+100 215 64
+101 215 64
+102 215 64
+103 215 64
+104 215 64
+105 215 64
+106 215 64
+107 215 64
+108 215 64
+109 215 64
+110 215 64
+111 215 64
+112 215 64
+113 215 64
+114 215 64
+115 215 64
+116 215 64
+117 215 64
+118 215 64
+119 215 64
+120 215 64
+121 215 64
+122 215 64
+123 215 64
+124 215 64
+125 215 64
+126 215 64
+127 215 64
+128 215 64
+129 215 64
+130 215 64
+131 215 64
+132 215 64
+133 215 64
+134 215 64
+135 215 64
+136 215 64
+137 215 64
+138 215 64
+139 215 64
+140 215 64
+141 215 64
+142 215 64
+143 215 64
+144 215 64
+145 215 64
+146 215 64
+147 215 64
+148 215 64
+149 215 64
+150 215 64
+151 215 64
+152 215 64
+153 215 64
+154 215 64
+155 215 64
+156 215 64
+157 215 64
+158 215 64
+159 215 64
+160 215 64
+161 215 64
+162 215 64
+163 215 64
+164 215 64
+165 215 64
+166 215 64
+167 215 64
+168 215 64
+169 215 64
+170 215 64
+171 215 64
+172 215 64
+173 215 64
+174 215 64
+175 215 64
+176 215 64
+177 215 64
+178 215 64
+179 215 64
+180 215 64
+181 215 64
+182 215 64
+183 215 64
+184 215 64
+185 215 64
+186 215 64
+187 215 64
+188 215 64
+189 215 64
+190 215 64
+191 215 64
+192 215 64
+193 215 64
+194 215 64
+195 215 64
+196 215 64
+197 215 64
+198 215 64
+199 215 64
+200 215 64
+201 215 64
+202 215 64
+203 215 64
+204 215 64
+205 215 64
+206 215 64
+207 215 64
+208 215 64
+209 215 64
+210 215 64
+211 215 64
+212 215 64
+213 215 64
+214 215 64
+215 215 64
+216 215 64
+217 215 64
+218 215 64
+219 215 64
+220 215 64
+221 215 64
+222 215 64
+223 215 64
+224 215 64
+225 215 64
+226 215 64
+227 215 64
+228 215 64
+229 215 64
+230 215 64
+231 215 64
+232 215 64
+233 215 64
+234 215 64
+235 215 64
+236 215 64
+237 215 64
+238 215 64
+239 215 64
+240 215 64
+241 215 64
+242 215 64
+243 215 64
+244 215 64
+245 215 64
+246 215 64
+247 215 64
+248 215 64
+249 215 64
+250 215 64
+251 215 64
+252 215 64
+253 215 64
+254 215 64
+255 215 64
+0 214 64
+1 214 64
+2 214 64
+3 214 64
+4 214 64
+5 214 64
+6 214 64
+7 214 64
+8 214 64
+9 214 64
+10 214 64
+11 214 64
+12 214 64
+13 214 64
+14 214 64
+15 214 64
+16 214 64
+17 214 64
+18 214 64
+19 214 64
+20 214 64
+21 214 64
+22 214 64
+23 214 64
+24 214 64
+25 214 64
+26 214 64
+27 214 64
+28 214 64
+29 214 64
+30 214 64
+31 214 64
+32 214 64
+33 214 64
+34 214 64
+35 214 64
+36 214 64
+37 214 64
+38 214 64
+39 214 64
+40 214 64
+41 214 64
+42 214 64
+43 214 64
+44 214 64
+45 214 64
+46 214 64
+47 214 64
+48 214 64
+49 214 64
+50 214 64
+51 214 64
+52 214 64
+53 214 64
+54 214 64
+55 214 64
+56 214 64
+57 214 64
+58 214 64
+59 214 64
+60 214 64
+61 214 64
+62 214 64
+63 214 64
+64 214 64
+65 214 64
+66 214 64
+67 214 64
+68 214 64
+69 214 64
+70 214 64
+71 214 64
+72 214 64
+73 214 64
+74 214 64
+75 214 64
+76 214 64
+77 214 64
+78 214 64
+79 214 64
+80 214 64
+81 214 64
+82 214 64
+83 214 64
+84 214 64
+85 214 64
+86 214 64
+87 214 64
+88 214 64
+89 214 64
+90 214 64
+91 214 64
+92 214 64
+93 214 64
+94 214 64
+95 214 64
+96 214 64
+97 214 64
+98 214 64
+99 214 64
+100 214 64
+101 214 64
+102 214 64
+103 214 64
+104 214 64
+105 214 64
+106 214 64
+107 214 64
+108 214 64
+109 214 64
+110 214 64
+111 214 64
+112 214 64
+113 214 64
+114 214 64
+115 214 64
+116 214 64
+117 214 64
+118 214 64
+119 214 64
+120 214 64
+121 214 64
+122 214 64
+123 214 64
+124 214 64
+125 214 64
+126 214 64
+127 214 64
+128 214 64
+129 214 64
+130 214 64
+131 214 64
+132 214 64
+133 214 64
+134 214 64
+135 214 64
+136 214 64
+137 214 64
+138 214 64
+139 214 64
+140 214 64
+141 214 64
+142 214 64
+143 214 64
+144 214 64
+145 214 64
+146 214 64
+147 214 64
+148 214 64
+149 214 64
+150 214 64
+151 214 64
+152 214 64
+153 214 64
+154 214 64
+155 214 64
+156 214 64
+157 214 64
+158 214 64
+159 214 64
+160 214 64
+161 214 64
+162 214 64
+163 214 64
+164 214 64
+165 214 64
+166 214 64
+167 214 64
+168 214 64
+169 214 64
+170 214 64
+171 214 64
+172 214 64
+173 214 64
+174 214 64
+175 214 64
+176 214 64
+177 214 64
+178 214 64
+179 214 64
+180 214 64
+181 214 64
+182 214 64
+183 214 64
+184 214 64
+185 214 64
+186 214 64
+187 214 64
+188 214 64
+189 214 64
+190 214 64
+191 214 64
+192 214 64
+193 214 64
+194 214 64
+195 214 64
+196 214 64
+197 214 64
+198 214 64
+199 214 64
+200 214 64
+201 214 64
+202 214 64
+203 214 64
+204 214 64
+205 214 64
+206 214 64
+207 214 64
+208 214 64
+209 214 64
+210 214 64
+211 214 64
+212 214 64
+213 214 64
+214 214 64
+215 214 64
+216 214 64
+217 214 64
+218 214 64
+219 214 64
+220 214 64
+221 214 64
+222 214 64
+223 214 64
+224 214 64
+225 214 64
+226 214 64
+227 214 64
+228 214 64
+229 214 64
+230 214 64
+231 214 64
+232 214 64
+233 214 64
+234 214 64
+235 214 64
+236 214 64
+237 214 64
+238 214 64
+239 214 64
+240 214 64
+241 214 64
+242 214 64
+243 214 64
+244 214 64
+245 214 64
+246 214 64
+247 214 64
+248 214 64
+249 214 64
+250 214 64
+251 214 64
+252 214 64
+253 214 64
+254 214 64
+255 214 64
+0 213 64
+1 213 64
+2 213 64
+3 213 64
+4 213 64
+5 213 64
+6 213 64
+7 213 64
+8 213 64
+9 213 64
+10 213 64
+11 213 64
+12 213 64
+13 213 64
+14 213 64
+15 213 64
+16 213 64
+17 213 64
+18 213 64
+19 213 64
+20 213 64
+21 213 64
+22 213 64
+23 213 64
+24 213 64
+25 213 64
+26 213 64
+27 213 64
+28 213 64
+29 213 64
+30 213 64
+31 213 64
+32 213 64
+33 213 64
+34 213 64
+35 213 64
+36 213 64
+37 213 64
+38 213 64
+39 213 64
+40 213 64
+41 213 64
+42 213 64
+43 213 64
+44 213 64
+45 213 64
+46 213 64
+47 213 64
+48 213 64
+49 213 64
+50 213 64
+51 213 64
+52 213 64
+53 213 64
+54 213 64
+55 213 64
+56 213 64
+57 213 64
+58 213 64
+59 213 64
+60 213 64
+61 213 64
+62 213 64
+63 213 64
+64 213 64
+65 213 64
+66 213 64
+67 213 64
+68 213 64
+69 213 64
+70 213 64
+71 213 64
+72 213 64
+73 213 64
+74 213 64
+75 213 64
+76 213 64
+77 213 64
+78 213 64
+79 213 64
+80 213 64
+81 213 64
+82 213 64
+83 213 64
+84 213 64
+85 213 64
+86 213 64
+87 213 64
+88 213 64
+89 213 64
+90 213 64
+91 213 64
+92 213 64
+93 213 64
+94 213 64
+95 213 64
+96 213 64
+97 213 64
+98 213 64
+99 213 64
+100 213 64
+101 213 64
+102 213 64
+103 213 64
+104 213 64
+105 213 64
+106 213 64
+107 213 64
+108 213 64
+109 213 64
+110 213 64
+111 213 64
+112 213 64
+113 213 64
+114 213 64
+115 213 64
+116 213 64
+117 213 64
+118 213 64
+119 213 64
+120 213 64
+121 213 64
+122 213 64
+123 213 64
+124 213 64
+125 213 64
+126 213 64
+127 213 64
+128 213 64
+129 213 64
+130 213 64
+131 213 64
+132 213 64
+133 213 64
+134 213 64
+135 213 64
+136 213 64
+137 213 64
+138 213 64
+139 213 64
+140 213 64
+141 213 64
+142 213 64
+143 213 64
+144 213 64
+145 213 64
+146 213 64
+147 213 64
+148 213 64
+149 213 64
+150 213 64
+151 213 64
+152 213 64
+153 213 64
+154 213 64
+155 213 64
+156 213 64
+157 213 64
+158 213 64
+159 213 64
+160 213 64
+161 213 64
+162 213 64
+163 213 64
+164 213 64
+165 213 64
+166 213 64
+167 213 64
+168 213 64
+169 213 64
+170 213 64
+171 213 64
+172 213 64
+173 213 64
+174 213 64
+175 213 64
+176 213 64
+177 213 64
+178 213 64
+179 213 64
+180 213 64
+181 213 64
+182 213 64
+183 213 64
+184 213 64
+185 213 64
+186 213 64
+187 213 64
+188 213 64
+189 213 64
+190 213 64
+191 213 64
+192 213 64
+193 213 64
+194 213 64
+195 213 64
+196 213 64
+197 213 64
+198 213 64
+199 213 64
+200 213 64
+201 213 64
+202 213 64
+203 213 64
+204 213 64
+205 213 64
+206 213 64
+207 213 64
+208 213 64
+209 213 64
+210 213 64
+211 213 64
+212 213 64
+213 213 64
+214 213 64
+215 213 64
+216 213 64
+217 213 64
+218 213 64
+219 213 64
+220 213 64
+221 213 64
+222 213 64
+223 213 64
+224 213 64
+225 213 64
+226 213 64
+227 213 64
+228 213 64
+229 213 64
+230 213 64
+231 213 64
+232 213 64
+233 213 64
+234 213 64
+235 213 64
+236 213 64
+237 213 64
+238 213 64
+239 213 64
+240 213 64
+241 213 64
+242 213 64
+243 213 64
+244 213 64
+245 213 64
+246 213 64
+247 213 64
+248 213 64
+249 213 64
+250 213 64
+251 213 64
+252 213 64
+253 213 64
+254 213 64
+255 213 64
+0 212 64
+1 212 64
+2 212 64
+3 212 64
+4 212 64
+5 212 64
+6 212 64
+7 212 64
+8 212 64
+9 212 64
+10 212 64
+11 212 64
+12 212 64
+13 212 64
+14 212 64
+15 212 64
+16 212 64
+17 212 64
+18 212 64
+19 212 64
+20 212 64
+21 212 64
+22 212 64
+23 212 64
+24 212 64
+25 212 64
+26 212 64
+27 212 64
+28 212 64
+29 212 64
+30 212 64
+31 212 64
+32 212 64
+33 212 64
+34 212 64
+35 212 64
+36 212 64
+37 212 64
+38 212 64
+39 212 64
+40 212 64
+41 212 64
+42 212 64
+43 212 64
+44 212 64
+45 212 64
+46 212 64
+47 212 64
+48 212 64
+49 212 64
+50 212 64
+51 212 64
+52 212 64
+53 212 64
+54 212 64
+55 212 64
+56 212 64
+57 212 64
+58 212 64
+59 212 64
+60 212 64
+61 212 64
+62 212 64
+63 212 64
+64 212 64
+65 212 64
+66 212 64
+67 212 64
+68 212 64
+69 212 64
+70 212 64
+71 212 64
+72 212 64
+73 212 64
+74 212 64
+75 212 64
+76 212 64
+77 212 64
+78 212 64
+79 212 64
+80 212 64
+81 212 64
+82 212 64
+83 212 64
+84 212 64
+85 212 64
+86 212 64
+87 212 64
+88 212 64
+89 212 64
+90 212 64
+91 212 64
+92 212 64
+93 212 64
+94 212 64
+95 212 64
+96 212 64
+97 212 64
+98 212 64
+99 212 64
+100 212 64
+101 212 64
+102 212 64
+103 212 64
+104 212 64
+105 212 64
+106 212 64
+107 212 64
+108 212 64
+109 212 64
+110 212 64
+111 212 64
+112 212 64
+113 212 64
+114 212 64
+115 212 64
+116 212 64
+117 212 64
+118 212 64
+119 212 64
+120 212 64
+121 212 64
+122 212 64
+123 212 64
+124 212 64
+125 212 64
+126 212 64
+127 212 64
+128 212 64
+129 212 64
+130 212 64
+131 212 64
+132 212 64
+133 212 64
+134 212 64
+135 212 64
+136 212 64
+137 212 64
+138 212 64
+139 212 64
+140 212 64
+141 212 64
+142 212 64
+143 212 64
+144 212 64
+145 212 64
+146 212 64
+147 212 64
+148 212 64
+149 212 64
+150 212 64
+151 212 64
+152 212 64
+153 212 64
+154 212 64
+155 212 64
+156 212 64
+157 212 64
+158 212 64
+159 212 64
+160 212 64
+161 212 64
+162 212 64
+163 212 64
+164 212 64
+165 212 64
+166 212 64
+167 212 64
+168 212 64
+169 212 64
+170 212 64
+171 212 64
+172 212 64
+173 212 64
+174 212 64
+175 212 64
+176 212 64
+177 212 64
+178 212 64
+179 212 64
+180 212 64
+181 212 64
+182 212 64
+183 212 64
+184 212 64
+185 212 64
+186 212 64
+187 212 64
+188 212 64
+189 212 64
+190 212 64
+191 212 64
+192 212 64
+193 212 64
+194 212 64
+195 212 64
+196 212 64
+197 212 64
+198 212 64
+199 212 64
+200 212 64
+201 212 64
+202 212 64
+203 212 64
+204 212 64
+205 212 64
+206 212 64
+207 212 64
+208 212 64
+209 212 64
+210 212 64
+211 212 64
+212 212 64
+213 212 64
+214 212 64
+215 212 64
+216 212 64
+217 212 64
+218 212 64
+219 212 64
+220 212 64
+221 212 64
+222 212 64
+223 212 64
+224 212 64
+225 212 64
+226 212 64
+227 212 64
+228 212 64
+229 212 64
+230 212 64
+231 212 64
+232 212 64
+233 212 64
+234 212 64
+235 212 64
+236 212 64
+237 212 64
+238 212 64
+239 212 64
+240 212 64
+241 212 64
+242 212 64
+243 212 64
+244 212 64
+245 212 64
+246 212 64
+247 212 64
+248 212 64
+249 212 64
+250 212 64
+251 212 64
+252 212 64
+253 212 64
+254 212 64
+255 212 64
+0 211 64
+1 211 64
+2 211 64
+3 211 64
+4 211 64
+5 211 64
+6 211 64
+7 211 64
+8 211 64
+9 211 64
+10 211 64
+11 211 64
+12 211 64
+13 211 64
+14 211 64
+15 211 64
+16 211 64
+17 211 64
+18 211 64
+19 211 64
+20 211 64
+21 211 64
+22 211 64
+23 211 64
+24 211 64
+25 211 64
+26 211 64
+27 211 64
+28 211 64
+29 211 64
+30 211 64
+31 211 64
+32 211 64
+33 211 64
+34 211 64
+35 211 64
+36 211 64
+37 211 64
+38 211 64
+39 211 64
+40 211 64
+41 211 64
+42 211 64
+43 211 64
+44 211 64
+45 211 64
+46 211 64
+47 211 64
+48 211 64
+49 211 64
+50 211 64
+51 211 64
+52 211 64
+53 211 64
+54 211 64
+55 211 64
+56 211 64
+57 211 64
+58 211 64
+59 211 64
+60 211 64
+61 211 64
+62 211 64
+63 211 64
+64 211 64
+65 211 64
+66 211 64
+67 211 64
+68 211 64
+69 211 64
+70 211 64
+71 211 64
+72 211 64
+73 211 64
+74 211 64
+75 211 64
+76 211 64
+77 211 64
+78 211 64
+79 211 64
+80 211 64
+81 211 64
+82 211 64
+83 211 64
+84 211 64
+85 211 64
+86 211 64
+87 211 64
+88 211 64
+89 211 64
+90 211 64
+91 211 64
+92 211 64
+93 211 64
+94 211 64
+95 211 64
+96 211 64
+97 211 64
+98 211 64
+99 211 64
+100 211 64
+101 211 64
+102 211 64
+103 211 64
+104 211 64
+105 211 64
+106 211 64
+107 211 64
+108 211 64
+109 211 64
+110 211 64
+111 211 64
+112 211 64
+113 211 64
+114 211 64
+115 211 64
+116 211 64
+117 211 64
+118 211 64
+119 211 64
+120 211 64
+121 211 64
+122 211 64
+123 211 64
+124 211 64
+125 211 64
+126 211 64
+127 211 64
+128 211 64
+129 211 64
+130 211 64
+131 211 64
+132 211 64
+133 211 64
+134 211 64
+135 211 64
+136 211 64
+137 211 64
+138 211 64
+139 211 64
+140 211 64
+141 211 64
+142 211 64
+143 211 64
+144 211 64
+145 211 64
+146 211 64
+147 211 64
+148 211 64
+149 211 64
+150 211 64
+151 211 64
+152 211 64
+153 211 64
+154 211 64
+155 211 64
+156 211 64
+157 211 64
+158 211 64
+159 211 64
+160 211 64
+161 211 64
+162 211 64
+163 211 64
+164 211 64
+165 211 64
+166 211 64
+167 211 64
+168 211 64
+169 211 64
+170 211 64
+171 211 64
+172 211 64
+173 211 64
+174 211 64
+175 211 64
+176 211 64
+177 211 64
+178 211 64
+179 211 64
+180 211 64
+181 211 64
+182 211 64
+183 211 64
+184 211 64
+185 211 64
+186 211 64
+187 211 64
+188 211 64
+189 211 64
+190 211 64
+191 211 64
+192 211 64
+193 211 64
+194 211 64
+195 211 64
+196 211 64
+197 211 64
+198 211 64
+199 211 64
+200 211 64
+201 211 64
+202 211 64
+203 211 64
+204 211 64
+205 211 64
+206 211 64
+207 211 64
+208 211 64
+209 211 64
+210 211 64
+211 211 64
+212 211 64
+213 211 64
+214 211 64
+215 211 64
+216 211 64
+217 211 64
+218 211 64
+219 211 64
+220 211 64
+221 211 64
+222 211 64
+223 211 64
+224 211 64
+225 211 64
+226 211 64
+227 211 64
+228 211 64
+229 211 64
+230 211 64
+231 211 64
+232 211 64
+233 211 64
+234 211 64
+235 211 64
+236 211 64
+237 211 64
+238 211 64
+239 211 64
+240 211 64
+241 211 64
+242 211 64
+243 211 64
+244 211 64
+245 211 64
+246 211 64
+247 211 64
+248 211 64
+249 211 64
+250 211 64
+251 211 64
+252 211 64
+253 211 64
+254 211 64
+255 211 64
+0 210 64
+1 210 64
+2 210 64
+3 210 64
+4 210 64
+5 210 64
+6 210 64
+7 210 64
+8 210 64
+9 210 64
+10 210 64
+11 210 64
+12 210 64
+13 210 64
+14 210 64
+15 210 64
+16 210 64
+17 210 64
+18 210 64
+19 210 64
+20 210 64
+21 210 64
+22 210 64
+23 210 64
+24 210 64
+25 210 64
+26 210 64
+27 210 64
+28 210 64
+29 210 64
+30 210 64
+31 210 64
+32 210 64
+33 210 64
+34 210 64
+35 210 64
+36 210 64
+37 210 64
+38 210 64
+39 210 64
+40 210 64
+41 210 64
+42 210 64
+43 210 64
+44 210 64
+45 210 64
+46 210 64
+47 210 64
+48 210 64
+49 210 64
+50 210 64
+51 210 64
+52 210 64
+53 210 64
+54 210 64
+55 210 64
+56 210 64
+57 210 64
+58 210 64
+59 210 64
+60 210 64
+61 210 64
+62 210 64
+63 210 64
+64 210 64
+65 210 64
+66 210 64
+67 210 64
+68 210 64
+69 210 64
+70 210 64
+71 210 64
+72 210 64
+73 210 64
+74 210 64
+75 210 64
+76 210 64
+77 210 64
+78 210 64
+79 210 64
+80 210 64
+81 210 64
+82 210 64
+83 210 64
+84 210 64
+85 210 64
+86 210 64
+87 210 64
+88 210 64
+89 210 64
+90 210 64
+91 210 64
+92 210 64
+93 210 64
+94 210 64
+95 210 64
+96 210 64
+97 210 64
+98 210 64
+99 210 64
+100 210 64
+101 210 64
+102 210 64
+103 210 64
+104 210 64
+105 210 64
+106 210 64
+107 210 64
+108 210 64
+109 210 64
+110 210 64
+111 210 64
+112 210 64
+113 210 64
+114 210 64
+115 210 64
+116 210 64
+117 210 64
+118 210 64
+119 210 64
+120 210 64
+121 210 64
+122 210 64
+123 210 64
+124 210 64
+125 210 64
+126 210 64
+127 210 64
+128 210 64
+129 210 64
+130 210 64
+131 210 64
+132 210 64
+133 210 64
+134 210 64
+135 210 64
+136 210 64
+137 210 64
+138 210 64
+139 210 64
+140 210 64
+141 210 64
+142 210 64
+143 210 64
+144 210 64
+145 210 64
+146 210 64
+147 210 64
+148 210 64
+149 210 64
+150 210 64
+151 210 64
+152 210 64
+153 210 64
+154 210 64
+155 210 64
+156 210 64
+157 210 64
+158 210 64
+159 210 64
+160 210 64
+161 210 64
+162 210 64
+163 210 64
+164 210 64
+165 210 64
+166 210 64
+167 210 64
+168 210 64
+169 210 64
+170 210 64
+171 210 64
+172 210 64
+173 210 64
+174 210 64
+175 210 64
+176 210 64
+177 210 64
+178 210 64
+179 210 64
+180 210 64
+181 210 64
+182 210 64
+183 210 64
+184 210 64
+185 210 64
+186 210 64
+187 210 64
+188 210 64
+189 210 64
+190 210 64
+191 210 64
+192 210 64
+193 210 64
+194 210 64
+195 210 64
+196 210 64
+197 210 64
+198 210 64
+199 210 64
+200 210 64
+201 210 64
+202 210 64
+203 210 64
+204 210 64
+205 210 64
+206 210 64
+207 210 64
+208 210 64
+209 210 64
+210 210 64
+211 210 64
+212 210 64
+213 210 64
+214 210 64
+215 210 64
+216 210 64
+217 210 64
+218 210 64
+219 210 64
+220 210 64
+221 210 64
+222 210 64
+223 210 64
+224 210 64
+225 210 64
+226 210 64
+227 210 64
+228 210 64
+229 210 64
+230 210 64
+231 210 64
+232 210 64
+233 210 64
+234 210 64
+235 210 64
+236 210 64
+237 210 64
+238 210 64
+239 210 64
+240 210 64
+241 210 64
+242 210 64
+243 210 64
+244 210 64
+245 210 64
+246 210 64
+247 210 64
+248 210 64
+249 210 64
+250 210 64
+251 210 64
+252 210 64
+253 210 64
+254 210 64
+255 210 64
+0 209 64
+1 209 64
+2 209 64
+3 209 64
+4 209 64
+5 209 64
+6 209 64
+7 209 64
+8 209 64
+9 209 64
+10 209 64
+11 209 64
+12 209 64
+13 209 64
+14 209 64
+15 209 64
+16 209 64
+17 209 64
+18 209 64
+19 209 64
+20 209 64
+21 209 64
+22 209 64
+23 209 64
+24 209 64
+25 209 64
+26 209 64
+27 209 64
+28 209 64
+29 209 64
+30 209 64
+31 209 64
+32 209 64
+33 209 64
+34 209 64
+35 209 64
+36 209 64
+37 209 64
+38 209 64
+39 209 64
+40 209 64
+41 209 64
+42 209 64
+43 209 64
+44 209 64
+45 209 64
+46 209 64
+47 209 64
+48 209 64
+49 209 64
+50 209 64
+51 209 64
+52 209 64
+53 209 64
+54 209 64
+55 209 64
+56 209 64
+57 209 64
+58 209 64
+59 209 64
+60 209 64
+61 209 64
+62 209 64
+63 209 64
+64 209 64
+65 209 64
+66 209 64
+67 209 64
+68 209 64
+69 209 64
+70 209 64
+71 209 64
+72 209 64
+73 209 64
+74 209 64
+75 209 64
+76 209 64
+77 209 64
+78 209 64
+79 209 64
+80 209 64
+81 209 64
+82 209 64
+83 209 64
+84 209 64
+85 209 64
+86 209 64
+87 209 64
+88 209 64
+89 209 64
+90 209 64
+91 209 64
+92 209 64
+93 209 64
+94 209 64
+95 209 64
+96 209 64
+97 209 64
+98 209 64
+99 209 64
+100 209 64
+101 209 64
+102 209 64
+103 209 64
+104 209 64
+105 209 64
+106 209 64
+107 209 64
+108 209 64
+109 209 64
+110 209 64
+111 209 64
+112 209 64
+113 209 64
+114 209 64
+115 209 64
+116 209 64
+117 209 64
+118 209 64
+119 209 64
+120 209 64
+121 209 64
+122 209 64
+123 209 64
+124 209 64
+125 209 64
+126 209 64
+127 209 64
+128 209 64
+129 209 64
+130 209 64
+131 209 64
+132 209 64
+133 209 64
+134 209 64
+135 209 64
+136 209 64
+137 209 64
+138 209 64
+139 209 64
+140 209 64
+141 209 64
+142 209 64
+143 209 64
+144 209 64
+145 209 64
+146 209 64
+147 209 64
+148 209 64
+149 209 64
+150 209 64
+151 209 64
+152 209 64
+153 209 64
+154 209 64
+155 209 64
+156 209 64
+157 209 64
+158 209 64
+159 209 64
+160 209 64
+161 209 64
+162 209 64
+163 209 64
+164 209 64
+165 209 64
+166 209 64
+167 209 64
+168 209 64
+169 209 64
+170 209 64
+171 209 64
+172 209 64
+173 209 64
+174 209 64
+175 209 64
+176 209 64
+177 209 64
+178 209 64
+179 209 64
+180 209 64
+181 209 64
+182 209 64
+183 209 64
+184 209 64
+185 209 64
+186 209 64
+187 209 64
+188 209 64
+189 209 64
+190 209 64
+191 209 64
+192 209 64
+193 209 64
+194 209 64
+195 209 64
+196 209 64
+197 209 64
+198 209 64
+199 209 64
+200 209 64
+201 209 64
+202 209 64
+203 209 64
+204 209 64
+205 209 64
+206 209 64
+207 209 64
+208 209 64
+209 209 64
+210 209 64
+211 209 64
+212 209 64
+213 209 64
+214 209 64
+215 209 64
+216 209 64
+217 209 64
+218 209 64
+219 209 64
+220 209 64
+221 209 64
+222 209 64
+223 209 64
+224 209 64
+225 209 64
+226 209 64
+227 209 64
+228 209 64
+229 209 64
+230 209 64
+231 209 64
+232 209 64
+233 209 64
+234 209 64
+235 209 64
+236 209 64
+237 209 64
+238 209 64
+239 209 64
+240 209 64
+241 209 64
+242 209 64
+243 209 64
+244 209 64
+245 209 64
+246 209 64
+247 209 64
+248 209 64
+249 209 64
+250 209 64
+251 209 64
+252 209 64
+253 209 64
+254 209 64
+255 209 64
+0 208 64
+1 208 64
+2 208 64
+3 208 64
+4 208 64
+5 208 64
+6 208 64
+7 208 64
+8 208 64
+9 208 64
+10 208 64
+11 208 64
+12 208 64
+13 208 64
+14 208 64
+15 208 64
+16 208 64
+17 208 64
+18 208 64
+19 208 64
+20 208 64
+21 208 64
+22 208 64
+23 208 64
+24 208 64
+25 208 64
+26 208 64
+27 208 64
+28 208 64
+29 208 64
+30 208 64
+31 208 64
+32 208 64
+33 208 64
+34 208 64
+35 208 64
+36 208 64
+37 208 64
+38 208 64
+39 208 64
+40 208 64
+41 208 64
+42 208 64
+43 208 64
+44 208 64
+45 208 64
+46 208 64
+47 208 64
+48 208 64
+49 208 64
+50 208 64
+51 208 64
+52 208 64
+53 208 64
+54 208 64
+55 208 64
+56 208 64
+57 208 64
+58 208 64
+59 208 64
+60 208 64
+61 208 64
+62 208 64
+63 208 64
+64 208 64
+65 208 64
+66 208 64
+67 208 64
+68 208 64
+69 208 64
+70 208 64
+71 208 64
+72 208 64
+73 208 64
+74 208 64
+75 208 64
+76 208 64
+77 208 64
+78 208 64
+79 208 64
+80 208 64
+81 208 64
+82 208 64
+83 208 64
+84 208 64
+85 208 64
+86 208 64
+87 208 64
+88 208 64
+89 208 64
+90 208 64
+91 208 64
+92 208 64
+93 208 64
+94 208 64
+95 208 64
+96 208 64
+97 208 64
+98 208 64
+99 208 64
+100 208 64
+101 208 64
+102 208 64
+103 208 64
+104 208 64
+105 208 64
+106 208 64
+107 208 64
+108 208 64
+109 208 64
+110 208 64
+111 208 64
+112 208 64
+113 208 64
+114 208 64
+115 208 64
+116 208 64
+117 208 64
+118 208 64
+119 208 64
+120 208 64
+121 208 64
+122 208 64
+123 208 64
+124 208 64
+125 208 64
+126 208 64
+127 208 64
+128 208 64
+129 208 64
+130 208 64
+131 208 64
+132 208 64
+133 208 64
+134 208 64
+135 208 64
+136 208 64
+137 208 64
+138 208 64
+139 208 64
+140 208 64
+141 208 64
+142 208 64
+143 208 64
+144 208 64
+145 208 64
+146 208 64
+147 208 64
+148 208 64
+149 208 64
+150 208 64
+151 208 64
+152 208 64
+153 208 64
+154 208 64
+155 208 64
+156 208 64
+157 208 64
+158 208 64
+159 208 64
+160 208 64
+161 208 64
+162 208 64
+163 208 64
+164 208 64
+165 208 64
+166 208 64
+167 208 64
+168 208 64
+169 208 64
+170 208 64
+171 208 64
+172 208 64
+173 208 64
+174 208 64
+175 208 64
+176 208 64
+177 208 64
+178 208 64
+179 208 64
+180 208 64
+181 208 64
+182 208 64
+183 208 64
+184 208 64
+185 208 64
+186 208 64
+187 208 64
+188 208 64
+189 208 64
+190 208 64
+191 208 64
+192 208 64
+193 208 64
+194 208 64
+195 208 64
+196 208 64
+197 208 64
+198 208 64
+199 208 64
+200 208 64
+201 208 64
+202 208 64
+203 208 64
+204 208 64
+205 208 64
+206 208 64
+207 208 64
+208 208 64
+209 208 64
+210 208 64
+211 208 64
+212 208 64
+213 208 64
+214 208 64
+215 208 64
+216 208 64
+217 208 64
+218 208 64
+219 208 64
+220 208 64
+221 208 64
+222 208 64
+223 208 64
+224 208 64
+225 208 64
+226 208 64
+227 208 64
+228 208 64
+229 208 64
+230 208 64
+231 208 64
+232 208 64
+233 208 64
+234 208 64
+235 208 64
+236 208 64
+237 208 64
+238 208 64
+239 208 64
+240 208 64
+241 208 64
+242 208 64
+243 208 64
+244 208 64
+245 208 64
+246 208 64
+247 208 64
+248 208 64
+249 208 64
+250 208 64
+251 208 64
+252 208 64
+253 208 64
+254 208 64
+255 208 64
+0 207 64
+1 207 64
+2 207 64
+3 207 64
+4 207 64
+5 207 64
+6 207 64
+7 207 64
+8 207 64
+9 207 64
+10 207 64
+11 207 64
+12 207 64
+13 207 64
+14 207 64
+15 207 64
+16 207 64
+17 207 64
+18 207 64
+19 207 64
+20 207 64
+21 207 64
+22 207 64
+23 207 64
+24 207 64
+25 207 64
+26 207 64
+27 207 64
+28 207 64
+29 207 64
+30 207 64
+31 207 64
+32 207 64
+33 207 64
+34 207 64
+35 207 64
+36 207 64
+37 207 64
+38 207 64
+39 207 64
+40 207 64
+41 207 64
+42 207 64
+43 207 64
+44 207 64
+45 207 64
+46 207 64
+47 207 64
+48 207 64
+49 207 64
+50 207 64
+51 207 64
+52 207 64
+53 207 64
+54 207 64
+55 207 64
+56 207 64
+57 207 64
+58 207 64
+59 207 64
+60 207 64
+61 207 64
+62 207 64
+63 207 64
+64 207 64
+65 207 64
+66 207 64
+67 207 64
+68 207 64
+69 207 64
+70 207 64
+71 207 64
+72 207 64
+73 207 64
+74 207 64
+75 207 64
+76 207 64
+77 207 64
+78 207 64
+79 207 64
+80 207 64
+81 207 64
+82 207 64
+83 207 64
+84 207 64
+85 207 64
+86 207 64
+87 207 64
+88 207 64
+89 207 64
+90 207 64
+91 207 64
+92 207 64
+93 207 64
+94 207 64
+95 207 64
+96 207 64
+97 207 64
+98 207 64
+99 207 64
+100 207 64
+101 207 64
+102 207 64
+103 207 64
+104 207 64
+105 207 64
+106 207 64
+107 207 64
+108 207 64
+109 207 64
+110 207 64
+111 207 64
+112 207 64
+113 207 64
+114 207 64
+115 207 64
+116 207 64
+117 207 64
+118 207 64
+119 207 64
+120 207 64
+121 207 64
+122 207 64
+123 207 64
+124 207 64
+125 207 64
+126 207 64
+127 207 64
+128 207 64
+129 207 64
+130 207 64
+131 207 64
+132 207 64
+133 207 64
+134 207 64
+135 207 64
+136 207 64
+137 207 64
+138 207 64
+139 207 64
+140 207 64
+141 207 64
+142 207 64
+143 207 64
+144 207 64
+145 207 64
+146 207 64
+147 207 64
+148 207 64
+149 207 64
+150 207 64
+151 207 64
+152 207 64
+153 207 64
+154 207 64
+155 207 64
+156 207 64
+157 207 64
+158 207 64
+159 207 64
+160 207 64
+161 207 64
+162 207 64
+163 207 64
+164 207 64
+165 207 64
+166 207 64
+167 207 64
+168 207 64
+169 207 64
+170 207 64
+171 207 64
+172 207 64
+173 207 64
+174 207 64
+175 207 64
+176 207 64
+177 207 64
+178 207 64
+179 207 64
+180 207 64
+181 207 64
+182 207 64
+183 207 64
+184 207 64
+185 207 64
+186 207 64
+187 207 64
+188 207 64
+189 207 64
+190 207 64
+191 207 64
+192 207 64
+193 207 64
+194 207 64
+195 207 64
+196 207 64
+197 207 64
+198 207 64
+199 207 64
+200 207 64
+201 207 64
+202 207 64
+203 207 64
+204 207 64
+205 207 64
+206 207 64
+207 207 64
+208 207 64
+209 207 64
+210 207 64
+211 207 64
+212 207 64
+213 207 64
+214 207 64
+215 207 64
+216 207 64
+217 207 64
+218 207 64
+219 207 64
+220 207 64
+221 207 64
+222 207 64
+223 207 64
+224 207 64
+225 207 64
+226 207 64
+227 207 64
+228 207 64
+229 207 64
+230 207 64
+231 207 64
+232 207 64
+233 207 64
+234 207 64
+235 207 64
+236 207 64
+237 207 64
+238 207 64
+239 207 64
+240 207 64
+241 207 64
+242 207 64
+243 207 64
+244 207 64
+245 207 64
+246 207 64
+247 207 64
+248 207 64
+249 207 64
+250 207 64
+251 207 64
+252 207 64
+253 207 64
+254 207 64
+255 207 64
+0 206 64
+1 206 64
+2 206 64
+3 206 64
+4 206 64
+5 206 64
+6 206 64
+7 206 64
+8 206 64
+9 206 64
+10 206 64
+11 206 64
+12 206 64
+13 206 64
+14 206 64
+15 206 64
+16 206 64
+17 206 64
+18 206 64
+19 206 64
+20 206 64
+21 206 64
+22 206 64
+23 206 64
+24 206 64
+25 206 64
+26 206 64
+27 206 64
+28 206 64
+29 206 64
+30 206 64
+31 206 64
+32 206 64
+33 206 64
+34 206 64
+35 206 64
+36 206 64
+37 206 64
+38 206 64
+39 206 64
+40 206 64
+41 206 64
+42 206 64
+43 206 64
+44 206 64
+45 206 64
+46 206 64
+47 206 64
+48 206 64
+49 206 64
+50 206 64
+51 206 64
+52 206 64
+53 206 64
+54 206 64
+55 206 64
+56 206 64
+57 206 64
+58 206 64
+59 206 64
+60 206 64
+61 206 64
+62 206 64
+63 206 64
+64 206 64
+65 206 64
+66 206 64
+67 206 64
+68 206 64
+69 206 64
+70 206 64
+71 206 64
+72 206 64
+73 206 64
+74 206 64
+75 206 64
+76 206 64
+77 206 64
+78 206 64
+79 206 64
+80 206 64
+81 206 64
+82 206 64
+83 206 64
+84 206 64
+85 206 64
+86 206 64
+87 206 64
+88 206 64
+89 206 64
+90 206 64
+91 206 64
+92 206 64
+93 206 64
+94 206 64
+95 206 64
+96 206 64
+97 206 64
+98 206 64
+99 206 64
+100 206 64
+101 206 64
+102 206 64
+103 206 64
+104 206 64
+105 206 64
+106 206 64
+107 206 64
+108 206 64
+109 206 64
+110 206 64
+111 206 64
+112 206 64
+113 206 64
+114 206 64
+115 206 64
+116 206 64
+117 206 64
+118 206 64
+119 206 64
+120 206 64
+121 206 64
+122 206 64
+123 206 64
+124 206 64
+125 206 64
+126 206 64
+127 206 64
+128 206 64
+129 206 64
+130 206 64
+131 206 64
+132 206 64
+133 206 64
+134 206 64
+135 206 64
+136 206 64
+137 206 64
+138 206 64
+139 206 64
+140 206 64
+141 206 64
+142 206 64
+143 206 64
+144 206 64
+145 206 64
+146 206 64
+147 206 64
+148 206 64
+149 206 64
+150 206 64
+151 206 64
+152 206 64
+153 206 64
+154 206 64
+155 206 64
+156 206 64
+157 206 64
+158 206 64
+159 206 64
+160 206 64
+161 206 64
+162 206 64
+163 206 64
+164 206 64
+165 206 64
+166 206 64
+167 206 64
+168 206 64
+169 206 64
+170 206 64
+171 206 64
+172 206 64
+173 206 64
+174 206 64
+175 206 64
+176 206 64
+177 206 64
+178 206 64
+179 206 64
+180 206 64
+181 206 64
+182 206 64
+183 206 64
+184 206 64
+185 206 64
+186 206 64
+187 206 64
+188 206 64
+189 206 64
+190 206 64
+191 206 64
+192 206 64
+193 206 64
+194 206 64
+195 206 64
+196 206 64
+197 206 64
+198 206 64
+199 206 64
+200 206 64
+201 206 64
+202 206 64
+203 206 64
+204 206 64
+205 206 64
+206 206 64
+207 206 64
+208 206 64
+209 206 64
+210 206 64
+211 206 64
+212 206 64
+213 206 64
+214 206 64
+215 206 64
+216 206 64
+217 206 64
+218 206 64
+219 206 64
+220 206 64
+221 206 64
+222 206 64
+223 206 64
+224 206 64
+225 206 64
+226 206 64
+227 206 64
+228 206 64
+229 206 64
+230 206 64
+231 206 64
+232 206 64
+233 206 64
+234 206 64
+235 206 64
+236 206 64
+237 206 64
+238 206 64
+239 206 64
+240 206 64
+241 206 64
+242 206 64
+243 206 64
+244 206 64
+245 206 64
+246 206 64
+247 206 64
+248 206 64
+249 206 64
+250 206 64
+251 206 64
+252 206 64
+253 206 64
+254 206 64
+255 206 64
+0 205 64
+1 205 64
+2 205 64
+3 205 64
+4 205 64
+5 205 64
+6 205 64
+7 205 64
+8 205 64
+9 205 64
+10 205 64
+11 205 64
+12 205 64
+13 205 64
+14 205 64
+15 205 64
+16 205 64
+17 205 64
+18 205 64
+19 205 64
+20 205 64
+21 205 64
+22 205 64
+23 205 64
+24 205 64
+25 205 64
+26 205 64
+27 205 64
+28 205 64
+29 205 64
+30 205 64
+31 205 64
+32 205 64
+33 205 64
+34 205 64
+35 205 64
+36 205 64
+37 205 64
+38 205 64
+39 205 64
+40 205 64
+41 205 64
+42 205 64
+43 205 64
+44 205 64
+45 205 64
+46 205 64
+47 205 64
+48 205 64
+49 205 64
+50 205 64
+51 205 64
+52 205 64
+53 205 64
+54 205 64
+55 205 64
+56 205 64
+57 205 64
+58 205 64
+59 205 64
+60 205 64
+61 205 64
+62 205 64
+63 205 64
+64 205 64
+65 205 64
+66 205 64
+67 205 64
+68 205 64
+69 205 64
+70 205 64
+71 205 64
+72 205 64
+73 205 64
+74 205 64
+75 205 64
+76 205 64
+77 205 64
+78 205 64
+79 205 64
+80 205 64
+81 205 64
+82 205 64
+83 205 64
+84 205 64
+85 205 64
+86 205 64
+87 205 64
+88 205 64
+89 205 64
+90 205 64
+91 205 64
+92 205 64
+93 205 64
+94 205 64
+95 205 64
+96 205 64
+97 205 64
+98 205 64
+99 205 64
+100 205 64
+101 205 64
+102 205 64
+103 205 64
+104 205 64
+105 205 64
+106 205 64
+107 205 64
+108 205 64
+109 205 64
+110 205 64
+111 205 64
+112 205 64
+113 205 64
+114 205 64
+115 205 64
+116 205 64
+117 205 64
+118 205 64
+119 205 64
+120 205 64
+121 205 64
+122 205 64
+123 205 64
+124 205 64
+125 205 64
+126 205 64
+127 205 64
+128 205 64
+129 205 64
+130 205 64
+131 205 64
+132 205 64
+133 205 64
+134 205 64
+135 205 64
+136 205 64
+137 205 64
+138 205 64
+139 205 64
+140 205 64
+141 205 64
+142 205 64
+143 205 64
+144 205 64
+145 205 64
+146 205 64
+147 205 64
+148 205 64
+149 205 64
+150 205 64
+151 205 64
+152 205 64
+153 205 64
+154 205 64
+155 205 64
+156 205 64
+157 205 64
+158 205 64
+159 205 64
+160 205 64
+161 205 64
+162 205 64
+163 205 64
+164 205 64
+165 205 64
+166 205 64
+167 205 64
+168 205 64
+169 205 64
+170 205 64
+171 205 64
+172 205 64
+173 205 64
+174 205 64
+175 205 64
+176 205 64
+177 205 64
+178 205 64
+179 205 64
+180 205 64
+181 205 64
+182 205 64
+183 205 64
+184 205 64
+185 205 64
+186 205 64
+187 205 64
+188 205 64
+189 205 64
+190 205 64
+191 205 64
+192 205 64
+193 205 64
+194 205 64
+195 205 64
+196 205 64
+197 205 64
+198 205 64
+199 205 64
+200 205 64
+201 205 64
+202 205 64
+203 205 64
+204 205 64
+205 205 64
+206 205 64
+207 205 64
+208 205 64
+209 205 64
+210 205 64
+211 205 64
+212 205 64
+213 205 64
+214 205 64
+215 205 64
+216 205 64
+217 205 64
+218 205 64
+219 205 64
+220 205 64
+221 205 64
+222 205 64
+223 205 64
+224 205 64
+225 205 64
+226 205 64
+227 205 64
+228 205 64
+229 205 64
+230 205 64
+231 205 64
+232 205 64
+233 205 64
+234 205 64
+235 205 64
+236 205 64
+237 205 64
+238 205 64
+239 205 64
+240 205 64
+241 205 64
+242 205 64
+243 205 64
+244 205 64
+245 205 64
+246 205 64
+247 205 64
+248 205 64
+249 205 64
+250 205 64
+251 205 64
+252 205 64
+253 205 64
+254 205 64
+255 205 64
+0 204 64
+1 204 64
+2 204 64
+3 204 64
+4 204 64
+5 204 64
+6 204 64
+7 204 64
+8 204 64
+9 204 64
+10 204 64
+11 204 64
+12 204 64
+13 204 64
+14 204 64
+15 204 64
+16 204 64
+17 204 64
+18 204 64
+19 204 64
+20 204 64
+21 204 64
+22 204 64
+23 204 64
+24 204 64
+25 204 64
+26 204 64
+27 204 64
+28 204 64
+29 204 64
+30 204 64
+31 204 64
+32 204 64
+33 204 64
+34 204 64
+35 204 64
+36 204 64
+37 204 64
+38 204 64
+39 204 64
+40 204 64
+41 204 64
+42 204 64
+43 204 64
+44 204 64
+45 204 64
+46 204 64
+47 204 64
+48 204 64
+49 204 64
+50 204 64
+51 204 64
+52 204 64
+53 204 64
+54 204 64
+55 204 64
+56 204 64
+57 204 64
+58 204 64
+59 204 64
+60 204 64
+61 204 64
+62 204 64
+63 204 64
+64 204 64
+65 204 64
+66 204 64
+67 204 64
+68 204 64
+69 204 64
+70 204 64
+71 204 64
+72 204 64
+73 204 64
+74 204 64
+75 204 64
+76 204 64
+77 204 64
+78 204 64
+79 204 64
+80 204 64
+81 204 64
+82 204 64
+83 204 64
+84 204 64
+85 204 64
+86 204 64
+87 204 64
+88 204 64
+89 204 64
+90 204 64
+91 204 64
+92 204 64
+93 204 64
+94 204 64
+95 204 64
+96 204 64
+97 204 64
+98 204 64
+99 204 64
+100 204 64
+101 204 64
+102 204 64
+103 204 64
+104 204 64
+105 204 64
+106 204 64
+107 204 64
+108 204 64
+109 204 64
+110 204 64
+111 204 64
+112 204 64
+113 204 64
+114 204 64
+115 204 64
+116 204 64
+117 204 64
+118 204 64
+119 204 64
+120 204 64
+121 204 64
+122 204 64
+123 204 64
+124 204 64
+125 204 64
+126 204 64
+127 204 64
+128 204 64
+129 204 64
+130 204 64
+131 204 64
+132 204 64
+133 204 64
+134 204 64
+135 204 64
+136 204 64
+137 204 64
+138 204 64
+139 204 64
+140 204 64
+141 204 64
+142 204 64
+143 204 64
+144 204 64
+145 204 64
+146 204 64
+147 204 64
+148 204 64
+149 204 64
+150 204 64
+151 204 64
+152 204 64
+153 204 64
+154 204 64
+155 204 64
+156 204 64
+157 204 64
+158 204 64
+159 204 64
+160 204 64
+161 204 64
+162 204 64
+163 204 64
+164 204 64
+165 204 64
+166 204 64
+167 204 64
+168 204 64
+169 204 64
+170 204 64
+171 204 64
+172 204 64
+173 204 64
+174 204 64
+175 204 64
+176 204 64
+177 204 64
+178 204 64
+179 204 64
+180 204 64
+181 204 64
+182 204 64
+183 204 64
+184 204 64
+185 204 64
+186 204 64
+187 204 64
+188 204 64
+189 204 64
+190 204 64
+191 204 64
+192 204 64
+193 204 64
+194 204 64
+195 204 64
+196 204 64
+197 204 64
+198 204 64
+199 204 64
+200 204 64
+201 204 64
+202 204 64
+203 204 64
+204 204 64
+205 204 64
+206 204 64
+207 204 64
+208 204 64
+209 204 64
+210 204 64
+211 204 64
+212 204 64
+213 204 64
+214 204 64
+215 204 64
+216 204 64
+217 204 64
+218 204 64
+219 204 64
+220 204 64
+221 204 64
+222 204 64
+223 204 64
+224 204 64
+225 204 64
+226 204 64
+227 204 64
+228 204 64
+229 204 64
+230 204 64
+231 204 64
+232 204 64
+233 204 64
+234 204 64
+235 204 64
+236 204 64
+237 204 64
+238 204 64
+239 204 64
+240 204 64
+241 204 64
+242 204 64
+243 204 64
+244 204 64
+245 204 64
+246 204 64
+247 204 64
+248 204 64
+249 204 64
+250 204 64
+251 204 64
+252 204 64
+253 204 64
+254 204 64
+255 204 64
+0 203 64
+1 203 64
+2 203 64
+3 203 64
+4 203 64
+5 203 64
+6 203 64
+7 203 64
+8 203 64
+9 203 64
+10 203 64
+11 203 64
+12 203 64
+13 203 64
+14 203 64
+15 203 64
+16 203 64
+17 203 64
+18 203 64
+19 203 64
+20 203 64
+21 203 64
+22 203 64
+23 203 64
+24 203 64
+25 203 64
+26 203 64
+27 203 64
+28 203 64
+29 203 64
+30 203 64
+31 203 64
+32 203 64
+33 203 64
+34 203 64
+35 203 64
+36 203 64
+37 203 64
+38 203 64
+39 203 64
+40 203 64
+41 203 64
+42 203 64
+43 203 64
+44 203 64
+45 203 64
+46 203 64
+47 203 64
+48 203 64
+49 203 64
+50 203 64
+51 203 64
+52 203 64
+53 203 64
+54 203 64
+55 203 64
+56 203 64
+57 203 64
+58 203 64
+59 203 64
+60 203 64
+61 203 64
+62 203 64
+63 203 64
+64 203 64
+65 203 64
+66 203 64
+67 203 64
+68 203 64
+69 203 64
+70 203 64
+71 203 64
+72 203 64
+73 203 64
+74 203 64
+75 203 64
+76 203 64
+77 203 64
+78 203 64
+79 203 64
+80 203 64
+81 203 64
+82 203 64
+83 203 64
+84 203 64
+85 203 64
+86 203 64
+87 203 64
+88 203 64
+89 203 64
+90 203 64
+91 203 64
+92 203 64
+93 203 64
+94 203 64
+95 203 64
+96 203 64
+97 203 64
+98 203 64
+99 203 64
+100 203 64
+101 203 64
+102 203 64
+103 203 64
+104 203 64
+105 203 64
+106 203 64
+107 203 64
+108 203 64
+109 203 64
+110 203 64
+111 203 64
+112 203 64
+113 203 64
+114 203 64
+115 203 64
+116 203 64
+117 203 64
+118 203 64
+119 203 64
+120 203 64
+121 203 64
+122 203 64
+123 203 64
+124 203 64
+125 203 64
+126 203 64
+127 203 64
+128 203 64
+129 203 64
+130 203 64
+131 203 64
+132 203 64
+133 203 64
+134 203 64
+135 203 64
+136 203 64
+137 203 64
+138 203 64
+139 203 64
+140 203 64
+141 203 64
+142 203 64
+143 203 64
+144 203 64
+145 203 64
+146 203 64
+147 203 64
+148 203 64
+149 203 64
+150 203 64
+151 203 64
+152 203 64
+153 203 64
+154 203 64
+155 203 64
+156 203 64
+157 203 64
+158 203 64
+159 203 64
+160 203 64
+161 203 64
+162 203 64
+163 203 64
+164 203 64
+165 203 64
+166 203 64
+167 203 64
+168 203 64
+169 203 64
+170 203 64
+171 203 64
+172 203 64
+173 203 64
+174 203 64
+175 203 64
+176 203 64
+177 203 64
+178 203 64
+179 203 64
+180 203 64
+181 203 64
+182 203 64
+183 203 64
+184 203 64
+185 203 64
+186 203 64
+187 203 64
+188 203 64
+189 203 64
+190 203 64
+191 203 64
+192 203 64
+193 203 64
+194 203 64
+195 203 64
+196 203 64
+197 203 64
+198 203 64
+199 203 64
+200 203 64
+201 203 64
+202 203 64
+203 203 64
+204 203 64
+205 203 64
+206 203 64
+207 203 64
+208 203 64
+209 203 64
+210 203 64
+211 203 64
+212 203 64
+213 203 64
+214 203 64
+215 203 64
+216 203 64
+217 203 64
+218 203 64
+219 203 64
+220 203 64
+221 203 64
+222 203 64
+223 203 64
+224 203 64
+225 203 64
+226 203 64
+227 203 64
+228 203 64
+229 203 64
+230 203 64
+231 203 64
+232 203 64
+233 203 64
+234 203 64
+235 203 64
+236 203 64
+237 203 64
+238 203 64
+239 203 64
+240 203 64
+241 203 64
+242 203 64
+243 203 64
+244 203 64
+245 203 64
+246 203 64
+247 203 64
+248 203 64
+249 203 64
+250 203 64
+251 203 64
+252 203 64
+253 203 64
+254 203 64
+255 203 64
+0 202 64
+1 202 64
+2 202 64
+3 202 64
+4 202 64
+5 202 64
+6 202 64
+7 202 64
+8 202 64
+9 202 64
+10 202 64
+11 202 64
+12 202 64
+13 202 64
+14 202 64
+15 202 64
+16 202 64
+17 202 64
+18 202 64
+19 202 64
+20 202 64
+21 202 64
+22 202 64
+23 202 64
+24 202 64
+25 202 64
+26 202 64
+27 202 64
+28 202 64
+29 202 64
+30 202 64
+31 202 64
+32 202 64
+33 202 64
+34 202 64
+35 202 64
+36 202 64
+37 202 64
+38 202 64
+39 202 64
+40 202 64
+41 202 64
+42 202 64
+43 202 64
+44 202 64
+45 202 64
+46 202 64
+47 202 64
+48 202 64
+49 202 64
+50 202 64
+51 202 64
+52 202 64
+53 202 64
+54 202 64
+55 202 64
+56 202 64
+57 202 64
+58 202 64
+59 202 64
+60 202 64
+61 202 64
+62 202 64
+63 202 64
+64 202 64
+65 202 64
+66 202 64
+67 202 64
+68 202 64
+69 202 64
+70 202 64
+71 202 64
+72 202 64
+73 202 64
+74 202 64
+75 202 64
+76 202 64
+77 202 64
+78 202 64
+79 202 64
+80 202 64
+81 202 64
+82 202 64
+83 202 64
+84 202 64
+85 202 64
+86 202 64
+87 202 64
+88 202 64
+89 202 64
+90 202 64
+91 202 64
+92 202 64
+93 202 64
+94 202 64
+95 202 64
+96 202 64
+97 202 64
+98 202 64
+99 202 64
+100 202 64
+101 202 64
+102 202 64
+103 202 64
+104 202 64
+105 202 64
+106 202 64
+107 202 64
+108 202 64
+109 202 64
+110 202 64
+111 202 64
+112 202 64
+113 202 64
+114 202 64
+115 202 64
+116 202 64
+117 202 64
+118 202 64
+119 202 64
+120 202 64
+121 202 64
+122 202 64
+123 202 64
+124 202 64
+125 202 64
+126 202 64
+127 202 64
+128 202 64
+129 202 64
+130 202 64
+131 202 64
+132 202 64
+133 202 64
+134 202 64
+135 202 64
+136 202 64
+137 202 64
+138 202 64
+139 202 64
+140 202 64
+141 202 64
+142 202 64
+143 202 64
+144 202 64
+145 202 64
+146 202 64
+147 202 64
+148 202 64
+149 202 64
+150 202 64
+151 202 64
+152 202 64
+153 202 64
+154 202 64
+155 202 64
+156 202 64
+157 202 64
+158 202 64
+159 202 64
+160 202 64
+161 202 64
+162 202 64
+163 202 64
+164 202 64
+165 202 64
+166 202 64
+167 202 64
+168 202 64
+169 202 64
+170 202 64
+171 202 64
+172 202 64
+173 202 64
+174 202 64
+175 202 64
+176 202 64
+177 202 64
+178 202 64
+179 202 64
+180 202 64
+181 202 64
+182 202 64
+183 202 64
+184 202 64
+185 202 64
+186 202 64
+187 202 64
+188 202 64
+189 202 64
+190 202 64
+191 202 64
+192 202 64
+193 202 64
+194 202 64
+195 202 64
+196 202 64
+197 202 64
+198 202 64
+199 202 64
+200 202 64
+201 202 64
+202 202 64
+203 202 64
+204 202 64
+205 202 64
+206 202 64
+207 202 64
+208 202 64
+209 202 64
+210 202 64
+211 202 64
+212 202 64
+213 202 64
+214 202 64
+215 202 64
+216 202 64
+217 202 64
+218 202 64
+219 202 64
+220 202 64
+221 202 64
+222 202 64
+223 202 64
+224 202 64
+225 202 64
+226 202 64
+227 202 64
+228 202 64
+229 202 64
+230 202 64
+231 202 64
+232 202 64
+233 202 64
+234 202 64
+235 202 64
+236 202 64
+237 202 64
+238 202 64
+239 202 64
+240 202 64
+241 202 64
+242 202 64
+243 202 64
+244 202 64
+245 202 64
+246 202 64
+247 202 64
+248 202 64
+249 202 64
+250 202 64
+251 202 64
+252 202 64
+253 202 64
+254 202 64
+255 202 64
+0 201 64
+1 201 64
+2 201 64
+3 201 64
+4 201 64
+5 201 64
+6 201 64
+7 201 64
+8 201 64
+9 201 64
+10 201 64
+11 201 64
+12 201 64
+13 201 64
+14 201 64
+15 201 64
+16 201 64
+17 201 64
+18 201 64
+19 201 64
+20 201 64
+21 201 64
+22 201 64
+23 201 64
+24 201 64
+25 201 64
+26 201 64
+27 201 64
+28 201 64
+29 201 64
+30 201 64
+31 201 64
+32 201 64
+33 201 64
+34 201 64
+35 201 64
+36 201 64
+37 201 64
+38 201 64
+39 201 64
+40 201 64
+41 201 64
+42 201 64
+43 201 64
+44 201 64
+45 201 64
+46 201 64
+47 201 64
+48 201 64
+49 201 64
+50 201 64
+51 201 64
+52 201 64
+53 201 64
+54 201 64
+55 201 64
+56 201 64
+57 201 64
+58 201 64
+59 201 64
+60 201 64
+61 201 64
+62 201 64
+63 201 64
+64 201 64
+65 201 64
+66 201 64
+67 201 64
+68 201 64
+69 201 64
+70 201 64
+71 201 64
+72 201 64
+73 201 64
+74 201 64
+75 201 64
+76 201 64
+77 201 64
+78 201 64
+79 201 64
+80 201 64
+81 201 64
+82 201 64
+83 201 64
+84 201 64
+85 201 64
+86 201 64
+87 201 64
+88 201 64
+89 201 64
+90 201 64
+91 201 64
+92 201 64
+93 201 64
+94 201 64
+95 201 64
+96 201 64
+97 201 64
+98 201 64
+99 201 64
+100 201 64
+101 201 64
+102 201 64
+103 201 64
+104 201 64
+105 201 64
+106 201 64
+107 201 64
+108 201 64
+109 201 64
+110 201 64
+111 201 64
+112 201 64
+113 201 64
+114 201 64
+115 201 64
+116 201 64
+117 201 64
+118 201 64
+119 201 64
+120 201 64
+121 201 64
+122 201 64
+123 201 64
+124 201 64
+125 201 64
+126 201 64
+127 201 64
+128 201 64
+129 201 64
+130 201 64
+131 201 64
+132 201 64
+133 201 64
+134 201 64
+135 201 64
+136 201 64
+137 201 64
+138 201 64
+139 201 64
+140 201 64
+141 201 64
+142 201 64
+143 201 64
+144 201 64
+145 201 64
+146 201 64
+147 201 64
+148 201 64
+149 201 64
+150 201 64
+151 201 64
+152 201 64
+153 201 64
+154 201 64
+155 201 64
+156 201 64
+157 201 64
+158 201 64
+159 201 64
+160 201 64
+161 201 64
+162 201 64
+163 201 64
+164 201 64
+165 201 64
+166 201 64
+167 201 64
+168 201 64
+169 201 64
+170 201 64
+171 201 64
+172 201 64
+173 201 64
+174 201 64
+175 201 64
+176 201 64
+177 201 64
+178 201 64
+179 201 64
+180 201 64
+181 201 64
+182 201 64
+183 201 64
+184 201 64
+185 201 64
+186 201 64
+187 201 64
+188 201 64
+189 201 64
+190 201 64
+191 201 64
+192 201 64
+193 201 64
+194 201 64
+195 201 64
+196 201 64
+197 201 64
+198 201 64
+199 201 64
+200 201 64
+201 201 64
+202 201 64
+203 201 64
+204 201 64
+205 201 64
+206 201 64
+207 201 64
+208 201 64
+209 201 64
+210 201 64
+211 201 64
+212 201 64
+213 201 64
+214 201 64
+215 201 64
+216 201 64
+217 201 64
+218 201 64
+219 201 64
+220 201 64
+221 201 64
+222 201 64
+223 201 64
+224 201 64
+225 201 64
+226 201 64
+227 201 64
+228 201 64
+229 201 64
+230 201 64
+231 201 64
+232 201 64
+233 201 64
+234 201 64
+235 201 64
+236 201 64
+237 201 64
+238 201 64
+239 201 64
+240 201 64
+241 201 64
+242 201 64
+243 201 64
+244 201 64
+245 201 64
+246 201 64
+247 201 64
+248 201 64
+249 201 64
+250 201 64
+251 201 64
+252 201 64
+253 201 64
+254 201 64
+255 201 64
+0 200 64
+1 200 64
+2 200 64
+3 200 64
+4 200 64
+5 200 64
+6 200 64
+7 200 64
+8 200 64
+9 200 64
+10 200 64
+11 200 64
+12 200 64
+13 200 64
+14 200 64
+15 200 64
+16 200 64
+17 200 64
+18 200 64
+19 200 64
+20 200 64
+21 200 64
+22 200 64
+23 200 64
+24 200 64
+25 200 64
+26 200 64
+27 200 64
+28 200 64
+29 200 64
+30 200 64
+31 200 64
+32 200 64
+33 200 64
+34 200 64
+35 200 64
+36 200 64
+37 200 64
+38 200 64
+39 200 64
+40 200 64
+41 200 64
+42 200 64
+43 200 64
+44 200 64
+45 200 64
+46 200 64
+47 200 64
+48 200 64
+49 200 64
+50 200 64
+51 200 64
+52 200 64
+53 200 64
+54 200 64
+55 200 64
+56 200 64
+57 200 64
+58 200 64
+59 200 64
+60 200 64
+61 200 64
+62 200 64
+63 200 64
+64 200 64
+65 200 64
+66 200 64
+67 200 64
+68 200 64
+69 200 64
+70 200 64
+71 200 64
+72 200 64
+73 200 64
+74 200 64
+75 200 64
+76 200 64
+77 200 64
+78 200 64
+79 200 64
+80 200 64
+81 200 64
+82 200 64
+83 200 64
+84 200 64
+85 200 64
+86 200 64
+87 200 64
+88 200 64
+89 200 64
+90 200 64
+91 200 64
+92 200 64
+93 200 64
+94 200 64
+95 200 64
+96 200 64
+97 200 64
+98 200 64
+99 200 64
+100 200 64
+101 200 64
+102 200 64
+103 200 64
+104 200 64
+105 200 64
+106 200 64
+107 200 64
+108 200 64
+109 200 64
+110 200 64
+111 200 64
+112 200 64
+113 200 64
+114 200 64
+115 200 64
+116 200 64
+117 200 64
+118 200 64
+119 200 64
+120 200 64
+121 200 64
+122 200 64
+123 200 64
+124 200 64
+125 200 64
+126 200 64
+127 200 64
+128 200 64
+129 200 64
+130 200 64
+131 200 64
+132 200 64
+133 200 64
+134 200 64
+135 200 64
+136 200 64
+137 200 64
+138 200 64
+139 200 64
+140 200 64
+141 200 64
+142 200 64
+143 200 64
+144 200 64
+145 200 64
+146 200 64
+147 200 64
+148 200 64
+149 200 64
+150 200 64
+151 200 64
+152 200 64
+153 200 64
+154 200 64
+155 200 64
+156 200 64
+157 200 64
+158 200 64
+159 200 64
+160 200 64
+161 200 64
+162 200 64
+163 200 64
+164 200 64
+165 200 64
+166 200 64
+167 200 64
+168 200 64
+169 200 64
+170 200 64
+171 200 64
+172 200 64
+173 200 64
+174 200 64
+175 200 64
+176 200 64
+177 200 64
+178 200 64
+179 200 64
+180 200 64
+181 200 64
+182 200 64
+183 200 64
+184 200 64
+185 200 64
+186 200 64
+187 200 64
+188 200 64
+189 200 64
+190 200 64
+191 200 64
+192 200 64
+193 200 64
+194 200 64
+195 200 64
+196 200 64
+197 200 64
+198 200 64
+199 200 64
+200 200 64
+201 200 64
+202 200 64
+203 200 64
+204 200 64
+205 200 64
+206 200 64
+207 200 64
+208 200 64
+209 200 64
+210 200 64
+211 200 64
+212 200 64
+213 200 64
+214 200 64
+215 200 64
+216 200 64
+217 200 64
+218 200 64
+219 200 64
+220 200 64
+221 200 64
+222 200 64
+223 200 64
+224 200 64
+225 200 64
+226 200 64
+227 200 64
+228 200 64
+229 200 64
+230 200 64
+231 200 64
+232 200 64
+233 200 64
+234 200 64
+235 200 64
+236 200 64
+237 200 64
+238 200 64
+239 200 64
+240 200 64
+241 200 64
+242 200 64
+243 200 64
+244 200 64
+245 200 64
+246 200 64
+247 200 64
+248 200 64
+249 200 64
+250 200 64
+251 200 64
+252 200 64
+253 200 64
+254 200 64
+255 200 64
+0 199 64
+1 199 64
+2 199 64
+3 199 64
+4 199 64
+5 199 64
+6 199 64
+7 199 64
+8 199 64
+9 199 64
+10 199 64
+11 199 64
+12 199 64
+13 199 64
+14 199 64
+15 199 64
+16 199 64
+17 199 64
+18 199 64
+19 199 64
+20 199 64
+21 199 64
+22 199 64
+23 199 64
+24 199 64
+25 199 64
+26 199 64
+27 199 64
+28 199 64
+29 199 64
+30 199 64
+31 199 64
+32 199 64
+33 199 64
+34 199 64
+35 199 64
+36 199 64
+37 199 64
+38 199 64
+39 199 64
+40 199 64
+41 199 64
+42 199 64
+43 199 64
+44 199 64
+45 199 64
+46 199 64
+47 199 64
+48 199 64
+49 199 64
+50 199 64
+51 199 64
+52 199 64
+53 199 64
+54 199 64
+55 199 64
+56 199 64
+57 199 64
+58 199 64
+59 199 64
+60 199 64
+61 199 64
+62 199 64
+63 199 64
+64 199 64
+65 199 64
+66 199 64
+67 199 64
+68 199 64
+69 199 64
+70 199 64
+71 199 64
+72 199 64
+73 199 64
+74 199 64
+75 199 64
+76 199 64
+77 199 64
+78 199 64
+79 199 64
+80 199 64
+81 199 64
+82 199 64
+83 199 64
+84 199 64
+85 199 64
+86 199 64
+87 199 64
+88 199 64
+89 199 64
+90 199 64
+91 199 64
+92 199 64
+93 199 64
+94 199 64
+95 199 64
+96 199 64
+97 199 64
+98 199 64
+99 199 64
+100 199 64
+101 199 64
+102 199 64
+103 199 64
+104 199 64
+105 199 64
+106 199 64
+107 199 64
+108 199 64
+109 199 64
+110 199 64
+111 199 64
+112 199 64
+113 199 64
+114 199 64
+115 199 64
+116 199 64
+117 199 64
+118 199 64
+119 199 64
+120 199 64
+121 199 64
+122 199 64
+123 199 64
+124 199 64
+125 199 64
+126 199 64
+127 199 64
+128 199 64
+129 199 64
+130 199 64
+131 199 64
+132 199 64
+133 199 64
+134 199 64
+135 199 64
+136 199 64
+137 199 64
+138 199 64
+139 199 64
+140 199 64
+141 199 64
+142 199 64
+143 199 64
+144 199 64
+145 199 64
+146 199 64
+147 199 64
+148 199 64
+149 199 64
+150 199 64
+151 199 64
+152 199 64
+153 199 64
+154 199 64
+155 199 64
+156 199 64
+157 199 64
+158 199 64
+159 199 64
+160 199 64
+161 199 64
+162 199 64
+163 199 64
+164 199 64
+165 199 64
+166 199 64
+167 199 64
+168 199 64
+169 199 64
+170 199 64
+171 199 64
+172 199 64
+173 199 64
+174 199 64
+175 199 64
+176 199 64
+177 199 64
+178 199 64
+179 199 64
+180 199 64
+181 199 64
+182 199 64
+183 199 64
+184 199 64
+185 199 64
+186 199 64
+187 199 64
+188 199 64
+189 199 64
+190 199 64
+191 199 64
+192 199 64
+193 199 64
+194 199 64
+195 199 64
+196 199 64
+197 199 64
+198 199 64
+199 199 64
+200 199 64
+201 199 64
+202 199 64
+203 199 64
+204 199 64
+205 199 64
+206 199 64
+207 199 64
+208 199 64
+209 199 64
+210 199 64
+211 199 64
+212 199 64
+213 199 64
+214 199 64
+215 199 64
+216 199 64
+217 199 64
+218 199 64
+219 199 64
+220 199 64
+221 199 64
+222 199 64
+223 199 64
+224 199 64
+225 199 64
+226 199 64
+227 199 64
+228 199 64
+229 199 64
+230 199 64
+231 199 64
+232 199 64
+233 199 64
+234 199 64
+235 199 64
+236 199 64
+237 199 64
+238 199 64
+239 199 64
+240 199 64
+241 199 64
+242 199 64
+243 199 64
+244 199 64
+245 199 64
+246 199 64
+247 199 64
+248 199 64
+249 199 64
+250 199 64
+251 199 64
+252 199 64
+253 199 64
+254 199 64
+255 199 64
+0 198 64
+1 198 64
+2 198 64
+3 198 64
+4 198 64
+5 198 64
+6 198 64
+7 198 64
+8 198 64
+9 198 64
+10 198 64
+11 198 64
+12 198 64
+13 198 64
+14 198 64
+15 198 64
+16 198 64
+17 198 64
+18 198 64
+19 198 64
+20 198 64
+21 198 64
+22 198 64
+23 198 64
+24 198 64
+25 198 64
+26 198 64
+27 198 64
+28 198 64
+29 198 64
+30 198 64
+31 198 64
+32 198 64
+33 198 64
+34 198 64
+35 198 64
+36 198 64
+37 198 64
+38 198 64
+39 198 64
+40 198 64
+41 198 64
+42 198 64
+43 198 64
+44 198 64
+45 198 64
+46 198 64
+47 198 64
+48 198 64
+49 198 64
+50 198 64
+51 198 64
+52 198 64
+53 198 64
+54 198 64
+55 198 64
+56 198 64
+57 198 64
+58 198 64
+59 198 64
+60 198 64
+61 198 64
+62 198 64
+63 198 64
+64 198 64
+65 198 64
+66 198 64
+67 198 64
+68 198 64
+69 198 64
+70 198 64
+71 198 64
+72 198 64
+73 198 64
+74 198 64
+75 198 64
+76 198 64
+77 198 64
+78 198 64
+79 198 64
+80 198 64
+81 198 64
+82 198 64
+83 198 64
+84 198 64
+85 198 64
+86 198 64
+87 198 64
+88 198 64
+89 198 64
+90 198 64
+91 198 64
+92 198 64
+93 198 64
+94 198 64
+95 198 64
+96 198 64
+97 198 64
+98 198 64
+99 198 64
+100 198 64
+101 198 64
+102 198 64
+103 198 64
+104 198 64
+105 198 64
+106 198 64
+107 198 64
+108 198 64
+109 198 64
+110 198 64
+111 198 64
+112 198 64
+113 198 64
+114 198 64
+115 198 64
+116 198 64
+117 198 64
+118 198 64
+119 198 64
+120 198 64
+121 198 64
+122 198 64
+123 198 64
+124 198 64
+125 198 64
+126 198 64
+127 198 64
+128 198 64
+129 198 64
+130 198 64
+131 198 64
+132 198 64
+133 198 64
+134 198 64
+135 198 64
+136 198 64
+137 198 64
+138 198 64
+139 198 64
+140 198 64
+141 198 64
+142 198 64
+143 198 64
+144 198 64
+145 198 64
+146 198 64
+147 198 64
+148 198 64
+149 198 64
+150 198 64
+151 198 64
+152 198 64
+153 198 64
+154 198 64
+155 198 64
+156 198 64
+157 198 64
+158 198 64
+159 198 64
+160 198 64
+161 198 64
+162 198 64
+163 198 64
+164 198 64
+165 198 64
+166 198 64
+167 198 64
+168 198 64
+169 198 64
+170 198 64
+171 198 64
+172 198 64
+173 198 64
+174 198 64
+175 198 64
+176 198 64
+177 198 64
+178 198 64
+179 198 64
+180 198 64
+181 198 64
+182 198 64
+183 198 64
+184 198 64
+185 198 64
+186 198 64
+187 198 64
+188 198 64
+189 198 64
+190 198 64
+191 198 64
+192 198 64
+193 198 64
+194 198 64
+195 198 64
+196 198 64
+197 198 64
+198 198 64
+199 198 64
+200 198 64
+201 198 64
+202 198 64
+203 198 64
+204 198 64
+205 198 64
+206 198 64
+207 198 64
+208 198 64
+209 198 64
+210 198 64
+211 198 64
+212 198 64
+213 198 64
+214 198 64
+215 198 64
+216 198 64
+217 198 64
+218 198 64
+219 198 64
+220 198 64
+221 198 64
+222 198 64
+223 198 64
+224 198 64
+225 198 64
+226 198 64
+227 198 64
+228 198 64
+229 198 64
+230 198 64
+231 198 64
+232 198 64
+233 198 64
+234 198 64
+235 198 64
+236 198 64
+237 198 64
+238 198 64
+239 198 64
+240 198 64
+241 198 64
+242 198 64
+243 198 64
+244 198 64
+245 198 64
+246 198 64
+247 198 64
+248 198 64
+249 198 64
+250 198 64
+251 198 64
+252 198 64
+253 198 64
+254 198 64
+255 198 64
+0 197 64
+1 197 64
+2 197 64
+3 197 64
+4 197 64
+5 197 64
+6 197 64
+7 197 64
+8 197 64
+9 197 64
+10 197 64
+11 197 64
+12 197 64
+13 197 64
+14 197 64
+15 197 64
+16 197 64
+17 197 64
+18 197 64
+19 197 64
+20 197 64
+21 197 64
+22 197 64
+23 197 64
+24 197 64
+25 197 64
+26 197 64
+27 197 64
+28 197 64
+29 197 64
+30 197 64
+31 197 64
+32 197 64
+33 197 64
+34 197 64
+35 197 64
+36 197 64
+37 197 64
+38 197 64
+39 197 64
+40 197 64
+41 197 64
+42 197 64
+43 197 64
+44 197 64
+45 197 64
+46 197 64
+47 197 64
+48 197 64
+49 197 64
+50 197 64
+51 197 64
+52 197 64
+53 197 64
+54 197 64
+55 197 64
+56 197 64
+57 197 64
+58 197 64
+59 197 64
+60 197 64
+61 197 64
+62 197 64
+63 197 64
+64 197 64
+65 197 64
+66 197 64
+67 197 64
+68 197 64
+69 197 64
+70 197 64
+71 197 64
+72 197 64
+73 197 64
+74 197 64
+75 197 64
+76 197 64
+77 197 64
+78 197 64
+79 197 64
+80 197 64
+81 197 64
+82 197 64
+83 197 64
+84 197 64
+85 197 64
+86 197 64
+87 197 64
+88 197 64
+89 197 64
+90 197 64
+91 197 64
+92 197 64
+93 197 64
+94 197 64
+95 197 64
+96 197 64
+97 197 64
+98 197 64
+99 197 64
+100 197 64
+101 197 64
+102 197 64
+103 197 64
+104 197 64
+105 197 64
+106 197 64
+107 197 64
+108 197 64
+109 197 64
+110 197 64
+111 197 64
+112 197 64
+113 197 64
+114 197 64
+115 197 64
+116 197 64
+117 197 64
+118 197 64
+119 197 64
+120 197 64
+121 197 64
+122 197 64
+123 197 64
+124 197 64
+125 197 64
+126 197 64
+127 197 64
+128 197 64
+129 197 64
+130 197 64
+131 197 64
+132 197 64
+133 197 64
+134 197 64
+135 197 64
+136 197 64
+137 197 64
+138 197 64
+139 197 64
+140 197 64
+141 197 64
+142 197 64
+143 197 64
+144 197 64
+145 197 64
+146 197 64
+147 197 64
+148 197 64
+149 197 64
+150 197 64
+151 197 64
+152 197 64
+153 197 64
+154 197 64
+155 197 64
+156 197 64
+157 197 64
+158 197 64
+159 197 64
+160 197 64
+161 197 64
+162 197 64
+163 197 64
+164 197 64
+165 197 64
+166 197 64
+167 197 64
+168 197 64
+169 197 64
+170 197 64
+171 197 64
+172 197 64
+173 197 64
+174 197 64
+175 197 64
+176 197 64
+177 197 64
+178 197 64
+179 197 64
+180 197 64
+181 197 64
+182 197 64
+183 197 64
+184 197 64
+185 197 64
+186 197 64
+187 197 64
+188 197 64
+189 197 64
+190 197 64
+191 197 64
+192 197 64
+193 197 64
+194 197 64
+195 197 64
+196 197 64
+197 197 64
+198 197 64
+199 197 64
+200 197 64
+201 197 64
+202 197 64
+203 197 64
+204 197 64
+205 197 64
+206 197 64
+207 197 64
+208 197 64
+209 197 64
+210 197 64
+211 197 64
+212 197 64
+213 197 64
+214 197 64
+215 197 64
+216 197 64
+217 197 64
+218 197 64
+219 197 64
+220 197 64
+221 197 64
+222 197 64
+223 197 64
+224 197 64
+225 197 64
+226 197 64
+227 197 64
+228 197 64
+229 197 64
+230 197 64
+231 197 64
+232 197 64
+233 197 64
+234 197 64
+235 197 64
+236 197 64
+237 197 64
+238 197 64
+239 197 64
+240 197 64
+241 197 64
+242 197 64
+243 197 64
+244 197 64
+245 197 64
+246 197 64
+247 197 64
+248 197 64
+249 197 64
+250 197 64
+251 197 64
+252 197 64
+253 197 64
+254 197 64
+255 197 64
+0 196 64
+1 196 64
+2 196 64
+3 196 64
+4 196 64
+5 196 64
+6 196 64
+7 196 64
+8 196 64
+9 196 64
+10 196 64
+11 196 64
+12 196 64
+13 196 64
+14 196 64
+15 196 64
+16 196 64
+17 196 64
+18 196 64
+19 196 64
+20 196 64
+21 196 64
+22 196 64
+23 196 64
+24 196 64
+25 196 64
+26 196 64
+27 196 64
+28 196 64
+29 196 64
+30 196 64
+31 196 64
+32 196 64
+33 196 64
+34 196 64
+35 196 64
+36 196 64
+37 196 64
+38 196 64
+39 196 64
+40 196 64
+41 196 64
+42 196 64
+43 196 64
+44 196 64
+45 196 64
+46 196 64
+47 196 64
+48 196 64
+49 196 64
+50 196 64
+51 196 64
+52 196 64
+53 196 64
+54 196 64
+55 196 64
+56 196 64
+57 196 64
+58 196 64
+59 196 64
+60 196 64
+61 196 64
+62 196 64
+63 196 64
+64 196 64
+65 196 64
+66 196 64
+67 196 64
+68 196 64
+69 196 64
+70 196 64
+71 196 64
+72 196 64
+73 196 64
+74 196 64
+75 196 64
+76 196 64
+77 196 64
+78 196 64
+79 196 64
+80 196 64
+81 196 64
+82 196 64
+83 196 64
+84 196 64
+85 196 64
+86 196 64
+87 196 64
+88 196 64
+89 196 64
+90 196 64
+91 196 64
+92 196 64
+93 196 64
+94 196 64
+95 196 64
+96 196 64
+97 196 64
+98 196 64
+99 196 64
+100 196 64
+101 196 64
+102 196 64
+103 196 64
+104 196 64
+105 196 64
+106 196 64
+107 196 64
+108 196 64
+109 196 64
+110 196 64
+111 196 64
+112 196 64
+113 196 64
+114 196 64
+115 196 64
+116 196 64
+117 196 64
+118 196 64
+119 196 64
+120 196 64
+121 196 64
+122 196 64
+123 196 64
+124 196 64
+125 196 64
+126 196 64
+127 196 64
+128 196 64
+129 196 64
+130 196 64
+131 196 64
+132 196 64
+133 196 64
+134 196 64
+135 196 64
+136 196 64
+137 196 64
+138 196 64
+139 196 64
+140 196 64
+141 196 64
+142 196 64
+143 196 64
+144 196 64
+145 196 64
+146 196 64
+147 196 64
+148 196 64
+149 196 64
+150 196 64
+151 196 64
+152 196 64
+153 196 64
+154 196 64
+155 196 64
+156 196 64
+157 196 64
+158 196 64
+159 196 64
+160 196 64
+161 196 64
+162 196 64
+163 196 64
+164 196 64
+165 196 64
+166 196 64
+167 196 64
+168 196 64
+169 196 64
+170 196 64
+171 196 64
+172 196 64
+173 196 64
+174 196 64
+175 196 64
+176 196 64
+177 196 64
+178 196 64
+179 196 64
+180 196 64
+181 196 64
+182 196 64
+183 196 64
+184 196 64
+185 196 64
+186 196 64
+187 196 64
+188 196 64
+189 196 64
+190 196 64
+191 196 64
+192 196 64
+193 196 64
+194 196 64
+195 196 64
+196 196 64
+197 196 64
+198 196 64
+199 196 64
+200 196 64
+201 196 64
+202 196 64
+203 196 64
+204 196 64
+205 196 64
+206 196 64
+207 196 64
+208 196 64
+209 196 64
+210 196 64
+211 196 64
+212 196 64
+213 196 64
+214 196 64
+215 196 64
+216 196 64
+217 196 64
+218 196 64
+219 196 64
+220 196 64
+221 196 64
+222 196 64
+223 196 64
+224 196 64
+225 196 64
+226 196 64
+227 196 64
+228 196 64
+229 196 64
+230 196 64
+231 196 64
+232 196 64
+233 196 64
+234 196 64
+235 196 64
+236 196 64
+237 196 64
+238 196 64
+239 196 64
+240 196 64
+241 196 64
+242 196 64
+243 196 64
+244 196 64
+245 196 64
+246 196 64
+247 196 64
+248 196 64
+249 196 64
+250 196 64
+251 196 64
+252 196 64
+253 196 64
+254 196 64
+255 196 64
+0 195 64
+1 195 64
+2 195 64
+3 195 64
+4 195 64
+5 195 64
+6 195 64
+7 195 64
+8 195 64
+9 195 64
+10 195 64
+11 195 64
+12 195 64
+13 195 64
+14 195 64
+15 195 64
+16 195 64
+17 195 64
+18 195 64
+19 195 64
+20 195 64
+21 195 64
+22 195 64
+23 195 64
+24 195 64
+25 195 64
+26 195 64
+27 195 64
+28 195 64
+29 195 64
+30 195 64
+31 195 64
+32 195 64
+33 195 64
+34 195 64
+35 195 64
+36 195 64
+37 195 64
+38 195 64
+39 195 64
+40 195 64
+41 195 64
+42 195 64
+43 195 64
+44 195 64
+45 195 64
+46 195 64
+47 195 64
+48 195 64
+49 195 64
+50 195 64
+51 195 64
+52 195 64
+53 195 64
+54 195 64
+55 195 64
+56 195 64
+57 195 64
+58 195 64
+59 195 64
+60 195 64
+61 195 64
+62 195 64
+63 195 64
+64 195 64
+65 195 64
+66 195 64
+67 195 64
+68 195 64
+69 195 64
+70 195 64
+71 195 64
+72 195 64
+73 195 64
+74 195 64
+75 195 64
+76 195 64
+77 195 64
+78 195 64
+79 195 64
+80 195 64
+81 195 64
+82 195 64
+83 195 64
+84 195 64
+85 195 64
+86 195 64
+87 195 64
+88 195 64
+89 195 64
+90 195 64
+91 195 64
+92 195 64
+93 195 64
+94 195 64
+95 195 64
+96 195 64
+97 195 64
+98 195 64
+99 195 64
+100 195 64
+101 195 64
+102 195 64
+103 195 64
+104 195 64
+105 195 64
+106 195 64
+107 195 64
+108 195 64
+109 195 64
+110 195 64
+111 195 64
+112 195 64
+113 195 64
+114 195 64
+115 195 64
+116 195 64
+117 195 64
+118 195 64
+119 195 64
+120 195 64
+121 195 64
+122 195 64
+123 195 64
+124 195 64
+125 195 64
+126 195 64
+127 195 64
+128 195 64
+129 195 64
+130 195 64
+131 195 64
+132 195 64
+133 195 64
+134 195 64
+135 195 64
+136 195 64
+137 195 64
+138 195 64
+139 195 64
+140 195 64
+141 195 64
+142 195 64
+143 195 64
+144 195 64
+145 195 64
+146 195 64
+147 195 64
+148 195 64
+149 195 64
+150 195 64
+151 195 64
+152 195 64
+153 195 64
+154 195 64
+155 195 64
+156 195 64
+157 195 64
+158 195 64
+159 195 64
+160 195 64
+161 195 64
+162 195 64
+163 195 64
+164 195 64
+165 195 64
+166 195 64
+167 195 64
+168 195 64
+169 195 64
+170 195 64
+171 195 64
+172 195 64
+173 195 64
+174 195 64
+175 195 64
+176 195 64
+177 195 64
+178 195 64
+179 195 64
+180 195 64
+181 195 64
+182 195 64
+183 195 64
+184 195 64
+185 195 64
+186 195 64
+187 195 64
+188 195 64
+189 195 64
+190 195 64
+191 195 64
+192 195 64
+193 195 64
+194 195 64
+195 195 64
+196 195 64
+197 195 64
+198 195 64
+199 195 64
+200 195 64
+201 195 64
+202 195 64
+203 195 64
+204 195 64
+205 195 64
+206 195 64
+207 195 64
+208 195 64
+209 195 64
+210 195 64
+211 195 64
+212 195 64
+213 195 64
+214 195 64
+215 195 64
+216 195 64
+217 195 64
+218 195 64
+219 195 64
+220 195 64
+221 195 64
+222 195 64
+223 195 64
+224 195 64
+225 195 64
+226 195 64
+227 195 64
+228 195 64
+229 195 64
+230 195 64
+231 195 64
+232 195 64
+233 195 64
+234 195 64
+235 195 64
+236 195 64
+237 195 64
+238 195 64
+239 195 64
+240 195 64
+241 195 64
+242 195 64
+243 195 64
+244 195 64
+245 195 64
+246 195 64
+247 195 64
+248 195 64
+249 195 64
+250 195 64
+251 195 64
+252 195 64
+253 195 64
+254 195 64
+255 195 64
+0 194 64
+1 194 64
+2 194 64
+3 194 64
+4 194 64
+5 194 64
+6 194 64
+7 194 64
+8 194 64
+9 194 64
+10 194 64
+11 194 64
+12 194 64
+13 194 64
+14 194 64
+15 194 64
+16 194 64
+17 194 64
+18 194 64
+19 194 64
+20 194 64
+21 194 64
+22 194 64
+23 194 64
+24 194 64
+25 194 64
+26 194 64
+27 194 64
+28 194 64
+29 194 64
+30 194 64
+31 194 64
+32 194 64
+33 194 64
+34 194 64
+35 194 64
+36 194 64
+37 194 64
+38 194 64
+39 194 64
+40 194 64
+41 194 64
+42 194 64
+43 194 64
+44 194 64
+45 194 64
+46 194 64
+47 194 64
+48 194 64
+49 194 64
+50 194 64
+51 194 64
+52 194 64
+53 194 64
+54 194 64
+55 194 64
+56 194 64
+57 194 64
+58 194 64
+59 194 64
+60 194 64
+61 194 64
+62 194 64
+63 194 64
+64 194 64
+65 194 64
+66 194 64
+67 194 64
+68 194 64
+69 194 64
+70 194 64
+71 194 64
+72 194 64
+73 194 64
+74 194 64
+75 194 64
+76 194 64
+77 194 64
+78 194 64
+79 194 64
+80 194 64
+81 194 64
+82 194 64
+83 194 64
+84 194 64
+85 194 64
+86 194 64
+87 194 64
+88 194 64
+89 194 64
+90 194 64
+91 194 64
+92 194 64
+93 194 64
+94 194 64
+95 194 64
+96 194 64
+97 194 64
+98 194 64
+99 194 64
+100 194 64
+101 194 64
+102 194 64
+103 194 64
+104 194 64
+105 194 64
+106 194 64
+107 194 64
+108 194 64
+109 194 64
+110 194 64
+111 194 64
+112 194 64
+113 194 64
+114 194 64
+115 194 64
+116 194 64
+117 194 64
+118 194 64
+119 194 64
+120 194 64
+121 194 64
+122 194 64
+123 194 64
+124 194 64
+125 194 64
+126 194 64
+127 194 64
+128 194 64
+129 194 64
+130 194 64
+131 194 64
+132 194 64
+133 194 64
+134 194 64
+135 194 64
+136 194 64
+137 194 64
+138 194 64
+139 194 64
+140 194 64
+141 194 64
+142 194 64
+143 194 64
+144 194 64
+145 194 64
+146 194 64
+147 194 64
+148 194 64
+149 194 64
+150 194 64
+151 194 64
+152 194 64
+153 194 64
+154 194 64
+155 194 64
+156 194 64
+157 194 64
+158 194 64
+159 194 64
+160 194 64
+161 194 64
+162 194 64
+163 194 64
+164 194 64
+165 194 64
+166 194 64
+167 194 64
+168 194 64
+169 194 64
+170 194 64
+171 194 64
+172 194 64
+173 194 64
+174 194 64
+175 194 64
+176 194 64
+177 194 64
+178 194 64
+179 194 64
+180 194 64
+181 194 64
+182 194 64
+183 194 64
+184 194 64
+185 194 64
+186 194 64
+187 194 64
+188 194 64
+189 194 64
+190 194 64
+191 194 64
+192 194 64
+193 194 64
+194 194 64
+195 194 64
+196 194 64
+197 194 64
+198 194 64
+199 194 64
+200 194 64
+201 194 64
+202 194 64
+203 194 64
+204 194 64
+205 194 64
+206 194 64
+207 194 64
+208 194 64
+209 194 64
+210 194 64
+211 194 64
+212 194 64
+213 194 64
+214 194 64
+215 194 64
+216 194 64
+217 194 64
+218 194 64
+219 194 64
+220 194 64
+221 194 64
+222 194 64
+223 194 64
+224 194 64
+225 194 64
+226 194 64
+227 194 64
+228 194 64
+229 194 64
+230 194 64
+231 194 64
+232 194 64
+233 194 64
+234 194 64
+235 194 64
+236 194 64
+237 194 64
+238 194 64
+239 194 64
+240 194 64
+241 194 64
+242 194 64
+243 194 64
+244 194 64
+245 194 64
+246 194 64
+247 194 64
+248 194 64
+249 194 64
+250 194 64
+251 194 64
+252 194 64
+253 194 64
+254 194 64
+255 194 64
+0 193 64
+1 193 64
+2 193 64
+3 193 64
+4 193 64
+5 193 64
+6 193 64
+7 193 64
+8 193 64
+9 193 64
+10 193 64
+11 193 64
+12 193 64
+13 193 64
+14 193 64
+15 193 64
+16 193 64
+17 193 64
+18 193 64
+19 193 64
+20 193 64
+21 193 64
+22 193 64
+23 193 64
+24 193 64
+25 193 64
+26 193 64
+27 193 64
+28 193 64
+29 193 64
+30 193 64
+31 193 64
+32 193 64
+33 193 64
+34 193 64
+35 193 64
+36 193 64
+37 193 64
+38 193 64
+39 193 64
+40 193 64
+41 193 64
+42 193 64
+43 193 64
+44 193 64
+45 193 64
+46 193 64
+47 193 64
+48 193 64
+49 193 64
+50 193 64
+51 193 64
+52 193 64
+53 193 64
+54 193 64
+55 193 64
+56 193 64
+57 193 64
+58 193 64
+59 193 64
+60 193 64
+61 193 64
+62 193 64
+63 193 64
+64 193 64
+65 193 64
+66 193 64
+67 193 64
+68 193 64
+69 193 64
+70 193 64
+71 193 64
+72 193 64
+73 193 64
+74 193 64
+75 193 64
+76 193 64
+77 193 64
+78 193 64
+79 193 64
+80 193 64
+81 193 64
+82 193 64
+83 193 64
+84 193 64
+85 193 64
+86 193 64
+87 193 64
+88 193 64
+89 193 64
+90 193 64
+91 193 64
+92 193 64
+93 193 64
+94 193 64
+95 193 64
+96 193 64
+97 193 64
+98 193 64
+99 193 64
+100 193 64
+101 193 64
+102 193 64
+103 193 64
+104 193 64
+105 193 64
+106 193 64
+107 193 64
+108 193 64
+109 193 64
+110 193 64
+111 193 64
+112 193 64
+113 193 64
+114 193 64
+115 193 64
+116 193 64
+117 193 64
+118 193 64
+119 193 64
+120 193 64
+121 193 64
+122 193 64
+123 193 64
+124 193 64
+125 193 64
+126 193 64
+127 193 64
+128 193 64
+129 193 64
+130 193 64
+131 193 64
+132 193 64
+133 193 64
+134 193 64
+135 193 64
+136 193 64
+137 193 64
+138 193 64
+139 193 64
+140 193 64
+141 193 64
+142 193 64
+143 193 64
+144 193 64
+145 193 64
+146 193 64
+147 193 64
+148 193 64
+149 193 64
+150 193 64
+151 193 64
+152 193 64
+153 193 64
+154 193 64
+155 193 64
+156 193 64
+157 193 64
+158 193 64
+159 193 64
+160 193 64
+161 193 64
+162 193 64
+163 193 64
+164 193 64
+165 193 64
+166 193 64
+167 193 64
+168 193 64
+169 193 64
+170 193 64
+171 193 64
+172 193 64
+173 193 64
+174 193 64
+175 193 64
+176 193 64
+177 193 64
+178 193 64
+179 193 64
+180 193 64
+181 193 64
+182 193 64
+183 193 64
+184 193 64
+185 193 64
+186 193 64
+187 193 64
+188 193 64
+189 193 64
+190 193 64
+191 193 64
+192 193 64
+193 193 64
+194 193 64
+195 193 64
+196 193 64
+197 193 64
+198 193 64
+199 193 64
+200 193 64
+201 193 64
+202 193 64
+203 193 64
+204 193 64
+205 193 64
+206 193 64
+207 193 64
+208 193 64
+209 193 64
+210 193 64
+211 193 64
+212 193 64
+213 193 64
+214 193 64
+215 193 64
+216 193 64
+217 193 64
+218 193 64
+219 193 64
+220 193 64
+221 193 64
+222 193 64
+223 193 64
+224 193 64
+225 193 64
+226 193 64
+227 193 64
+228 193 64
+229 193 64
+230 193 64
+231 193 64
+232 193 64
+233 193 64
+234 193 64
+235 193 64
+236 193 64
+237 193 64
+238 193 64
+239 193 64
+240 193 64
+241 193 64
+242 193 64
+243 193 64
+244 193 64
+245 193 64
+246 193 64
+247 193 64
+248 193 64
+249 193 64
+250 193 64
+251 193 64
+252 193 64
+253 193 64
+254 193 64
+255 193 64
+0 192 64
+1 192 64
+2 192 64
+3 192 64
+4 192 64
+5 192 64
+6 192 64
+7 192 64
+8 192 64
+9 192 64
+10 192 64
+11 192 64
+12 192 64
+13 192 64
+14 192 64
+15 192 64
+16 192 64
+17 192 64
+18 192 64
+19 192 64
+20 192 64
+21 192 64
+22 192 64
+23 192 64
+24 192 64
+25 192 64
+26 192 64
+27 192 64
+28 192 64
+29 192 64
+30 192 64
+31 192 64
+32 192 64
+33 192 64
+34 192 64
+35 192 64
+36 192 64
+37 192 64
+38 192 64
+39 192 64
+40 192 64
+41 192 64
+42 192 64
+43 192 64
+44 192 64
+45 192 64
+46 192 64
+47 192 64
+48 192 64
+49 192 64
+50 192 64
+51 192 64
+52 192 64
+53 192 64
+54 192 64
+55 192 64
+56 192 64
+57 192 64
+58 192 64
+59 192 64
+60 192 64
+61 192 64
+62 192 64
+63 192 64
+64 192 64
+65 192 64
+66 192 64
+67 192 64
+68 192 64
+69 192 64
+70 192 64
+71 192 64
+72 192 64
+73 192 64
+74 192 64
+75 192 64
+76 192 64
+77 192 64
+78 192 64
+79 192 64
+80 192 64
+81 192 64
+82 192 64
+83 192 64
+84 192 64
+85 192 64
+86 192 64
+87 192 64
+88 192 64
+89 192 64
+90 192 64
+91 192 64
+92 192 64
+93 192 64
+94 192 64
+95 192 64
+96 192 64
+97 192 64
+98 192 64
+99 192 64
+100 192 64
+101 192 64
+102 192 64
+103 192 64
+104 192 64
+105 192 64
+106 192 64
+107 192 64
+108 192 64
+109 192 64
+110 192 64
+111 192 64
+112 192 64
+113 192 64
+114 192 64
+115 192 64
+116 192 64
+117 192 64
+118 192 64
+119 192 64
+120 192 64
+121 192 64
+122 192 64
+123 192 64
+124 192 64
+125 192 64
+126 192 64
+127 192 64
+128 192 64
+129 192 64
+130 192 64
+131 192 64
+132 192 64
+133 192 64
+134 192 64
+135 192 64
+136 192 64
+137 192 64
+138 192 64
+139 192 64
+140 192 64
+141 192 64
+142 192 64
+143 192 64
+144 192 64
+145 192 64
+146 192 64
+147 192 64
+148 192 64
+149 192 64
+150 192 64
+151 192 64
+152 192 64
+153 192 64
+154 192 64
+155 192 64
+156 192 64
+157 192 64
+158 192 64
+159 192 64
+160 192 64
+161 192 64
+162 192 64
+163 192 64
+164 192 64
+165 192 64
+166 192 64
+167 192 64
+168 192 64
+169 192 64
+170 192 64
+171 192 64
+172 192 64
+173 192 64
+174 192 64
+175 192 64
+176 192 64
+177 192 64
+178 192 64
+179 192 64
+180 192 64
+181 192 64
+182 192 64
+183 192 64
+184 192 64
+185 192 64
+186 192 64
+187 192 64
+188 192 64
+189 192 64
+190 192 64
+191 192 64
+192 192 64
+193 192 64
+194 192 64
+195 192 64
+196 192 64
+197 192 64
+198 192 64
+199 192 64
+200 192 64
+201 192 64
+202 192 64
+203 192 64
+204 192 64
+205 192 64
+206 192 64
+207 192 64
+208 192 64
+209 192 64
+210 192 64
+211 192 64
+212 192 64
+213 192 64
+214 192 64
+215 192 64
+216 192 64
+217 192 64
+218 192 64
+219 192 64
+220 192 64
+221 192 64
+222 192 64
+223 192 64
+224 192 64
+225 192 64
+226 192 64
+227 192 64
+228 192 64
+229 192 64
+230 192 64
+231 192 64
+232 192 64
+233 192 64
+234 192 64
+235 192 64
+236 192 64
+237 192 64
+238 192 64
+239 192 64
+240 192 64
+241 192 64
+242 192 64
+243 192 64
+244 192 64
+245 192 64
+246 192 64
+247 192 64
+248 192 64
+249 192 64
+250 192 64
+251 192 64
+252 192 64
+253 192 64
+254 192 64
+255 192 64
+0 191 64
+1 191 64
+2 191 64
+3 191 64
+4 191 64
+5 191 64
+6 191 64
+7 191 64
+8 191 64
+9 191 64
+10 191 64
+11 191 64
+12 191 64
+13 191 64
+14 191 64
+15 191 64
+16 191 64
+17 191 64
+18 191 64
+19 191 64
+20 191 64
+21 191 64
+22 191 64
+23 191 64
+24 191 64
+25 191 64
+26 191 64
+27 191 64
+28 191 64
+29 191 64
+30 191 64
+31 191 64
+32 191 64
+33 191 64
+34 191 64
+35 191 64
+36 191 64
+37 191 64
+38 191 64
+39 191 64
+40 191 64
+41 191 64
+42 191 64
+43 191 64
+44 191 64
+45 191 64
+46 191 64
+47 191 64
+48 191 64
+49 191 64
+50 191 64
+51 191 64
+52 191 64
+53 191 64
+54 191 64
+55 191 64
+56 191 64
+57 191 64
+58 191 64
+59 191 64
+60 191 64
+61 191 64
+62 191 64
+63 191 64
+64 191 64
+65 191 64
+66 191 64
+67 191 64
+68 191 64
+69 191 64
+70 191 64
+71 191 64
+72 191 64
+73 191 64
+74 191 64
+75 191 64
+76 191 64
+77 191 64
+78 191 64
+79 191 64
+80 191 64
+81 191 64
+82 191 64
+83 191 64
+84 191 64
+85 191 64
+86 191 64
+87 191 64
+88 191 64
+89 191 64
+90 191 64
+91 191 64
+92 191 64
+93 191 64
+94 191 64
+95 191 64
+96 191 64
+97 191 64
+98 191 64
+99 191 64
+100 191 64
+101 191 64
+102 191 64
+103 191 64
+104 191 64
+105 191 64
+106 191 64
+107 191 64
+108 191 64
+109 191 64
+110 191 64
+111 191 64
+112 191 64
+113 191 64
+114 191 64
+115 191 64
+116 191 64
+117 191 64
+118 191 64
+119 191 64
+120 191 64
+121 191 64
+122 191 64
+123 191 64
+124 191 64
+125 191 64
+126 191 64
+127 191 64
+128 191 64
+129 191 64
+130 191 64
+131 191 64
+132 191 64
+133 191 64
+134 191 64
+135 191 64
+136 191 64
+137 191 64
+138 191 64
+139 191 64
+140 191 64
+141 191 64
+142 191 64
+143 191 64
+144 191 64
+145 191 64
+146 191 64
+147 191 64
+148 191 64
+149 191 64
+150 191 64
+151 191 64
+152 191 64
+153 191 64
+154 191 64
+155 191 64
+156 191 64
+157 191 64
+158 191 64
+159 191 64
+160 191 64
+161 191 64
+162 191 64
+163 191 64
+164 191 64
+165 191 64
+166 191 64
+167 191 64
+168 191 64
+169 191 64
+170 191 64
+171 191 64
+172 191 64
+173 191 64
+174 191 64
+175 191 64
+176 191 64
+177 191 64
+178 191 64
+179 191 64
+180 191 64
+181 191 64
+182 191 64
+183 191 64
+184 191 64
+185 191 64
+186 191 64
+187 191 64
+188 191 64
+189 191 64
+190 191 64
+191 191 64
+192 191 64
+193 191 64
+194 191 64
+195 191 64
+196 191 64
+197 191 64
+198 191 64
+199 191 64
+200 191 64
+201 191 64
+202 191 64
+203 191 64
+204 191 64
+205 191 64
+206 191 64
+207 191 64
+208 191 64
+209 191 64
+210 191 64
+211 191 64
+212 191 64
+213 191 64
+214 191 64
+215 191 64
+216 191 64
+217 191 64
+218 191 64
+219 191 64
+220 191 64
+221 191 64
+222 191 64
+223 191 64
+224 191 64
+225 191 64
+226 191 64
+227 191 64
+228 191 64
+229 191 64
+230 191 64
+231 191 64
+232 191 64
+233 191 64
+234 191 64
+235 191 64
+236 191 64
+237 191 64
+238 191 64
+239 191 64
+240 191 64
+241 191 64
+242 191 64
+243 191 64
+244 191 64
+245 191 64
+246 191 64
+247 191 64
+248 191 64
+249 191 64
+250 191 64
+251 191 64
+252 191 64
+253 191 64
+254 191 64
+255 191 64
+0 190 64
+1 190 64
+2 190 64
+3 190 64
+4 190 64
+5 190 64
+6 190 64
+7 190 64
+8 190 64
+9 190 64
+10 190 64
+11 190 64
+12 190 64
+13 190 64
+14 190 64
+15 190 64
+16 190 64
+17 190 64
+18 190 64
+19 190 64
+20 190 64
+21 190 64
+22 190 64
+23 190 64
+24 190 64
+25 190 64
+26 190 64
+27 190 64
+28 190 64
+29 190 64
+30 190 64
+31 190 64
+32 190 64
+33 190 64
+34 190 64
+35 190 64
+36 190 64
+37 190 64
+38 190 64
+39 190 64
+40 190 64
+41 190 64
+42 190 64
+43 190 64
+44 190 64
+45 190 64
+46 190 64
+47 190 64
+48 190 64
+49 190 64
+50 190 64
+51 190 64
+52 190 64
+53 190 64
+54 190 64
+55 190 64
+56 190 64
+57 190 64
+58 190 64
+59 190 64
+60 190 64
+61 190 64
+62 190 64
+63 190 64
+64 190 64
+65 190 64
+66 190 64
+67 190 64
+68 190 64
+69 190 64
+70 190 64
+71 190 64
+72 190 64
+73 190 64
+74 190 64
+75 190 64
+76 190 64
+77 190 64
+78 190 64
+79 190 64
+80 190 64
+81 190 64
+82 190 64
+83 190 64
+84 190 64
+85 190 64
+86 190 64
+87 190 64
+88 190 64
+89 190 64
+90 190 64
+91 190 64
+92 190 64
+93 190 64
+94 190 64
+95 190 64
+96 190 64
+97 190 64
+98 190 64
+99 190 64
+100 190 64
+101 190 64
+102 190 64
+103 190 64
+104 190 64
+105 190 64
+106 190 64
+107 190 64
+108 190 64
+109 190 64
+110 190 64
+111 190 64
+112 190 64
+113 190 64
+114 190 64
+115 190 64
+116 190 64
+117 190 64
+118 190 64
+119 190 64
+120 190 64
+121 190 64
+122 190 64
+123 190 64
+124 190 64
+125 190 64
+126 190 64
+127 190 64
+128 190 64
+129 190 64
+130 190 64
+131 190 64
+132 190 64
+133 190 64
+134 190 64
+135 190 64
+136 190 64
+137 190 64
+138 190 64
+139 190 64
+140 190 64
+141 190 64
+142 190 64
+143 190 64
+144 190 64
+145 190 64
+146 190 64
+147 190 64
+148 190 64
+149 190 64
+150 190 64
+151 190 64
+152 190 64
+153 190 64
+154 190 64
+155 190 64
+156 190 64
+157 190 64
+158 190 64
+159 190 64
+160 190 64
+161 190 64
+162 190 64
+163 190 64
+164 190 64
+165 190 64
+166 190 64
+167 190 64
+168 190 64
+169 190 64
+170 190 64
+171 190 64
+172 190 64
+173 190 64
+174 190 64
+175 190 64
+176 190 64
+177 190 64
+178 190 64
+179 190 64
+180 190 64
+181 190 64
+182 190 64
+183 190 64
+184 190 64
+185 190 64
+186 190 64
+187 190 64
+188 190 64
+189 190 64
+190 190 64
+191 190 64
+192 190 64
+193 190 64
+194 190 64
+195 190 64
+196 190 64
+197 190 64
+198 190 64
+199 190 64
+200 190 64
+201 190 64
+202 190 64
+203 190 64
+204 190 64
+205 190 64
+206 190 64
+207 190 64
+208 190 64
+209 190 64
+210 190 64
+211 190 64
+212 190 64
+213 190 64
+214 190 64
+215 190 64
+216 190 64
+217 190 64
+218 190 64
+219 190 64
+220 190 64
+221 190 64
+222 190 64
+223 190 64
+224 190 64
+225 190 64
+226 190 64
+227 190 64
+228 190 64
+229 190 64
+230 190 64
+231 190 64
+232 190 64
+233 190 64
+234 190 64
+235 190 64
+236 190 64
+237 190 64
+238 190 64
+239 190 64
+240 190 64
+241 190 64
+242 190 64
+243 190 64
+244 190 64
+245 190 64
+246 190 64
+247 190 64
+248 190 64
+249 190 64
+250 190 64
+251 190 64
+252 190 64
+253 190 64
+254 190 64
+255 190 64
+0 189 64
+1 189 64
+2 189 64
+3 189 64
+4 189 64
+5 189 64
+6 189 64
+7 189 64
+8 189 64
+9 189 64
+10 189 64
+11 189 64
+12 189 64
+13 189 64
+14 189 64
+15 189 64
+16 189 64
+17 189 64
+18 189 64
+19 189 64
+20 189 64
+21 189 64
+22 189 64
+23 189 64
+24 189 64
+25 189 64
+26 189 64
+27 189 64
+28 189 64
+29 189 64
+30 189 64
+31 189 64
+32 189 64
+33 189 64
+34 189 64
+35 189 64
+36 189 64
+37 189 64
+38 189 64
+39 189 64
+40 189 64
+41 189 64
+42 189 64
+43 189 64
+44 189 64
+45 189 64
+46 189 64
+47 189 64
+48 189 64
+49 189 64
+50 189 64
+51 189 64
+52 189 64
+53 189 64
+54 189 64
+55 189 64
+56 189 64
+57 189 64
+58 189 64
+59 189 64
+60 189 64
+61 189 64
+62 189 64
+63 189 64
+64 189 64
+65 189 64
+66 189 64
+67 189 64
+68 189 64
+69 189 64
+70 189 64
+71 189 64
+72 189 64
+73 189 64
+74 189 64
+75 189 64
+76 189 64
+77 189 64
+78 189 64
+79 189 64
+80 189 64
+81 189 64
+82 189 64
+83 189 64
+84 189 64
+85 189 64
+86 189 64
+87 189 64
+88 189 64
+89 189 64
+90 189 64
+91 189 64
+92 189 64
+93 189 64
+94 189 64
+95 189 64
+96 189 64
+97 189 64
+98 189 64
+99 189 64
+100 189 64
+101 189 64
+102 189 64
+103 189 64
+104 189 64
+105 189 64
+106 189 64
+107 189 64
+108 189 64
+109 189 64
+110 189 64
+111 189 64
+112 189 64
+113 189 64
+114 189 64
+115 189 64
+116 189 64
+117 189 64
+118 189 64
+119 189 64
+120 189 64
+121 189 64
+122 189 64
+123 189 64
+124 189 64
+125 189 64
+126 189 64
+127 189 64
+128 189 64
+129 189 64
+130 189 64
+131 189 64
+132 189 64
+133 189 64
+134 189 64
+135 189 64
+136 189 64
+137 189 64
+138 189 64
+139 189 64
+140 189 64
+141 189 64
+142 189 64
+143 189 64
+144 189 64
+145 189 64
+146 189 64
+147 189 64
+148 189 64
+149 189 64
+150 189 64
+151 189 64
+152 189 64
+153 189 64
+154 189 64
+155 189 64
+156 189 64
+157 189 64
+158 189 64
+159 189 64
+160 189 64
+161 189 64
+162 189 64
+163 189 64
+164 189 64
+165 189 64
+166 189 64
+167 189 64
+168 189 64
+169 189 64
+170 189 64
+171 189 64
+172 189 64
+173 189 64
+174 189 64
+175 189 64
+176 189 64
+177 189 64
+178 189 64
+179 189 64
+180 189 64
+181 189 64
+182 189 64
+183 189 64
+184 189 64
+185 189 64
+186 189 64
+187 189 64
+188 189 64
+189 189 64
+190 189 64
+191 189 64
+192 189 64
+193 189 64
+194 189 64
+195 189 64
+196 189 64
+197 189 64
+198 189 64
+199 189 64
+200 189 64
+201 189 64
+202 189 64
+203 189 64
+204 189 64
+205 189 64
+206 189 64
+207 189 64
+208 189 64
+209 189 64
+210 189 64
+211 189 64
+212 189 64
+213 189 64
+214 189 64
+215 189 64
+216 189 64
+217 189 64
+218 189 64
+219 189 64
+220 189 64
+221 189 64
+222 189 64
+223 189 64
+224 189 64
+225 189 64
+226 189 64
+227 189 64
+228 189 64
+229 189 64
+230 189 64
+231 189 64
+232 189 64
+233 189 64
+234 189 64
+235 189 64
+236 189 64
+237 189 64
+238 189 64
+239 189 64
+240 189 64
+241 189 64
+242 189 64
+243 189 64
+244 189 64
+245 189 64
+246 189 64
+247 189 64
+248 189 64
+249 189 64
+250 189 64
+251 189 64
+252 189 64
+253 189 64
+254 189 64
+255 189 64
+0 188 64
+1 188 64
+2 188 64
+3 188 64
+4 188 64
+5 188 64
+6 188 64
+7 188 64
+8 188 64
+9 188 64
+10 188 64
+11 188 64
+12 188 64
+13 188 64
+14 188 64
+15 188 64
+16 188 64
+17 188 64
+18 188 64
+19 188 64
+20 188 64
+21 188 64
+22 188 64
+23 188 64
+24 188 64
+25 188 64
+26 188 64
+27 188 64
+28 188 64
+29 188 64
+30 188 64
+31 188 64
+32 188 64
+33 188 64
+34 188 64
+35 188 64
+36 188 64
+37 188 64
+38 188 64
+39 188 64
+40 188 64
+41 188 64
+42 188 64
+43 188 64
+44 188 64
+45 188 64
+46 188 64
+47 188 64
+48 188 64
+49 188 64
+50 188 64
+51 188 64
+52 188 64
+53 188 64
+54 188 64
+55 188 64
+56 188 64
+57 188 64
+58 188 64
+59 188 64
+60 188 64
+61 188 64
+62 188 64
+63 188 64
+64 188 64
+65 188 64
+66 188 64
+67 188 64
+68 188 64
+69 188 64
+70 188 64
+71 188 64
+72 188 64
+73 188 64
+74 188 64
+75 188 64
+76 188 64
+77 188 64
+78 188 64
+79 188 64
+80 188 64
+81 188 64
+82 188 64
+83 188 64
+84 188 64
+85 188 64
+86 188 64
+87 188 64
+88 188 64
+89 188 64
+90 188 64
+91 188 64
+92 188 64
+93 188 64
+94 188 64
+95 188 64
+96 188 64
+97 188 64
+98 188 64
+99 188 64
+100 188 64
+101 188 64
+102 188 64
+103 188 64
+104 188 64
+105 188 64
+106 188 64
+107 188 64
+108 188 64
+109 188 64
+110 188 64
+111 188 64
+112 188 64
+113 188 64
+114 188 64
+115 188 64
+116 188 64
+117 188 64
+118 188 64
+119 188 64
+120 188 64
+121 188 64
+122 188 64
+123 188 64
+124 188 64
+125 188 64
+126 188 64
+127 188 64
+128 188 64
+129 188 64
+130 188 64
+131 188 64
+132 188 64
+133 188 64
+134 188 64
+135 188 64
+136 188 64
+137 188 64
+138 188 64
+139 188 64
+140 188 64
+141 188 64
+142 188 64
+143 188 64
+144 188 64
+145 188 64
+146 188 64
+147 188 64
+148 188 64
+149 188 64
+150 188 64
+151 188 64
+152 188 64
+153 188 64
+154 188 64
+155 188 64
+156 188 64
+157 188 64
+158 188 64
+159 188 64
+160 188 64
+161 188 64
+162 188 64
+163 188 64
+164 188 64
+165 188 64
+166 188 64
+167 188 64
+168 188 64
+169 188 64
+170 188 64
+171 188 64
+172 188 64
+173 188 64
+174 188 64
+175 188 64
+176 188 64
+177 188 64
+178 188 64
+179 188 64
+180 188 64
+181 188 64
+182 188 64
+183 188 64
+184 188 64
+185 188 64
+186 188 64
+187 188 64
+188 188 64
+189 188 64
+190 188 64
+191 188 64
+192 188 64
+193 188 64
+194 188 64
+195 188 64
+196 188 64
+197 188 64
+198 188 64
+199 188 64
+200 188 64
+201 188 64
+202 188 64
+203 188 64
+204 188 64
+205 188 64
+206 188 64
+207 188 64
+208 188 64
+209 188 64
+210 188 64
+211 188 64
+212 188 64
+213 188 64
+214 188 64
+215 188 64
+216 188 64
+217 188 64
+218 188 64
+219 188 64
+220 188 64
+221 188 64
+222 188 64
+223 188 64
+224 188 64
+225 188 64
+226 188 64
+227 188 64
+228 188 64
+229 188 64
+230 188 64
+231 188 64
+232 188 64
+233 188 64
+234 188 64
+235 188 64
+236 188 64
+237 188 64
+238 188 64
+239 188 64
+240 188 64
+241 188 64
+242 188 64
+243 188 64
+244 188 64
+245 188 64
+246 188 64
+247 188 64
+248 188 64
+249 188 64
+250 188 64
+251 188 64
+252 188 64
+253 188 64
+254 188 64
+255 188 64
+0 187 64
+1 187 64
+2 187 64
+3 187 64
+4 187 64
+5 187 64
+6 187 64
+7 187 64
+8 187 64
+9 187 64
+10 187 64
+11 187 64
+12 187 64
+13 187 64
+14 187 64
+15 187 64
+16 187 64
+17 187 64
+18 187 64
+19 187 64
+20 187 64
+21 187 64
+22 187 64
+23 187 64
+24 187 64
+25 187 64
+26 187 64
+27 187 64
+28 187 64
+29 187 64
+30 187 64
+31 187 64
+32 187 64
+33 187 64
+34 187 64
+35 187 64
+36 187 64
+37 187 64
+38 187 64
+39 187 64
+40 187 64
+41 187 64
+42 187 64
+43 187 64
+44 187 64
+45 187 64
+46 187 64
+47 187 64
+48 187 64
+49 187 64
+50 187 64
+51 187 64
+52 187 64
+53 187 64
+54 187 64
+55 187 64
+56 187 64
+57 187 64
+58 187 64
+59 187 64
+60 187 64
+61 187 64
+62 187 64
+63 187 64
+64 187 64
+65 187 64
+66 187 64
+67 187 64
+68 187 64
+69 187 64
+70 187 64
+71 187 64
+72 187 64
+73 187 64
+74 187 64
+75 187 64
+76 187 64
+77 187 64
+78 187 64
+79 187 64
+80 187 64
+81 187 64
+82 187 64
+83 187 64
+84 187 64
+85 187 64
+86 187 64
+87 187 64
+88 187 64
+89 187 64
+90 187 64
+91 187 64
+92 187 64
+93 187 64
+94 187 64
+95 187 64
+96 187 64
+97 187 64
+98 187 64
+99 187 64
+100 187 64
+101 187 64
+102 187 64
+103 187 64
+104 187 64
+105 187 64
+106 187 64
+107 187 64
+108 187 64
+109 187 64
+110 187 64
+111 187 64
+112 187 64
+113 187 64
+114 187 64
+115 187 64
+116 187 64
+117 187 64
+118 187 64
+119 187 64
+120 187 64
+121 187 64
+122 187 64
+123 187 64
+124 187 64
+125 187 64
+126 187 64
+127 187 64
+128 187 64
+129 187 64
+130 187 64
+131 187 64
+132 187 64
+133 187 64
+134 187 64
+135 187 64
+136 187 64
+137 187 64
+138 187 64
+139 187 64
+140 187 64
+141 187 64
+142 187 64
+143 187 64
+144 187 64
+145 187 64
+146 187 64
+147 187 64
+148 187 64
+149 187 64
+150 187 64
+151 187 64
+152 187 64
+153 187 64
+154 187 64
+155 187 64
+156 187 64
+157 187 64
+158 187 64
+159 187 64
+160 187 64
+161 187 64
+162 187 64
+163 187 64
+164 187 64
+165 187 64
+166 187 64
+167 187 64
+168 187 64
+169 187 64
+170 187 64
+171 187 64
+172 187 64
+173 187 64
+174 187 64
+175 187 64
+176 187 64
+177 187 64
+178 187 64
+179 187 64
+180 187 64
+181 187 64
+182 187 64
+183 187 64
+184 187 64
+185 187 64
+186 187 64
+187 187 64
+188 187 64
+189 187 64
+190 187 64
+191 187 64
+192 187 64
+193 187 64
+194 187 64
+195 187 64
+196 187 64
+197 187 64
+198 187 64
+199 187 64
+200 187 64
+201 187 64
+202 187 64
+203 187 64
+204 187 64
+205 187 64
+206 187 64
+207 187 64
+208 187 64
+209 187 64
+210 187 64
+211 187 64
+212 187 64
+213 187 64
+214 187 64
+215 187 64
+216 187 64
+217 187 64
+218 187 64
+219 187 64
+220 187 64
+221 187 64
+222 187 64
+223 187 64
+224 187 64
+225 187 64
+226 187 64
+227 187 64
+228 187 64
+229 187 64
+230 187 64
+231 187 64
+232 187 64
+233 187 64
+234 187 64
+235 187 64
+236 187 64
+237 187 64
+238 187 64
+239 187 64
+240 187 64
+241 187 64
+242 187 64
+243 187 64
+244 187 64
+245 187 64
+246 187 64
+247 187 64
+248 187 64
+249 187 64
+250 187 64
+251 187 64
+252 187 64
+253 187 64
+254 187 64
+255 187 64
+0 186 64
+1 186 64
+2 186 64
+3 186 64
+4 186 64
+5 186 64
+6 186 64
+7 186 64
+8 186 64
+9 186 64
+10 186 64
+11 186 64
+12 186 64
+13 186 64
+14 186 64
+15 186 64
+16 186 64
+17 186 64
+18 186 64
+19 186 64
+20 186 64
+21 186 64
+22 186 64
+23 186 64
+24 186 64
+25 186 64
+26 186 64
+27 186 64
+28 186 64
+29 186 64
+30 186 64
+31 186 64
+32 186 64
+33 186 64
+34 186 64
+35 186 64
+36 186 64
+37 186 64
+38 186 64
+39 186 64
+40 186 64
+41 186 64
+42 186 64
+43 186 64
+44 186 64
+45 186 64
+46 186 64
+47 186 64
+48 186 64
+49 186 64
+50 186 64
+51 186 64
+52 186 64
+53 186 64
+54 186 64
+55 186 64
+56 186 64
+57 186 64
+58 186 64
+59 186 64
+60 186 64
+61 186 64
+62 186 64
+63 186 64
+64 186 64
+65 186 64
+66 186 64
+67 186 64
+68 186 64
+69 186 64
+70 186 64
+71 186 64
+72 186 64
+73 186 64
+74 186 64
+75 186 64
+76 186 64
+77 186 64
+78 186 64
+79 186 64
+80 186 64
+81 186 64
+82 186 64
+83 186 64
+84 186 64
+85 186 64
+86 186 64
+87 186 64
+88 186 64
+89 186 64
+90 186 64
+91 186 64
+92 186 64
+93 186 64
+94 186 64
+95 186 64
+96 186 64
+97 186 64
+98 186 64
+99 186 64
+100 186 64
+101 186 64
+102 186 64
+103 186 64
+104 186 64
+105 186 64
+106 186 64
+107 186 64
+108 186 64
+109 186 64
+110 186 64
+111 186 64
+112 186 64
+113 186 64
+114 186 64
+115 186 64
+116 186 64
+117 186 64
+118 186 64
+119 186 64
+120 186 64
+121 186 64
+122 186 64
+123 186 64
+124 186 64
+125 186 64
+126 186 64
+127 186 64
+128 186 64
+129 186 64
+130 186 64
+131 186 64
+132 186 64
+133 186 64
+134 186 64
+135 186 64
+136 186 64
+137 186 64
+138 186 64
+139 186 64
+140 186 64
+141 186 64
+142 186 64
+143 186 64
+144 186 64
+145 186 64
+146 186 64
+147 186 64
+148 186 64
+149 186 64
+150 186 64
+151 186 64
+152 186 64
+153 186 64
+154 186 64
+155 186 64
+156 186 64
+157 186 64
+158 186 64
+159 186 64
+160 186 64
+161 186 64
+162 186 64
+163 186 64
+164 186 64
+165 186 64
+166 186 64
+167 186 64
+168 186 64
+169 186 64
+170 186 64
+171 186 64
+172 186 64
+173 186 64
+174 186 64
+175 186 64
+176 186 64
+177 186 64
+178 186 64
+179 186 64
+180 186 64
+181 186 64
+182 186 64
+183 186 64
+184 186 64
+185 186 64
+186 186 64
+187 186 64
+188 186 64
+189 186 64
+190 186 64
+191 186 64
+192 186 64
+193 186 64
+194 186 64
+195 186 64
+196 186 64
+197 186 64
+198 186 64
+199 186 64
+200 186 64
+201 186 64
+202 186 64
+203 186 64
+204 186 64
+205 186 64
+206 186 64
+207 186 64
+208 186 64
+209 186 64
+210 186 64
+211 186 64
+212 186 64
+213 186 64
+214 186 64
+215 186 64
+216 186 64
+217 186 64
+218 186 64
+219 186 64
+220 186 64
+221 186 64
+222 186 64
+223 186 64
+224 186 64
+225 186 64
+226 186 64
+227 186 64
+228 186 64
+229 186 64
+230 186 64
+231 186 64
+232 186 64
+233 186 64
+234 186 64
+235 186 64
+236 186 64
+237 186 64
+238 186 64
+239 186 64
+240 186 64
+241 186 64
+242 186 64
+243 186 64
+244 186 64
+245 186 64
+246 186 64
+247 186 64
+248 186 64
+249 186 64
+250 186 64
+251 186 64
+252 186 64
+253 186 64
+254 186 64
+255 186 64
+0 185 64
+1 185 64
+2 185 64
+3 185 64
+4 185 64
+5 185 64
+6 185 64
+7 185 64
+8 185 64
+9 185 64
+10 185 64
+11 185 64
+12 185 64
+13 185 64
+14 185 64
+15 185 64
+16 185 64
+17 185 64
+18 185 64
+19 185 64
+20 185 64
+21 185 64
+22 185 64
+23 185 64
+24 185 64
+25 185 64
+26 185 64
+27 185 64
+28 185 64
+29 185 64
+30 185 64
+31 185 64
+32 185 64
+33 185 64
+34 185 64
+35 185 64
+36 185 64
+37 185 64
+38 185 64
+39 185 64
+40 185 64
+41 185 64
+42 185 64
+43 185 64
+44 185 64
+45 185 64
+46 185 64
+47 185 64
+48 185 64
+49 185 64
+50 185 64
+51 185 64
+52 185 64
+53 185 64
+54 185 64
+55 185 64
+56 185 64
+57 185 64
+58 185 64
+59 185 64
+60 185 64
+61 185 64
+62 185 64
+63 185 64
+64 185 64
+65 185 64
+66 185 64
+67 185 64
+68 185 64
+69 185 64
+70 185 64
+71 185 64
+72 185 64
+73 185 64
+74 185 64
+75 185 64
+76 185 64
+77 185 64
+78 185 64
+79 185 64
+80 185 64
+81 185 64
+82 185 64
+83 185 64
+84 185 64
+85 185 64
+86 185 64
+87 185 64
+88 185 64
+89 185 64
+90 185 64
+91 185 64
+92 185 64
+93 185 64
+94 185 64
+95 185 64
+96 185 64
+97 185 64
+98 185 64
+99 185 64
+100 185 64
+101 185 64
+102 185 64
+103 185 64
+104 185 64
+105 185 64
+106 185 64
+107 185 64
+108 185 64
+109 185 64
+110 185 64
+111 185 64
+112 185 64
+113 185 64
+114 185 64
+115 185 64
+116 185 64
+117 185 64
+118 185 64
+119 185 64
+120 185 64
+121 185 64
+122 185 64
+123 185 64
+124 185 64
+125 185 64
+126 185 64
+127 185 64
+128 185 64
+129 185 64
+130 185 64
+131 185 64
+132 185 64
+133 185 64
+134 185 64
+135 185 64
+136 185 64
+137 185 64
+138 185 64
+139 185 64
+140 185 64
+141 185 64
+142 185 64
+143 185 64
+144 185 64
+145 185 64
+146 185 64
+147 185 64
+148 185 64
+149 185 64
+150 185 64
+151 185 64
+152 185 64
+153 185 64
+154 185 64
+155 185 64
+156 185 64
+157 185 64
+158 185 64
+159 185 64
+160 185 64
+161 185 64
+162 185 64
+163 185 64
+164 185 64
+165 185 64
+166 185 64
+167 185 64
+168 185 64
+169 185 64
+170 185 64
+171 185 64
+172 185 64
+173 185 64
+174 185 64
+175 185 64
+176 185 64
+177 185 64
+178 185 64
+179 185 64
+180 185 64
+181 185 64
+182 185 64
+183 185 64
+184 185 64
+185 185 64
+186 185 64
+187 185 64
+188 185 64
+189 185 64
+190 185 64
+191 185 64
+192 185 64
+193 185 64
+194 185 64
+195 185 64
+196 185 64
+197 185 64
+198 185 64
+199 185 64
+200 185 64
+201 185 64
+202 185 64
+203 185 64
+204 185 64
+205 185 64
+206 185 64
+207 185 64
+208 185 64
+209 185 64
+210 185 64
+211 185 64
+212 185 64
+213 185 64
+214 185 64
+215 185 64
+216 185 64
+217 185 64
+218 185 64
+219 185 64
+220 185 64
+221 185 64
+222 185 64
+223 185 64
+224 185 64
+225 185 64
+226 185 64
+227 185 64
+228 185 64
+229 185 64
+230 185 64
+231 185 64
+232 185 64
+233 185 64
+234 185 64
+235 185 64
+236 185 64
+237 185 64
+238 185 64
+239 185 64
+240 185 64
+241 185 64
+242 185 64
+243 185 64
+244 185 64
+245 185 64
+246 185 64
+247 185 64
+248 185 64
+249 185 64
+250 185 64
+251 185 64
+252 185 64
+253 185 64
+254 185 64
+255 185 64
+0 184 64
+1 184 64
+2 184 64
+3 184 64
+4 184 64
+5 184 64
+6 184 64
+7 184 64
+8 184 64
+9 184 64
+10 184 64
+11 184 64
+12 184 64
+13 184 64
+14 184 64
+15 184 64
+16 184 64
+17 184 64
+18 184 64
+19 184 64
+20 184 64
+21 184 64
+22 184 64
+23 184 64
+24 184 64
+25 184 64
+26 184 64
+27 184 64
+28 184 64
+29 184 64
+30 184 64
+31 184 64
+32 184 64
+33 184 64
+34 184 64
+35 184 64
+36 184 64
+37 184 64
+38 184 64
+39 184 64
+40 184 64
+41 184 64
+42 184 64
+43 184 64
+44 184 64
+45 184 64
+46 184 64
+47 184 64
+48 184 64
+49 184 64
+50 184 64
+51 184 64
+52 184 64
+53 184 64
+54 184 64
+55 184 64
+56 184 64
+57 184 64
+58 184 64
+59 184 64
+60 184 64
+61 184 64
+62 184 64
+63 184 64
+64 184 64
+65 184 64
+66 184 64
+67 184 64
+68 184 64
+69 184 64
+70 184 64
+71 184 64
+72 184 64
+73 184 64
+74 184 64
+75 184 64
+76 184 64
+77 184 64
+78 184 64
+79 184 64
+80 184 64
+81 184 64
+82 184 64
+83 184 64
+84 184 64
+85 184 64
+86 184 64
+87 184 64
+88 184 64
+89 184 64
+90 184 64
+91 184 64
+92 184 64
+93 184 64
+94 184 64
+95 184 64
+96 184 64
+97 184 64
+98 184 64
+99 184 64
+100 184 64
+101 184 64
+102 184 64
+103 184 64
+104 184 64
+105 184 64
+106 184 64
+107 184 64
+108 184 64
+109 184 64
+110 184 64
+111 184 64
+112 184 64
+113 184 64
+114 184 64
+115 184 64
+116 184 64
+117 184 64
+118 184 64
+119 184 64
+120 184 64
+121 184 64
+122 184 64
+123 184 64
+124 184 64
+125 184 64
+126 184 64
+127 184 64
+128 184 64
+129 184 64
+130 184 64
+131 184 64
+132 184 64
+133 184 64
+134 184 64
+135 184 64
+136 184 64
+137 184 64
+138 184 64
+139 184 64
+140 184 64
+141 184 64
+142 184 64
+143 184 64
+144 184 64
+145 184 64
+146 184 64
+147 184 64
+148 184 64
+149 184 64
+150 184 64
+151 184 64
+152 184 64
+153 184 64
+154 184 64
+155 184 64
+156 184 64
+157 184 64
+158 184 64
+159 184 64
+160 184 64
+161 184 64
+162 184 64
+163 184 64
+164 184 64
+165 184 64
+166 184 64
+167 184 64
+168 184 64
+169 184 64
+170 184 64
+171 184 64
+172 184 64
+173 184 64
+174 184 64
+175 184 64
+176 184 64
+177 184 64
+178 184 64
+179 184 64
+180 184 64
+181 184 64
+182 184 64
+183 184 64
+184 184 64
+185 184 64
+186 184 64
+187 184 64
+188 184 64
+189 184 64
+190 184 64
+191 184 64
+192 184 64
+193 184 64
+194 184 64
+195 184 64
+196 184 64
+197 184 64
+198 184 64
+199 184 64
+200 184 64
+201 184 64
+202 184 64
+203 184 64
+204 184 64
+205 184 64
+206 184 64
+207 184 64
+208 184 64
+209 184 64
+210 184 64
+211 184 64
+212 184 64
+213 184 64
+214 184 64
+215 184 64
+216 184 64
+217 184 64
+218 184 64
+219 184 64
+220 184 64
+221 184 64
+222 184 64
+223 184 64
+224 184 64
+225 184 64
+226 184 64
+227 184 64
+228 184 64
+229 184 64
+230 184 64
+231 184 64
+232 184 64
+233 184 64
+234 184 64
+235 184 64
+236 184 64
+237 184 64
+238 184 64
+239 184 64
+240 184 64
+241 184 64
+242 184 64
+243 184 64
+244 184 64
+245 184 64
+246 184 64
+247 184 64
+248 184 64
+249 184 64
+250 184 64
+251 184 64
+252 184 64
+253 184 64
+254 184 64
+255 184 64
+0 183 64
+1 183 64
+2 183 64
+3 183 64
+4 183 64
+5 183 64
+6 183 64
+7 183 64
+8 183 64
+9 183 64
+10 183 64
+11 183 64
+12 183 64
+13 183 64
+14 183 64
+15 183 64
+16 183 64
+17 183 64
+18 183 64
+19 183 64
+20 183 64
+21 183 64
+22 183 64
+23 183 64
+24 183 64
+25 183 64
+26 183 64
+27 183 64
+28 183 64
+29 183 64
+30 183 64
+31 183 64
+32 183 64
+33 183 64
+34 183 64
+35 183 64
+36 183 64
+37 183 64
+38 183 64
+39 183 64
+40 183 64
+41 183 64
+42 183 64
+43 183 64
+44 183 64
+45 183 64
+46 183 64
+47 183 64
+48 183 64
+49 183 64
+50 183 64
+51 183 64
+52 183 64
+53 183 64
+54 183 64
+55 183 64
+56 183 64
+57 183 64
+58 183 64
+59 183 64
+60 183 64
+61 183 64
+62 183 64
+63 183 64
+64 183 64
+65 183 64
+66 183 64
+67 183 64
+68 183 64
+69 183 64
+70 183 64
+71 183 64
+72 183 64
+73 183 64
+74 183 64
+75 183 64
+76 183 64
+77 183 64
+78 183 64
+79 183 64
+80 183 64
+81 183 64
+82 183 64
+83 183 64
+84 183 64
+85 183 64
+86 183 64
+87 183 64
+88 183 64
+89 183 64
+90 183 64
+91 183 64
+92 183 64
+93 183 64
+94 183 64
+95 183 64
+96 183 64
+97 183 64
+98 183 64
+99 183 64
+100 183 64
+101 183 64
+102 183 64
+103 183 64
+104 183 64
+105 183 64
+106 183 64
+107 183 64
+108 183 64
+109 183 64
+110 183 64
+111 183 64
+112 183 64
+113 183 64
+114 183 64
+115 183 64
+116 183 64
+117 183 64
+118 183 64
+119 183 64
+120 183 64
+121 183 64
+122 183 64
+123 183 64
+124 183 64
+125 183 64
+126 183 64
+127 183 64
+128 183 64
+129 183 64
+130 183 64
+131 183 64
+132 183 64
+133 183 64
+134 183 64
+135 183 64
+136 183 64
+137 183 64
+138 183 64
+139 183 64
+140 183 64
+141 183 64
+142 183 64
+143 183 64
+144 183 64
+145 183 64
+146 183 64
+147 183 64
+148 183 64
+149 183 64
+150 183 64
+151 183 64
+152 183 64
+153 183 64
+154 183 64
+155 183 64
+156 183 64
+157 183 64
+158 183 64
+159 183 64
+160 183 64
+161 183 64
+162 183 64
+163 183 64
+164 183 64
+165 183 64
+166 183 64
+167 183 64
+168 183 64
+169 183 64
+170 183 64
+171 183 64
+172 183 64
+173 183 64
+174 183 64
+175 183 64
+176 183 64
+177 183 64
+178 183 64
+179 183 64
+180 183 64
+181 183 64
+182 183 64
+183 183 64
+184 183 64
+185 183 64
+186 183 64
+187 183 64
+188 183 64
+189 183 64
+190 183 64
+191 183 64
+192 183 64
+193 183 64
+194 183 64
+195 183 64
+196 183 64
+197 183 64
+198 183 64
+199 183 64
+200 183 64
+201 183 64
+202 183 64
+203 183 64
+204 183 64
+205 183 64
+206 183 64
+207 183 64
+208 183 64
+209 183 64
+210 183 64
+211 183 64
+212 183 64
+213 183 64
+214 183 64
+215 183 64
+216 183 64
+217 183 64
+218 183 64
+219 183 64
+220 183 64
+221 183 64
+222 183 64
+223 183 64
+224 183 64
+225 183 64
+226 183 64
+227 183 64
+228 183 64
+229 183 64
+230 183 64
+231 183 64
+232 183 64
+233 183 64
+234 183 64
+235 183 64
+236 183 64
+237 183 64
+238 183 64
+239 183 64
+240 183 64
+241 183 64
+242 183 64
+243 183 64
+244 183 64
+245 183 64
+246 183 64
+247 183 64
+248 183 64
+249 183 64
+250 183 64
+251 183 64
+252 183 64
+253 183 64
+254 183 64
+255 183 64
+0 182 64
+1 182 64
+2 182 64
+3 182 64
+4 182 64
+5 182 64
+6 182 64
+7 182 64
+8 182 64
+9 182 64
+10 182 64
+11 182 64
+12 182 64
+13 182 64
+14 182 64
+15 182 64
+16 182 64
+17 182 64
+18 182 64
+19 182 64
+20 182 64
+21 182 64
+22 182 64
+23 182 64
+24 182 64
+25 182 64
+26 182 64
+27 182 64
+28 182 64
+29 182 64
+30 182 64
+31 182 64
+32 182 64
+33 182 64
+34 182 64
+35 182 64
+36 182 64
+37 182 64
+38 182 64
+39 182 64
+40 182 64
+41 182 64
+42 182 64
+43 182 64
+44 182 64
+45 182 64
+46 182 64
+47 182 64
+48 182 64
+49 182 64
+50 182 64
+51 182 64
+52 182 64
+53 182 64
+54 182 64
+55 182 64
+56 182 64
+57 182 64
+58 182 64
+59 182 64
+60 182 64
+61 182 64
+62 182 64
+63 182 64
+64 182 64
+65 182 64
+66 182 64
+67 182 64
+68 182 64
+69 182 64
+70 182 64
+71 182 64
+72 182 64
+73 182 64
+74 182 64
+75 182 64
+76 182 64
+77 182 64
+78 182 64
+79 182 64
+80 182 64
+81 182 64
+82 182 64
+83 182 64
+84 182 64
+85 182 64
+86 182 64
+87 182 64
+88 182 64
+89 182 64
+90 182 64
+91 182 64
+92 182 64
+93 182 64
+94 182 64
+95 182 64
+96 182 64
+97 182 64
+98 182 64
+99 182 64
+100 182 64
+101 182 64
+102 182 64
+103 182 64
+104 182 64
+105 182 64
+106 182 64
+107 182 64
+108 182 64
+109 182 64
+110 182 64
+111 182 64
+112 182 64
+113 182 64
+114 182 64
+115 182 64
+116 182 64
+117 182 64
+118 182 64
+119 182 64
+120 182 64
+121 182 64
+122 182 64
+123 182 64
+124 182 64
+125 182 64
+126 182 64
+127 182 64
+128 182 64
+129 182 64
+130 182 64
+131 182 64
+132 182 64
+133 182 64
+134 182 64
+135 182 64
+136 182 64
+137 182 64
+138 182 64
+139 182 64
+140 182 64
+141 182 64
+142 182 64
+143 182 64
+144 182 64
+145 182 64
+146 182 64
+147 182 64
+148 182 64
+149 182 64
+150 182 64
+151 182 64
+152 182 64
+153 182 64
+154 182 64
+155 182 64
+156 182 64
+157 182 64
+158 182 64
+159 182 64
+160 182 64
+161 182 64
+162 182 64
+163 182 64
+164 182 64
+165 182 64
+166 182 64
+167 182 64
+168 182 64
+169 182 64
+170 182 64
+171 182 64
+172 182 64
+173 182 64
+174 182 64
+175 182 64
+176 182 64
+177 182 64
+178 182 64
+179 182 64
+180 182 64
+181 182 64
+182 182 64
+183 182 64
+184 182 64
+185 182 64
+186 182 64
+187 182 64
+188 182 64
+189 182 64
+190 182 64
+191 182 64
+192 182 64
+193 182 64
+194 182 64
+195 182 64
+196 182 64
+197 182 64
+198 182 64
+199 182 64
+200 182 64
+201 182 64
+202 182 64
+203 182 64
+204 182 64
+205 182 64
+206 182 64
+207 182 64
+208 182 64
+209 182 64
+210 182 64
+211 182 64
+212 182 64
+213 182 64
+214 182 64
+215 182 64
+216 182 64
+217 182 64
+218 182 64
+219 182 64
+220 182 64
+221 182 64
+222 182 64
+223 182 64
+224 182 64
+225 182 64
+226 182 64
+227 182 64
+228 182 64
+229 182 64
+230 182 64
+231 182 64
+232 182 64
+233 182 64
+234 182 64
+235 182 64
+236 182 64
+237 182 64
+238 182 64
+239 182 64
+240 182 64
+241 182 64
+242 182 64
+243 182 64
+244 182 64
+245 182 64
+246 182 64
+247 182 64
+248 182 64
+249 182 64
+250 182 64
+251 182 64
+252 182 64
+253 182 64
+254 182 64
+255 182 64
+0 181 64
+1 181 64
+2 181 64
+3 181 64
+4 181 64
+5 181 64
+6 181 64
+7 181 64
+8 181 64
+9 181 64
+10 181 64
+11 181 64
+12 181 64
+13 181 64
+14 181 64
+15 181 64
+16 181 64
+17 181 64
+18 181 64
+19 181 64
+20 181 64
+21 181 64
+22 181 64
+23 181 64
+24 181 64
+25 181 64
+26 181 64
+27 181 64
+28 181 64
+29 181 64
+30 181 64
+31 181 64
+32 181 64
+33 181 64
+34 181 64
+35 181 64
+36 181 64
+37 181 64
+38 181 64
+39 181 64
+40 181 64
+41 181 64
+42 181 64
+43 181 64
+44 181 64
+45 181 64
+46 181 64
+47 181 64
+48 181 64
+49 181 64
+50 181 64
+51 181 64
+52 181 64
+53 181 64
+54 181 64
+55 181 64
+56 181 64
+57 181 64
+58 181 64
+59 181 64
+60 181 64
+61 181 64
+62 181 64
+63 181 64
+64 181 64
+65 181 64
+66 181 64
+67 181 64
+68 181 64
+69 181 64
+70 181 64
+71 181 64
+72 181 64
+73 181 64
+74 181 64
+75 181 64
+76 181 64
+77 181 64
+78 181 64
+79 181 64
+80 181 64
+81 181 64
+82 181 64
+83 181 64
+84 181 64
+85 181 64
+86 181 64
+87 181 64
+88 181 64
+89 181 64
+90 181 64
+91 181 64
+92 181 64
+93 181 64
+94 181 64
+95 181 64
+96 181 64
+97 181 64
+98 181 64
+99 181 64
+100 181 64
+101 181 64
+102 181 64
+103 181 64
+104 181 64
+105 181 64
+106 181 64
+107 181 64
+108 181 64
+109 181 64
+110 181 64
+111 181 64
+112 181 64
+113 181 64
+114 181 64
+115 181 64
+116 181 64
+117 181 64
+118 181 64
+119 181 64
+120 181 64
+121 181 64
+122 181 64
+123 181 64
+124 181 64
+125 181 64
+126 181 64
+127 181 64
+128 181 64
+129 181 64
+130 181 64
+131 181 64
+132 181 64
+133 181 64
+134 181 64
+135 181 64
+136 181 64
+137 181 64
+138 181 64
+139 181 64
+140 181 64
+141 181 64
+142 181 64
+143 181 64
+144 181 64
+145 181 64
+146 181 64
+147 181 64
+148 181 64
+149 181 64
+150 181 64
+151 181 64
+152 181 64
+153 181 64
+154 181 64
+155 181 64
+156 181 64
+157 181 64
+158 181 64
+159 181 64
+160 181 64
+161 181 64
+162 181 64
+163 181 64
+164 181 64
+165 181 64
+166 181 64
+167 181 64
+168 181 64
+169 181 64
+170 181 64
+171 181 64
+172 181 64
+173 181 64
+174 181 64
+175 181 64
+176 181 64
+177 181 64
+178 181 64
+179 181 64
+180 181 64
+181 181 64
+182 181 64
+183 181 64
+184 181 64
+185 181 64
+186 181 64
+187 181 64
+188 181 64
+189 181 64
+190 181 64
+191 181 64
+192 181 64
+193 181 64
+194 181 64
+195 181 64
+196 181 64
+197 181 64
+198 181 64
+199 181 64
+200 181 64
+201 181 64
+202 181 64
+203 181 64
+204 181 64
+205 181 64
+206 181 64
+207 181 64
+208 181 64
+209 181 64
+210 181 64
+211 181 64
+212 181 64
+213 181 64
+214 181 64
+215 181 64
+216 181 64
+217 181 64
+218 181 64
+219 181 64
+220 181 64
+221 181 64
+222 181 64
+223 181 64
+224 181 64
+225 181 64
+226 181 64
+227 181 64
+228 181 64
+229 181 64
+230 181 64
+231 181 64
+232 181 64
+233 181 64
+234 181 64
+235 181 64
+236 181 64
+237 181 64
+238 181 64
+239 181 64
+240 181 64
+241 181 64
+242 181 64
+243 181 64
+244 181 64
+245 181 64
+246 181 64
+247 181 64
+248 181 64
+249 181 64
+250 181 64
+251 181 64
+252 181 64
+253 181 64
+254 181 64
+255 181 64
+0 180 64
+1 180 64
+2 180 64
+3 180 64
+4 180 64
+5 180 64
+6 180 64
+7 180 64
+8 180 64
+9 180 64
+10 180 64
+11 180 64
+12 180 64
+13 180 64
+14 180 64
+15 180 64
+16 180 64
+17 180 64
+18 180 64
+19 180 64
+20 180 64
+21 180 64
+22 180 64
+23 180 64
+24 180 64
+25 180 64
+26 180 64
+27 180 64
+28 180 64
+29 180 64
+30 180 64
+31 180 64
+32 180 64
+33 180 64
+34 180 64
+35 180 64
+36 180 64
+37 180 64
+38 180 64
+39 180 64
+40 180 64
+41 180 64
+42 180 64
+43 180 64
+44 180 64
+45 180 64
+46 180 64
+47 180 64
+48 180 64
+49 180 64
+50 180 64
+51 180 64
+52 180 64
+53 180 64
+54 180 64
+55 180 64
+56 180 64
+57 180 64
+58 180 64
+59 180 64
+60 180 64
+61 180 64
+62 180 64
+63 180 64
+64 180 64
+65 180 64
+66 180 64
+67 180 64
+68 180 64
+69 180 64
+70 180 64
+71 180 64
+72 180 64
+73 180 64
+74 180 64
+75 180 64
+76 180 64
+77 180 64
+78 180 64
+79 180 64
+80 180 64
+81 180 64
+82 180 64
+83 180 64
+84 180 64
+85 180 64
+86 180 64
+87 180 64
+88 180 64
+89 180 64
+90 180 64
+91 180 64
+92 180 64
+93 180 64
+94 180 64
+95 180 64
+96 180 64
+97 180 64
+98 180 64
+99 180 64
+100 180 64
+101 180 64
+102 180 64
+103 180 64
+104 180 64
+105 180 64
+106 180 64
+107 180 64
+108 180 64
+109 180 64
+110 180 64
+111 180 64
+112 180 64
+113 180 64
+114 180 64
+115 180 64
+116 180 64
+117 180 64
+118 180 64
+119 180 64
+120 180 64
+121 180 64
+122 180 64
+123 180 64
+124 180 64
+125 180 64
+126 180 64
+127 180 64
+128 180 64
+129 180 64
+130 180 64
+131 180 64
+132 180 64
+133 180 64
+134 180 64
+135 180 64
+136 180 64
+137 180 64
+138 180 64
+139 180 64
+140 180 64
+141 180 64
+142 180 64
+143 180 64
+144 180 64
+145 180 64
+146 180 64
+147 180 64
+148 180 64
+149 180 64
+150 180 64
+151 180 64
+152 180 64
+153 180 64
+154 180 64
+155 180 64
+156 180 64
+157 180 64
+158 180 64
+159 180 64
+160 180 64
+161 180 64
+162 180 64
+163 180 64
+164 180 64
+165 180 64
+166 180 64
+167 180 64
+168 180 64
+169 180 64
+170 180 64
+171 180 64
+172 180 64
+173 180 64
+174 180 64
+175 180 64
+176 180 64
+177 180 64
+178 180 64
+179 180 64
+180 180 64
+181 180 64
+182 180 64
+183 180 64
+184 180 64
+185 180 64
+186 180 64
+187 180 64
+188 180 64
+189 180 64
+190 180 64
+191 180 64
+192 180 64
+193 180 64
+194 180 64
+195 180 64
+196 180 64
+197 180 64
+198 180 64
+199 180 64
+200 180 64
+201 180 64
+202 180 64
+203 180 64
+204 180 64
+205 180 64
+206 180 64
+207 180 64
+208 180 64
+209 180 64
+210 180 64
+211 180 64
+212 180 64
+213 180 64
+214 180 64
+215 180 64
+216 180 64
+217 180 64
+218 180 64
+219 180 64
+220 180 64
+221 180 64
+222 180 64
+223 180 64
+224 180 64
+225 180 64
+226 180 64
+227 180 64
+228 180 64
+229 180 64
+230 180 64
+231 180 64
+232 180 64
+233 180 64
+234 180 64
+235 180 64
+236 180 64
+237 180 64
+238 180 64
+239 180 64
+240 180 64
+241 180 64
+242 180 64
+243 180 64
+244 180 64
+245 180 64
+246 180 64
+247 180 64
+248 180 64
+249 180 64
+250 180 64
+251 180 64
+252 180 64
+253 180 64
+254 180 64
+255 180 64
+0 179 64
+1 179 64
+2 179 64
+3 179 64
+4 179 64
+5 179 64
+6 179 64
+7 179 64
+8 179 64
+9 179 64
+10 179 64
+11 179 64
+12 179 64
+13 179 64
+14 179 64
+15 179 64
+16 179 64
+17 179 64
+18 179 64
+19 179 64
+20 179 64
+21 179 64
+22 179 64
+23 179 64
+24 179 64
+25 179 64
+26 179 64
+27 179 64
+28 179 64
+29 179 64
+30 179 64
+31 179 64
+32 179 64
+33 179 64
+34 179 64
+35 179 64
+36 179 64
+37 179 64
+38 179 64
+39 179 64
+40 179 64
+41 179 64
+42 179 64
+43 179 64
+44 179 64
+45 179 64
+46 179 64
+47 179 64
+48 179 64
+49 179 64
+50 179 64
+51 179 64
+52 179 64
+53 179 64
+54 179 64
+55 179 64
+56 179 64
+57 179 64
+58 179 64
+59 179 64
+60 179 64
+61 179 64
+62 179 64
+63 179 64
+64 179 64
+65 179 64
+66 179 64
+67 179 64
+68 179 64
+69 179 64
+70 179 64
+71 179 64
+72 179 64
+73 179 64
+74 179 64
+75 179 64
+76 179 64
+77 179 64
+78 179 64
+79 179 64
+80 179 64
+81 179 64
+82 179 64
+83 179 64
+84 179 64
+85 179 64
+86 179 64
+87 179 64
+88 179 64
+89 179 64
+90 179 64
+91 179 64
+92 179 64
+93 179 64
+94 179 64
+95 179 64
+96 179 64
+97 179 64
+98 179 64
+99 179 64
+100 179 64
+101 179 64
+102 179 64
+103 179 64
+104 179 64
+105 179 64
+106 179 64
+107 179 64
+108 179 64
+109 179 64
+110 179 64
+111 179 64
+112 179 64
+113 179 64
+114 179 64
+115 179 64
+116 179 64
+117 179 64
+118 179 64
+119 179 64
+120 179 64
+121 179 64
+122 179 64
+123 179 64
+124 179 64
+125 179 64
+126 179 64
+127 179 64
+128 179 64
+129 179 64
+130 179 64
+131 179 64
+132 179 64
+133 179 64
+134 179 64
+135 179 64
+136 179 64
+137 179 64
+138 179 64
+139 179 64
+140 179 64
+141 179 64
+142 179 64
+143 179 64
+144 179 64
+145 179 64
+146 179 64
+147 179 64
+148 179 64
+149 179 64
+150 179 64
+151 179 64
+152 179 64
+153 179 64
+154 179 64
+155 179 64
+156 179 64
+157 179 64
+158 179 64
+159 179 64
+160 179 64
+161 179 64
+162 179 64
+163 179 64
+164 179 64
+165 179 64
+166 179 64
+167 179 64
+168 179 64
+169 179 64
+170 179 64
+171 179 64
+172 179 64
+173 179 64
+174 179 64
+175 179 64
+176 179 64
+177 179 64
+178 179 64
+179 179 64
+180 179 64
+181 179 64
+182 179 64
+183 179 64
+184 179 64
+185 179 64
+186 179 64
+187 179 64
+188 179 64
+189 179 64
+190 179 64
+191 179 64
+192 179 64
+193 179 64
+194 179 64
+195 179 64
+196 179 64
+197 179 64
+198 179 64
+199 179 64
+200 179 64
+201 179 64
+202 179 64
+203 179 64
+204 179 64
+205 179 64
+206 179 64
+207 179 64
+208 179 64
+209 179 64
+210 179 64
+211 179 64
+212 179 64
+213 179 64
+214 179 64
+215 179 64
+216 179 64
+217 179 64
+218 179 64
+219 179 64
+220 179 64
+221 179 64
+222 179 64
+223 179 64
+224 179 64
+225 179 64
+226 179 64
+227 179 64
+228 179 64
+229 179 64
+230 179 64
+231 179 64
+232 179 64
+233 179 64
+234 179 64
+235 179 64
+236 179 64
+237 179 64
+238 179 64
+239 179 64
+240 179 64
+241 179 64
+242 179 64
+243 179 64
+244 179 64
+245 179 64
+246 179 64
+247 179 64
+248 179 64
+249 179 64
+250 179 64
+251 179 64
+252 179 64
+253 179 64
+254 179 64
+255 179 64
+0 178 64
+1 178 64
+2 178 64
+3 178 64
+4 178 64
+5 178 64
+6 178 64
+7 178 64
+8 178 64
+9 178 64
+10 178 64
+11 178 64
+12 178 64
+13 178 64
+14 178 64
+15 178 64
+16 178 64
+17 178 64
+18 178 64
+19 178 64
+20 178 64
+21 178 64
+22 178 64
+23 178 64
+24 178 64
+25 178 64
+26 178 64
+27 178 64
+28 178 64
+29 178 64
+30 178 64
+31 178 64
+32 178 64
+33 178 64
+34 178 64
+35 178 64
+36 178 64
+37 178 64
+38 178 64
+39 178 64
+40 178 64
+41 178 64
+42 178 64
+43 178 64
+44 178 64
+45 178 64
+46 178 64
+47 178 64
+48 178 64
+49 178 64
+50 178 64
+51 178 64
+52 178 64
+53 178 64
+54 178 64
+55 178 64
+56 178 64
+57 178 64
+58 178 64
+59 178 64
+60 178 64
+61 178 64
+62 178 64
+63 178 64
+64 178 64
+65 178 64
+66 178 64
+67 178 64
+68 178 64
+69 178 64
+70 178 64
+71 178 64
+72 178 64
+73 178 64
+74 178 64
+75 178 64
+76 178 64
+77 178 64
+78 178 64
+79 178 64
+80 178 64
+81 178 64
+82 178 64
+83 178 64
+84 178 64
+85 178 64
+86 178 64
+87 178 64
+88 178 64
+89 178 64
+90 178 64
+91 178 64
+92 178 64
+93 178 64
+94 178 64
+95 178 64
+96 178 64
+97 178 64
+98 178 64
+99 178 64
+100 178 64
+101 178 64
+102 178 64
+103 178 64
+104 178 64
+105 178 64
+106 178 64
+107 178 64
+108 178 64
+109 178 64
+110 178 64
+111 178 64
+112 178 64
+113 178 64
+114 178 64
+115 178 64
+116 178 64
+117 178 64
+118 178 64
+119 178 64
+120 178 64
+121 178 64
+122 178 64
+123 178 64
+124 178 64
+125 178 64
+126 178 64
+127 178 64
+128 178 64
+129 178 64
+130 178 64
+131 178 64
+132 178 64
+133 178 64
+134 178 64
+135 178 64
+136 178 64
+137 178 64
+138 178 64
+139 178 64
+140 178 64
+141 178 64
+142 178 64
+143 178 64
+144 178 64
+145 178 64
+146 178 64
+147 178 64
+148 178 64
+149 178 64
+150 178 64
+151 178 64
+152 178 64
+153 178 64
+154 178 64
+155 178 64
+156 178 64
+157 178 64
+158 178 64
+159 178 64
+160 178 64
+161 178 64
+162 178 64
+163 178 64
+164 178 64
+165 178 64
+166 178 64
+167 178 64
+168 178 64
+169 178 64
+170 178 64
+171 178 64
+172 178 64
+173 178 64
+174 178 64
+175 178 64
+176 178 64
+177 178 64
+178 178 64
+179 178 64
+180 178 64
+181 178 64
+182 178 64
+183 178 64
+184 178 64
+185 178 64
+186 178 64
+187 178 64
+188 178 64
+189 178 64
+190 178 64
+191 178 64
+192 178 64
+193 178 64
+194 178 64
+195 178 64
+196 178 64
+197 178 64
+198 178 64
+199 178 64
+200 178 64
+201 178 64
+202 178 64
+203 178 64
+204 178 64
+205 178 64
+206 178 64
+207 178 64
+208 178 64
+209 178 64
+210 178 64
+211 178 64
+212 178 64
+213 178 64
+214 178 64
+215 178 64
+216 178 64
+217 178 64
+218 178 64
+219 178 64
+220 178 64
+221 178 64
+222 178 64
+223 178 64
+224 178 64
+225 178 64
+226 178 64
+227 178 64
+228 178 64
+229 178 64
+230 178 64
+231 178 64
+232 178 64
+233 178 64
+234 178 64
+235 178 64
+236 178 64
+237 178 64
+238 178 64
+239 178 64
+240 178 64
+241 178 64
+242 178 64
+243 178 64
+244 178 64
+245 178 64
+246 178 64
+247 178 64
+248 178 64
+249 178 64
+250 178 64
+251 178 64
+252 178 64
+253 178 64
+254 178 64
+255 178 64
+0 177 64
+1 177 64
+2 177 64
+3 177 64
+4 177 64
+5 177 64
+6 177 64
+7 177 64
+8 177 64
+9 177 64
+10 177 64
+11 177 64
+12 177 64
+13 177 64
+14 177 64
+15 177 64
+16 177 64
+17 177 64
+18 177 64
+19 177 64
+20 177 64
+21 177 64
+22 177 64
+23 177 64
+24 177 64
+25 177 64
+26 177 64
+27 177 64
+28 177 64
+29 177 64
+30 177 64
+31 177 64
+32 177 64
+33 177 64
+34 177 64
+35 177 64
+36 177 64
+37 177 64
+38 177 64
+39 177 64
+40 177 64
+41 177 64
+42 177 64
+43 177 64
+44 177 64
+45 177 64
+46 177 64
+47 177 64
+48 177 64
+49 177 64
+50 177 64
+51 177 64
+52 177 64
+53 177 64
+54 177 64
+55 177 64
+56 177 64
+57 177 64
+58 177 64
+59 177 64
+60 177 64
+61 177 64
+62 177 64
+63 177 64
+64 177 64
+65 177 64
+66 177 64
+67 177 64
+68 177 64
+69 177 64
+70 177 64
+71 177 64
+72 177 64
+73 177 64
+74 177 64
+75 177 64
+76 177 64
+77 177 64
+78 177 64
+79 177 64
+80 177 64
+81 177 64
+82 177 64
+83 177 64
+84 177 64
+85 177 64
+86 177 64
+87 177 64
+88 177 64
+89 177 64
+90 177 64
+91 177 64
+92 177 64
+93 177 64
+94 177 64
+95 177 64
+96 177 64
+97 177 64
+98 177 64
+99 177 64
+100 177 64
+101 177 64
+102 177 64
+103 177 64
+104 177 64
+105 177 64
+106 177 64
+107 177 64
+108 177 64
+109 177 64
+110 177 64
+111 177 64
+112 177 64
+113 177 64
+114 177 64
+115 177 64
+116 177 64
+117 177 64
+118 177 64
+119 177 64
+120 177 64
+121 177 64
+122 177 64
+123 177 64
+124 177 64
+125 177 64
+126 177 64
+127 177 64
+128 177 64
+129 177 64
+130 177 64
+131 177 64
+132 177 64
+133 177 64
+134 177 64
+135 177 64
+136 177 64
+137 177 64
+138 177 64
+139 177 64
+140 177 64
+141 177 64
+142 177 64
+143 177 64
+144 177 64
+145 177 64
+146 177 64
+147 177 64
+148 177 64
+149 177 64
+150 177 64
+151 177 64
+152 177 64
+153 177 64
+154 177 64
+155 177 64
+156 177 64
+157 177 64
+158 177 64
+159 177 64
+160 177 64
+161 177 64
+162 177 64
+163 177 64
+164 177 64
+165 177 64
+166 177 64
+167 177 64
+168 177 64
+169 177 64
+170 177 64
+171 177 64
+172 177 64
+173 177 64
+174 177 64
+175 177 64
+176 177 64
+177 177 64
+178 177 64
+179 177 64
+180 177 64
+181 177 64
+182 177 64
+183 177 64
+184 177 64
+185 177 64
+186 177 64
+187 177 64
+188 177 64
+189 177 64
+190 177 64
+191 177 64
+192 177 64
+193 177 64
+194 177 64
+195 177 64
+196 177 64
+197 177 64
+198 177 64
+199 177 64
+200 177 64
+201 177 64
+202 177 64
+203 177 64
+204 177 64
+205 177 64
+206 177 64
+207 177 64
+208 177 64
+209 177 64
+210 177 64
+211 177 64
+212 177 64
+213 177 64
+214 177 64
+215 177 64
+216 177 64
+217 177 64
+218 177 64
+219 177 64
+220 177 64
+221 177 64
+222 177 64
+223 177 64
+224 177 64
+225 177 64
+226 177 64
+227 177 64
+228 177 64
+229 177 64
+230 177 64
+231 177 64
+232 177 64
+233 177 64
+234 177 64
+235 177 64
+236 177 64
+237 177 64
+238 177 64
+239 177 64
+240 177 64
+241 177 64
+242 177 64
+243 177 64
+244 177 64
+245 177 64
+246 177 64
+247 177 64
+248 177 64
+249 177 64
+250 177 64
+251 177 64
+252 177 64
+253 177 64
+254 177 64
+255 177 64
+0 176 64
+1 176 64
+2 176 64
+3 176 64
+4 176 64
+5 176 64
+6 176 64
+7 176 64
+8 176 64
+9 176 64
+10 176 64
+11 176 64
+12 176 64
+13 176 64
+14 176 64
+15 176 64
+16 176 64
+17 176 64
+18 176 64
+19 176 64
+20 176 64
+21 176 64
+22 176 64
+23 176 64
+24 176 64
+25 176 64
+26 176 64
+27 176 64
+28 176 64
+29 176 64
+30 176 64
+31 176 64
+32 176 64
+33 176 64
+34 176 64
+35 176 64
+36 176 64
+37 176 64
+38 176 64
+39 176 64
+40 176 64
+41 176 64
+42 176 64
+43 176 64
+44 176 64
+45 176 64
+46 176 64
+47 176 64
+48 176 64
+49 176 64
+50 176 64
+51 176 64
+52 176 64
+53 176 64
+54 176 64
+55 176 64
+56 176 64
+57 176 64
+58 176 64
+59 176 64
+60 176 64
+61 176 64
+62 176 64
+63 176 64
+64 176 64
+65 176 64
+66 176 64
+67 176 64
+68 176 64
+69 176 64
+70 176 64
+71 176 64
+72 176 64
+73 176 64
+74 176 64
+75 176 64
+76 176 64
+77 176 64
+78 176 64
+79 176 64
+80 176 64
+81 176 64
+82 176 64
+83 176 64
+84 176 64
+85 176 64
+86 176 64
+87 176 64
+88 176 64
+89 176 64
+90 176 64
+91 176 64
+92 176 64
+93 176 64
+94 176 64
+95 176 64
+96 176 64
+97 176 64
+98 176 64
+99 176 64
+100 176 64
+101 176 64
+102 176 64
+103 176 64
+104 176 64
+105 176 64
+106 176 64
+107 176 64
+108 176 64
+109 176 64
+110 176 64
+111 176 64
+112 176 64
+113 176 64
+114 176 64
+115 176 64
+116 176 64
+117 176 64
+118 176 64
+119 176 64
+120 176 64
+121 176 64
+122 176 64
+123 176 64
+124 176 64
+125 176 64
+126 176 64
+127 176 64
+128 176 64
+129 176 64
+130 176 64
+131 176 64
+132 176 64
+133 176 64
+134 176 64
+135 176 64
+136 176 64
+137 176 64
+138 176 64
+139 176 64
+140 176 64
+141 176 64
+142 176 64
+143 176 64
+144 176 64
+145 176 64
+146 176 64
+147 176 64
+148 176 64
+149 176 64
+150 176 64
+151 176 64
+152 176 64
+153 176 64
+154 176 64
+155 176 64
+156 176 64
+157 176 64
+158 176 64
+159 176 64
+160 176 64
+161 176 64
+162 176 64
+163 176 64
+164 176 64
+165 176 64
+166 176 64
+167 176 64
+168 176 64
+169 176 64
+170 176 64
+171 176 64
+172 176 64
+173 176 64
+174 176 64
+175 176 64
+176 176 64
+177 176 64
+178 176 64
+179 176 64
+180 176 64
+181 176 64
+182 176 64
+183 176 64
+184 176 64
+185 176 64
+186 176 64
+187 176 64
+188 176 64
+189 176 64
+190 176 64
+191 176 64
+192 176 64
+193 176 64
+194 176 64
+195 176 64
+196 176 64
+197 176 64
+198 176 64
+199 176 64
+200 176 64
+201 176 64
+202 176 64
+203 176 64
+204 176 64
+205 176 64
+206 176 64
+207 176 64
+208 176 64
+209 176 64
+210 176 64
+211 176 64
+212 176 64
+213 176 64
+214 176 64
+215 176 64
+216 176 64
+217 176 64
+218 176 64
+219 176 64
+220 176 64
+221 176 64
+222 176 64
+223 176 64
+224 176 64
+225 176 64
+226 176 64
+227 176 64
+228 176 64
+229 176 64
+230 176 64
+231 176 64
+232 176 64
+233 176 64
+234 176 64
+235 176 64
+236 176 64
+237 176 64
+238 176 64
+239 176 64
+240 176 64
+241 176 64
+242 176 64
+243 176 64
+244 176 64
+245 176 64
+246 176 64
+247 176 64
+248 176 64
+249 176 64
+250 176 64
+251 176 64
+252 176 64
+253 176 64
+254 176 64
+255 176 64
+0 175 64
+1 175 64
+2 175 64
+3 175 64
+4 175 64
+5 175 64
+6 175 64
+7 175 64
+8 175 64
+9 175 64
+10 175 64
+11 175 64
+12 175 64
+13 175 64
+14 175 64
+15 175 64
+16 175 64
+17 175 64
+18 175 64
+19 175 64
+20 175 64
+21 175 64
+22 175 64
+23 175 64
+24 175 64
+25 175 64
+26 175 64
+27 175 64
+28 175 64
+29 175 64
+30 175 64
+31 175 64
+32 175 64
+33 175 64
+34 175 64
+35 175 64
+36 175 64
+37 175 64
+38 175 64
+39 175 64
+40 175 64
+41 175 64
+42 175 64
+43 175 64
+44 175 64
+45 175 64
+46 175 64
+47 175 64
+48 175 64
+49 175 64
+50 175 64
+51 175 64
+52 175 64
+53 175 64
+54 175 64
+55 175 64
+56 175 64
+57 175 64
+58 175 64
+59 175 64
+60 175 64
+61 175 64
+62 175 64
+63 175 64
+64 175 64
+65 175 64
+66 175 64
+67 175 64
+68 175 64
+69 175 64
+70 175 64
+71 175 64
+72 175 64
+73 175 64
+74 175 64
+75 175 64
+76 175 64
+77 175 64
+78 175 64
+79 175 64
+80 175 64
+81 175 64
+82 175 64
+83 175 64
+84 175 64
+85 175 64
+86 175 64
+87 175 64
+88 175 64
+89 175 64
+90 175 64
+91 175 64
+92 175 64
+93 175 64
+94 175 64
+95 175 64
+96 175 64
+97 175 64
+98 175 64
+99 175 64
+100 175 64
+101 175 64
+102 175 64
+103 175 64
+104 175 64
+105 175 64
+106 175 64
+107 175 64
+108 175 64
+109 175 64
+110 175 64
+111 175 64
+112 175 64
+113 175 64
+114 175 64
+115 175 64
+116 175 64
+117 175 64
+118 175 64
+119 175 64
+120 175 64
+121 175 64
+122 175 64
+123 175 64
+124 175 64
+125 175 64
+126 175 64
+127 175 64
+128 175 64
+129 175 64
+130 175 64
+131 175 64
+132 175 64
+133 175 64
+134 175 64
+135 175 64
+136 175 64
+137 175 64
+138 175 64
+139 175 64
+140 175 64
+141 175 64
+142 175 64
+143 175 64
+144 175 64
+145 175 64
+146 175 64
+147 175 64
+148 175 64
+149 175 64
+150 175 64
+151 175 64
+152 175 64
+153 175 64
+154 175 64
+155 175 64
+156 175 64
+157 175 64
+158 175 64
+159 175 64
+160 175 64
+161 175 64
+162 175 64
+163 175 64
+164 175 64
+165 175 64
+166 175 64
+167 175 64
+168 175 64
+169 175 64
+170 175 64
+171 175 64
+172 175 64
+173 175 64
+174 175 64
+175 175 64
+176 175 64
+177 175 64
+178 175 64
+179 175 64
+180 175 64
+181 175 64
+182 175 64
+183 175 64
+184 175 64
+185 175 64
+186 175 64
+187 175 64
+188 175 64
+189 175 64
+190 175 64
+191 175 64
+192 175 64
+193 175 64
+194 175 64
+195 175 64
+196 175 64
+197 175 64
+198 175 64
+199 175 64
+200 175 64
+201 175 64
+202 175 64
+203 175 64
+204 175 64
+205 175 64
+206 175 64
+207 175 64
+208 175 64
+209 175 64
+210 175 64
+211 175 64
+212 175 64
+213 175 64
+214 175 64
+215 175 64
+216 175 64
+217 175 64
+218 175 64
+219 175 64
+220 175 64
+221 175 64
+222 175 64
+223 175 64
+224 175 64
+225 175 64
+226 175 64
+227 175 64
+228 175 64
+229 175 64
+230 175 64
+231 175 64
+232 175 64
+233 175 64
+234 175 64
+235 175 64
+236 175 64
+237 175 64
+238 175 64
+239 175 64
+240 175 64
+241 175 64
+242 175 64
+243 175 64
+244 175 64
+245 175 64
+246 175 64
+247 175 64
+248 175 64
+249 175 64
+250 175 64
+251 175 64
+252 175 64
+253 175 64
+254 175 64
+255 175 64
+0 174 64
+1 174 64
+2 174 64
+3 174 64
+4 174 64
+5 174 64
+6 174 64
+7 174 64
+8 174 64
+9 174 64
+10 174 64
+11 174 64
+12 174 64
+13 174 64
+14 174 64
+15 174 64
+16 174 64
+17 174 64
+18 174 64
+19 174 64
+20 174 64
+21 174 64
+22 174 64
+23 174 64
+24 174 64
+25 174 64
+26 174 64
+27 174 64
+28 174 64
+29 174 64
+30 174 64
+31 174 64
+32 174 64
+33 174 64
+34 174 64
+35 174 64
+36 174 64
+37 174 64
+38 174 64
+39 174 64
+40 174 64
+41 174 64
+42 174 64
+43 174 64
+44 174 64
+45 174 64
+46 174 64
+47 174 64
+48 174 64
+49 174 64
+50 174 64
+51 174 64
+52 174 64
+53 174 64
+54 174 64
+55 174 64
+56 174 64
+57 174 64
+58 174 64
+59 174 64
+60 174 64
+61 174 64
+62 174 64
+63 174 64
+64 174 64
+65 174 64
+66 174 64
+67 174 64
+68 174 64
+69 174 64
+70 174 64
+71 174 64
+72 174 64
+73 174 64
+74 174 64
+75 174 64
+76 174 64
+77 174 64
+78 174 64
+79 174 64
+80 174 64
+81 174 64
+82 174 64
+83 174 64
+84 174 64
+85 174 64
+86 174 64
+87 174 64
+88 174 64
+89 174 64
+90 174 64
+91 174 64
+92 174 64
+93 174 64
+94 174 64
+95 174 64
+96 174 64
+97 174 64
+98 174 64
+99 174 64
+100 174 64
+101 174 64
+102 174 64
+103 174 64
+104 174 64
+105 174 64
+106 174 64
+107 174 64
+108 174 64
+109 174 64
+110 174 64
+111 174 64
+112 174 64
+113 174 64
+114 174 64
+115 174 64
+116 174 64
+117 174 64
+118 174 64
+119 174 64
+120 174 64
+121 174 64
+122 174 64
+123 174 64
+124 174 64
+125 174 64
+126 174 64
+127 174 64
+128 174 64
+129 174 64
+130 174 64
+131 174 64
+132 174 64
+133 174 64
+134 174 64
+135 174 64
+136 174 64
+137 174 64
+138 174 64
+139 174 64
+140 174 64
+141 174 64
+142 174 64
+143 174 64
+144 174 64
+145 174 64
+146 174 64
+147 174 64
+148 174 64
+149 174 64
+150 174 64
+151 174 64
+152 174 64
+153 174 64
+154 174 64
+155 174 64
+156 174 64
+157 174 64
+158 174 64
+159 174 64
+160 174 64
+161 174 64
+162 174 64
+163 174 64
+164 174 64
+165 174 64
+166 174 64
+167 174 64
+168 174 64
+169 174 64
+170 174 64
+171 174 64
+172 174 64
+173 174 64
+174 174 64
+175 174 64
+176 174 64
+177 174 64
+178 174 64
+179 174 64
+180 174 64
+181 174 64
+182 174 64
+183 174 64
+184 174 64
+185 174 64
+186 174 64
+187 174 64
+188 174 64
+189 174 64
+190 174 64
+191 174 64
+192 174 64
+193 174 64
+194 174 64
+195 174 64
+196 174 64
+197 174 64
+198 174 64
+199 174 64
+200 174 64
+201 174 64
+202 174 64
+203 174 64
+204 174 64
+205 174 64
+206 174 64
+207 174 64
+208 174 64
+209 174 64
+210 174 64
+211 174 64
+212 174 64
+213 174 64
+214 174 64
+215 174 64
+216 174 64
+217 174 64
+218 174 64
+219 174 64
+220 174 64
+221 174 64
+222 174 64
+223 174 64
+224 174 64
+225 174 64
+226 174 64
+227 174 64
+228 174 64
+229 174 64
+230 174 64
+231 174 64
+232 174 64
+233 174 64
+234 174 64
+235 174 64
+236 174 64
+237 174 64
+238 174 64
+239 174 64
+240 174 64
+241 174 64
+242 174 64
+243 174 64
+244 174 64
+245 174 64
+246 174 64
+247 174 64
+248 174 64
+249 174 64
+250 174 64
+251 174 64
+252 174 64
+253 174 64
+254 174 64
+255 174 64
+0 173 64
+1 173 64
+2 173 64
+3 173 64
+4 173 64
+5 173 64
+6 173 64
+7 173 64
+8 173 64
+9 173 64
+10 173 64
+11 173 64
+12 173 64
+13 173 64
+14 173 64
+15 173 64
+16 173 64
+17 173 64
+18 173 64
+19 173 64
+20 173 64
+21 173 64
+22 173 64
+23 173 64
+24 173 64
+25 173 64
+26 173 64
+27 173 64
+28 173 64
+29 173 64
+30 173 64
+31 173 64
+32 173 64
+33 173 64
+34 173 64
+35 173 64
+36 173 64
+37 173 64
+38 173 64
+39 173 64
+40 173 64
+41 173 64
+42 173 64
+43 173 64
+44 173 64
+45 173 64
+46 173 64
+47 173 64
+48 173 64
+49 173 64
+50 173 64
+51 173 64
+52 173 64
+53 173 64
+54 173 64
+55 173 64
+56 173 64
+57 173 64
+58 173 64
+59 173 64
+60 173 64
+61 173 64
+62 173 64
+63 173 64
+64 173 64
+65 173 64
+66 173 64
+67 173 64
+68 173 64
+69 173 64
+70 173 64
+71 173 64
+72 173 64
+73 173 64
+74 173 64
+75 173 64
+76 173 64
+77 173 64
+78 173 64
+79 173 64
+80 173 64
+81 173 64
+82 173 64
+83 173 64
+84 173 64
+85 173 64
+86 173 64
+87 173 64
+88 173 64
+89 173 64
+90 173 64
+91 173 64
+92 173 64
+93 173 64
+94 173 64
+95 173 64
+96 173 64
+97 173 64
+98 173 64
+99 173 64
+100 173 64
+101 173 64
+102 173 64
+103 173 64
+104 173 64
+105 173 64
+106 173 64
+107 173 64
+108 173 64
+109 173 64
+110 173 64
+111 173 64
+112 173 64
+113 173 64
+114 173 64
+115 173 64
+116 173 64
+117 173 64
+118 173 64
+119 173 64
+120 173 64
+121 173 64
+122 173 64
+123 173 64
+124 173 64
+125 173 64
+126 173 64
+127 173 64
+128 173 64
+129 173 64
+130 173 64
+131 173 64
+132 173 64
+133 173 64
+134 173 64
+135 173 64
+136 173 64
+137 173 64
+138 173 64
+139 173 64
+140 173 64
+141 173 64
+142 173 64
+143 173 64
+144 173 64
+145 173 64
+146 173 64
+147 173 64
+148 173 64
+149 173 64
+150 173 64
+151 173 64
+152 173 64
+153 173 64
+154 173 64
+155 173 64
+156 173 64
+157 173 64
+158 173 64
+159 173 64
+160 173 64
+161 173 64
+162 173 64
+163 173 64
+164 173 64
+165 173 64
+166 173 64
+167 173 64
+168 173 64
+169 173 64
+170 173 64
+171 173 64
+172 173 64
+173 173 64
+174 173 64
+175 173 64
+176 173 64
+177 173 64
+178 173 64
+179 173 64
+180 173 64
+181 173 64
+182 173 64
+183 173 64
+184 173 64
+185 173 64
+186 173 64
+187 173 64
+188 173 64
+189 173 64
+190 173 64
+191 173 64
+192 173 64
+193 173 64
+194 173 64
+195 173 64
+196 173 64
+197 173 64
+198 173 64
+199 173 64
+200 173 64
+201 173 64
+202 173 64
+203 173 64
+204 173 64
+205 173 64
+206 173 64
+207 173 64
+208 173 64
+209 173 64
+210 173 64
+211 173 64
+212 173 64
+213 173 64
+214 173 64
+215 173 64
+216 173 64
+217 173 64
+218 173 64
+219 173 64
+220 173 64
+221 173 64
+222 173 64
+223 173 64
+224 173 64
+225 173 64
+226 173 64
+227 173 64
+228 173 64
+229 173 64
+230 173 64
+231 173 64
+232 173 64
+233 173 64
+234 173 64
+235 173 64
+236 173 64
+237 173 64
+238 173 64
+239 173 64
+240 173 64
+241 173 64
+242 173 64
+243 173 64
+244 173 64
+245 173 64
+246 173 64
+247 173 64
+248 173 64
+249 173 64
+250 173 64
+251 173 64
+252 173 64
+253 173 64
+254 173 64
+255 173 64
+0 172 64
+1 172 64
+2 172 64
+3 172 64
+4 172 64
+5 172 64
+6 172 64
+7 172 64
+8 172 64
+9 172 64
+10 172 64
+11 172 64
+12 172 64
+13 172 64
+14 172 64
+15 172 64
+16 172 64
+17 172 64
+18 172 64
+19 172 64
+20 172 64
+21 172 64
+22 172 64
+23 172 64
+24 172 64
+25 172 64
+26 172 64
+27 172 64
+28 172 64
+29 172 64
+30 172 64
+31 172 64
+32 172 64
+33 172 64
+34 172 64
+35 172 64
+36 172 64
+37 172 64
+38 172 64
+39 172 64
+40 172 64
+41 172 64
+42 172 64
+43 172 64
+44 172 64
+45 172 64
+46 172 64
+47 172 64
+48 172 64
+49 172 64
+50 172 64
+51 172 64
+52 172 64
+53 172 64
+54 172 64
+55 172 64
+56 172 64
+57 172 64
+58 172 64
+59 172 64
+60 172 64
+61 172 64
+62 172 64
+63 172 64
+64 172 64
+65 172 64
+66 172 64
+67 172 64
+68 172 64
+69 172 64
+70 172 64
+71 172 64
+72 172 64
+73 172 64
+74 172 64
+75 172 64
+76 172 64
+77 172 64
+78 172 64
+79 172 64
+80 172 64
+81 172 64
+82 172 64
+83 172 64
+84 172 64
+85 172 64
+86 172 64
+87 172 64
+88 172 64
+89 172 64
+90 172 64
+91 172 64
+92 172 64
+93 172 64
+94 172 64
+95 172 64
+96 172 64
+97 172 64
+98 172 64
+99 172 64
+100 172 64
+101 172 64
+102 172 64
+103 172 64
+104 172 64
+105 172 64
+106 172 64
+107 172 64
+108 172 64
+109 172 64
+110 172 64
+111 172 64
+112 172 64
+113 172 64
+114 172 64
+115 172 64
+116 172 64
+117 172 64
+118 172 64
+119 172 64
+120 172 64
+121 172 64
+122 172 64
+123 172 64
+124 172 64
+125 172 64
+126 172 64
+127 172 64
+128 172 64
+129 172 64
+130 172 64
+131 172 64
+132 172 64
+133 172 64
+134 172 64
+135 172 64
+136 172 64
+137 172 64
+138 172 64
+139 172 64
+140 172 64
+141 172 64
+142 172 64
+143 172 64
+144 172 64
+145 172 64
+146 172 64
+147 172 64
+148 172 64
+149 172 64
+150 172 64
+151 172 64
+152 172 64
+153 172 64
+154 172 64
+155 172 64
+156 172 64
+157 172 64
+158 172 64
+159 172 64
+160 172 64
+161 172 64
+162 172 64
+163 172 64
+164 172 64
+165 172 64
+166 172 64
+167 172 64
+168 172 64
+169 172 64
+170 172 64
+171 172 64
+172 172 64
+173 172 64
+174 172 64
+175 172 64
+176 172 64
+177 172 64
+178 172 64
+179 172 64
+180 172 64
+181 172 64
+182 172 64
+183 172 64
+184 172 64
+185 172 64
+186 172 64
+187 172 64
+188 172 64
+189 172 64
+190 172 64
+191 172 64
+192 172 64
+193 172 64
+194 172 64
+195 172 64
+196 172 64
+197 172 64
+198 172 64
+199 172 64
+200 172 64
+201 172 64
+202 172 64
+203 172 64
+204 172 64
+205 172 64
+206 172 64
+207 172 64
+208 172 64
+209 172 64
+210 172 64
+211 172 64
+212 172 64
+213 172 64
+214 172 64
+215 172 64
+216 172 64
+217 172 64
+218 172 64
+219 172 64
+220 172 64
+221 172 64
+222 172 64
+223 172 64
+224 172 64
+225 172 64
+226 172 64
+227 172 64
+228 172 64
+229 172 64
+230 172 64
+231 172 64
+232 172 64
+233 172 64
+234 172 64
+235 172 64
+236 172 64
+237 172 64
+238 172 64
+239 172 64
+240 172 64
+241 172 64
+242 172 64
+243 172 64
+244 172 64
+245 172 64
+246 172 64
+247 172 64
+248 172 64
+249 172 64
+250 172 64
+251 172 64
+252 172 64
+253 172 64
+254 172 64
+255 172 64
+0 171 64
+1 171 64
+2 171 64
+3 171 64
+4 171 64
+5 171 64
+6 171 64
+7 171 64
+8 171 64
+9 171 64
+10 171 64
+11 171 64
+12 171 64
+13 171 64
+14 171 64
+15 171 64
+16 171 64
+17 171 64
+18 171 64
+19 171 64
+20 171 64
+21 171 64
+22 171 64
+23 171 64
+24 171 64
+25 171 64
+26 171 64
+27 171 64
+28 171 64
+29 171 64
+30 171 64
+31 171 64
+32 171 64
+33 171 64
+34 171 64
+35 171 64
+36 171 64
+37 171 64
+38 171 64
+39 171 64
+40 171 64
+41 171 64
+42 171 64
+43 171 64
+44 171 64
+45 171 64
+46 171 64
+47 171 64
+48 171 64
+49 171 64
+50 171 64
+51 171 64
+52 171 64
+53 171 64
+54 171 64
+55 171 64
+56 171 64
+57 171 64
+58 171 64
+59 171 64
+60 171 64
+61 171 64
+62 171 64
+63 171 64
+64 171 64
+65 171 64
+66 171 64
+67 171 64
+68 171 64
+69 171 64
+70 171 64
+71 171 64
+72 171 64
+73 171 64
+74 171 64
+75 171 64
+76 171 64
+77 171 64
+78 171 64
+79 171 64
+80 171 64
+81 171 64
+82 171 64
+83 171 64
+84 171 64
+85 171 64
+86 171 64
+87 171 64
+88 171 64
+89 171 64
+90 171 64
+91 171 64
+92 171 64
+93 171 64
+94 171 64
+95 171 64
+96 171 64
+97 171 64
+98 171 64
+99 171 64
+100 171 64
+101 171 64
+102 171 64
+103 171 64
+104 171 64
+105 171 64
+106 171 64
+107 171 64
+108 171 64
+109 171 64
+110 171 64
+111 171 64
+112 171 64
+113 171 64
+114 171 64
+115 171 64
+116 171 64
+117 171 64
+118 171 64
+119 171 64
+120 171 64
+121 171 64
+122 171 64
+123 171 64
+124 171 64
+125 171 64
+126 171 64
+127 171 64
+128 171 64
+129 171 64
+130 171 64
+131 171 64
+132 171 64
+133 171 64
+134 171 64
+135 171 64
+136 171 64
+137 171 64
+138 171 64
+139 171 64
+140 171 64
+141 171 64
+142 171 64
+143 171 64
+144 171 64
+145 171 64
+146 171 64
+147 171 64
+148 171 64
+149 171 64
+150 171 64
+151 171 64
+152 171 64
+153 171 64
+154 171 64
+155 171 64
+156 171 64
+157 171 64
+158 171 64
+159 171 64
+160 171 64
+161 171 64
+162 171 64
+163 171 64
+164 171 64
+165 171 64
+166 171 64
+167 171 64
+168 171 64
+169 171 64
+170 171 64
+171 171 64
+172 171 64
+173 171 64
+174 171 64
+175 171 64
+176 171 64
+177 171 64
+178 171 64
+179 171 64
+180 171 64
+181 171 64
+182 171 64
+183 171 64
+184 171 64
+185 171 64
+186 171 64
+187 171 64
+188 171 64
+189 171 64
+190 171 64
+191 171 64
+192 171 64
+193 171 64
+194 171 64
+195 171 64
+196 171 64
+197 171 64
+198 171 64
+199 171 64
+200 171 64
+201 171 64
+202 171 64
+203 171 64
+204 171 64
+205 171 64
+206 171 64
+207 171 64
+208 171 64
+209 171 64
+210 171 64
+211 171 64
+212 171 64
+213 171 64
+214 171 64
+215 171 64
+216 171 64
+217 171 64
+218 171 64
+219 171 64
+220 171 64
+221 171 64
+222 171 64
+223 171 64
+224 171 64
+225 171 64
+226 171 64
+227 171 64
+228 171 64
+229 171 64
+230 171 64
+231 171 64
+232 171 64
+233 171 64
+234 171 64
+235 171 64
+236 171 64
+237 171 64
+238 171 64
+239 171 64
+240 171 64
+241 171 64
+242 171 64
+243 171 64
+244 171 64
+245 171 64
+246 171 64
+247 171 64
+248 171 64
+249 171 64
+250 171 64
+251 171 64
+252 171 64
+253 171 64
+254 171 64
+255 171 64
+0 170 64
+1 170 64
+2 170 64
+3 170 64
+4 170 64
+5 170 64
+6 170 64
+7 170 64
+8 170 64
+9 170 64
+10 170 64
+11 170 64
+12 170 64
+13 170 64
+14 170 64
+15 170 64
+16 170 64
+17 170 64
+18 170 64
+19 170 64
+20 170 64
+21 170 64
+22 170 64
+23 170 64
+24 170 64
+25 170 64
+26 170 64
+27 170 64
+28 170 64
+29 170 64
+30 170 64
+31 170 64
+32 170 64
+33 170 64
+34 170 64
+35 170 64
+36 170 64
+37 170 64
+38 170 64
+39 170 64
+40 170 64
+41 170 64
+42 170 64
+43 170 64
+44 170 64
+45 170 64
+46 170 64
+47 170 64
+48 170 64
+49 170 64
+50 170 64
+51 170 64
+52 170 64
+53 170 64
+54 170 64
+55 170 64
+56 170 64
+57 170 64
+58 170 64
+59 170 64
+60 170 64
+61 170 64
+62 170 64
+63 170 64
+64 170 64
+65 170 64
+66 170 64
+67 170 64
+68 170 64
+69 170 64
+70 170 64
+71 170 64
+72 170 64
+73 170 64
+74 170 64
+75 170 64
+76 170 64
+77 170 64
+78 170 64
+79 170 64
+80 170 64
+81 170 64
+82 170 64
+83 170 64
+84 170 64
+85 170 64
+86 170 64
+87 170 64
+88 170 64
+89 170 64
+90 170 64
+91 170 64
+92 170 64
+93 170 64
+94 170 64
+95 170 64
+96 170 64
+97 170 64
+98 170 64
+99 170 64
+100 170 64
+101 170 64
+102 170 64
+103 170 64
+104 170 64
+105 170 64
+106 170 64
+107 170 64
+108 170 64
+109 170 64
+110 170 64
+111 170 64
+112 170 64
+113 170 64
+114 170 64
+115 170 64
+116 170 64
+117 170 64
+118 170 64
+119 170 64
+120 170 64
+121 170 64
+122 170 64
+123 170 64
+124 170 64
+125 170 64
+126 170 64
+127 170 64
+128 170 64
+129 170 64
+130 170 64
+131 170 64
+132 170 64
+133 170 64
+134 170 64
+135 170 64
+136 170 64
+137 170 64
+138 170 64
+139 170 64
+140 170 64
+141 170 64
+142 170 64
+143 170 64
+144 170 64
+145 170 64
+146 170 64
+147 170 64
+148 170 64
+149 170 64
+150 170 64
+151 170 64
+152 170 64
+153 170 64
+154 170 64
+155 170 64
+156 170 64
+157 170 64
+158 170 64
+159 170 64
+160 170 64
+161 170 64
+162 170 64
+163 170 64
+164 170 64
+165 170 64
+166 170 64
+167 170 64
+168 170 64
+169 170 64
+170 170 64
+171 170 64
+172 170 64
+173 170 64
+174 170 64
+175 170 64
+176 170 64
+177 170 64
+178 170 64
+179 170 64
+180 170 64
+181 170 64
+182 170 64
+183 170 64
+184 170 64
+185 170 64
+186 170 64
+187 170 64
+188 170 64
+189 170 64
+190 170 64
+191 170 64
+192 170 64
+193 170 64
+194 170 64
+195 170 64
+196 170 64
+197 170 64
+198 170 64
+199 170 64
+200 170 64
+201 170 64
+202 170 64
+203 170 64
+204 170 64
+205 170 64
+206 170 64
+207 170 64
+208 170 64
+209 170 64
+210 170 64
+211 170 64
+212 170 64
+213 170 64
+214 170 64
+215 170 64
+216 170 64
+217 170 64
+218 170 64
+219 170 64
+220 170 64
+221 170 64
+222 170 64
+223 170 64
+224 170 64
+225 170 64
+226 170 64
+227 170 64
+228 170 64
+229 170 64
+230 170 64
+231 170 64
+232 170 64
+233 170 64
+234 170 64
+235 170 64
+236 170 64
+237 170 64
+238 170 64
+239 170 64
+240 170 64
+241 170 64
+242 170 64
+243 170 64
+244 170 64
+245 170 64
+246 170 64
+247 170 64
+248 170 64
+249 170 64
+250 170 64
+251 170 64
+252 170 64
+253 170 64
+254 170 64
+255 170 64
+0 169 64
+1 169 64
+2 169 64
+3 169 64
+4 169 64
+5 169 64
+6 169 64
+7 169 64
+8 169 64
+9 169 64
+10 169 64
+11 169 64
+12 169 64
+13 169 64
+14 169 64
+15 169 64
+16 169 64
+17 169 64
+18 169 64
+19 169 64
+20 169 64
+21 169 64
+22 169 64
+23 169 64
+24 169 64
+25 169 64
+26 169 64
+27 169 64
+28 169 64
+29 169 64
+30 169 64
+31 169 64
+32 169 64
+33 169 64
+34 169 64
+35 169 64
+36 169 64
+37 169 64
+38 169 64
+39 169 64
+40 169 64
+41 169 64
+42 169 64
+43 169 64
+44 169 64
+45 169 64
+46 169 64
+47 169 64
+48 169 64
+49 169 64
+50 169 64
+51 169 64
+52 169 64
+53 169 64
+54 169 64
+55 169 64
+56 169 64
+57 169 64
+58 169 64
+59 169 64
+60 169 64
+61 169 64
+62 169 64
+63 169 64
+64 169 64
+65 169 64
+66 169 64
+67 169 64
+68 169 64
+69 169 64
+70 169 64
+71 169 64
+72 169 64
+73 169 64
+74 169 64
+75 169 64
+76 169 64
+77 169 64
+78 169 64
+79 169 64
+80 169 64
+81 169 64
+82 169 64
+83 169 64
+84 169 64
+85 169 64
+86 169 64
+87 169 64
+88 169 64
+89 169 64
+90 169 64
+91 169 64
+92 169 64
+93 169 64
+94 169 64
+95 169 64
+96 169 64
+97 169 64
+98 169 64
+99 169 64
+100 169 64
+101 169 64
+102 169 64
+103 169 64
+104 169 64
+105 169 64
+106 169 64
+107 169 64
+108 169 64
+109 169 64
+110 169 64
+111 169 64
+112 169 64
+113 169 64
+114 169 64
+115 169 64
+116 169 64
+117 169 64
+118 169 64
+119 169 64
+120 169 64
+121 169 64
+122 169 64
+123 169 64
+124 169 64
+125 169 64
+126 169 64
+127 169 64
+128 169 64
+129 169 64
+130 169 64
+131 169 64
+132 169 64
+133 169 64
+134 169 64
+135 169 64
+136 169 64
+137 169 64
+138 169 64
+139 169 64
+140 169 64
+141 169 64
+142 169 64
+143 169 64
+144 169 64
+145 169 64
+146 169 64
+147 169 64
+148 169 64
+149 169 64
+150 169 64
+151 169 64
+152 169 64
+153 169 64
+154 169 64
+155 169 64
+156 169 64
+157 169 64
+158 169 64
+159 169 64
+160 169 64
+161 169 64
+162 169 64
+163 169 64
+164 169 64
+165 169 64
+166 169 64
+167 169 64
+168 169 64
+169 169 64
+170 169 64
+171 169 64
+172 169 64
+173 169 64
+174 169 64
+175 169 64
+176 169 64
+177 169 64
+178 169 64
+179 169 64
+180 169 64
+181 169 64
+182 169 64
+183 169 64
+184 169 64
+185 169 64
+186 169 64
+187 169 64
+188 169 64
+189 169 64
+190 169 64
+191 169 64
+192 169 64
+193 169 64
+194 169 64
+195 169 64
+196 169 64
+197 169 64
+198 169 64
+199 169 64
+200 169 64
+201 169 64
+202 169 64
+203 169 64
+204 169 64
+205 169 64
+206 169 64
+207 169 64
+208 169 64
+209 169 64
+210 169 64
+211 169 64
+212 169 64
+213 169 64
+214 169 64
+215 169 64
+216 169 64
+217 169 64
+218 169 64
+219 169 64
+220 169 64
+221 169 64
+222 169 64
+223 169 64
+224 169 64
+225 169 64
+226 169 64
+227 169 64
+228 169 64
+229 169 64
+230 169 64
+231 169 64
+232 169 64
+233 169 64
+234 169 64
+235 169 64
+236 169 64
+237 169 64
+238 169 64
+239 169 64
+240 169 64
+241 169 64
+242 169 64
+243 169 64
+244 169 64
+245 169 64
+246 169 64
+247 169 64
+248 169 64
+249 169 64
+250 169 64
+251 169 64
+252 169 64
+253 169 64
+254 169 64
+255 169 64
+0 168 64
+1 168 64
+2 168 64
+3 168 64
+4 168 64
+5 168 64
+6 168 64
+7 168 64
+8 168 64
+9 168 64
+10 168 64
+11 168 64
+12 168 64
+13 168 64
+14 168 64
+15 168 64
+16 168 64
+17 168 64
+18 168 64
+19 168 64
+20 168 64
+21 168 64
+22 168 64
+23 168 64
+24 168 64
+25 168 64
+26 168 64
+27 168 64
+28 168 64
+29 168 64
+30 168 64
+31 168 64
+32 168 64
+33 168 64
+34 168 64
+35 168 64
+36 168 64
+37 168 64
+38 168 64
+39 168 64
+40 168 64
+41 168 64
+42 168 64
+43 168 64
+44 168 64
+45 168 64
+46 168 64
+47 168 64
+48 168 64
+49 168 64
+50 168 64
+51 168 64
+52 168 64
+53 168 64
+54 168 64
+55 168 64
+56 168 64
+57 168 64
+58 168 64
+59 168 64
+60 168 64
+61 168 64
+62 168 64
+63 168 64
+64 168 64
+65 168 64
+66 168 64
+67 168 64
+68 168 64
+69 168 64
+70 168 64
+71 168 64
+72 168 64
+73 168 64
+74 168 64
+75 168 64
+76 168 64
+77 168 64
+78 168 64
+79 168 64
+80 168 64
+81 168 64
+82 168 64
+83 168 64
+84 168 64
+85 168 64
+86 168 64
+87 168 64
+88 168 64
+89 168 64
+90 168 64
+91 168 64
+92 168 64
+93 168 64
+94 168 64
+95 168 64
+96 168 64
+97 168 64
+98 168 64
+99 168 64
+100 168 64
+101 168 64
+102 168 64
+103 168 64
+104 168 64
+105 168 64
+106 168 64
+107 168 64
+108 168 64
+109 168 64
+110 168 64
+111 168 64
+112 168 64
+113 168 64
+114 168 64
+115 168 64
+116 168 64
+117 168 64
+118 168 64
+119 168 64
+120 168 64
+121 168 64
+122 168 64
+123 168 64
+124 168 64
+125 168 64
+126 168 64
+127 168 64
+128 168 64
+129 168 64
+130 168 64
+131 168 64
+132 168 64
+133 168 64
+134 168 64
+135 168 64
+136 168 64
+137 168 64
+138 168 64
+139 168 64
+140 168 64
+141 168 64
+142 168 64
+143 168 64
+144 168 64
+145 168 64
+146 168 64
+147 168 64
+148 168 64
+149 168 64
+150 168 64
+151 168 64
+152 168 64
+153 168 64
+154 168 64
+155 168 64
+156 168 64
+157 168 64
+158 168 64
+159 168 64
+160 168 64
+161 168 64
+162 168 64
+163 168 64
+164 168 64
+165 168 64
+166 168 64
+167 168 64
+168 168 64
+169 168 64
+170 168 64
+171 168 64
+172 168 64
+173 168 64
+174 168 64
+175 168 64
+176 168 64
+177 168 64
+178 168 64
+179 168 64
+180 168 64
+181 168 64
+182 168 64
+183 168 64
+184 168 64
+185 168 64
+186 168 64
+187 168 64
+188 168 64
+189 168 64
+190 168 64
+191 168 64
+192 168 64
+193 168 64
+194 168 64
+195 168 64
+196 168 64
+197 168 64
+198 168 64
+199 168 64
+200 168 64
+201 168 64
+202 168 64
+203 168 64
+204 168 64
+205 168 64
+206 168 64
+207 168 64
+208 168 64
+209 168 64
+210 168 64
+211 168 64
+212 168 64
+213 168 64
+214 168 64
+215 168 64
+216 168 64
+217 168 64
+218 168 64
+219 168 64
+220 168 64
+221 168 64
+222 168 64
+223 168 64
+224 168 64
+225 168 64
+226 168 64
+227 168 64
+228 168 64
+229 168 64
+230 168 64
+231 168 64
+232 168 64
+233 168 64
+234 168 64
+235 168 64
+236 168 64
+237 168 64
+238 168 64
+239 168 64
+240 168 64
+241 168 64
+242 168 64
+243 168 64
+244 168 64
+245 168 64
+246 168 64
+247 168 64
+248 168 64
+249 168 64
+250 168 64
+251 168 64
+252 168 64
+253 168 64
+254 168 64
+255 168 64
+0 167 64
+1 167 64
+2 167 64
+3 167 64
+4 167 64
+5 167 64
+6 167 64
+7 167 64
+8 167 64
+9 167 64
+10 167 64
+11 167 64
+12 167 64
+13 167 64
+14 167 64
+15 167 64
+16 167 64
+17 167 64
+18 167 64
+19 167 64
+20 167 64
+21 167 64
+22 167 64
+23 167 64
+24 167 64
+25 167 64
+26 167 64
+27 167 64
+28 167 64
+29 167 64
+30 167 64
+31 167 64
+32 167 64
+33 167 64
+34 167 64
+35 167 64
+36 167 64
+37 167 64
+38 167 64
+39 167 64
+40 167 64
+41 167 64
+42 167 64
+43 167 64
+44 167 64
+45 167 64
+46 167 64
+47 167 64
+48 167 64
+49 167 64
+50 167 64
+51 167 64
+52 167 64
+53 167 64
+54 167 64
+55 167 64
+56 167 64
+57 167 64
+58 167 64
+59 167 64
+60 167 64
+61 167 64
+62 167 64
+63 167 64
+64 167 64
+65 167 64
+66 167 64
+67 167 64
+68 167 64
+69 167 64
+70 167 64
+71 167 64
+72 167 64
+73 167 64
+74 167 64
+75 167 64
+76 167 64
+77 167 64
+78 167 64
+79 167 64
+80 167 64
+81 167 64
+82 167 64
+83 167 64
+84 167 64
+85 167 64
+86 167 64
+87 167 64
+88 167 64
+89 167 64
+90 167 64
+91 167 64
+92 167 64
+93 167 64
+94 167 64
+95 167 64
+96 167 64
+97 167 64
+98 167 64
+99 167 64
+100 167 64
+101 167 64
+102 167 64
+103 167 64
+104 167 64
+105 167 64
+106 167 64
+107 167 64
+108 167 64
+109 167 64
+110 167 64
+111 167 64
+112 167 64
+113 167 64
+114 167 64
+115 167 64
+116 167 64
+117 167 64
+118 167 64
+119 167 64
+120 167 64
+121 167 64
+122 167 64
+123 167 64
+124 167 64
+125 167 64
+126 167 64
+127 167 64
+128 167 64
+129 167 64
+130 167 64
+131 167 64
+132 167 64
+133 167 64
+134 167 64
+135 167 64
+136 167 64
+137 167 64
+138 167 64
+139 167 64
+140 167 64
+141 167 64
+142 167 64
+143 167 64
+144 167 64
+145 167 64
+146 167 64
+147 167 64
+148 167 64
+149 167 64
+150 167 64
+151 167 64
+152 167 64
+153 167 64
+154 167 64
+155 167 64
+156 167 64
+157 167 64
+158 167 64
+159 167 64
+160 167 64
+161 167 64
+162 167 64
+163 167 64
+164 167 64
+165 167 64
+166 167 64
+167 167 64
+168 167 64
+169 167 64
+170 167 64
+171 167 64
+172 167 64
+173 167 64
+174 167 64
+175 167 64
+176 167 64
+177 167 64
+178 167 64
+179 167 64
+180 167 64
+181 167 64
+182 167 64
+183 167 64
+184 167 64
+185 167 64
+186 167 64
+187 167 64
+188 167 64
+189 167 64
+190 167 64
+191 167 64
+192 167 64
+193 167 64
+194 167 64
+195 167 64
+196 167 64
+197 167 64
+198 167 64
+199 167 64
+200 167 64
+201 167 64
+202 167 64
+203 167 64
+204 167 64
+205 167 64
+206 167 64
+207 167 64
+208 167 64
+209 167 64
+210 167 64
+211 167 64
+212 167 64
+213 167 64
+214 167 64
+215 167 64
+216 167 64
+217 167 64
+218 167 64
+219 167 64
+220 167 64
+221 167 64
+222 167 64
+223 167 64
+224 167 64
+225 167 64
+226 167 64
+227 167 64
+228 167 64
+229 167 64
+230 167 64
+231 167 64
+232 167 64
+233 167 64
+234 167 64
+235 167 64
+236 167 64
+237 167 64
+238 167 64
+239 167 64
+240 167 64
+241 167 64
+242 167 64
+243 167 64
+244 167 64
+245 167 64
+246 167 64
+247 167 64
+248 167 64
+249 167 64
+250 167 64
+251 167 64
+252 167 64
+253 167 64
+254 167 64
+255 167 64
+0 166 64
+1 166 64
+2 166 64
+3 166 64
+4 166 64
+5 166 64
+6 166 64
+7 166 64
+8 166 64
+9 166 64
+10 166 64
+11 166 64
+12 166 64
+13 166 64
+14 166 64
+15 166 64
+16 166 64
+17 166 64
+18 166 64
+19 166 64
+20 166 64
+21 166 64
+22 166 64
+23 166 64
+24 166 64
+25 166 64
+26 166 64
+27 166 64
+28 166 64
+29 166 64
+30 166 64
+31 166 64
+32 166 64
+33 166 64
+34 166 64
+35 166 64
+36 166 64
+37 166 64
+38 166 64
+39 166 64
+40 166 64
+41 166 64
+42 166 64
+43 166 64
+44 166 64
+45 166 64
+46 166 64
+47 166 64
+48 166 64
+49 166 64
+50 166 64
+51 166 64
+52 166 64
+53 166 64
+54 166 64
+55 166 64
+56 166 64
+57 166 64
+58 166 64
+59 166 64
+60 166 64
+61 166 64
+62 166 64
+63 166 64
+64 166 64
+65 166 64
+66 166 64
+67 166 64
+68 166 64
+69 166 64
+70 166 64
+71 166 64
+72 166 64
+73 166 64
+74 166 64
+75 166 64
+76 166 64
+77 166 64
+78 166 64
+79 166 64
+80 166 64
+81 166 64
+82 166 64
+83 166 64
+84 166 64
+85 166 64
+86 166 64
+87 166 64
+88 166 64
+89 166 64
+90 166 64
+91 166 64
+92 166 64
+93 166 64
+94 166 64
+95 166 64
+96 166 64
+97 166 64
+98 166 64
+99 166 64
+100 166 64
+101 166 64
+102 166 64
+103 166 64
+104 166 64
+105 166 64
+106 166 64
+107 166 64
+108 166 64
+109 166 64
+110 166 64
+111 166 64
+112 166 64
+113 166 64
+114 166 64
+115 166 64
+116 166 64
+117 166 64
+118 166 64
+119 166 64
+120 166 64
+121 166 64
+122 166 64
+123 166 64
+124 166 64
+125 166 64
+126 166 64
+127 166 64
+128 166 64
+129 166 64
+130 166 64
+131 166 64
+132 166 64
+133 166 64
+134 166 64
+135 166 64
+136 166 64
+137 166 64
+138 166 64
+139 166 64
+140 166 64
+141 166 64
+142 166 64
+143 166 64
+144 166 64
+145 166 64
+146 166 64
+147 166 64
+148 166 64
+149 166 64
+150 166 64
+151 166 64
+152 166 64
+153 166 64
+154 166 64
+155 166 64
+156 166 64
+157 166 64
+158 166 64
+159 166 64
+160 166 64
+161 166 64
+162 166 64
+163 166 64
+164 166 64
+165 166 64
+166 166 64
+167 166 64
+168 166 64
+169 166 64
+170 166 64
+171 166 64
+172 166 64
+173 166 64
+174 166 64
+175 166 64
+176 166 64
+177 166 64
+178 166 64
+179 166 64
+180 166 64
+181 166 64
+182 166 64
+183 166 64
+184 166 64
+185 166 64
+186 166 64
+187 166 64
+188 166 64
+189 166 64
+190 166 64
+191 166 64
+192 166 64
+193 166 64
+194 166 64
+195 166 64
+196 166 64
+197 166 64
+198 166 64
+199 166 64
+200 166 64
+201 166 64
+202 166 64
+203 166 64
+204 166 64
+205 166 64
+206 166 64
+207 166 64
+208 166 64
+209 166 64
+210 166 64
+211 166 64
+212 166 64
+213 166 64
+214 166 64
+215 166 64
+216 166 64
+217 166 64
+218 166 64
+219 166 64
+220 166 64
+221 166 64
+222 166 64
+223 166 64
+224 166 64
+225 166 64
+226 166 64
+227 166 64
+228 166 64
+229 166 64
+230 166 64
+231 166 64
+232 166 64
+233 166 64
+234 166 64
+235 166 64
+236 166 64
+237 166 64
+238 166 64
+239 166 64
+240 166 64
+241 166 64
+242 166 64
+243 166 64
+244 166 64
+245 166 64
+246 166 64
+247 166 64
+248 166 64
+249 166 64
+250 166 64
+251 166 64
+252 166 64
+253 166 64
+254 166 64
+255 166 64
+0 165 64
+1 165 64
+2 165 64
+3 165 64
+4 165 64
+5 165 64
+6 165 64
+7 165 64
+8 165 64
+9 165 64
+10 165 64
+11 165 64
+12 165 64
+13 165 64
+14 165 64
+15 165 64
+16 165 64
+17 165 64
+18 165 64
+19 165 64
+20 165 64
+21 165 64
+22 165 64
+23 165 64
+24 165 64
+25 165 64
+26 165 64
+27 165 64
+28 165 64
+29 165 64
+30 165 64
+31 165 64
+32 165 64
+33 165 64
+34 165 64
+35 165 64
+36 165 64
+37 165 64
+38 165 64
+39 165 64
+40 165 64
+41 165 64
+42 165 64
+43 165 64
+44 165 64
+45 165 64
+46 165 64
+47 165 64
+48 165 64
+49 165 64
+50 165 64
+51 165 64
+52 165 64
+53 165 64
+54 165 64
+55 165 64
+56 165 64
+57 165 64
+58 165 64
+59 165 64
+60 165 64
+61 165 64
+62 165 64
+63 165 64
+64 165 64
+65 165 64
+66 165 64
+67 165 64
+68 165 64
+69 165 64
+70 165 64
+71 165 64
+72 165 64
+73 165 64
+74 165 64
+75 165 64
+76 165 64
+77 165 64
+78 165 64
+79 165 64
+80 165 64
+81 165 64
+82 165 64
+83 165 64
+84 165 64
+85 165 64
+86 165 64
+87 165 64
+88 165 64
+89 165 64
+90 165 64
+91 165 64
+92 165 64
+93 165 64
+94 165 64
+95 165 64
+96 165 64
+97 165 64
+98 165 64
+99 165 64
+100 165 64
+101 165 64
+102 165 64
+103 165 64
+104 165 64
+105 165 64
+106 165 64
+107 165 64
+108 165 64
+109 165 64
+110 165 64
+111 165 64
+112 165 64
+113 165 64
+114 165 64
+115 165 64
+116 165 64
+117 165 64
+118 165 64
+119 165 64
+120 165 64
+121 165 64
+122 165 64
+123 165 64
+124 165 64
+125 165 64
+126 165 64
+127 165 64
+128 165 64
+129 165 64
+130 165 64
+131 165 64
+132 165 64
+133 165 64
+134 165 64
+135 165 64
+136 165 64
+137 165 64
+138 165 64
+139 165 64
+140 165 64
+141 165 64
+142 165 64
+143 165 64
+144 165 64
+145 165 64
+146 165 64
+147 165 64
+148 165 64
+149 165 64
+150 165 64
+151 165 64
+152 165 64
+153 165 64
+154 165 64
+155 165 64
+156 165 64
+157 165 64
+158 165 64
+159 165 64
+160 165 64
+161 165 64
+162 165 64
+163 165 64
+164 165 64
+165 165 64
+166 165 64
+167 165 64
+168 165 64
+169 165 64
+170 165 64
+171 165 64
+172 165 64
+173 165 64
+174 165 64
+175 165 64
+176 165 64
+177 165 64
+178 165 64
+179 165 64
+180 165 64
+181 165 64
+182 165 64
+183 165 64
+184 165 64
+185 165 64
+186 165 64
+187 165 64
+188 165 64
+189 165 64
+190 165 64
+191 165 64
+192 165 64
+193 165 64
+194 165 64
+195 165 64
+196 165 64
+197 165 64
+198 165 64
+199 165 64
+200 165 64
+201 165 64
+202 165 64
+203 165 64
+204 165 64
+205 165 64
+206 165 64
+207 165 64
+208 165 64
+209 165 64
+210 165 64
+211 165 64
+212 165 64
+213 165 64
+214 165 64
+215 165 64
+216 165 64
+217 165 64
+218 165 64
+219 165 64
+220 165 64
+221 165 64
+222 165 64
+223 165 64
+224 165 64
+225 165 64
+226 165 64
+227 165 64
+228 165 64
+229 165 64
+230 165 64
+231 165 64
+232 165 64
+233 165 64
+234 165 64
+235 165 64
+236 165 64
+237 165 64
+238 165 64
+239 165 64
+240 165 64
+241 165 64
+242 165 64
+243 165 64
+244 165 64
+245 165 64
+246 165 64
+247 165 64
+248 165 64
+249 165 64
+250 165 64
+251 165 64
+252 165 64
+253 165 64
+254 165 64
+255 165 64
+0 164 64
+1 164 64
+2 164 64
+3 164 64
+4 164 64
+5 164 64
+6 164 64
+7 164 64
+8 164 64
+9 164 64
+10 164 64
+11 164 64
+12 164 64
+13 164 64
+14 164 64
+15 164 64
+16 164 64
+17 164 64
+18 164 64
+19 164 64
+20 164 64
+21 164 64
+22 164 64
+23 164 64
+24 164 64
+25 164 64
+26 164 64
+27 164 64
+28 164 64
+29 164 64
+30 164 64
+31 164 64
+32 164 64
+33 164 64
+34 164 64
+35 164 64
+36 164 64
+37 164 64
+38 164 64
+39 164 64
+40 164 64
+41 164 64
+42 164 64
+43 164 64
+44 164 64
+45 164 64
+46 164 64
+47 164 64
+48 164 64
+49 164 64
+50 164 64
+51 164 64
+52 164 64
+53 164 64
+54 164 64
+55 164 64
+56 164 64
+57 164 64
+58 164 64
+59 164 64
+60 164 64
+61 164 64
+62 164 64
+63 164 64
+64 164 64
+65 164 64
+66 164 64
+67 164 64
+68 164 64
+69 164 64
+70 164 64
+71 164 64
+72 164 64
+73 164 64
+74 164 64
+75 164 64
+76 164 64
+77 164 64
+78 164 64
+79 164 64
+80 164 64
+81 164 64
+82 164 64
+83 164 64
+84 164 64
+85 164 64
+86 164 64
+87 164 64
+88 164 64
+89 164 64
+90 164 64
+91 164 64
+92 164 64
+93 164 64
+94 164 64
+95 164 64
+96 164 64
+97 164 64
+98 164 64
+99 164 64
+100 164 64
+101 164 64
+102 164 64
+103 164 64
+104 164 64
+105 164 64
+106 164 64
+107 164 64
+108 164 64
+109 164 64
+110 164 64
+111 164 64
+112 164 64
+113 164 64
+114 164 64
+115 164 64
+116 164 64
+117 164 64
+118 164 64
+119 164 64
+120 164 64
+121 164 64
+122 164 64
+123 164 64
+124 164 64
+125 164 64
+126 164 64
+127 164 64
+128 164 64
+129 164 64
+130 164 64
+131 164 64
+132 164 64
+133 164 64
+134 164 64
+135 164 64
+136 164 64
+137 164 64
+138 164 64
+139 164 64
+140 164 64
+141 164 64
+142 164 64
+143 164 64
+144 164 64
+145 164 64
+146 164 64
+147 164 64
+148 164 64
+149 164 64
+150 164 64
+151 164 64
+152 164 64
+153 164 64
+154 164 64
+155 164 64
+156 164 64
+157 164 64
+158 164 64
+159 164 64
+160 164 64
+161 164 64
+162 164 64
+163 164 64
+164 164 64
+165 164 64
+166 164 64
+167 164 64
+168 164 64
+169 164 64
+170 164 64
+171 164 64
+172 164 64
+173 164 64
+174 164 64
+175 164 64
+176 164 64
+177 164 64
+178 164 64
+179 164 64
+180 164 64
+181 164 64
+182 164 64
+183 164 64
+184 164 64
+185 164 64
+186 164 64
+187 164 64
+188 164 64
+189 164 64
+190 164 64
+191 164 64
+192 164 64
+193 164 64
+194 164 64
+195 164 64
+196 164 64
+197 164 64
+198 164 64
+199 164 64
+200 164 64
+201 164 64
+202 164 64
+203 164 64
+204 164 64
+205 164 64
+206 164 64
+207 164 64
+208 164 64
+209 164 64
+210 164 64
+211 164 64
+212 164 64
+213 164 64
+214 164 64
+215 164 64
+216 164 64
+217 164 64
+218 164 64
+219 164 64
+220 164 64
+221 164 64
+222 164 64
+223 164 64
+224 164 64
+225 164 64
+226 164 64
+227 164 64
+228 164 64
+229 164 64
+230 164 64
+231 164 64
+232 164 64
+233 164 64
+234 164 64
+235 164 64
+236 164 64
+237 164 64
+238 164 64
+239 164 64
+240 164 64
+241 164 64
+242 164 64
+243 164 64
+244 164 64
+245 164 64
+246 164 64
+247 164 64
+248 164 64
+249 164 64
+250 164 64
+251 164 64
+252 164 64
+253 164 64
+254 164 64
+255 164 64
+0 163 64
+1 163 64
+2 163 64
+3 163 64
+4 163 64
+5 163 64
+6 163 64
+7 163 64
+8 163 64
+9 163 64
+10 163 64
+11 163 64
+12 163 64
+13 163 64
+14 163 64
+15 163 64
+16 163 64
+17 163 64
+18 163 64
+19 163 64
+20 163 64
+21 163 64
+22 163 64
+23 163 64
+24 163 64
+25 163 64
+26 163 64
+27 163 64
+28 163 64
+29 163 64
+30 163 64
+31 163 64
+32 163 64
+33 163 64
+34 163 64
+35 163 64
+36 163 64
+37 163 64
+38 163 64
+39 163 64
+40 163 64
+41 163 64
+42 163 64
+43 163 64
+44 163 64
+45 163 64
+46 163 64
+47 163 64
+48 163 64
+49 163 64
+50 163 64
+51 163 64
+52 163 64
+53 163 64
+54 163 64
+55 163 64
+56 163 64
+57 163 64
+58 163 64
+59 163 64
+60 163 64
+61 163 64
+62 163 64
+63 163 64
+64 163 64
+65 163 64
+66 163 64
+67 163 64
+68 163 64
+69 163 64
+70 163 64
+71 163 64
+72 163 64
+73 163 64
+74 163 64
+75 163 64
+76 163 64
+77 163 64
+78 163 64
+79 163 64
+80 163 64
+81 163 64
+82 163 64
+83 163 64
+84 163 64
+85 163 64
+86 163 64
+87 163 64
+88 163 64
+89 163 64
+90 163 64
+91 163 64
+92 163 64
+93 163 64
+94 163 64
+95 163 64
+96 163 64
+97 163 64
+98 163 64
+99 163 64
+100 163 64
+101 163 64
+102 163 64
+103 163 64
+104 163 64
+105 163 64
+106 163 64
+107 163 64
+108 163 64
+109 163 64
+110 163 64
+111 163 64
+112 163 64
+113 163 64
+114 163 64
+115 163 64
+116 163 64
+117 163 64
+118 163 64
+119 163 64
+120 163 64
+121 163 64
+122 163 64
+123 163 64
+124 163 64
+125 163 64
+126 163 64
+127 163 64
+128 163 64
+129 163 64
+130 163 64
+131 163 64
+132 163 64
+133 163 64
+134 163 64
+135 163 64
+136 163 64
+137 163 64
+138 163 64
+139 163 64
+140 163 64
+141 163 64
+142 163 64
+143 163 64
+144 163 64
+145 163 64
+146 163 64
+147 163 64
+148 163 64
+149 163 64
+150 163 64
+151 163 64
+152 163 64
+153 163 64
+154 163 64
+155 163 64
+156 163 64
+157 163 64
+158 163 64
+159 163 64
+160 163 64
+161 163 64
+162 163 64
+163 163 64
+164 163 64
+165 163 64
+166 163 64
+167 163 64
+168 163 64
+169 163 64
+170 163 64
+171 163 64
+172 163 64
+173 163 64
+174 163 64
+175 163 64
+176 163 64
+177 163 64
+178 163 64
+179 163 64
+180 163 64
+181 163 64
+182 163 64
+183 163 64
+184 163 64
+185 163 64
+186 163 64
+187 163 64
+188 163 64
+189 163 64
+190 163 64
+191 163 64
+192 163 64
+193 163 64
+194 163 64
+195 163 64
+196 163 64
+197 163 64
+198 163 64
+199 163 64
+200 163 64
+201 163 64
+202 163 64
+203 163 64
+204 163 64
+205 163 64
+206 163 64
+207 163 64
+208 163 64
+209 163 64
+210 163 64
+211 163 64
+212 163 64
+213 163 64
+214 163 64
+215 163 64
+216 163 64
+217 163 64
+218 163 64
+219 163 64
+220 163 64
+221 163 64
+222 163 64
+223 163 64
+224 163 64
+225 163 64
+226 163 64
+227 163 64
+228 163 64
+229 163 64
+230 163 64
+231 163 64
+232 163 64
+233 163 64
+234 163 64
+235 163 64
+236 163 64
+237 163 64
+238 163 64
+239 163 64
+240 163 64
+241 163 64
+242 163 64
+243 163 64
+244 163 64
+245 163 64
+246 163 64
+247 163 64
+248 163 64
+249 163 64
+250 163 64
+251 163 64
+252 163 64
+253 163 64
+254 163 64
+255 163 64
+0 162 64
+1 162 64
+2 162 64
+3 162 64
+4 162 64
+5 162 64
+6 162 64
+7 162 64
+8 162 64
+9 162 64
+10 162 64
+11 162 64
+12 162 64
+13 162 64
+14 162 64
+15 162 64
+16 162 64
+17 162 64
+18 162 64
+19 162 64
+20 162 64
+21 162 64
+22 162 64
+23 162 64
+24 162 64
+25 162 64
+26 162 64
+27 162 64
+28 162 64
+29 162 64
+30 162 64
+31 162 64
+32 162 64
+33 162 64
+34 162 64
+35 162 64
+36 162 64
+37 162 64
+38 162 64
+39 162 64
+40 162 64
+41 162 64
+42 162 64
+43 162 64
+44 162 64
+45 162 64
+46 162 64
+47 162 64
+48 162 64
+49 162 64
+50 162 64
+51 162 64
+52 162 64
+53 162 64
+54 162 64
+55 162 64
+56 162 64
+57 162 64
+58 162 64
+59 162 64
+60 162 64
+61 162 64
+62 162 64
+63 162 64
+64 162 64
+65 162 64
+66 162 64
+67 162 64
+68 162 64
+69 162 64
+70 162 64
+71 162 64
+72 162 64
+73 162 64
+74 162 64
+75 162 64
+76 162 64
+77 162 64
+78 162 64
+79 162 64
+80 162 64
+81 162 64
+82 162 64
+83 162 64
+84 162 64
+85 162 64
+86 162 64
+87 162 64
+88 162 64
+89 162 64
+90 162 64
+91 162 64
+92 162 64
+93 162 64
+94 162 64
+95 162 64
+96 162 64
+97 162 64
+98 162 64
+99 162 64
+100 162 64
+101 162 64
+102 162 64
+103 162 64
+104 162 64
+105 162 64
+106 162 64
+107 162 64
+108 162 64
+109 162 64
+110 162 64
+111 162 64
+112 162 64
+113 162 64
+114 162 64
+115 162 64
+116 162 64
+117 162 64
+118 162 64
+119 162 64
+120 162 64
+121 162 64
+122 162 64
+123 162 64
+124 162 64
+125 162 64
+126 162 64
+127 162 64
+128 162 64
+129 162 64
+130 162 64
+131 162 64
+132 162 64
+133 162 64
+134 162 64
+135 162 64
+136 162 64
+137 162 64
+138 162 64
+139 162 64
+140 162 64
+141 162 64
+142 162 64
+143 162 64
+144 162 64
+145 162 64
+146 162 64
+147 162 64
+148 162 64
+149 162 64
+150 162 64
+151 162 64
+152 162 64
+153 162 64
+154 162 64
+155 162 64
+156 162 64
+157 162 64
+158 162 64
+159 162 64
+160 162 64
+161 162 64
+162 162 64
+163 162 64
+164 162 64
+165 162 64
+166 162 64
+167 162 64
+168 162 64
+169 162 64
+170 162 64
+171 162 64
+172 162 64
+173 162 64
+174 162 64
+175 162 64
+176 162 64
+177 162 64
+178 162 64
+179 162 64
+180 162 64
+181 162 64
+182 162 64
+183 162 64
+184 162 64
+185 162 64
+186 162 64
+187 162 64
+188 162 64
+189 162 64
+190 162 64
+191 162 64
+192 162 64
+193 162 64
+194 162 64
+195 162 64
+196 162 64
+197 162 64
+198 162 64
+199 162 64
+200 162 64
+201 162 64
+202 162 64
+203 162 64
+204 162 64
+205 162 64
+206 162 64
+207 162 64
+208 162 64
+209 162 64
+210 162 64
+211 162 64
+212 162 64
+213 162 64
+214 162 64
+215 162 64
+216 162 64
+217 162 64
+218 162 64
+219 162 64
+220 162 64
+221 162 64
+222 162 64
+223 162 64
+224 162 64
+225 162 64
+226 162 64
+227 162 64
+228 162 64
+229 162 64
+230 162 64
+231 162 64
+232 162 64
+233 162 64
+234 162 64
+235 162 64
+236 162 64
+237 162 64
+238 162 64
+239 162 64
+240 162 64
+241 162 64
+242 162 64
+243 162 64
+244 162 64
+245 162 64
+246 162 64
+247 162 64
+248 162 64
+249 162 64
+250 162 64
+251 162 64
+252 162 64
+253 162 64
+254 162 64
+255 162 64
+0 161 64
+1 161 64
+2 161 64
+3 161 64
+4 161 64
+5 161 64
+6 161 64
+7 161 64
+8 161 64
+9 161 64
+10 161 64
+11 161 64
+12 161 64
+13 161 64
+14 161 64
+15 161 64
+16 161 64
+17 161 64
+18 161 64
+19 161 64
+20 161 64
+21 161 64
+22 161 64
+23 161 64
+24 161 64
+25 161 64
+26 161 64
+27 161 64
+28 161 64
+29 161 64
+30 161 64
+31 161 64
+32 161 64
+33 161 64
+34 161 64
+35 161 64
+36 161 64
+37 161 64
+38 161 64
+39 161 64
+40 161 64
+41 161 64
+42 161 64
+43 161 64
+44 161 64
+45 161 64
+46 161 64
+47 161 64
+48 161 64
+49 161 64
+50 161 64
+51 161 64
+52 161 64
+53 161 64
+54 161 64
+55 161 64
+56 161 64
+57 161 64
+58 161 64
+59 161 64
+60 161 64
+61 161 64
+62 161 64
+63 161 64
+64 161 64
+65 161 64
+66 161 64
+67 161 64
+68 161 64
+69 161 64
+70 161 64
+71 161 64
+72 161 64
+73 161 64
+74 161 64
+75 161 64
+76 161 64
+77 161 64
+78 161 64
+79 161 64
+80 161 64
+81 161 64
+82 161 64
+83 161 64
+84 161 64
+85 161 64
+86 161 64
+87 161 64
+88 161 64
+89 161 64
+90 161 64
+91 161 64
+92 161 64
+93 161 64
+94 161 64
+95 161 64
+96 161 64
+97 161 64
+98 161 64
+99 161 64
+100 161 64
+101 161 64
+102 161 64
+103 161 64
+104 161 64
+105 161 64
+106 161 64
+107 161 64
+108 161 64
+109 161 64
+110 161 64
+111 161 64
+112 161 64
+113 161 64
+114 161 64
+115 161 64
+116 161 64
+117 161 64
+118 161 64
+119 161 64
+120 161 64
+121 161 64
+122 161 64
+123 161 64
+124 161 64
+125 161 64
+126 161 64
+127 161 64
+128 161 64
+129 161 64
+130 161 64
+131 161 64
+132 161 64
+133 161 64
+134 161 64
+135 161 64
+136 161 64
+137 161 64
+138 161 64
+139 161 64
+140 161 64
+141 161 64
+142 161 64
+143 161 64
+144 161 64
+145 161 64
+146 161 64
+147 161 64
+148 161 64
+149 161 64
+150 161 64
+151 161 64
+152 161 64
+153 161 64
+154 161 64
+155 161 64
+156 161 64
+157 161 64
+158 161 64
+159 161 64
+160 161 64
+161 161 64
+162 161 64
+163 161 64
+164 161 64
+165 161 64
+166 161 64
+167 161 64
+168 161 64
+169 161 64
+170 161 64
+171 161 64
+172 161 64
+173 161 64
+174 161 64
+175 161 64
+176 161 64
+177 161 64
+178 161 64
+179 161 64
+180 161 64
+181 161 64
+182 161 64
+183 161 64
+184 161 64
+185 161 64
+186 161 64
+187 161 64
+188 161 64
+189 161 64
+190 161 64
+191 161 64
+192 161 64
+193 161 64
+194 161 64
+195 161 64
+196 161 64
+197 161 64
+198 161 64
+199 161 64
+200 161 64
+201 161 64
+202 161 64
+203 161 64
+204 161 64
+205 161 64
+206 161 64
+207 161 64
+208 161 64
+209 161 64
+210 161 64
+211 161 64
+212 161 64
+213 161 64
+214 161 64
+215 161 64
+216 161 64
+217 161 64
+218 161 64
+219 161 64
+220 161 64
+221 161 64
+222 161 64
+223 161 64
+224 161 64
+225 161 64
+226 161 64
+227 161 64
+228 161 64
+229 161 64
+230 161 64
+231 161 64
+232 161 64
+233 161 64
+234 161 64
+235 161 64
+236 161 64
+237 161 64
+238 161 64
+239 161 64
+240 161 64
+241 161 64
+242 161 64
+243 161 64
+244 161 64
+245 161 64
+246 161 64
+247 161 64
+248 161 64
+249 161 64
+250 161 64
+251 161 64
+252 161 64
+253 161 64
+254 161 64
+255 161 64
+0 160 64
+1 160 64
+2 160 64
+3 160 64
+4 160 64
+5 160 64
+6 160 64
+7 160 64
+8 160 64
+9 160 64
+10 160 64
+11 160 64
+12 160 64
+13 160 64
+14 160 64
+15 160 64
+16 160 64
+17 160 64
+18 160 64
+19 160 64
+20 160 64
+21 160 64
+22 160 64
+23 160 64
+24 160 64
+25 160 64
+26 160 64
+27 160 64
+28 160 64
+29 160 64
+30 160 64
+31 160 64
+32 160 64
+33 160 64
+34 160 64
+35 160 64
+36 160 64
+37 160 64
+38 160 64
+39 160 64
+40 160 64
+41 160 64
+42 160 64
+43 160 64
+44 160 64
+45 160 64
+46 160 64
+47 160 64
+48 160 64
+49 160 64
+50 160 64
+51 160 64
+52 160 64
+53 160 64
+54 160 64
+55 160 64
+56 160 64
+57 160 64
+58 160 64
+59 160 64
+60 160 64
+61 160 64
+62 160 64
+63 160 64
+64 160 64
+65 160 64
+66 160 64
+67 160 64
+68 160 64
+69 160 64
+70 160 64
+71 160 64
+72 160 64
+73 160 64
+74 160 64
+75 160 64
+76 160 64
+77 160 64
+78 160 64
+79 160 64
+80 160 64
+81 160 64
+82 160 64
+83 160 64
+84 160 64
+85 160 64
+86 160 64
+87 160 64
+88 160 64
+89 160 64
+90 160 64
+91 160 64
+92 160 64
+93 160 64
+94 160 64
+95 160 64
+96 160 64
+97 160 64
+98 160 64
+99 160 64
+100 160 64
+101 160 64
+102 160 64
+103 160 64
+104 160 64
+105 160 64
+106 160 64
+107 160 64
+108 160 64
+109 160 64
+110 160 64
+111 160 64
+112 160 64
+113 160 64
+114 160 64
+115 160 64
+116 160 64
+117 160 64
+118 160 64
+119 160 64
+120 160 64
+121 160 64
+122 160 64
+123 160 64
+124 160 64
+125 160 64
+126 160 64
+127 160 64
+128 160 64
+129 160 64
+130 160 64
+131 160 64
+132 160 64
+133 160 64
+134 160 64
+135 160 64
+136 160 64
+137 160 64
+138 160 64
+139 160 64
+140 160 64
+141 160 64
+142 160 64
+143 160 64
+144 160 64
+145 160 64
+146 160 64
+147 160 64
+148 160 64
+149 160 64
+150 160 64
+151 160 64
+152 160 64
+153 160 64
+154 160 64
+155 160 64
+156 160 64
+157 160 64
+158 160 64
+159 160 64
+160 160 64
+161 160 64
+162 160 64
+163 160 64
+164 160 64
+165 160 64
+166 160 64
+167 160 64
+168 160 64
+169 160 64
+170 160 64
+171 160 64
+172 160 64
+173 160 64
+174 160 64
+175 160 64
+176 160 64
+177 160 64
+178 160 64
+179 160 64
+180 160 64
+181 160 64
+182 160 64
+183 160 64
+184 160 64
+185 160 64
+186 160 64
+187 160 64
+188 160 64
+189 160 64
+190 160 64
+191 160 64
+192 160 64
+193 160 64
+194 160 64
+195 160 64
+196 160 64
+197 160 64
+198 160 64
+199 160 64
+200 160 64
+201 160 64
+202 160 64
+203 160 64
+204 160 64
+205 160 64
+206 160 64
+207 160 64
+208 160 64
+209 160 64
+210 160 64
+211 160 64
+212 160 64
+213 160 64
+214 160 64
+215 160 64
+216 160 64
+217 160 64
+218 160 64
+219 160 64
+220 160 64
+221 160 64
+222 160 64
+223 160 64
+224 160 64
+225 160 64
+226 160 64
+227 160 64
+228 160 64
+229 160 64
+230 160 64
+231 160 64
+232 160 64
+233 160 64
+234 160 64
+235 160 64
+236 160 64
+237 160 64
+238 160 64
+239 160 64
+240 160 64
+241 160 64
+242 160 64
+243 160 64
+244 160 64
+245 160 64
+246 160 64
+247 160 64
+248 160 64
+249 160 64
+250 160 64
+251 160 64
+252 160 64
+253 160 64
+254 160 64
+255 160 64
+0 159 64
+1 159 64
+2 159 64
+3 159 64
+4 159 64
+5 159 64
+6 159 64
+7 159 64
+8 159 64
+9 159 64
+10 159 64
+11 159 64
+12 159 64
+13 159 64
+14 159 64
+15 159 64
+16 159 64
+17 159 64
+18 159 64
+19 159 64
+20 159 64
+21 159 64
+22 159 64
+23 159 64
+24 159 64
+25 159 64
+26 159 64
+27 159 64
+28 159 64
+29 159 64
+30 159 64
+31 159 64
+32 159 64
+33 159 64
+34 159 64
+35 159 64
+36 159 64
+37 159 64
+38 159 64
+39 159 64
+40 159 64
+41 159 64
+42 159 64
+43 159 64
+44 159 64
+45 159 64
+46 159 64
+47 159 64
+48 159 64
+49 159 64
+50 159 64
+51 159 64
+52 159 64
+53 159 64
+54 159 64
+55 159 64
+56 159 64
+57 159 64
+58 159 64
+59 159 64
+60 159 64
+61 159 64
+62 159 64
+63 159 64
+64 159 64
+65 159 64
+66 159 64
+67 159 64
+68 159 64
+69 159 64
+70 159 64
+71 159 64
+72 159 64
+73 159 64
+74 159 64
+75 159 64
+76 159 64
+77 159 64
+78 159 64
+79 159 64
+80 159 64
+81 159 64
+82 159 64
+83 159 64
+84 159 64
+85 159 64
+86 159 64
+87 159 64
+88 159 64
+89 159 64
+90 159 64
+91 159 64
+92 159 64
+93 159 64
+94 159 64
+95 159 64
+96 159 64
+97 159 64
+98 159 64
+99 159 64
+100 159 64
+101 159 64
+102 159 64
+103 159 64
+104 159 64
+105 159 64
+106 159 64
+107 159 64
+108 159 64
+109 159 64
+110 159 64
+111 159 64
+112 159 64
+113 159 64
+114 159 64
+115 159 64
+116 159 64
+117 159 64
+118 159 64
+119 159 64
+120 159 64
+121 159 64
+122 159 64
+123 159 64
+124 159 64
+125 159 64
+126 159 64
+127 159 64
+128 159 64
+129 159 64
+130 159 64
+131 159 64
+132 159 64
+133 159 64
+134 159 64
+135 159 64
+136 159 64
+137 159 64
+138 159 64
+139 159 64
+140 159 64
+141 159 64
+142 159 64
+143 159 64
+144 159 64
+145 159 64
+146 159 64
+147 159 64
+148 159 64
+149 159 64
+150 159 64
+151 159 64
+152 159 64
+153 159 64
+154 159 64
+155 159 64
+156 159 64
+157 159 64
+158 159 64
+159 159 64
+160 159 64
+161 159 64
+162 159 64
+163 159 64
+164 159 64
+165 159 64
+166 159 64
+167 159 64
+168 159 64
+169 159 64
+170 159 64
+171 159 64
+172 159 64
+173 159 64
+174 159 64
+175 159 64
+176 159 64
+177 159 64
+178 159 64
+179 159 64
+180 159 64
+181 159 64
+182 159 64
+183 159 64
+184 159 64
+185 159 64
+186 159 64
+187 159 64
+188 159 64
+189 159 64
+190 159 64
+191 159 64
+192 159 64
+193 159 64
+194 159 64
+195 159 64
+196 159 64
+197 159 64
+198 159 64
+199 159 64
+200 159 64
+201 159 64
+202 159 64
+203 159 64
+204 159 64
+205 159 64
+206 159 64
+207 159 64
+208 159 64
+209 159 64
+210 159 64
+211 159 64
+212 159 64
+213 159 64
+214 159 64
+215 159 64
+216 159 64
+217 159 64
+218 159 64
+219 159 64
+220 159 64
+221 159 64
+222 159 64
+223 159 64
+224 159 64
+225 159 64
+226 159 64
+227 159 64
+228 159 64
+229 159 64
+230 159 64
+231 159 64
+232 159 64
+233 159 64
+234 159 64
+235 159 64
+236 159 64
+237 159 64
+238 159 64
+239 159 64
+240 159 64
+241 159 64
+242 159 64
+243 159 64
+244 159 64
+245 159 64
+246 159 64
+247 159 64
+248 159 64
+249 159 64
+250 159 64
+251 159 64
+252 159 64
+253 159 64
+254 159 64
+255 159 64
+0 158 64
+1 158 64
+2 158 64
+3 158 64
+4 158 64
+5 158 64
+6 158 64
+7 158 64
+8 158 64
+9 158 64
+10 158 64
+11 158 64
+12 158 64
+13 158 64
+14 158 64
+15 158 64
+16 158 64
+17 158 64
+18 158 64
+19 158 64
+20 158 64
+21 158 64
+22 158 64
+23 158 64
+24 158 64
+25 158 64
+26 158 64
+27 158 64
+28 158 64
+29 158 64
+30 158 64
+31 158 64
+32 158 64
+33 158 64
+34 158 64
+35 158 64
+36 158 64
+37 158 64
+38 158 64
+39 158 64
+40 158 64
+41 158 64
+42 158 64
+43 158 64
+44 158 64
+45 158 64
+46 158 64
+47 158 64
+48 158 64
+49 158 64
+50 158 64
+51 158 64
+52 158 64
+53 158 64
+54 158 64
+55 158 64
+56 158 64
+57 158 64
+58 158 64
+59 158 64
+60 158 64
+61 158 64
+62 158 64
+63 158 64
+64 158 64
+65 158 64
+66 158 64
+67 158 64
+68 158 64
+69 158 64
+70 158 64
+71 158 64
+72 158 64
+73 158 64
+74 158 64
+75 158 64
+76 158 64
+77 158 64
+78 158 64
+79 158 64
+80 158 64
+81 158 64
+82 158 64
+83 158 64
+84 158 64
+85 158 64
+86 158 64
+87 158 64
+88 158 64
+89 158 64
+90 158 64
+91 158 64
+92 158 64
+93 158 64
+94 158 64
+95 158 64
+96 158 64
+97 158 64
+98 158 64
+99 158 64
+100 158 64
+101 158 64
+102 158 64
+103 158 64
+104 158 64
+105 158 64
+106 158 64
+107 158 64
+108 158 64
+109 158 64
+110 158 64
+111 158 64
+112 158 64
+113 158 64
+114 158 64
+115 158 64
+116 158 64
+117 158 64
+118 158 64
+119 158 64
+120 158 64
+121 158 64
+122 158 64
+123 158 64
+124 158 64
+125 158 64
+126 158 64
+127 158 64
+128 158 64
+129 158 64
+130 158 64
+131 158 64
+132 158 64
+133 158 64
+134 158 64
+135 158 64
+136 158 64
+137 158 64
+138 158 64
+139 158 64
+140 158 64
+141 158 64
+142 158 64
+143 158 64
+144 158 64
+145 158 64
+146 158 64
+147 158 64
+148 158 64
+149 158 64
+150 158 64
+151 158 64
+152 158 64
+153 158 64
+154 158 64
+155 158 64
+156 158 64
+157 158 64
+158 158 64
+159 158 64
+160 158 64
+161 158 64
+162 158 64
+163 158 64
+164 158 64
+165 158 64
+166 158 64
+167 158 64
+168 158 64
+169 158 64
+170 158 64
+171 158 64
+172 158 64
+173 158 64
+174 158 64
+175 158 64
+176 158 64
+177 158 64
+178 158 64
+179 158 64
+180 158 64
+181 158 64
+182 158 64
+183 158 64
+184 158 64
+185 158 64
+186 158 64
+187 158 64
+188 158 64
+189 158 64
+190 158 64
+191 158 64
+192 158 64
+193 158 64
+194 158 64
+195 158 64
+196 158 64
+197 158 64
+198 158 64
+199 158 64
+200 158 64
+201 158 64
+202 158 64
+203 158 64
+204 158 64
+205 158 64
+206 158 64
+207 158 64
+208 158 64
+209 158 64
+210 158 64
+211 158 64
+212 158 64
+213 158 64
+214 158 64
+215 158 64
+216 158 64
+217 158 64
+218 158 64
+219 158 64
+220 158 64
+221 158 64
+222 158 64
+223 158 64
+224 158 64
+225 158 64
+226 158 64
+227 158 64
+228 158 64
+229 158 64
+230 158 64
+231 158 64
+232 158 64
+233 158 64
+234 158 64
+235 158 64
+236 158 64
+237 158 64
+238 158 64
+239 158 64
+240 158 64
+241 158 64
+242 158 64
+243 158 64
+244 158 64
+245 158 64
+246 158 64
+247 158 64
+248 158 64
+249 158 64
+250 158 64
+251 158 64
+252 158 64
+253 158 64
+254 158 64
+255 158 64
+0 157 64
+1 157 64
+2 157 64
+3 157 64
+4 157 64
+5 157 64
+6 157 64
+7 157 64
+8 157 64
+9 157 64
+10 157 64
+11 157 64
+12 157 64
+13 157 64
+14 157 64
+15 157 64
+16 157 64
+17 157 64
+18 157 64
+19 157 64
+20 157 64
+21 157 64
+22 157 64
+23 157 64
+24 157 64
+25 157 64
+26 157 64
+27 157 64
+28 157 64
+29 157 64
+30 157 64
+31 157 64
+32 157 64
+33 157 64
+34 157 64
+35 157 64
+36 157 64
+37 157 64
+38 157 64
+39 157 64
+40 157 64
+41 157 64
+42 157 64
+43 157 64
+44 157 64
+45 157 64
+46 157 64
+47 157 64
+48 157 64
+49 157 64
+50 157 64
+51 157 64
+52 157 64
+53 157 64
+54 157 64
+55 157 64
+56 157 64
+57 157 64
+58 157 64
+59 157 64
+60 157 64
+61 157 64
+62 157 64
+63 157 64
+64 157 64
+65 157 64
+66 157 64
+67 157 64
+68 157 64
+69 157 64
+70 157 64
+71 157 64
+72 157 64
+73 157 64
+74 157 64
+75 157 64
+76 157 64
+77 157 64
+78 157 64
+79 157 64
+80 157 64
+81 157 64
+82 157 64
+83 157 64
+84 157 64
+85 157 64
+86 157 64
+87 157 64
+88 157 64
+89 157 64
+90 157 64
+91 157 64
+92 157 64
+93 157 64
+94 157 64
+95 157 64
+96 157 64
+97 157 64
+98 157 64
+99 157 64
+100 157 64
+101 157 64
+102 157 64
+103 157 64
+104 157 64
+105 157 64
+106 157 64
+107 157 64
+108 157 64
+109 157 64
+110 157 64
+111 157 64
+112 157 64
+113 157 64
+114 157 64
+115 157 64
+116 157 64
+117 157 64
+118 157 64
+119 157 64
+120 157 64
+121 157 64
+122 157 64
+123 157 64
+124 157 64
+125 157 64
+126 157 64
+127 157 64
+128 157 64
+129 157 64
+130 157 64
+131 157 64
+132 157 64
+133 157 64
+134 157 64
+135 157 64
+136 157 64
+137 157 64
+138 157 64
+139 157 64
+140 157 64
+141 157 64
+142 157 64
+143 157 64
+144 157 64
+145 157 64
+146 157 64
+147 157 64
+148 157 64
+149 157 64
+150 157 64
+151 157 64
+152 157 64
+153 157 64
+154 157 64
+155 157 64
+156 157 64
+157 157 64
+158 157 64
+159 157 64
+160 157 64
+161 157 64
+162 157 64
+163 157 64
+164 157 64
+165 157 64
+166 157 64
+167 157 64
+168 157 64
+169 157 64
+170 157 64
+171 157 64
+172 157 64
+173 157 64
+174 157 64
+175 157 64
+176 157 64
+177 157 64
+178 157 64
+179 157 64
+180 157 64
+181 157 64
+182 157 64
+183 157 64
+184 157 64
+185 157 64
+186 157 64
+187 157 64
+188 157 64
+189 157 64
+190 157 64
+191 157 64
+192 157 64
+193 157 64
+194 157 64
+195 157 64
+196 157 64
+197 157 64
+198 157 64
+199 157 64
+200 157 64
+201 157 64
+202 157 64
+203 157 64
+204 157 64
+205 157 64
+206 157 64
+207 157 64
+208 157 64
+209 157 64
+210 157 64
+211 157 64
+212 157 64
+213 157 64
+214 157 64
+215 157 64
+216 157 64
+217 157 64
+218 157 64
+219 157 64
+220 157 64
+221 157 64
+222 157 64
+223 157 64
+224 157 64
+225 157 64
+226 157 64
+227 157 64
+228 157 64
+229 157 64
+230 157 64
+231 157 64
+232 157 64
+233 157 64
+234 157 64
+235 157 64
+236 157 64
+237 157 64
+238 157 64
+239 157 64
+240 157 64
+241 157 64
+242 157 64
+243 157 64
+244 157 64
+245 157 64
+246 157 64
+247 157 64
+248 157 64
+249 157 64
+250 157 64
+251 157 64
+252 157 64
+253 157 64
+254 157 64
+255 157 64
+0 156 64
+1 156 64
+2 156 64
+3 156 64
+4 156 64
+5 156 64
+6 156 64
+7 156 64
+8 156 64
+9 156 64
+10 156 64
+11 156 64
+12 156 64
+13 156 64
+14 156 64
+15 156 64
+16 156 64
+17 156 64
+18 156 64
+19 156 64
+20 156 64
+21 156 64
+22 156 64
+23 156 64
+24 156 64
+25 156 64
+26 156 64
+27 156 64
+28 156 64
+29 156 64
+30 156 64
+31 156 64
+32 156 64
+33 156 64
+34 156 64
+35 156 64
+36 156 64
+37 156 64
+38 156 64
+39 156 64
+40 156 64
+41 156 64
+42 156 64
+43 156 64
+44 156 64
+45 156 64
+46 156 64
+47 156 64
+48 156 64
+49 156 64
+50 156 64
+51 156 64
+52 156 64
+53 156 64
+54 156 64
+55 156 64
+56 156 64
+57 156 64
+58 156 64
+59 156 64
+60 156 64
+61 156 64
+62 156 64
+63 156 64
+64 156 64
+65 156 64
+66 156 64
+67 156 64
+68 156 64
+69 156 64
+70 156 64
+71 156 64
+72 156 64
+73 156 64
+74 156 64
+75 156 64
+76 156 64
+77 156 64
+78 156 64
+79 156 64
+80 156 64
+81 156 64
+82 156 64
+83 156 64
+84 156 64
+85 156 64
+86 156 64
+87 156 64
+88 156 64
+89 156 64
+90 156 64
+91 156 64
+92 156 64
+93 156 64
+94 156 64
+95 156 64
+96 156 64
+97 156 64
+98 156 64
+99 156 64
+100 156 64
+101 156 64
+102 156 64
+103 156 64
+104 156 64
+105 156 64
+106 156 64
+107 156 64
+108 156 64
+109 156 64
+110 156 64
+111 156 64
+112 156 64
+113 156 64
+114 156 64
+115 156 64
+116 156 64
+117 156 64
+118 156 64
+119 156 64
+120 156 64
+121 156 64
+122 156 64
+123 156 64
+124 156 64
+125 156 64
+126 156 64
+127 156 64
+128 156 64
+129 156 64
+130 156 64
+131 156 64
+132 156 64
+133 156 64
+134 156 64
+135 156 64
+136 156 64
+137 156 64
+138 156 64
+139 156 64
+140 156 64
+141 156 64
+142 156 64
+143 156 64
+144 156 64
+145 156 64
+146 156 64
+147 156 64
+148 156 64
+149 156 64
+150 156 64
+151 156 64
+152 156 64
+153 156 64
+154 156 64
+155 156 64
+156 156 64
+157 156 64
+158 156 64
+159 156 64
+160 156 64
+161 156 64
+162 156 64
+163 156 64
+164 156 64
+165 156 64
+166 156 64
+167 156 64
+168 156 64
+169 156 64
+170 156 64
+171 156 64
+172 156 64
+173 156 64
+174 156 64
+175 156 64
+176 156 64
+177 156 64
+178 156 64
+179 156 64
+180 156 64
+181 156 64
+182 156 64
+183 156 64
+184 156 64
+185 156 64
+186 156 64
+187 156 64
+188 156 64
+189 156 64
+190 156 64
+191 156 64
+192 156 64
+193 156 64
+194 156 64
+195 156 64
+196 156 64
+197 156 64
+198 156 64
+199 156 64
+200 156 64
+201 156 64
+202 156 64
+203 156 64
+204 156 64
+205 156 64
+206 156 64
+207 156 64
+208 156 64
+209 156 64
+210 156 64
+211 156 64
+212 156 64
+213 156 64
+214 156 64
+215 156 64
+216 156 64
+217 156 64
+218 156 64
+219 156 64
+220 156 64
+221 156 64
+222 156 64
+223 156 64
+224 156 64
+225 156 64
+226 156 64
+227 156 64
+228 156 64
+229 156 64
+230 156 64
+231 156 64
+232 156 64
+233 156 64
+234 156 64
+235 156 64
+236 156 64
+237 156 64
+238 156 64
+239 156 64
+240 156 64
+241 156 64
+242 156 64
+243 156 64
+244 156 64
+245 156 64
+246 156 64
+247 156 64
+248 156 64
+249 156 64
+250 156 64
+251 156 64
+252 156 64
+253 156 64
+254 156 64
+255 156 64
+0 155 64
+1 155 64
+2 155 64
+3 155 64
+4 155 64
+5 155 64
+6 155 64
+7 155 64
+8 155 64
+9 155 64
+10 155 64
+11 155 64
+12 155 64
+13 155 64
+14 155 64
+15 155 64
+16 155 64
+17 155 64
+18 155 64
+19 155 64
+20 155 64
+21 155 64
+22 155 64
+23 155 64
+24 155 64
+25 155 64
+26 155 64
+27 155 64
+28 155 64
+29 155 64
+30 155 64
+31 155 64
+32 155 64
+33 155 64
+34 155 64
+35 155 64
+36 155 64
+37 155 64
+38 155 64
+39 155 64
+40 155 64
+41 155 64
+42 155 64
+43 155 64
+44 155 64
+45 155 64
+46 155 64
+47 155 64
+48 155 64
+49 155 64
+50 155 64
+51 155 64
+52 155 64
+53 155 64
+54 155 64
+55 155 64
+56 155 64
+57 155 64
+58 155 64
+59 155 64
+60 155 64
+61 155 64
+62 155 64
+63 155 64
+64 155 64
+65 155 64
+66 155 64
+67 155 64
+68 155 64
+69 155 64
+70 155 64
+71 155 64
+72 155 64
+73 155 64
+74 155 64
+75 155 64
+76 155 64
+77 155 64
+78 155 64
+79 155 64
+80 155 64
+81 155 64
+82 155 64
+83 155 64
+84 155 64
+85 155 64
+86 155 64
+87 155 64
+88 155 64
+89 155 64
+90 155 64
+91 155 64
+92 155 64
+93 155 64
+94 155 64
+95 155 64
+96 155 64
+97 155 64
+98 155 64
+99 155 64
+100 155 64
+101 155 64
+102 155 64
+103 155 64
+104 155 64
+105 155 64
+106 155 64
+107 155 64
+108 155 64
+109 155 64
+110 155 64
+111 155 64
+112 155 64
+113 155 64
+114 155 64
+115 155 64
+116 155 64
+117 155 64
+118 155 64
+119 155 64
+120 155 64
+121 155 64
+122 155 64
+123 155 64
+124 155 64
+125 155 64
+126 155 64
+127 155 64
+128 155 64
+129 155 64
+130 155 64
+131 155 64
+132 155 64
+133 155 64
+134 155 64
+135 155 64
+136 155 64
+137 155 64
+138 155 64
+139 155 64
+140 155 64
+141 155 64
+142 155 64
+143 155 64
+144 155 64
+145 155 64
+146 155 64
+147 155 64
+148 155 64
+149 155 64
+150 155 64
+151 155 64
+152 155 64
+153 155 64
+154 155 64
+155 155 64
+156 155 64
+157 155 64
+158 155 64
+159 155 64
+160 155 64
+161 155 64
+162 155 64
+163 155 64
+164 155 64
+165 155 64
+166 155 64
+167 155 64
+168 155 64
+169 155 64
+170 155 64
+171 155 64
+172 155 64
+173 155 64
+174 155 64
+175 155 64
+176 155 64
+177 155 64
+178 155 64
+179 155 64
+180 155 64
+181 155 64
+182 155 64
+183 155 64
+184 155 64
+185 155 64
+186 155 64
+187 155 64
+188 155 64
+189 155 64
+190 155 64
+191 155 64
+192 155 64
+193 155 64
+194 155 64
+195 155 64
+196 155 64
+197 155 64
+198 155 64
+199 155 64
+200 155 64
+201 155 64
+202 155 64
+203 155 64
+204 155 64
+205 155 64
+206 155 64
+207 155 64
+208 155 64
+209 155 64
+210 155 64
+211 155 64
+212 155 64
+213 155 64
+214 155 64
+215 155 64
+216 155 64
+217 155 64
+218 155 64
+219 155 64
+220 155 64
+221 155 64
+222 155 64
+223 155 64
+224 155 64
+225 155 64
+226 155 64
+227 155 64
+228 155 64
+229 155 64
+230 155 64
+231 155 64
+232 155 64
+233 155 64
+234 155 64
+235 155 64
+236 155 64
+237 155 64
+238 155 64
+239 155 64
+240 155 64
+241 155 64
+242 155 64
+243 155 64
+244 155 64
+245 155 64
+246 155 64
+247 155 64
+248 155 64
+249 155 64
+250 155 64
+251 155 64
+252 155 64
+253 155 64
+254 155 64
+255 155 64
+0 154 64
+1 154 64
+2 154 64
+3 154 64
+4 154 64
+5 154 64
+6 154 64
+7 154 64
+8 154 64
+9 154 64
+10 154 64
+11 154 64
+12 154 64
+13 154 64
+14 154 64
+15 154 64
+16 154 64
+17 154 64
+18 154 64
+19 154 64
+20 154 64
+21 154 64
+22 154 64
+23 154 64
+24 154 64
+25 154 64
+26 154 64
+27 154 64
+28 154 64
+29 154 64
+30 154 64
+31 154 64
+32 154 64
+33 154 64
+34 154 64
+35 154 64
+36 154 64
+37 154 64
+38 154 64
+39 154 64
+40 154 64
+41 154 64
+42 154 64
+43 154 64
+44 154 64
+45 154 64
+46 154 64
+47 154 64
+48 154 64
+49 154 64
+50 154 64
+51 154 64
+52 154 64
+53 154 64
+54 154 64
+55 154 64
+56 154 64
+57 154 64
+58 154 64
+59 154 64
+60 154 64
+61 154 64
+62 154 64
+63 154 64
+64 154 64
+65 154 64
+66 154 64
+67 154 64
+68 154 64
+69 154 64
+70 154 64
+71 154 64
+72 154 64
+73 154 64
+74 154 64
+75 154 64
+76 154 64
+77 154 64
+78 154 64
+79 154 64
+80 154 64
+81 154 64
+82 154 64
+83 154 64
+84 154 64
+85 154 64
+86 154 64
+87 154 64
+88 154 64
+89 154 64
+90 154 64
+91 154 64
+92 154 64
+93 154 64
+94 154 64
+95 154 64
+96 154 64
+97 154 64
+98 154 64
+99 154 64
+100 154 64
+101 154 64
+102 154 64
+103 154 64
+104 154 64
+105 154 64
+106 154 64
+107 154 64
+108 154 64
+109 154 64
+110 154 64
+111 154 64
+112 154 64
+113 154 64
+114 154 64
+115 154 64
+116 154 64
+117 154 64
+118 154 64
+119 154 64
+120 154 64
+121 154 64
+122 154 64
+123 154 64
+124 154 64
+125 154 64
+126 154 64
+127 154 64
+128 154 64
+129 154 64
+130 154 64
+131 154 64
+132 154 64
+133 154 64
+134 154 64
+135 154 64
+136 154 64
+137 154 64
+138 154 64
+139 154 64
+140 154 64
+141 154 64
+142 154 64
+143 154 64
+144 154 64
+145 154 64
+146 154 64
+147 154 64
+148 154 64
+149 154 64
+150 154 64
+151 154 64
+152 154 64
+153 154 64
+154 154 64
+155 154 64
+156 154 64
+157 154 64
+158 154 64
+159 154 64
+160 154 64
+161 154 64
+162 154 64
+163 154 64
+164 154 64
+165 154 64
+166 154 64
+167 154 64
+168 154 64
+169 154 64
+170 154 64
+171 154 64
+172 154 64
+173 154 64
+174 154 64
+175 154 64
+176 154 64
+177 154 64
+178 154 64
+179 154 64
+180 154 64
+181 154 64
+182 154 64
+183 154 64
+184 154 64
+185 154 64
+186 154 64
+187 154 64
+188 154 64
+189 154 64
+190 154 64
+191 154 64
+192 154 64
+193 154 64
+194 154 64
+195 154 64
+196 154 64
+197 154 64
+198 154 64
+199 154 64
+200 154 64
+201 154 64
+202 154 64
+203 154 64
+204 154 64
+205 154 64
+206 154 64
+207 154 64
+208 154 64
+209 154 64
+210 154 64
+211 154 64
+212 154 64
+213 154 64
+214 154 64
+215 154 64
+216 154 64
+217 154 64
+218 154 64
+219 154 64
+220 154 64
+221 154 64
+222 154 64
+223 154 64
+224 154 64
+225 154 64
+226 154 64
+227 154 64
+228 154 64
+229 154 64
+230 154 64
+231 154 64
+232 154 64
+233 154 64
+234 154 64
+235 154 64
+236 154 64
+237 154 64
+238 154 64
+239 154 64
+240 154 64
+241 154 64
+242 154 64
+243 154 64
+244 154 64
+245 154 64
+246 154 64
+247 154 64
+248 154 64
+249 154 64
+250 154 64
+251 154 64
+252 154 64
+253 154 64
+254 154 64
+255 154 64
+0 153 64
+1 153 64
+2 153 64
+3 153 64
+4 153 64
+5 153 64
+6 153 64
+7 153 64
+8 153 64
+9 153 64
+10 153 64
+11 153 64
+12 153 64
+13 153 64
+14 153 64
+15 153 64
+16 153 64
+17 153 64
+18 153 64
+19 153 64
+20 153 64
+21 153 64
+22 153 64
+23 153 64
+24 153 64
+25 153 64
+26 153 64
+27 153 64
+28 153 64
+29 153 64
+30 153 64
+31 153 64
+32 153 64
+33 153 64
+34 153 64
+35 153 64
+36 153 64
+37 153 64
+38 153 64
+39 153 64
+40 153 64
+41 153 64
+42 153 64
+43 153 64
+44 153 64
+45 153 64
+46 153 64
+47 153 64
+48 153 64
+49 153 64
+50 153 64
+51 153 64
+52 153 64
+53 153 64
+54 153 64
+55 153 64
+56 153 64
+57 153 64
+58 153 64
+59 153 64
+60 153 64
+61 153 64
+62 153 64
+63 153 64
+64 153 64
+65 153 64
+66 153 64
+67 153 64
+68 153 64
+69 153 64
+70 153 64
+71 153 64
+72 153 64
+73 153 64
+74 153 64
+75 153 64
+76 153 64
+77 153 64
+78 153 64
+79 153 64
+80 153 64
+81 153 64
+82 153 64
+83 153 64
+84 153 64
+85 153 64
+86 153 64
+87 153 64
+88 153 64
+89 153 64
+90 153 64
+91 153 64
+92 153 64
+93 153 64
+94 153 64
+95 153 64
+96 153 64
+97 153 64
+98 153 64
+99 153 64
+100 153 64
+101 153 64
+102 153 64
+103 153 64
+104 153 64
+105 153 64
+106 153 64
+107 153 64
+108 153 64
+109 153 64
+110 153 64
+111 153 64
+112 153 64
+113 153 64
+114 153 64
+115 153 64
+116 153 64
+117 153 64
+118 153 64
+119 153 64
+120 153 64
+121 153 64
+122 153 64
+123 153 64
+124 153 64
+125 153 64
+126 153 64
+127 153 64
+128 153 64
+129 153 64
+130 153 64
+131 153 64
+132 153 64
+133 153 64
+134 153 64
+135 153 64
+136 153 64
+137 153 64
+138 153 64
+139 153 64
+140 153 64
+141 153 64
+142 153 64
+143 153 64
+144 153 64
+145 153 64
+146 153 64
+147 153 64
+148 153 64
+149 153 64
+150 153 64
+151 153 64
+152 153 64
+153 153 64
+154 153 64
+155 153 64
+156 153 64
+157 153 64
+158 153 64
+159 153 64
+160 153 64
+161 153 64
+162 153 64
+163 153 64
+164 153 64
+165 153 64
+166 153 64
+167 153 64
+168 153 64
+169 153 64
+170 153 64
+171 153 64
+172 153 64
+173 153 64
+174 153 64
+175 153 64
+176 153 64
+177 153 64
+178 153 64
+179 153 64
+180 153 64
+181 153 64
+182 153 64
+183 153 64
+184 153 64
+185 153 64
+186 153 64
+187 153 64
+188 153 64
+189 153 64
+190 153 64
+191 153 64
+192 153 64
+193 153 64
+194 153 64
+195 153 64
+196 153 64
+197 153 64
+198 153 64
+199 153 64
+200 153 64
+201 153 64
+202 153 64
+203 153 64
+204 153 64
+205 153 64
+206 153 64
+207 153 64
+208 153 64
+209 153 64
+210 153 64
+211 153 64
+212 153 64
+213 153 64
+214 153 64
+215 153 64
+216 153 64
+217 153 64
+218 153 64
+219 153 64
+220 153 64
+221 153 64
+222 153 64
+223 153 64
+224 153 64
+225 153 64
+226 153 64
+227 153 64
+228 153 64
+229 153 64
+230 153 64
+231 153 64
+232 153 64
+233 153 64
+234 153 64
+235 153 64
+236 153 64
+237 153 64
+238 153 64
+239 153 64
+240 153 64
+241 153 64
+242 153 64
+243 153 64
+244 153 64
+245 153 64
+246 153 64
+247 153 64
+248 153 64
+249 153 64
+250 153 64
+251 153 64
+252 153 64
+253 153 64
+254 153 64
+255 153 64
+0 152 64
+1 152 64
+2 152 64
+3 152 64
+4 152 64
+5 152 64
+6 152 64
+7 152 64
+8 152 64
+9 152 64
+10 152 64
+11 152 64
+12 152 64
+13 152 64
+14 152 64
+15 152 64
+16 152 64
+17 152 64
+18 152 64
+19 152 64
+20 152 64
+21 152 64
+22 152 64
+23 152 64
+24 152 64
+25 152 64
+26 152 64
+27 152 64
+28 152 64
+29 152 64
+30 152 64
+31 152 64
+32 152 64
+33 152 64
+34 152 64
+35 152 64
+36 152 64
+37 152 64
+38 152 64
+39 152 64
+40 152 64
+41 152 64
+42 152 64
+43 152 64
+44 152 64
+45 152 64
+46 152 64
+47 152 64
+48 152 64
+49 152 64
+50 152 64
+51 152 64
+52 152 64
+53 152 64
+54 152 64
+55 152 64
+56 152 64
+57 152 64
+58 152 64
+59 152 64
+60 152 64
+61 152 64
+62 152 64
+63 152 64
+64 152 64
+65 152 64
+66 152 64
+67 152 64
+68 152 64
+69 152 64
+70 152 64
+71 152 64
+72 152 64
+73 152 64
+74 152 64
+75 152 64
+76 152 64
+77 152 64
+78 152 64
+79 152 64
+80 152 64
+81 152 64
+82 152 64
+83 152 64
+84 152 64
+85 152 64
+86 152 64
+87 152 64
+88 152 64
+89 152 64
+90 152 64
+91 152 64
+92 152 64
+93 152 64
+94 152 64
+95 152 64
+96 152 64
+97 152 64
+98 152 64
+99 152 64
+100 152 64
+101 152 64
+102 152 64
+103 152 64
+104 152 64
+105 152 64
+106 152 64
+107 152 64
+108 152 64
+109 152 64
+110 152 64
+111 152 64
+112 152 64
+113 152 64
+114 152 64
+115 152 64
+116 152 64
+117 152 64
+118 152 64
+119 152 64
+120 152 64
+121 152 64
+122 152 64
+123 152 64
+124 152 64
+125 152 64
+126 152 64
+127 152 64
+128 152 64
+129 152 64
+130 152 64
+131 152 64
+132 152 64
+133 152 64
+134 152 64
+135 152 64
+136 152 64
+137 152 64
+138 152 64
+139 152 64
+140 152 64
+141 152 64
+142 152 64
+143 152 64
+144 152 64
+145 152 64
+146 152 64
+147 152 64
+148 152 64
+149 152 64
+150 152 64
+151 152 64
+152 152 64
+153 152 64
+154 152 64
+155 152 64
+156 152 64
+157 152 64
+158 152 64
+159 152 64
+160 152 64
+161 152 64
+162 152 64
+163 152 64
+164 152 64
+165 152 64
+166 152 64
+167 152 64
+168 152 64
+169 152 64
+170 152 64
+171 152 64
+172 152 64
+173 152 64
+174 152 64
+175 152 64
+176 152 64
+177 152 64
+178 152 64
+179 152 64
+180 152 64
+181 152 64
+182 152 64
+183 152 64
+184 152 64
+185 152 64
+186 152 64
+187 152 64
+188 152 64
+189 152 64
+190 152 64
+191 152 64
+192 152 64
+193 152 64
+194 152 64
+195 152 64
+196 152 64
+197 152 64
+198 152 64
+199 152 64
+200 152 64
+201 152 64
+202 152 64
+203 152 64
+204 152 64
+205 152 64
+206 152 64
+207 152 64
+208 152 64
+209 152 64
+210 152 64
+211 152 64
+212 152 64
+213 152 64
+214 152 64
+215 152 64
+216 152 64
+217 152 64
+218 152 64
+219 152 64
+220 152 64
+221 152 64
+222 152 64
+223 152 64
+224 152 64
+225 152 64
+226 152 64
+227 152 64
+228 152 64
+229 152 64
+230 152 64
+231 152 64
+232 152 64
+233 152 64
+234 152 64
+235 152 64
+236 152 64
+237 152 64
+238 152 64
+239 152 64
+240 152 64
+241 152 64
+242 152 64
+243 152 64
+244 152 64
+245 152 64
+246 152 64
+247 152 64
+248 152 64
+249 152 64
+250 152 64
+251 152 64
+252 152 64
+253 152 64
+254 152 64
+255 152 64
+0 151 64
+1 151 64
+2 151 64
+3 151 64
+4 151 64
+5 151 64
+6 151 64
+7 151 64
+8 151 64
+9 151 64
+10 151 64
+11 151 64
+12 151 64
+13 151 64
+14 151 64
+15 151 64
+16 151 64
+17 151 64
+18 151 64
+19 151 64
+20 151 64
+21 151 64
+22 151 64
+23 151 64
+24 151 64
+25 151 64
+26 151 64
+27 151 64
+28 151 64
+29 151 64
+30 151 64
+31 151 64
+32 151 64
+33 151 64
+34 151 64
+35 151 64
+36 151 64
+37 151 64
+38 151 64
+39 151 64
+40 151 64
+41 151 64
+42 151 64
+43 151 64
+44 151 64
+45 151 64
+46 151 64
+47 151 64
+48 151 64
+49 151 64
+50 151 64
+51 151 64
+52 151 64
+53 151 64
+54 151 64
+55 151 64
+56 151 64
+57 151 64
+58 151 64
+59 151 64
+60 151 64
+61 151 64
+62 151 64
+63 151 64
+64 151 64
+65 151 64
+66 151 64
+67 151 64
+68 151 64
+69 151 64
+70 151 64
+71 151 64
+72 151 64
+73 151 64
+74 151 64
+75 151 64
+76 151 64
+77 151 64
+78 151 64
+79 151 64
+80 151 64
+81 151 64
+82 151 64
+83 151 64
+84 151 64
+85 151 64
+86 151 64
+87 151 64
+88 151 64
+89 151 64
+90 151 64
+91 151 64
+92 151 64
+93 151 64
+94 151 64
+95 151 64
+96 151 64
+97 151 64
+98 151 64
+99 151 64
+100 151 64
+101 151 64
+102 151 64
+103 151 64
+104 151 64
+105 151 64
+106 151 64
+107 151 64
+108 151 64
+109 151 64
+110 151 64
+111 151 64
+112 151 64
+113 151 64
+114 151 64
+115 151 64
+116 151 64
+117 151 64
+118 151 64
+119 151 64
+120 151 64
+121 151 64
+122 151 64
+123 151 64
+124 151 64
+125 151 64
+126 151 64
+127 151 64
+128 151 64
+129 151 64
+130 151 64
+131 151 64
+132 151 64
+133 151 64
+134 151 64
+135 151 64
+136 151 64
+137 151 64
+138 151 64
+139 151 64
+140 151 64
+141 151 64
+142 151 64
+143 151 64
+144 151 64
+145 151 64
+146 151 64
+147 151 64
+148 151 64
+149 151 64
+150 151 64
+151 151 64
+152 151 64
+153 151 64
+154 151 64
+155 151 64
+156 151 64
+157 151 64
+158 151 64
+159 151 64
+160 151 64
+161 151 64
+162 151 64
+163 151 64
+164 151 64
+165 151 64
+166 151 64
+167 151 64
+168 151 64
+169 151 64
+170 151 64
+171 151 64
+172 151 64
+173 151 64
+174 151 64
+175 151 64
+176 151 64
+177 151 64
+178 151 64
+179 151 64
+180 151 64
+181 151 64
+182 151 64
+183 151 64
+184 151 64
+185 151 64
+186 151 64
+187 151 64
+188 151 64
+189 151 64
+190 151 64
+191 151 64
+192 151 64
+193 151 64
+194 151 64
+195 151 64
+196 151 64
+197 151 64
+198 151 64
+199 151 64
+200 151 64
+201 151 64
+202 151 64
+203 151 64
+204 151 64
+205 151 64
+206 151 64
+207 151 64
+208 151 64
+209 151 64
+210 151 64
+211 151 64
+212 151 64
+213 151 64
+214 151 64
+215 151 64
+216 151 64
+217 151 64
+218 151 64
+219 151 64
+220 151 64
+221 151 64
+222 151 64
+223 151 64
+224 151 64
+225 151 64
+226 151 64
+227 151 64
+228 151 64
+229 151 64
+230 151 64
+231 151 64
+232 151 64
+233 151 64
+234 151 64
+235 151 64
+236 151 64
+237 151 64
+238 151 64
+239 151 64
+240 151 64
+241 151 64
+242 151 64
+243 151 64
+244 151 64
+245 151 64
+246 151 64
+247 151 64
+248 151 64
+249 151 64
+250 151 64
+251 151 64
+252 151 64
+253 151 64
+254 151 64
+255 151 64
+0 150 64
+1 150 64
+2 150 64
+3 150 64
+4 150 64
+5 150 64
+6 150 64
+7 150 64
+8 150 64
+9 150 64
+10 150 64
+11 150 64
+12 150 64
+13 150 64
+14 150 64
+15 150 64
+16 150 64
+17 150 64
+18 150 64
+19 150 64
+20 150 64
+21 150 64
+22 150 64
+23 150 64
+24 150 64
+25 150 64
+26 150 64
+27 150 64
+28 150 64
+29 150 64
+30 150 64
+31 150 64
+32 150 64
+33 150 64
+34 150 64
+35 150 64
+36 150 64
+37 150 64
+38 150 64
+39 150 64
+40 150 64
+41 150 64
+42 150 64
+43 150 64
+44 150 64
+45 150 64
+46 150 64
+47 150 64
+48 150 64
+49 150 64
+50 150 64
+51 150 64
+52 150 64
+53 150 64
+54 150 64
+55 150 64
+56 150 64
+57 150 64
+58 150 64
+59 150 64
+60 150 64
+61 150 64
+62 150 64
+63 150 64
+64 150 64
+65 150 64
+66 150 64
+67 150 64
+68 150 64
+69 150 64
+70 150 64
+71 150 64
+72 150 64
+73 150 64
+74 150 64
+75 150 64
+76 150 64
+77 150 64
+78 150 64
+79 150 64
+80 150 64
+81 150 64
+82 150 64
+83 150 64
+84 150 64
+85 150 64
+86 150 64
+87 150 64
+88 150 64
+89 150 64
+90 150 64
+91 150 64
+92 150 64
+93 150 64
+94 150 64
+95 150 64
+96 150 64
+97 150 64
+98 150 64
+99 150 64
+100 150 64
+101 150 64
+102 150 64
+103 150 64
+104 150 64
+105 150 64
+106 150 64
+107 150 64
+108 150 64
+109 150 64
+110 150 64
+111 150 64
+112 150 64
+113 150 64
+114 150 64
+115 150 64
+116 150 64
+117 150 64
+118 150 64
+119 150 64
+120 150 64
+121 150 64
+122 150 64
+123 150 64
+124 150 64
+125 150 64
+126 150 64
+127 150 64
+128 150 64
+129 150 64
+130 150 64
+131 150 64
+132 150 64
+133 150 64
+134 150 64
+135 150 64
+136 150 64
+137 150 64
+138 150 64
+139 150 64
+140 150 64
+141 150 64
+142 150 64
+143 150 64
+144 150 64
+145 150 64
+146 150 64
+147 150 64
+148 150 64
+149 150 64
+150 150 64
+151 150 64
+152 150 64
+153 150 64
+154 150 64
+155 150 64
+156 150 64
+157 150 64
+158 150 64
+159 150 64
+160 150 64
+161 150 64
+162 150 64
+163 150 64
+164 150 64
+165 150 64
+166 150 64
+167 150 64
+168 150 64
+169 150 64
+170 150 64
+171 150 64
+172 150 64
+173 150 64
+174 150 64
+175 150 64
+176 150 64
+177 150 64
+178 150 64
+179 150 64
+180 150 64
+181 150 64
+182 150 64
+183 150 64
+184 150 64
+185 150 64
+186 150 64
+187 150 64
+188 150 64
+189 150 64
+190 150 64
+191 150 64
+192 150 64
+193 150 64
+194 150 64
+195 150 64
+196 150 64
+197 150 64
+198 150 64
+199 150 64
+200 150 64
+201 150 64
+202 150 64
+203 150 64
+204 150 64
+205 150 64
+206 150 64
+207 150 64
+208 150 64
+209 150 64
+210 150 64
+211 150 64
+212 150 64
+213 150 64
+214 150 64
+215 150 64
+216 150 64
+217 150 64
+218 150 64
+219 150 64
+220 150 64
+221 150 64
+222 150 64
+223 150 64
+224 150 64
+225 150 64
+226 150 64
+227 150 64
+228 150 64
+229 150 64
+230 150 64
+231 150 64
+232 150 64
+233 150 64
+234 150 64
+235 150 64
+236 150 64
+237 150 64
+238 150 64
+239 150 64
+240 150 64
+241 150 64
+242 150 64
+243 150 64
+244 150 64
+245 150 64
+246 150 64
+247 150 64
+248 150 64
+249 150 64
+250 150 64
+251 150 64
+252 150 64
+253 150 64
+254 150 64
+255 150 64
+0 149 64
+1 149 64
+2 149 64
+3 149 64
+4 149 64
+5 149 64
+6 149 64
+7 149 64
+8 149 64
+9 149 64
+10 149 64
+11 149 64
+12 149 64
+13 149 64
+14 149 64
+15 149 64
+16 149 64
+17 149 64
+18 149 64
+19 149 64
+20 149 64
+21 149 64
+22 149 64
+23 149 64
+24 149 64
+25 149 64
+26 149 64
+27 149 64
+28 149 64
+29 149 64
+30 149 64
+31 149 64
+32 149 64
+33 149 64
+34 149 64
+35 149 64
+36 149 64
+37 149 64
+38 149 64
+39 149 64
+40 149 64
+41 149 64
+42 149 64
+43 149 64
+44 149 64
+45 149 64
+46 149 64
+47 149 64
+48 149 64
+49 149 64
+50 149 64
+51 149 64
+52 149 64
+53 149 64
+54 149 64
+55 149 64
+56 149 64
+57 149 64
+58 149 64
+59 149 64
+60 149 64
+61 149 64
+62 149 64
+63 149 64
+64 149 64
+65 149 64
+66 149 64
+67 149 64
+68 149 64
+69 149 64
+70 149 64
+71 149 64
+72 149 64
+73 149 64
+74 149 64
+75 149 64
+76 149 64
+77 149 64
+78 149 64
+79 149 64
+80 149 64
+81 149 64
+82 149 64
+83 149 64
+84 149 64
+85 149 64
+86 149 64
+87 149 64
+88 149 64
+89 149 64
+90 149 64
+91 149 64
+92 149 64
+93 149 64
+94 149 64
+95 149 64
+96 149 64
+97 149 64
+98 149 64
+99 149 64
+100 149 64
+101 149 64
+102 149 64
+103 149 64
+104 149 64
+105 149 64
+106 149 64
+107 149 64
+108 149 64
+109 149 64
+110 149 64
+111 149 64
+112 149 64
+113 149 64
+114 149 64
+115 149 64
+116 149 64
+117 149 64
+118 149 64
+119 149 64
+120 149 64
+121 149 64
+122 149 64
+123 149 64
+124 149 64
+125 149 64
+126 149 64
+127 149 64
+128 149 64
+129 149 64
+130 149 64
+131 149 64
+132 149 64
+133 149 64
+134 149 64
+135 149 64
+136 149 64
+137 149 64
+138 149 64
+139 149 64
+140 149 64
+141 149 64
+142 149 64
+143 149 64
+144 149 64
+145 149 64
+146 149 64
+147 149 64
+148 149 64
+149 149 64
+150 149 64
+151 149 64
+152 149 64
+153 149 64
+154 149 64
+155 149 64
+156 149 64
+157 149 64
+158 149 64
+159 149 64
+160 149 64
+161 149 64
+162 149 64
+163 149 64
+164 149 64
+165 149 64
+166 149 64
+167 149 64
+168 149 64
+169 149 64
+170 149 64
+171 149 64
+172 149 64
+173 149 64
+174 149 64
+175 149 64
+176 149 64
+177 149 64
+178 149 64
+179 149 64
+180 149 64
+181 149 64
+182 149 64
+183 149 64
+184 149 64
+185 149 64
+186 149 64
+187 149 64
+188 149 64
+189 149 64
+190 149 64
+191 149 64
+192 149 64
+193 149 64
+194 149 64
+195 149 64
+196 149 64
+197 149 64
+198 149 64
+199 149 64
+200 149 64
+201 149 64
+202 149 64
+203 149 64
+204 149 64
+205 149 64
+206 149 64
+207 149 64
+208 149 64
+209 149 64
+210 149 64
+211 149 64
+212 149 64
+213 149 64
+214 149 64
+215 149 64
+216 149 64
+217 149 64
+218 149 64
+219 149 64
+220 149 64
+221 149 64
+222 149 64
+223 149 64
+224 149 64
+225 149 64
+226 149 64
+227 149 64
+228 149 64
+229 149 64
+230 149 64
+231 149 64
+232 149 64
+233 149 64
+234 149 64
+235 149 64
+236 149 64
+237 149 64
+238 149 64
+239 149 64
+240 149 64
+241 149 64
+242 149 64
+243 149 64
+244 149 64
+245 149 64
+246 149 64
+247 149 64
+248 149 64
+249 149 64
+250 149 64
+251 149 64
+252 149 64
+253 149 64
+254 149 64
+255 149 64
+0 148 64
+1 148 64
+2 148 64
+3 148 64
+4 148 64
+5 148 64
+6 148 64
+7 148 64
+8 148 64
+9 148 64
+10 148 64
+11 148 64
+12 148 64
+13 148 64
+14 148 64
+15 148 64
+16 148 64
+17 148 64
+18 148 64
+19 148 64
+20 148 64
+21 148 64
+22 148 64
+23 148 64
+24 148 64
+25 148 64
+26 148 64
+27 148 64
+28 148 64
+29 148 64
+30 148 64
+31 148 64
+32 148 64
+33 148 64
+34 148 64
+35 148 64
+36 148 64
+37 148 64
+38 148 64
+39 148 64
+40 148 64
+41 148 64
+42 148 64
+43 148 64
+44 148 64
+45 148 64
+46 148 64
+47 148 64
+48 148 64
+49 148 64
+50 148 64
+51 148 64
+52 148 64
+53 148 64
+54 148 64
+55 148 64
+56 148 64
+57 148 64
+58 148 64
+59 148 64
+60 148 64
+61 148 64
+62 148 64
+63 148 64
+64 148 64
+65 148 64
+66 148 64
+67 148 64
+68 148 64
+69 148 64
+70 148 64
+71 148 64
+72 148 64
+73 148 64
+74 148 64
+75 148 64
+76 148 64
+77 148 64
+78 148 64
+79 148 64
+80 148 64
+81 148 64
+82 148 64
+83 148 64
+84 148 64
+85 148 64
+86 148 64
+87 148 64
+88 148 64
+89 148 64
+90 148 64
+91 148 64
+92 148 64
+93 148 64
+94 148 64
+95 148 64
+96 148 64
+97 148 64
+98 148 64
+99 148 64
+100 148 64
+101 148 64
+102 148 64
+103 148 64
+104 148 64
+105 148 64
+106 148 64
+107 148 64
+108 148 64
+109 148 64
+110 148 64
+111 148 64
+112 148 64
+113 148 64
+114 148 64
+115 148 64
+116 148 64
+117 148 64
+118 148 64
+119 148 64
+120 148 64
+121 148 64
+122 148 64
+123 148 64
+124 148 64
+125 148 64
+126 148 64
+127 148 64
+128 148 64
+129 148 64
+130 148 64
+131 148 64
+132 148 64
+133 148 64
+134 148 64
+135 148 64
+136 148 64
+137 148 64
+138 148 64
+139 148 64
+140 148 64
+141 148 64
+142 148 64
+143 148 64
+144 148 64
+145 148 64
+146 148 64
+147 148 64
+148 148 64
+149 148 64
+150 148 64
+151 148 64
+152 148 64
+153 148 64
+154 148 64
+155 148 64
+156 148 64
+157 148 64
+158 148 64
+159 148 64
+160 148 64
+161 148 64
+162 148 64
+163 148 64
+164 148 64
+165 148 64
+166 148 64
+167 148 64
+168 148 64
+169 148 64
+170 148 64
+171 148 64
+172 148 64
+173 148 64
+174 148 64
+175 148 64
+176 148 64
+177 148 64
+178 148 64
+179 148 64
+180 148 64
+181 148 64
+182 148 64
+183 148 64
+184 148 64
+185 148 64
+186 148 64
+187 148 64
+188 148 64
+189 148 64
+190 148 64
+191 148 64
+192 148 64
+193 148 64
+194 148 64
+195 148 64
+196 148 64
+197 148 64
+198 148 64
+199 148 64
+200 148 64
+201 148 64
+202 148 64
+203 148 64
+204 148 64
+205 148 64
+206 148 64
+207 148 64
+208 148 64
+209 148 64
+210 148 64
+211 148 64
+212 148 64
+213 148 64
+214 148 64
+215 148 64
+216 148 64
+217 148 64
+218 148 64
+219 148 64
+220 148 64
+221 148 64
+222 148 64
+223 148 64
+224 148 64
+225 148 64
+226 148 64
+227 148 64
+228 148 64
+229 148 64
+230 148 64
+231 148 64
+232 148 64
+233 148 64
+234 148 64
+235 148 64
+236 148 64
+237 148 64
+238 148 64
+239 148 64
+240 148 64
+241 148 64
+242 148 64
+243 148 64
+244 148 64
+245 148 64
+246 148 64
+247 148 64
+248 148 64
+249 148 64
+250 148 64
+251 148 64
+252 148 64
+253 148 64
+254 148 64
+255 148 64
+0 147 64
+1 147 64
+2 147 64
+3 147 64
+4 147 64
+5 147 64
+6 147 64
+7 147 64
+8 147 64
+9 147 64
+10 147 64
+11 147 64
+12 147 64
+13 147 64
+14 147 64
+15 147 64
+16 147 64
+17 147 64
+18 147 64
+19 147 64
+20 147 64
+21 147 64
+22 147 64
+23 147 64
+24 147 64
+25 147 64
+26 147 64
+27 147 64
+28 147 64
+29 147 64
+30 147 64
+31 147 64
+32 147 64
+33 147 64
+34 147 64
+35 147 64
+36 147 64
+37 147 64
+38 147 64
+39 147 64
+40 147 64
+41 147 64
+42 147 64
+43 147 64
+44 147 64
+45 147 64
+46 147 64
+47 147 64
+48 147 64
+49 147 64
+50 147 64
+51 147 64
+52 147 64
+53 147 64
+54 147 64
+55 147 64
+56 147 64
+57 147 64
+58 147 64
+59 147 64
+60 147 64
+61 147 64
+62 147 64
+63 147 64
+64 147 64
+65 147 64
+66 147 64
+67 147 64
+68 147 64
+69 147 64
+70 147 64
+71 147 64
+72 147 64
+73 147 64
+74 147 64
+75 147 64
+76 147 64
+77 147 64
+78 147 64
+79 147 64
+80 147 64
+81 147 64
+82 147 64
+83 147 64
+84 147 64
+85 147 64
+86 147 64
+87 147 64
+88 147 64
+89 147 64
+90 147 64
+91 147 64
+92 147 64
+93 147 64
+94 147 64
+95 147 64
+96 147 64
+97 147 64
+98 147 64
+99 147 64
+100 147 64
+101 147 64
+102 147 64
+103 147 64
+104 147 64
+105 147 64
+106 147 64
+107 147 64
+108 147 64
+109 147 64
+110 147 64
+111 147 64
+112 147 64
+113 147 64
+114 147 64
+115 147 64
+116 147 64
+117 147 64
+118 147 64
+119 147 64
+120 147 64
+121 147 64
+122 147 64
+123 147 64
+124 147 64
+125 147 64
+126 147 64
+127 147 64
+128 147 64
+129 147 64
+130 147 64
+131 147 64
+132 147 64
+133 147 64
+134 147 64
+135 147 64
+136 147 64
+137 147 64
+138 147 64
+139 147 64
+140 147 64
+141 147 64
+142 147 64
+143 147 64
+144 147 64
+145 147 64
+146 147 64
+147 147 64
+148 147 64
+149 147 64
+150 147 64
+151 147 64
+152 147 64
+153 147 64
+154 147 64
+155 147 64
+156 147 64
+157 147 64
+158 147 64
+159 147 64
+160 147 64
+161 147 64
+162 147 64
+163 147 64
+164 147 64
+165 147 64
+166 147 64
+167 147 64
+168 147 64
+169 147 64
+170 147 64
+171 147 64
+172 147 64
+173 147 64
+174 147 64
+175 147 64
+176 147 64
+177 147 64
+178 147 64
+179 147 64
+180 147 64
+181 147 64
+182 147 64
+183 147 64
+184 147 64
+185 147 64
+186 147 64
+187 147 64
+188 147 64
+189 147 64
+190 147 64
+191 147 64
+192 147 64
+193 147 64
+194 147 64
+195 147 64
+196 147 64
+197 147 64
+198 147 64
+199 147 64
+200 147 64
+201 147 64
+202 147 64
+203 147 64
+204 147 64
+205 147 64
+206 147 64
+207 147 64
+208 147 64
+209 147 64
+210 147 64
+211 147 64
+212 147 64
+213 147 64
+214 147 64
+215 147 64
+216 147 64
+217 147 64
+218 147 64
+219 147 64
+220 147 64
+221 147 64
+222 147 64
+223 147 64
+224 147 64
+225 147 64
+226 147 64
+227 147 64
+228 147 64
+229 147 64
+230 147 64
+231 147 64
+232 147 64
+233 147 64
+234 147 64
+235 147 64
+236 147 64
+237 147 64
+238 147 64
+239 147 64
+240 147 64
+241 147 64
+242 147 64
+243 147 64
+244 147 64
+245 147 64
+246 147 64
+247 147 64
+248 147 64
+249 147 64
+250 147 64
+251 147 64
+252 147 64
+253 147 64
+254 147 64
+255 147 64
+0 146 64
+1 146 64
+2 146 64
+3 146 64
+4 146 64
+5 146 64
+6 146 64
+7 146 64
+8 146 64
+9 146 64
+10 146 64
+11 146 64
+12 146 64
+13 146 64
+14 146 64
+15 146 64
+16 146 64
+17 146 64
+18 146 64
+19 146 64
+20 146 64
+21 146 64
+22 146 64
+23 146 64
+24 146 64
+25 146 64
+26 146 64
+27 146 64
+28 146 64
+29 146 64
+30 146 64
+31 146 64
+32 146 64
+33 146 64
+34 146 64
+35 146 64
+36 146 64
+37 146 64
+38 146 64
+39 146 64
+40 146 64
+41 146 64
+42 146 64
+43 146 64
+44 146 64
+45 146 64
+46 146 64
+47 146 64
+48 146 64
+49 146 64
+50 146 64
+51 146 64
+52 146 64
+53 146 64
+54 146 64
+55 146 64
+56 146 64
+57 146 64
+58 146 64
+59 146 64
+60 146 64
+61 146 64
+62 146 64
+63 146 64
+64 146 64
+65 146 64
+66 146 64
+67 146 64
+68 146 64
+69 146 64
+70 146 64
+71 146 64
+72 146 64
+73 146 64
+74 146 64
+75 146 64
+76 146 64
+77 146 64
+78 146 64
+79 146 64
+80 146 64
+81 146 64
+82 146 64
+83 146 64
+84 146 64
+85 146 64
+86 146 64
+87 146 64
+88 146 64
+89 146 64
+90 146 64
+91 146 64
+92 146 64
+93 146 64
+94 146 64
+95 146 64
+96 146 64
+97 146 64
+98 146 64
+99 146 64
+100 146 64
+101 146 64
+102 146 64
+103 146 64
+104 146 64
+105 146 64
+106 146 64
+107 146 64
+108 146 64
+109 146 64
+110 146 64
+111 146 64
+112 146 64
+113 146 64
+114 146 64
+115 146 64
+116 146 64
+117 146 64
+118 146 64
+119 146 64
+120 146 64
+121 146 64
+122 146 64
+123 146 64
+124 146 64
+125 146 64
+126 146 64
+127 146 64
+128 146 64
+129 146 64
+130 146 64
+131 146 64
+132 146 64
+133 146 64
+134 146 64
+135 146 64
+136 146 64
+137 146 64
+138 146 64
+139 146 64
+140 146 64
+141 146 64
+142 146 64
+143 146 64
+144 146 64
+145 146 64
+146 146 64
+147 146 64
+148 146 64
+149 146 64
+150 146 64
+151 146 64
+152 146 64
+153 146 64
+154 146 64
+155 146 64
+156 146 64
+157 146 64
+158 146 64
+159 146 64
+160 146 64
+161 146 64
+162 146 64
+163 146 64
+164 146 64
+165 146 64
+166 146 64
+167 146 64
+168 146 64
+169 146 64
+170 146 64
+171 146 64
+172 146 64
+173 146 64
+174 146 64
+175 146 64
+176 146 64
+177 146 64
+178 146 64
+179 146 64
+180 146 64
+181 146 64
+182 146 64
+183 146 64
+184 146 64
+185 146 64
+186 146 64
+187 146 64
+188 146 64
+189 146 64
+190 146 64
+191 146 64
+192 146 64
+193 146 64
+194 146 64
+195 146 64
+196 146 64
+197 146 64
+198 146 64
+199 146 64
+200 146 64
+201 146 64
+202 146 64
+203 146 64
+204 146 64
+205 146 64
+206 146 64
+207 146 64
+208 146 64
+209 146 64
+210 146 64
+211 146 64
+212 146 64
+213 146 64
+214 146 64
+215 146 64
+216 146 64
+217 146 64
+218 146 64
+219 146 64
+220 146 64
+221 146 64
+222 146 64
+223 146 64
+224 146 64
+225 146 64
+226 146 64
+227 146 64
+228 146 64
+229 146 64
+230 146 64
+231 146 64
+232 146 64
+233 146 64
+234 146 64
+235 146 64
+236 146 64
+237 146 64
+238 146 64
+239 146 64
+240 146 64
+241 146 64
+242 146 64
+243 146 64
+244 146 64
+245 146 64
+246 146 64
+247 146 64
+248 146 64
+249 146 64
+250 146 64
+251 146 64
+252 146 64
+253 146 64
+254 146 64
+255 146 64
+0 145 64
+1 145 64
+2 145 64
+3 145 64
+4 145 64
+5 145 64
+6 145 64
+7 145 64
+8 145 64
+9 145 64
+10 145 64
+11 145 64
+12 145 64
+13 145 64
+14 145 64
+15 145 64
+16 145 64
+17 145 64
+18 145 64
+19 145 64
+20 145 64
+21 145 64
+22 145 64
+23 145 64
+24 145 64
+25 145 64
+26 145 64
+27 145 64
+28 145 64
+29 145 64
+30 145 64
+31 145 64
+32 145 64
+33 145 64
+34 145 64
+35 145 64
+36 145 64
+37 145 64
+38 145 64
+39 145 64
+40 145 64
+41 145 64
+42 145 64
+43 145 64
+44 145 64
+45 145 64
+46 145 64
+47 145 64
+48 145 64
+49 145 64
+50 145 64
+51 145 64
+52 145 64
+53 145 64
+54 145 64
+55 145 64
+56 145 64
+57 145 64
+58 145 64
+59 145 64
+60 145 64
+61 145 64
+62 145 64
+63 145 64
+64 145 64
+65 145 64
+66 145 64
+67 145 64
+68 145 64
+69 145 64
+70 145 64
+71 145 64
+72 145 64
+73 145 64
+74 145 64
+75 145 64
+76 145 64
+77 145 64
+78 145 64
+79 145 64
+80 145 64
+81 145 64
+82 145 64
+83 145 64
+84 145 64
+85 145 64
+86 145 64
+87 145 64
+88 145 64
+89 145 64
+90 145 64
+91 145 64
+92 145 64
+93 145 64
+94 145 64
+95 145 64
+96 145 64
+97 145 64
+98 145 64
+99 145 64
+100 145 64
+101 145 64
+102 145 64
+103 145 64
+104 145 64
+105 145 64
+106 145 64
+107 145 64
+108 145 64
+109 145 64
+110 145 64
+111 145 64
+112 145 64
+113 145 64
+114 145 64
+115 145 64
+116 145 64
+117 145 64
+118 145 64
+119 145 64
+120 145 64
+121 145 64
+122 145 64
+123 145 64
+124 145 64
+125 145 64
+126 145 64
+127 145 64
+128 145 64
+129 145 64
+130 145 64
+131 145 64
+132 145 64
+133 145 64
+134 145 64
+135 145 64
+136 145 64
+137 145 64
+138 145 64
+139 145 64
+140 145 64
+141 145 64
+142 145 64
+143 145 64
+144 145 64
+145 145 64
+146 145 64
+147 145 64
+148 145 64
+149 145 64
+150 145 64
+151 145 64
+152 145 64
+153 145 64
+154 145 64
+155 145 64
+156 145 64
+157 145 64
+158 145 64
+159 145 64
+160 145 64
+161 145 64
+162 145 64
+163 145 64
+164 145 64
+165 145 64
+166 145 64
+167 145 64
+168 145 64
+169 145 64
+170 145 64
+171 145 64
+172 145 64
+173 145 64
+174 145 64
+175 145 64
+176 145 64
+177 145 64
+178 145 64
+179 145 64
+180 145 64
+181 145 64
+182 145 64
+183 145 64
+184 145 64
+185 145 64
+186 145 64
+187 145 64
+188 145 64
+189 145 64
+190 145 64
+191 145 64
+192 145 64
+193 145 64
+194 145 64
+195 145 64
+196 145 64
+197 145 64
+198 145 64
+199 145 64
+200 145 64
+201 145 64
+202 145 64
+203 145 64
+204 145 64
+205 145 64
+206 145 64
+207 145 64
+208 145 64
+209 145 64
+210 145 64
+211 145 64
+212 145 64
+213 145 64
+214 145 64
+215 145 64
+216 145 64
+217 145 64
+218 145 64
+219 145 64
+220 145 64
+221 145 64
+222 145 64
+223 145 64
+224 145 64
+225 145 64
+226 145 64
+227 145 64
+228 145 64
+229 145 64
+230 145 64
+231 145 64
+232 145 64
+233 145 64
+234 145 64
+235 145 64
+236 145 64
+237 145 64
+238 145 64
+239 145 64
+240 145 64
+241 145 64
+242 145 64
+243 145 64
+244 145 64
+245 145 64
+246 145 64
+247 145 64
+248 145 64
+249 145 64
+250 145 64
+251 145 64
+252 145 64
+253 145 64
+254 145 64
+255 145 64
+0 144 64
+1 144 64
+2 144 64
+3 144 64
+4 144 64
+5 144 64
+6 144 64
+7 144 64
+8 144 64
+9 144 64
+10 144 64
+11 144 64
+12 144 64
+13 144 64
+14 144 64
+15 144 64
+16 144 64
+17 144 64
+18 144 64
+19 144 64
+20 144 64
+21 144 64
+22 144 64
+23 144 64
+24 144 64
+25 144 64
+26 144 64
+27 144 64
+28 144 64
+29 144 64
+30 144 64
+31 144 64
+32 144 64
+33 144 64
+34 144 64
+35 144 64
+36 144 64
+37 144 64
+38 144 64
+39 144 64
+40 144 64
+41 144 64
+42 144 64
+43 144 64
+44 144 64
+45 144 64
+46 144 64
+47 144 64
+48 144 64
+49 144 64
+50 144 64
+51 144 64
+52 144 64
+53 144 64
+54 144 64
+55 144 64
+56 144 64
+57 144 64
+58 144 64
+59 144 64
+60 144 64
+61 144 64
+62 144 64
+63 144 64
+64 144 64
+65 144 64
+66 144 64
+67 144 64
+68 144 64
+69 144 64
+70 144 64
+71 144 64
+72 144 64
+73 144 64
+74 144 64
+75 144 64
+76 144 64
+77 144 64
+78 144 64
+79 144 64
+80 144 64
+81 144 64
+82 144 64
+83 144 64
+84 144 64
+85 144 64
+86 144 64
+87 144 64
+88 144 64
+89 144 64
+90 144 64
+91 144 64
+92 144 64
+93 144 64
+94 144 64
+95 144 64
+96 144 64
+97 144 64
+98 144 64
+99 144 64
+100 144 64
+101 144 64
+102 144 64
+103 144 64
+104 144 64
+105 144 64
+106 144 64
+107 144 64
+108 144 64
+109 144 64
+110 144 64
+111 144 64
+112 144 64
+113 144 64
+114 144 64
+115 144 64
+116 144 64
+117 144 64
+118 144 64
+119 144 64
+120 144 64
+121 144 64
+122 144 64
+123 144 64
+124 144 64
+125 144 64
+126 144 64
+127 144 64
+128 144 64
+129 144 64
+130 144 64
+131 144 64
+132 144 64
+133 144 64
+134 144 64
+135 144 64
+136 144 64
+137 144 64
+138 144 64
+139 144 64
+140 144 64
+141 144 64
+142 144 64
+143 144 64
+144 144 64
+145 144 64
+146 144 64
+147 144 64
+148 144 64
+149 144 64
+150 144 64
+151 144 64
+152 144 64
+153 144 64
+154 144 64
+155 144 64
+156 144 64
+157 144 64
+158 144 64
+159 144 64
+160 144 64
+161 144 64
+162 144 64
+163 144 64
+164 144 64
+165 144 64
+166 144 64
+167 144 64
+168 144 64
+169 144 64
+170 144 64
+171 144 64
+172 144 64
+173 144 64
+174 144 64
+175 144 64
+176 144 64
+177 144 64
+178 144 64
+179 144 64
+180 144 64
+181 144 64
+182 144 64
+183 144 64
+184 144 64
+185 144 64
+186 144 64
+187 144 64
+188 144 64
+189 144 64
+190 144 64
+191 144 64
+192 144 64
+193 144 64
+194 144 64
+195 144 64
+196 144 64
+197 144 64
+198 144 64
+199 144 64
+200 144 64
+201 144 64
+202 144 64
+203 144 64
+204 144 64
+205 144 64
+206 144 64
+207 144 64
+208 144 64
+209 144 64
+210 144 64
+211 144 64
+212 144 64
+213 144 64
+214 144 64
+215 144 64
+216 144 64
+217 144 64
+218 144 64
+219 144 64
+220 144 64
+221 144 64
+222 144 64
+223 144 64
+224 144 64
+225 144 64
+226 144 64
+227 144 64
+228 144 64
+229 144 64
+230 144 64
+231 144 64
+232 144 64
+233 144 64
+234 144 64
+235 144 64
+236 144 64
+237 144 64
+238 144 64
+239 144 64
+240 144 64
+241 144 64
+242 144 64
+243 144 64
+244 144 64
+245 144 64
+246 144 64
+247 144 64
+248 144 64
+249 144 64
+250 144 64
+251 144 64
+252 144 64
+253 144 64
+254 144 64
+255 144 64
+0 143 64
+1 143 64
+2 143 64
+3 143 64
+4 143 64
+5 143 64
+6 143 64
+7 143 64
+8 143 64
+9 143 64
+10 143 64
+11 143 64
+12 143 64
+13 143 64
+14 143 64
+15 143 64
+16 143 64
+17 143 64
+18 143 64
+19 143 64
+20 143 64
+21 143 64
+22 143 64
+23 143 64
+24 143 64
+25 143 64
+26 143 64
+27 143 64
+28 143 64
+29 143 64
+30 143 64
+31 143 64
+32 143 64
+33 143 64
+34 143 64
+35 143 64
+36 143 64
+37 143 64
+38 143 64
+39 143 64
+40 143 64
+41 143 64
+42 143 64
+43 143 64
+44 143 64
+45 143 64
+46 143 64
+47 143 64
+48 143 64
+49 143 64
+50 143 64
+51 143 64
+52 143 64
+53 143 64
+54 143 64
+55 143 64
+56 143 64
+57 143 64
+58 143 64
+59 143 64
+60 143 64
+61 143 64
+62 143 64
+63 143 64
+64 143 64
+65 143 64
+66 143 64
+67 143 64
+68 143 64
+69 143 64
+70 143 64
+71 143 64
+72 143 64
+73 143 64
+74 143 64
+75 143 64
+76 143 64
+77 143 64
+78 143 64
+79 143 64
+80 143 64
+81 143 64
+82 143 64
+83 143 64
+84 143 64
+85 143 64
+86 143 64
+87 143 64
+88 143 64
+89 143 64
+90 143 64
+91 143 64
+92 143 64
+93 143 64
+94 143 64
+95 143 64
+96 143 64
+97 143 64
+98 143 64
+99 143 64
+100 143 64
+101 143 64
+102 143 64
+103 143 64
+104 143 64
+105 143 64
+106 143 64
+107 143 64
+108 143 64
+109 143 64
+110 143 64
+111 143 64
+112 143 64
+113 143 64
+114 143 64
+115 143 64
+116 143 64
+117 143 64
+118 143 64
+119 143 64
+120 143 64
+121 143 64
+122 143 64
+123 143 64
+124 143 64
+125 143 64
+126 143 64
+127 143 64
+128 143 64
+129 143 64
+130 143 64
+131 143 64
+132 143 64
+133 143 64
+134 143 64
+135 143 64
+136 143 64
+137 143 64
+138 143 64
+139 143 64
+140 143 64
+141 143 64
+142 143 64
+143 143 64
+144 143 64
+145 143 64
+146 143 64
+147 143 64
+148 143 64
+149 143 64
+150 143 64
+151 143 64
+152 143 64
+153 143 64
+154 143 64
+155 143 64
+156 143 64
+157 143 64
+158 143 64
+159 143 64
+160 143 64
+161 143 64
+162 143 64
+163 143 64
+164 143 64
+165 143 64
+166 143 64
+167 143 64
+168 143 64
+169 143 64
+170 143 64
+171 143 64
+172 143 64
+173 143 64
+174 143 64
+175 143 64
+176 143 64
+177 143 64
+178 143 64
+179 143 64
+180 143 64
+181 143 64
+182 143 64
+183 143 64
+184 143 64
+185 143 64
+186 143 64
+187 143 64
+188 143 64
+189 143 64
+190 143 64
+191 143 64
+192 143 64
+193 143 64
+194 143 64
+195 143 64
+196 143 64
+197 143 64
+198 143 64
+199 143 64
+200 143 64
+201 143 64
+202 143 64
+203 143 64
+204 143 64
+205 143 64
+206 143 64
+207 143 64
+208 143 64
+209 143 64
+210 143 64
+211 143 64
+212 143 64
+213 143 64
+214 143 64
+215 143 64
+216 143 64
+217 143 64
+218 143 64
+219 143 64
+220 143 64
+221 143 64
+222 143 64
+223 143 64
+224 143 64
+225 143 64
+226 143 64
+227 143 64
+228 143 64
+229 143 64
+230 143 64
+231 143 64
+232 143 64
+233 143 64
+234 143 64
+235 143 64
+236 143 64
+237 143 64
+238 143 64
+239 143 64
+240 143 64
+241 143 64
+242 143 64
+243 143 64
+244 143 64
+245 143 64
+246 143 64
+247 143 64
+248 143 64
+249 143 64
+250 143 64
+251 143 64
+252 143 64
+253 143 64
+254 143 64
+255 143 64
+0 142 64
+1 142 64
+2 142 64
+3 142 64
+4 142 64
+5 142 64
+6 142 64
+7 142 64
+8 142 64
+9 142 64
+10 142 64
+11 142 64
+12 142 64
+13 142 64
+14 142 64
+15 142 64
+16 142 64
+17 142 64
+18 142 64
+19 142 64
+20 142 64
+21 142 64
+22 142 64
+23 142 64
+24 142 64
+25 142 64
+26 142 64
+27 142 64
+28 142 64
+29 142 64
+30 142 64
+31 142 64
+32 142 64
+33 142 64
+34 142 64
+35 142 64
+36 142 64
+37 142 64
+38 142 64
+39 142 64
+40 142 64
+41 142 64
+42 142 64
+43 142 64
+44 142 64
+45 142 64
+46 142 64
+47 142 64
+48 142 64
+49 142 64
+50 142 64
+51 142 64
+52 142 64
+53 142 64
+54 142 64
+55 142 64
+56 142 64
+57 142 64
+58 142 64
+59 142 64
+60 142 64
+61 142 64
+62 142 64
+63 142 64
+64 142 64
+65 142 64
+66 142 64
+67 142 64
+68 142 64
+69 142 64
+70 142 64
+71 142 64
+72 142 64
+73 142 64
+74 142 64
+75 142 64
+76 142 64
+77 142 64
+78 142 64
+79 142 64
+80 142 64
+81 142 64
+82 142 64
+83 142 64
+84 142 64
+85 142 64
+86 142 64
+87 142 64
+88 142 64
+89 142 64
+90 142 64
+91 142 64
+92 142 64
+93 142 64
+94 142 64
+95 142 64
+96 142 64
+97 142 64
+98 142 64
+99 142 64
+100 142 64
+101 142 64
+102 142 64
+103 142 64
+104 142 64
+105 142 64
+106 142 64
+107 142 64
+108 142 64
+109 142 64
+110 142 64
+111 142 64
+112 142 64
+113 142 64
+114 142 64
+115 142 64
+116 142 64
+117 142 64
+118 142 64
+119 142 64
+120 142 64
+121 142 64
+122 142 64
+123 142 64
+124 142 64
+125 142 64
+126 142 64
+127 142 64
+128 142 64
+129 142 64
+130 142 64
+131 142 64
+132 142 64
+133 142 64
+134 142 64
+135 142 64
+136 142 64
+137 142 64
+138 142 64
+139 142 64
+140 142 64
+141 142 64
+142 142 64
+143 142 64
+144 142 64
+145 142 64
+146 142 64
+147 142 64
+148 142 64
+149 142 64
+150 142 64
+151 142 64
+152 142 64
+153 142 64
+154 142 64
+155 142 64
+156 142 64
+157 142 64
+158 142 64
+159 142 64
+160 142 64
+161 142 64
+162 142 64
+163 142 64
+164 142 64
+165 142 64
+166 142 64
+167 142 64
+168 142 64
+169 142 64
+170 142 64
+171 142 64
+172 142 64
+173 142 64
+174 142 64
+175 142 64
+176 142 64
+177 142 64
+178 142 64
+179 142 64
+180 142 64
+181 142 64
+182 142 64
+183 142 64
+184 142 64
+185 142 64
+186 142 64
+187 142 64
+188 142 64
+189 142 64
+190 142 64
+191 142 64
+192 142 64
+193 142 64
+194 142 64
+195 142 64
+196 142 64
+197 142 64
+198 142 64
+199 142 64
+200 142 64
+201 142 64
+202 142 64
+203 142 64
+204 142 64
+205 142 64
+206 142 64
+207 142 64
+208 142 64
+209 142 64
+210 142 64
+211 142 64
+212 142 64
+213 142 64
+214 142 64
+215 142 64
+216 142 64
+217 142 64
+218 142 64
+219 142 64
+220 142 64
+221 142 64
+222 142 64
+223 142 64
+224 142 64
+225 142 64
+226 142 64
+227 142 64
+228 142 64
+229 142 64
+230 142 64
+231 142 64
+232 142 64
+233 142 64
+234 142 64
+235 142 64
+236 142 64
+237 142 64
+238 142 64
+239 142 64
+240 142 64
+241 142 64
+242 142 64
+243 142 64
+244 142 64
+245 142 64
+246 142 64
+247 142 64
+248 142 64
+249 142 64
+250 142 64
+251 142 64
+252 142 64
+253 142 64
+254 142 64
+255 142 64
+0 141 64
+1 141 64
+2 141 64
+3 141 64
+4 141 64
+5 141 64
+6 141 64
+7 141 64
+8 141 64
+9 141 64
+10 141 64
+11 141 64
+12 141 64
+13 141 64
+14 141 64
+15 141 64
+16 141 64
+17 141 64
+18 141 64
+19 141 64
+20 141 64
+21 141 64
+22 141 64
+23 141 64
+24 141 64
+25 141 64
+26 141 64
+27 141 64
+28 141 64
+29 141 64
+30 141 64
+31 141 64
+32 141 64
+33 141 64
+34 141 64
+35 141 64
+36 141 64
+37 141 64
+38 141 64
+39 141 64
+40 141 64
+41 141 64
+42 141 64
+43 141 64
+44 141 64
+45 141 64
+46 141 64
+47 141 64
+48 141 64
+49 141 64
+50 141 64
+51 141 64
+52 141 64
+53 141 64
+54 141 64
+55 141 64
+56 141 64
+57 141 64
+58 141 64
+59 141 64
+60 141 64
+61 141 64
+62 141 64
+63 141 64
+64 141 64
+65 141 64
+66 141 64
+67 141 64
+68 141 64
+69 141 64
+70 141 64
+71 141 64
+72 141 64
+73 141 64
+74 141 64
+75 141 64
+76 141 64
+77 141 64
+78 141 64
+79 141 64
+80 141 64
+81 141 64
+82 141 64
+83 141 64
+84 141 64
+85 141 64
+86 141 64
+87 141 64
+88 141 64
+89 141 64
+90 141 64
+91 141 64
+92 141 64
+93 141 64
+94 141 64
+95 141 64
+96 141 64
+97 141 64
+98 141 64
+99 141 64
+100 141 64
+101 141 64
+102 141 64
+103 141 64
+104 141 64
+105 141 64
+106 141 64
+107 141 64
+108 141 64
+109 141 64
+110 141 64
+111 141 64
+112 141 64
+113 141 64
+114 141 64
+115 141 64
+116 141 64
+117 141 64
+118 141 64
+119 141 64
+120 141 64
+121 141 64
+122 141 64
+123 141 64
+124 141 64
+125 141 64
+126 141 64
+127 141 64
+128 141 64
+129 141 64
+130 141 64
+131 141 64
+132 141 64
+133 141 64
+134 141 64
+135 141 64
+136 141 64
+137 141 64
+138 141 64
+139 141 64
+140 141 64
+141 141 64
+142 141 64
+143 141 64
+144 141 64
+145 141 64
+146 141 64
+147 141 64
+148 141 64
+149 141 64
+150 141 64
+151 141 64
+152 141 64
+153 141 64
+154 141 64
+155 141 64
+156 141 64
+157 141 64
+158 141 64
+159 141 64
+160 141 64
+161 141 64
+162 141 64
+163 141 64
+164 141 64
+165 141 64
+166 141 64
+167 141 64
+168 141 64
+169 141 64
+170 141 64
+171 141 64
+172 141 64
+173 141 64
+174 141 64
+175 141 64
+176 141 64
+177 141 64
+178 141 64
+179 141 64
+180 141 64
+181 141 64
+182 141 64
+183 141 64
+184 141 64
+185 141 64
+186 141 64
+187 141 64
+188 141 64
+189 141 64
+190 141 64
+191 141 64
+192 141 64
+193 141 64
+194 141 64
+195 141 64
+196 141 64
+197 141 64
+198 141 64
+199 141 64
+200 141 64
+201 141 64
+202 141 64
+203 141 64
+204 141 64
+205 141 64
+206 141 64
+207 141 64
+208 141 64
+209 141 64
+210 141 64
+211 141 64
+212 141 64
+213 141 64
+214 141 64
+215 141 64
+216 141 64
+217 141 64
+218 141 64
+219 141 64
+220 141 64
+221 141 64
+222 141 64
+223 141 64
+224 141 64
+225 141 64
+226 141 64
+227 141 64
+228 141 64
+229 141 64
+230 141 64
+231 141 64
+232 141 64
+233 141 64
+234 141 64
+235 141 64
+236 141 64
+237 141 64
+238 141 64
+239 141 64
+240 141 64
+241 141 64
+242 141 64
+243 141 64
+244 141 64
+245 141 64
+246 141 64
+247 141 64
+248 141 64
+249 141 64
+250 141 64
+251 141 64
+252 141 64
+253 141 64
+254 141 64
+255 141 64
+0 140 64
+1 140 64
+2 140 64
+3 140 64
+4 140 64
+5 140 64
+6 140 64
+7 140 64
+8 140 64
+9 140 64
+10 140 64
+11 140 64
+12 140 64
+13 140 64
+14 140 64
+15 140 64
+16 140 64
+17 140 64
+18 140 64
+19 140 64
+20 140 64
+21 140 64
+22 140 64
+23 140 64
+24 140 64
+25 140 64
+26 140 64
+27 140 64
+28 140 64
+29 140 64
+30 140 64
+31 140 64
+32 140 64
+33 140 64
+34 140 64
+35 140 64
+36 140 64
+37 140 64
+38 140 64
+39 140 64
+40 140 64
+41 140 64
+42 140 64
+43 140 64
+44 140 64
+45 140 64
+46 140 64
+47 140 64
+48 140 64
+49 140 64
+50 140 64
+51 140 64
+52 140 64
+53 140 64
+54 140 64
+55 140 64
+56 140 64
+57 140 64
+58 140 64
+59 140 64
+60 140 64
+61 140 64
+62 140 64
+63 140 64
+64 140 64
+65 140 64
+66 140 64
+67 140 64
+68 140 64
+69 140 64
+70 140 64
+71 140 64
+72 140 64
+73 140 64
+74 140 64
+75 140 64
+76 140 64
+77 140 64
+78 140 64
+79 140 64
+80 140 64
+81 140 64
+82 140 64
+83 140 64
+84 140 64
+85 140 64
+86 140 64
+87 140 64
+88 140 64
+89 140 64
+90 140 64
+91 140 64
+92 140 64
+93 140 64
+94 140 64
+95 140 64
+96 140 64
+97 140 64
+98 140 64
+99 140 64
+100 140 64
+101 140 64
+102 140 64
+103 140 64
+104 140 64
+105 140 64
+106 140 64
+107 140 64
+108 140 64
+109 140 64
+110 140 64
+111 140 64
+112 140 64
+113 140 64
+114 140 64
+115 140 64
+116 140 64
+117 140 64
+118 140 64
+119 140 64
+120 140 64
+121 140 64
+122 140 64
+123 140 64
+124 140 64
+125 140 64
+126 140 64
+127 140 64
+128 140 64
+129 140 64
+130 140 64
+131 140 64
+132 140 64
+133 140 64
+134 140 64
+135 140 64
+136 140 64
+137 140 64
+138 140 64
+139 140 64
+140 140 64
+141 140 64
+142 140 64
+143 140 64
+144 140 64
+145 140 64
+146 140 64
+147 140 64
+148 140 64
+149 140 64
+150 140 64
+151 140 64
+152 140 64
+153 140 64
+154 140 64
+155 140 64
+156 140 64
+157 140 64
+158 140 64
+159 140 64
+160 140 64
+161 140 64
+162 140 64
+163 140 64
+164 140 64
+165 140 64
+166 140 64
+167 140 64
+168 140 64
+169 140 64
+170 140 64
+171 140 64
+172 140 64
+173 140 64
+174 140 64
+175 140 64
+176 140 64
+177 140 64
+178 140 64
+179 140 64
+180 140 64
+181 140 64
+182 140 64
+183 140 64
+184 140 64
+185 140 64
+186 140 64
+187 140 64
+188 140 64
+189 140 64
+190 140 64
+191 140 64
+192 140 64
+193 140 64
+194 140 64
+195 140 64
+196 140 64
+197 140 64
+198 140 64
+199 140 64
+200 140 64
+201 140 64
+202 140 64
+203 140 64
+204 140 64
+205 140 64
+206 140 64
+207 140 64
+208 140 64
+209 140 64
+210 140 64
+211 140 64
+212 140 64
+213 140 64
+214 140 64
+215 140 64
+216 140 64
+217 140 64
+218 140 64
+219 140 64
+220 140 64
+221 140 64
+222 140 64
+223 140 64
+224 140 64
+225 140 64
+226 140 64
+227 140 64
+228 140 64
+229 140 64
+230 140 64
+231 140 64
+232 140 64
+233 140 64
+234 140 64
+235 140 64
+236 140 64
+237 140 64
+238 140 64
+239 140 64
+240 140 64
+241 140 64
+242 140 64
+243 140 64
+244 140 64
+245 140 64
+246 140 64
+247 140 64
+248 140 64
+249 140 64
+250 140 64
+251 140 64
+252 140 64
+253 140 64
+254 140 64
+255 140 64
+0 139 64
+1 139 64
+2 139 64
+3 139 64
+4 139 64
+5 139 64
+6 139 64
+7 139 64
+8 139 64
+9 139 64
+10 139 64
+11 139 64
+12 139 64
+13 139 64
+14 139 64
+15 139 64
+16 139 64
+17 139 64
+18 139 64
+19 139 64
+20 139 64
+21 139 64
+22 139 64
+23 139 64
+24 139 64
+25 139 64
+26 139 64
+27 139 64
+28 139 64
+29 139 64
+30 139 64
+31 139 64
+32 139 64
+33 139 64
+34 139 64
+35 139 64
+36 139 64
+37 139 64
+38 139 64
+39 139 64
+40 139 64
+41 139 64
+42 139 64
+43 139 64
+44 139 64
+45 139 64
+46 139 64
+47 139 64
+48 139 64
+49 139 64
+50 139 64
+51 139 64
+52 139 64
+53 139 64
+54 139 64
+55 139 64
+56 139 64
+57 139 64
+58 139 64
+59 139 64
+60 139 64
+61 139 64
+62 139 64
+63 139 64
+64 139 64
+65 139 64
+66 139 64
+67 139 64
+68 139 64
+69 139 64
+70 139 64
+71 139 64
+72 139 64
+73 139 64
+74 139 64
+75 139 64
+76 139 64
+77 139 64
+78 139 64
+79 139 64
+80 139 64
+81 139 64
+82 139 64
+83 139 64
+84 139 64
+85 139 64
+86 139 64
+87 139 64
+88 139 64
+89 139 64
+90 139 64
+91 139 64
+92 139 64
+93 139 64
+94 139 64
+95 139 64
+96 139 64
+97 139 64
+98 139 64
+99 139 64
+100 139 64
+101 139 64
+102 139 64
+103 139 64
+104 139 64
+105 139 64
+106 139 64
+107 139 64
+108 139 64
+109 139 64
+110 139 64
+111 139 64
+112 139 64
+113 139 64
+114 139 64
+115 139 64
+116 139 64
+117 139 64
+118 139 64
+119 139 64
+120 139 64
+121 139 64
+122 139 64
+123 139 64
+124 139 64
+125 139 64
+126 139 64
+127 139 64
+128 139 64
+129 139 64
+130 139 64
+131 139 64
+132 139 64
+133 139 64
+134 139 64
+135 139 64
+136 139 64
+137 139 64
+138 139 64
+139 139 64
+140 139 64
+141 139 64
+142 139 64
+143 139 64
+144 139 64
+145 139 64
+146 139 64
+147 139 64
+148 139 64
+149 139 64
+150 139 64
+151 139 64
+152 139 64
+153 139 64
+154 139 64
+155 139 64
+156 139 64
+157 139 64
+158 139 64
+159 139 64
+160 139 64
+161 139 64
+162 139 64
+163 139 64
+164 139 64
+165 139 64
+166 139 64
+167 139 64
+168 139 64
+169 139 64
+170 139 64
+171 139 64
+172 139 64
+173 139 64
+174 139 64
+175 139 64
+176 139 64
+177 139 64
+178 139 64
+179 139 64
+180 139 64
+181 139 64
+182 139 64
+183 139 64
+184 139 64
+185 139 64
+186 139 64
+187 139 64
+188 139 64
+189 139 64
+190 139 64
+191 139 64
+192 139 64
+193 139 64
+194 139 64
+195 139 64
+196 139 64
+197 139 64
+198 139 64
+199 139 64
+200 139 64
+201 139 64
+202 139 64
+203 139 64
+204 139 64
+205 139 64
+206 139 64
+207 139 64
+208 139 64
+209 139 64
+210 139 64
+211 139 64
+212 139 64
+213 139 64
+214 139 64
+215 139 64
+216 139 64
+217 139 64
+218 139 64
+219 139 64
+220 139 64
+221 139 64
+222 139 64
+223 139 64
+224 139 64
+225 139 64
+226 139 64
+227 139 64
+228 139 64
+229 139 64
+230 139 64
+231 139 64
+232 139 64
+233 139 64
+234 139 64
+235 139 64
+236 139 64
+237 139 64
+238 139 64
+239 139 64
+240 139 64
+241 139 64
+242 139 64
+243 139 64
+244 139 64
+245 139 64
+246 139 64
+247 139 64
+248 139 64
+249 139 64
+250 139 64
+251 139 64
+252 139 64
+253 139 64
+254 139 64
+255 139 64
+0 138 64
+1 138 64
+2 138 64
+3 138 64
+4 138 64
+5 138 64
+6 138 64
+7 138 64
+8 138 64
+9 138 64
+10 138 64
+11 138 64
+12 138 64
+13 138 64
+14 138 64
+15 138 64
+16 138 64
+17 138 64
+18 138 64
+19 138 64
+20 138 64
+21 138 64
+22 138 64
+23 138 64
+24 138 64
+25 138 64
+26 138 64
+27 138 64
+28 138 64
+29 138 64
+30 138 64
+31 138 64
+32 138 64
+33 138 64
+34 138 64
+35 138 64
+36 138 64
+37 138 64
+38 138 64
+39 138 64
+40 138 64
+41 138 64
+42 138 64
+43 138 64
+44 138 64
+45 138 64
+46 138 64
+47 138 64
+48 138 64
+49 138 64
+50 138 64
+51 138 64
+52 138 64
+53 138 64
+54 138 64
+55 138 64
+56 138 64
+57 138 64
+58 138 64
+59 138 64
+60 138 64
+61 138 64
+62 138 64
+63 138 64
+64 138 64
+65 138 64
+66 138 64
+67 138 64
+68 138 64
+69 138 64
+70 138 64
+71 138 64
+72 138 64
+73 138 64
+74 138 64
+75 138 64
+76 138 64
+77 138 64
+78 138 64
+79 138 64
+80 138 64
+81 138 64
+82 138 64
+83 138 64
+84 138 64
+85 138 64
+86 138 64
+87 138 64
+88 138 64
+89 138 64
+90 138 64
+91 138 64
+92 138 64
+93 138 64
+94 138 64
+95 138 64
+96 138 64
+97 138 64
+98 138 64
+99 138 64
+100 138 64
+101 138 64
+102 138 64
+103 138 64
+104 138 64
+105 138 64
+106 138 64
+107 138 64
+108 138 64
+109 138 64
+110 138 64
+111 138 64
+112 138 64
+113 138 64
+114 138 64
+115 138 64
+116 138 64
+117 138 64
+118 138 64
+119 138 64
+120 138 64
+121 138 64
+122 138 64
+123 138 64
+124 138 64
+125 138 64
+126 138 64
+127 138 64
+128 138 64
+129 138 64
+130 138 64
+131 138 64
+132 138 64
+133 138 64
+134 138 64
+135 138 64
+136 138 64
+137 138 64
+138 138 64
+139 138 64
+140 138 64
+141 138 64
+142 138 64
+143 138 64
+144 138 64
+145 138 64
+146 138 64
+147 138 64
+148 138 64
+149 138 64
+150 138 64
+151 138 64
+152 138 64
+153 138 64
+154 138 64
+155 138 64
+156 138 64
+157 138 64
+158 138 64
+159 138 64
+160 138 64
+161 138 64
+162 138 64
+163 138 64
+164 138 64
+165 138 64
+166 138 64
+167 138 64
+168 138 64
+169 138 64
+170 138 64
+171 138 64
+172 138 64
+173 138 64
+174 138 64
+175 138 64
+176 138 64
+177 138 64
+178 138 64
+179 138 64
+180 138 64
+181 138 64
+182 138 64
+183 138 64
+184 138 64
+185 138 64
+186 138 64
+187 138 64
+188 138 64
+189 138 64
+190 138 64
+191 138 64
+192 138 64
+193 138 64
+194 138 64
+195 138 64
+196 138 64
+197 138 64
+198 138 64
+199 138 64
+200 138 64
+201 138 64
+202 138 64
+203 138 64
+204 138 64
+205 138 64
+206 138 64
+207 138 64
+208 138 64
+209 138 64
+210 138 64
+211 138 64
+212 138 64
+213 138 64
+214 138 64
+215 138 64
+216 138 64
+217 138 64
+218 138 64
+219 138 64
+220 138 64
+221 138 64
+222 138 64
+223 138 64
+224 138 64
+225 138 64
+226 138 64
+227 138 64
+228 138 64
+229 138 64
+230 138 64
+231 138 64
+232 138 64
+233 138 64
+234 138 64
+235 138 64
+236 138 64
+237 138 64
+238 138 64
+239 138 64
+240 138 64
+241 138 64
+242 138 64
+243 138 64
+244 138 64
+245 138 64
+246 138 64
+247 138 64
+248 138 64
+249 138 64
+250 138 64
+251 138 64
+252 138 64
+253 138 64
+254 138 64
+255 138 64
+0 137 64
+1 137 64
+2 137 64
+3 137 64
+4 137 64
+5 137 64
+6 137 64
+7 137 64
+8 137 64
+9 137 64
+10 137 64
+11 137 64
+12 137 64
+13 137 64
+14 137 64
+15 137 64
+16 137 64
+17 137 64
+18 137 64
+19 137 64
+20 137 64
+21 137 64
+22 137 64
+23 137 64
+24 137 64
+25 137 64
+26 137 64
+27 137 64
+28 137 64
+29 137 64
+30 137 64
+31 137 64
+32 137 64
+33 137 64
+34 137 64
+35 137 64
+36 137 64
+37 137 64
+38 137 64
+39 137 64
+40 137 64
+41 137 64
+42 137 64
+43 137 64
+44 137 64
+45 137 64
+46 137 64
+47 137 64
+48 137 64
+49 137 64
+50 137 64
+51 137 64
+52 137 64
+53 137 64
+54 137 64
+55 137 64
+56 137 64
+57 137 64
+58 137 64
+59 137 64
+60 137 64
+61 137 64
+62 137 64
+63 137 64
+64 137 64
+65 137 64
+66 137 64
+67 137 64
+68 137 64
+69 137 64
+70 137 64
+71 137 64
+72 137 64
+73 137 64
+74 137 64
+75 137 64
+76 137 64
+77 137 64
+78 137 64
+79 137 64
+80 137 64
+81 137 64
+82 137 64
+83 137 64
+84 137 64
+85 137 64
+86 137 64
+87 137 64
+88 137 64
+89 137 64
+90 137 64
+91 137 64
+92 137 64
+93 137 64
+94 137 64
+95 137 64
+96 137 64
+97 137 64
+98 137 64
+99 137 64
+100 137 64
+101 137 64
+102 137 64
+103 137 64
+104 137 64
+105 137 64
+106 137 64
+107 137 64
+108 137 64
+109 137 64
+110 137 64
+111 137 64
+112 137 64
+113 137 64
+114 137 64
+115 137 64
+116 137 64
+117 137 64
+118 137 64
+119 137 64
+120 137 64
+121 137 64
+122 137 64
+123 137 64
+124 137 64
+125 137 64
+126 137 64
+127 137 64
+128 137 64
+129 137 64
+130 137 64
+131 137 64
+132 137 64
+133 137 64
+134 137 64
+135 137 64
+136 137 64
+137 137 64
+138 137 64
+139 137 64
+140 137 64
+141 137 64
+142 137 64
+143 137 64
+144 137 64
+145 137 64
+146 137 64
+147 137 64
+148 137 64
+149 137 64
+150 137 64
+151 137 64
+152 137 64
+153 137 64
+154 137 64
+155 137 64
+156 137 64
+157 137 64
+158 137 64
+159 137 64
+160 137 64
+161 137 64
+162 137 64
+163 137 64
+164 137 64
+165 137 64
+166 137 64
+167 137 64
+168 137 64
+169 137 64
+170 137 64
+171 137 64
+172 137 64
+173 137 64
+174 137 64
+175 137 64
+176 137 64
+177 137 64
+178 137 64
+179 137 64
+180 137 64
+181 137 64
+182 137 64
+183 137 64
+184 137 64
+185 137 64
+186 137 64
+187 137 64
+188 137 64
+189 137 64
+190 137 64
+191 137 64
+192 137 64
+193 137 64
+194 137 64
+195 137 64
+196 137 64
+197 137 64
+198 137 64
+199 137 64
+200 137 64
+201 137 64
+202 137 64
+203 137 64
+204 137 64
+205 137 64
+206 137 64
+207 137 64
+208 137 64
+209 137 64
+210 137 64
+211 137 64
+212 137 64
+213 137 64
+214 137 64
+215 137 64
+216 137 64
+217 137 64
+218 137 64
+219 137 64
+220 137 64
+221 137 64
+222 137 64
+223 137 64
+224 137 64
+225 137 64
+226 137 64
+227 137 64
+228 137 64
+229 137 64
+230 137 64
+231 137 64
+232 137 64
+233 137 64
+234 137 64
+235 137 64
+236 137 64
+237 137 64
+238 137 64
+239 137 64
+240 137 64
+241 137 64
+242 137 64
+243 137 64
+244 137 64
+245 137 64
+246 137 64
+247 137 64
+248 137 64
+249 137 64
+250 137 64
+251 137 64
+252 137 64
+253 137 64
+254 137 64
+255 137 64
+0 136 64
+1 136 64
+2 136 64
+3 136 64
+4 136 64
+5 136 64
+6 136 64
+7 136 64
+8 136 64
+9 136 64
+10 136 64
+11 136 64
+12 136 64
+13 136 64
+14 136 64
+15 136 64
+16 136 64
+17 136 64
+18 136 64
+19 136 64
+20 136 64
+21 136 64
+22 136 64
+23 136 64
+24 136 64
+25 136 64
+26 136 64
+27 136 64
+28 136 64
+29 136 64
+30 136 64
+31 136 64
+32 136 64
+33 136 64
+34 136 64
+35 136 64
+36 136 64
+37 136 64
+38 136 64
+39 136 64
+40 136 64
+41 136 64
+42 136 64
+43 136 64
+44 136 64
+45 136 64
+46 136 64
+47 136 64
+48 136 64
+49 136 64
+50 136 64
+51 136 64
+52 136 64
+53 136 64
+54 136 64
+55 136 64
+56 136 64
+57 136 64
+58 136 64
+59 136 64
+60 136 64
+61 136 64
+62 136 64
+63 136 64
+64 136 64
+65 136 64
+66 136 64
+67 136 64
+68 136 64
+69 136 64
+70 136 64
+71 136 64
+72 136 64
+73 136 64
+74 136 64
+75 136 64
+76 136 64
+77 136 64
+78 136 64
+79 136 64
+80 136 64
+81 136 64
+82 136 64
+83 136 64
+84 136 64
+85 136 64
+86 136 64
+87 136 64
+88 136 64
+89 136 64
+90 136 64
+91 136 64
+92 136 64
+93 136 64
+94 136 64
+95 136 64
+96 136 64
+97 136 64
+98 136 64
+99 136 64
+100 136 64
+101 136 64
+102 136 64
+103 136 64
+104 136 64
+105 136 64
+106 136 64
+107 136 64
+108 136 64
+109 136 64
+110 136 64
+111 136 64
+112 136 64
+113 136 64
+114 136 64
+115 136 64
+116 136 64
+117 136 64
+118 136 64
+119 136 64
+120 136 64
+121 136 64
+122 136 64
+123 136 64
+124 136 64
+125 136 64
+126 136 64
+127 136 64
+128 136 64
+129 136 64
+130 136 64
+131 136 64
+132 136 64
+133 136 64
+134 136 64
+135 136 64
+136 136 64
+137 136 64
+138 136 64
+139 136 64
+140 136 64
+141 136 64
+142 136 64
+143 136 64
+144 136 64
+145 136 64
+146 136 64
+147 136 64
+148 136 64
+149 136 64
+150 136 64
+151 136 64
+152 136 64
+153 136 64
+154 136 64
+155 136 64
+156 136 64
+157 136 64
+158 136 64
+159 136 64
+160 136 64
+161 136 64
+162 136 64
+163 136 64
+164 136 64
+165 136 64
+166 136 64
+167 136 64
+168 136 64
+169 136 64
+170 136 64
+171 136 64
+172 136 64
+173 136 64
+174 136 64
+175 136 64
+176 136 64
+177 136 64
+178 136 64
+179 136 64
+180 136 64
+181 136 64
+182 136 64
+183 136 64
+184 136 64
+185 136 64
+186 136 64
+187 136 64
+188 136 64
+189 136 64
+190 136 64
+191 136 64
+192 136 64
+193 136 64
+194 136 64
+195 136 64
+196 136 64
+197 136 64
+198 136 64
+199 136 64
+200 136 64
+201 136 64
+202 136 64
+203 136 64
+204 136 64
+205 136 64
+206 136 64
+207 136 64
+208 136 64
+209 136 64
+210 136 64
+211 136 64
+212 136 64
+213 136 64
+214 136 64
+215 136 64
+216 136 64
+217 136 64
+218 136 64
+219 136 64
+220 136 64
+221 136 64
+222 136 64
+223 136 64
+224 136 64
+225 136 64
+226 136 64
+227 136 64
+228 136 64
+229 136 64
+230 136 64
+231 136 64
+232 136 64
+233 136 64
+234 136 64
+235 136 64
+236 136 64
+237 136 64
+238 136 64
+239 136 64
+240 136 64
+241 136 64
+242 136 64
+243 136 64
+244 136 64
+245 136 64
+246 136 64
+247 136 64
+248 136 64
+249 136 64
+250 136 64
+251 136 64
+252 136 64
+253 136 64
+254 136 64
+255 136 64
+0 135 64
+1 135 64
+2 135 64
+3 135 64
+4 135 64
+5 135 64
+6 135 64
+7 135 64
+8 135 64
+9 135 64
+10 135 64
+11 135 64
+12 135 64
+13 135 64
+14 135 64
+15 135 64
+16 135 64
+17 135 64
+18 135 64
+19 135 64
+20 135 64
+21 135 64
+22 135 64
+23 135 64
+24 135 64
+25 135 64
+26 135 64
+27 135 64
+28 135 64
+29 135 64
+30 135 64
+31 135 64
+32 135 64
+33 135 64
+34 135 64
+35 135 64
+36 135 64
+37 135 64
+38 135 64
+39 135 64
+40 135 64
+41 135 64
+42 135 64
+43 135 64
+44 135 64
+45 135 64
+46 135 64
+47 135 64
+48 135 64
+49 135 64
+50 135 64
+51 135 64
+52 135 64
+53 135 64
+54 135 64
+55 135 64
+56 135 64
+57 135 64
+58 135 64
+59 135 64
+60 135 64
+61 135 64
+62 135 64
+63 135 64
+64 135 64
+65 135 64
+66 135 64
+67 135 64
+68 135 64
+69 135 64
+70 135 64
+71 135 64
+72 135 64
+73 135 64
+74 135 64
+75 135 64
+76 135 64
+77 135 64
+78 135 64
+79 135 64
+80 135 64
+81 135 64
+82 135 64
+83 135 64
+84 135 64
+85 135 64
+86 135 64
+87 135 64
+88 135 64
+89 135 64
+90 135 64
+91 135 64
+92 135 64
+93 135 64
+94 135 64
+95 135 64
+96 135 64
+97 135 64
+98 135 64
+99 135 64
+100 135 64
+101 135 64
+102 135 64
+103 135 64
+104 135 64
+105 135 64
+106 135 64
+107 135 64
+108 135 64
+109 135 64
+110 135 64
+111 135 64
+112 135 64
+113 135 64
+114 135 64
+115 135 64
+116 135 64
+117 135 64
+118 135 64
+119 135 64
+120 135 64
+121 135 64
+122 135 64
+123 135 64
+124 135 64
+125 135 64
+126 135 64
+127 135 64
+128 135 64
+129 135 64
+130 135 64
+131 135 64
+132 135 64
+133 135 64
+134 135 64
+135 135 64
+136 135 64
+137 135 64
+138 135 64
+139 135 64
+140 135 64
+141 135 64
+142 135 64
+143 135 64
+144 135 64
+145 135 64
+146 135 64
+147 135 64
+148 135 64
+149 135 64
+150 135 64
+151 135 64
+152 135 64
+153 135 64
+154 135 64
+155 135 64
+156 135 64
+157 135 64
+158 135 64
+159 135 64
+160 135 64
+161 135 64
+162 135 64
+163 135 64
+164 135 64
+165 135 64
+166 135 64
+167 135 64
+168 135 64
+169 135 64
+170 135 64
+171 135 64
+172 135 64
+173 135 64
+174 135 64
+175 135 64
+176 135 64
+177 135 64
+178 135 64
+179 135 64
+180 135 64
+181 135 64
+182 135 64
+183 135 64
+184 135 64
+185 135 64
+186 135 64
+187 135 64
+188 135 64
+189 135 64
+190 135 64
+191 135 64
+192 135 64
+193 135 64
+194 135 64
+195 135 64
+196 135 64
+197 135 64
+198 135 64
+199 135 64
+200 135 64
+201 135 64
+202 135 64
+203 135 64
+204 135 64
+205 135 64
+206 135 64
+207 135 64
+208 135 64
+209 135 64
+210 135 64
+211 135 64
+212 135 64
+213 135 64
+214 135 64
+215 135 64
+216 135 64
+217 135 64
+218 135 64
+219 135 64
+220 135 64
+221 135 64
+222 135 64
+223 135 64
+224 135 64
+225 135 64
+226 135 64
+227 135 64
+228 135 64
+229 135 64
+230 135 64
+231 135 64
+232 135 64
+233 135 64
+234 135 64
+235 135 64
+236 135 64
+237 135 64
+238 135 64
+239 135 64
+240 135 64
+241 135 64
+242 135 64
+243 135 64
+244 135 64
+245 135 64
+246 135 64
+247 135 64
+248 135 64
+249 135 64
+250 135 64
+251 135 64
+252 135 64
+253 135 64
+254 135 64
+255 135 64
+0 134 64
+1 134 64
+2 134 64
+3 134 64
+4 134 64
+5 134 64
+6 134 64
+7 134 64
+8 134 64
+9 134 64
+10 134 64
+11 134 64
+12 134 64
+13 134 64
+14 134 64
+15 134 64
+16 134 64
+17 134 64
+18 134 64
+19 134 64
+20 134 64
+21 134 64
+22 134 64
+23 134 64
+24 134 64
+25 134 64
+26 134 64
+27 134 64
+28 134 64
+29 134 64
+30 134 64
+31 134 64
+32 134 64
+33 134 64
+34 134 64
+35 134 64
+36 134 64
+37 134 64
+38 134 64
+39 134 64
+40 134 64
+41 134 64
+42 134 64
+43 134 64
+44 134 64
+45 134 64
+46 134 64
+47 134 64
+48 134 64
+49 134 64
+50 134 64
+51 134 64
+52 134 64
+53 134 64
+54 134 64
+55 134 64
+56 134 64
+57 134 64
+58 134 64
+59 134 64
+60 134 64
+61 134 64
+62 134 64
+63 134 64
+64 134 64
+65 134 64
+66 134 64
+67 134 64
+68 134 64
+69 134 64
+70 134 64
+71 134 64
+72 134 64
+73 134 64
+74 134 64
+75 134 64
+76 134 64
+77 134 64
+78 134 64
+79 134 64
+80 134 64
+81 134 64
+82 134 64
+83 134 64
+84 134 64
+85 134 64
+86 134 64
+87 134 64
+88 134 64
+89 134 64
+90 134 64
+91 134 64
+92 134 64
+93 134 64
+94 134 64
+95 134 64
+96 134 64
+97 134 64
+98 134 64
+99 134 64
+100 134 64
+101 134 64
+102 134 64
+103 134 64
+104 134 64
+105 134 64
+106 134 64
+107 134 64
+108 134 64
+109 134 64
+110 134 64
+111 134 64
+112 134 64
+113 134 64
+114 134 64
+115 134 64
+116 134 64
+117 134 64
+118 134 64
+119 134 64
+120 134 64
+121 134 64
+122 134 64
+123 134 64
+124 134 64
+125 134 64
+126 134 64
+127 134 64
+128 134 64
+129 134 64
+130 134 64
+131 134 64
+132 134 64
+133 134 64
+134 134 64
+135 134 64
+136 134 64
+137 134 64
+138 134 64
+139 134 64
+140 134 64
+141 134 64
+142 134 64
+143 134 64
+144 134 64
+145 134 64
+146 134 64
+147 134 64
+148 134 64
+149 134 64
+150 134 64
+151 134 64
+152 134 64
+153 134 64
+154 134 64
+155 134 64
+156 134 64
+157 134 64
+158 134 64
+159 134 64
+160 134 64
+161 134 64
+162 134 64
+163 134 64
+164 134 64
+165 134 64
+166 134 64
+167 134 64
+168 134 64
+169 134 64
+170 134 64
+171 134 64
+172 134 64
+173 134 64
+174 134 64
+175 134 64
+176 134 64
+177 134 64
+178 134 64
+179 134 64
+180 134 64
+181 134 64
+182 134 64
+183 134 64
+184 134 64
+185 134 64
+186 134 64
+187 134 64
+188 134 64
+189 134 64
+190 134 64
+191 134 64
+192 134 64
+193 134 64
+194 134 64
+195 134 64
+196 134 64
+197 134 64
+198 134 64
+199 134 64
+200 134 64
+201 134 64
+202 134 64
+203 134 64
+204 134 64
+205 134 64
+206 134 64
+207 134 64
+208 134 64
+209 134 64
+210 134 64
+211 134 64
+212 134 64
+213 134 64
+214 134 64
+215 134 64
+216 134 64
+217 134 64
+218 134 64
+219 134 64
+220 134 64
+221 134 64
+222 134 64
+223 134 64
+224 134 64
+225 134 64
+226 134 64
+227 134 64
+228 134 64
+229 134 64
+230 134 64
+231 134 64
+232 134 64
+233 134 64
+234 134 64
+235 134 64
+236 134 64
+237 134 64
+238 134 64
+239 134 64
+240 134 64
+241 134 64
+242 134 64
+243 134 64
+244 134 64
+245 134 64
+246 134 64
+247 134 64
+248 134 64
+249 134 64
+250 134 64
+251 134 64
+252 134 64
+253 134 64
+254 134 64
+255 134 64
+0 133 64
+1 133 64
+2 133 64
+3 133 64
+4 133 64
+5 133 64
+6 133 64
+7 133 64
+8 133 64
+9 133 64
+10 133 64
+11 133 64
+12 133 64
+13 133 64
+14 133 64
+15 133 64
+16 133 64
+17 133 64
+18 133 64
+19 133 64
+20 133 64
+21 133 64
+22 133 64
+23 133 64
+24 133 64
+25 133 64
+26 133 64
+27 133 64
+28 133 64
+29 133 64
+30 133 64
+31 133 64
+32 133 64
+33 133 64
+34 133 64
+35 133 64
+36 133 64
+37 133 64
+38 133 64
+39 133 64
+40 133 64
+41 133 64
+42 133 64
+43 133 64
+44 133 64
+45 133 64
+46 133 64
+47 133 64
+48 133 64
+49 133 64
+50 133 64
+51 133 64
+52 133 64
+53 133 64
+54 133 64
+55 133 64
+56 133 64
+57 133 64
+58 133 64
+59 133 64
+60 133 64
+61 133 64
+62 133 64
+63 133 64
+64 133 64
+65 133 64
+66 133 64
+67 133 64
+68 133 64
+69 133 64
+70 133 64
+71 133 64
+72 133 64
+73 133 64
+74 133 64
+75 133 64
+76 133 64
+77 133 64
+78 133 64
+79 133 64
+80 133 64
+81 133 64
+82 133 64
+83 133 64
+84 133 64
+85 133 64
+86 133 64
+87 133 64
+88 133 64
+89 133 64
+90 133 64
+91 133 64
+92 133 64
+93 133 64
+94 133 64
+95 133 64
+96 133 64
+97 133 64
+98 133 64
+99 133 64
+100 133 64
+101 133 64
+102 133 64
+103 133 64
+104 133 64
+105 133 64
+106 133 64
+107 133 64
+108 133 64
+109 133 64
+110 133 64
+111 133 64
+112 133 64
+113 133 64
+114 133 64
+115 133 64
+116 133 64
+117 133 64
+118 133 64
+119 133 64
+120 133 64
+121 133 64
+122 133 64
+123 133 64
+124 133 64
+125 133 64
+126 133 64
+127 133 64
+128 133 64
+129 133 64
+130 133 64
+131 133 64
+132 133 64
+133 133 64
+134 133 64
+135 133 64
+136 133 64
+137 133 64
+138 133 64
+139 133 64
+140 133 64
+141 133 64
+142 133 64
+143 133 64
+144 133 64
+145 133 64
+146 133 64
+147 133 64
+148 133 64
+149 133 64
+150 133 64
+151 133 64
+152 133 64
+153 133 64
+154 133 64
+155 133 64
+156 133 64
+157 133 64
+158 133 64
+159 133 64
+160 133 64
+161 133 64
+162 133 64
+163 133 64
+164 133 64
+165 133 64
+166 133 64
+167 133 64
+168 133 64
+169 133 64
+170 133 64
+171 133 64
+172 133 64
+173 133 64
+174 133 64
+175 133 64
+176 133 64
+177 133 64
+178 133 64
+179 133 64
+180 133 64
+181 133 64
+182 133 64
+183 133 64
+184 133 64
+185 133 64
+186 133 64
+187 133 64
+188 133 64
+189 133 64
+190 133 64
+191 133 64
+192 133 64
+193 133 64
+194 133 64
+195 133 64
+196 133 64
+197 133 64
+198 133 64
+199 133 64
+200 133 64
+201 133 64
+202 133 64
+203 133 64
+204 133 64
+205 133 64
+206 133 64
+207 133 64
+208 133 64
+209 133 64
+210 133 64
+211 133 64
+212 133 64
+213 133 64
+214 133 64
+215 133 64
+216 133 64
+217 133 64
+218 133 64
+219 133 64
+220 133 64
+221 133 64
+222 133 64
+223 133 64
+224 133 64
+225 133 64
+226 133 64
+227 133 64
+228 133 64
+229 133 64
+230 133 64
+231 133 64
+232 133 64
+233 133 64
+234 133 64
+235 133 64
+236 133 64
+237 133 64
+238 133 64
+239 133 64
+240 133 64
+241 133 64
+242 133 64
+243 133 64
+244 133 64
+245 133 64
+246 133 64
+247 133 64
+248 133 64
+249 133 64
+250 133 64
+251 133 64
+252 133 64
+253 133 64
+254 133 64
+255 133 64
+0 132 64
+1 132 64
+2 132 64
+3 132 64
+4 132 64
+5 132 64
+6 132 64
+7 132 64
+8 132 64
+9 132 64
+10 132 64
+11 132 64
+12 132 64
+13 132 64
+14 132 64
+15 132 64
+16 132 64
+17 132 64
+18 132 64
+19 132 64
+20 132 64
+21 132 64
+22 132 64
+23 132 64
+24 132 64
+25 132 64
+26 132 64
+27 132 64
+28 132 64
+29 132 64
+30 132 64
+31 132 64
+32 132 64
+33 132 64
+34 132 64
+35 132 64
+36 132 64
+37 132 64
+38 132 64
+39 132 64
+40 132 64
+41 132 64
+42 132 64
+43 132 64
+44 132 64
+45 132 64
+46 132 64
+47 132 64
+48 132 64
+49 132 64
+50 132 64
+51 132 64
+52 132 64
+53 132 64
+54 132 64
+55 132 64
+56 132 64
+57 132 64
+58 132 64
+59 132 64
+60 132 64
+61 132 64
+62 132 64
+63 132 64
+64 132 64
+65 132 64
+66 132 64
+67 132 64
+68 132 64
+69 132 64
+70 132 64
+71 132 64
+72 132 64
+73 132 64
+74 132 64
+75 132 64
+76 132 64
+77 132 64
+78 132 64
+79 132 64
+80 132 64
+81 132 64
+82 132 64
+83 132 64
+84 132 64
+85 132 64
+86 132 64
+87 132 64
+88 132 64
+89 132 64
+90 132 64
+91 132 64
+92 132 64
+93 132 64
+94 132 64
+95 132 64
+96 132 64
+97 132 64
+98 132 64
+99 132 64
+100 132 64
+101 132 64
+102 132 64
+103 132 64
+104 132 64
+105 132 64
+106 132 64
+107 132 64
+108 132 64
+109 132 64
+110 132 64
+111 132 64
+112 132 64
+113 132 64
+114 132 64
+115 132 64
+116 132 64
+117 132 64
+118 132 64
+119 132 64
+120 132 64
+121 132 64
+122 132 64
+123 132 64
+124 132 64
+125 132 64
+126 132 64
+127 132 64
+128 132 64
+129 132 64
+130 132 64
+131 132 64
+132 132 64
+133 132 64
+134 132 64
+135 132 64
+136 132 64
+137 132 64
+138 132 64
+139 132 64
+140 132 64
+141 132 64
+142 132 64
+143 132 64
+144 132 64
+145 132 64
+146 132 64
+147 132 64
+148 132 64
+149 132 64
+150 132 64
+151 132 64
+152 132 64
+153 132 64
+154 132 64
+155 132 64
+156 132 64
+157 132 64
+158 132 64
+159 132 64
+160 132 64
+161 132 64
+162 132 64
+163 132 64
+164 132 64
+165 132 64
+166 132 64
+167 132 64
+168 132 64
+169 132 64
+170 132 64
+171 132 64
+172 132 64
+173 132 64
+174 132 64
+175 132 64
+176 132 64
+177 132 64
+178 132 64
+179 132 64
+180 132 64
+181 132 64
+182 132 64
+183 132 64
+184 132 64
+185 132 64
+186 132 64
+187 132 64
+188 132 64
+189 132 64
+190 132 64
+191 132 64
+192 132 64
+193 132 64
+194 132 64
+195 132 64
+196 132 64
+197 132 64
+198 132 64
+199 132 64
+200 132 64
+201 132 64
+202 132 64
+203 132 64
+204 132 64
+205 132 64
+206 132 64
+207 132 64
+208 132 64
+209 132 64
+210 132 64
+211 132 64
+212 132 64
+213 132 64
+214 132 64
+215 132 64
+216 132 64
+217 132 64
+218 132 64
+219 132 64
+220 132 64
+221 132 64
+222 132 64
+223 132 64
+224 132 64
+225 132 64
+226 132 64
+227 132 64
+228 132 64
+229 132 64
+230 132 64
+231 132 64
+232 132 64
+233 132 64
+234 132 64
+235 132 64
+236 132 64
+237 132 64
+238 132 64
+239 132 64
+240 132 64
+241 132 64
+242 132 64
+243 132 64
+244 132 64
+245 132 64
+246 132 64
+247 132 64
+248 132 64
+249 132 64
+250 132 64
+251 132 64
+252 132 64
+253 132 64
+254 132 64
+255 132 64
+0 131 64
+1 131 64
+2 131 64
+3 131 64
+4 131 64
+5 131 64
+6 131 64
+7 131 64
+8 131 64
+9 131 64
+10 131 64
+11 131 64
+12 131 64
+13 131 64
+14 131 64
+15 131 64
+16 131 64
+17 131 64
+18 131 64
+19 131 64
+20 131 64
+21 131 64
+22 131 64
+23 131 64
+24 131 64
+25 131 64
+26 131 64
+27 131 64
+28 131 64
+29 131 64
+30 131 64
+31 131 64
+32 131 64
+33 131 64
+34 131 64
+35 131 64
+36 131 64
+37 131 64
+38 131 64
+39 131 64
+40 131 64
+41 131 64
+42 131 64
+43 131 64
+44 131 64
+45 131 64
+46 131 64
+47 131 64
+48 131 64
+49 131 64
+50 131 64
+51 131 64
+52 131 64
+53 131 64
+54 131 64
+55 131 64
+56 131 64
+57 131 64
+58 131 64
+59 131 64
+60 131 64
+61 131 64
+62 131 64
+63 131 64
+64 131 64
+65 131 64
+66 131 64
+67 131 64
+68 131 64
+69 131 64
+70 131 64
+71 131 64
+72 131 64
+73 131 64
+74 131 64
+75 131 64
+76 131 64
+77 131 64
+78 131 64
+79 131 64
+80 131 64
+81 131 64
+82 131 64
+83 131 64
+84 131 64
+85 131 64
+86 131 64
+87 131 64
+88 131 64
+89 131 64
+90 131 64
+91 131 64
+92 131 64
+93 131 64
+94 131 64
+95 131 64
+96 131 64
+97 131 64
+98 131 64
+99 131 64
+100 131 64
+101 131 64
+102 131 64
+103 131 64
+104 131 64
+105 131 64
+106 131 64
+107 131 64
+108 131 64
+109 131 64
+110 131 64
+111 131 64
+112 131 64
+113 131 64
+114 131 64
+115 131 64
+116 131 64
+117 131 64
+118 131 64
+119 131 64
+120 131 64
+121 131 64
+122 131 64
+123 131 64
+124 131 64
+125 131 64
+126 131 64
+127 131 64
+128 131 64
+129 131 64
+130 131 64
+131 131 64
+132 131 64
+133 131 64
+134 131 64
+135 131 64
+136 131 64
+137 131 64
+138 131 64
+139 131 64
+140 131 64
+141 131 64
+142 131 64
+143 131 64
+144 131 64
+145 131 64
+146 131 64
+147 131 64
+148 131 64
+149 131 64
+150 131 64
+151 131 64
+152 131 64
+153 131 64
+154 131 64
+155 131 64
+156 131 64
+157 131 64
+158 131 64
+159 131 64
+160 131 64
+161 131 64
+162 131 64
+163 131 64
+164 131 64
+165 131 64
+166 131 64
+167 131 64
+168 131 64
+169 131 64
+170 131 64
+171 131 64
+172 131 64
+173 131 64
+174 131 64
+175 131 64
+176 131 64
+177 131 64
+178 131 64
+179 131 64
+180 131 64
+181 131 64
+182 131 64
+183 131 64
+184 131 64
+185 131 64
+186 131 64
+187 131 64
+188 131 64
+189 131 64
+190 131 64
+191 131 64
+192 131 64
+193 131 64
+194 131 64
+195 131 64
+196 131 64
+197 131 64
+198 131 64
+199 131 64
+200 131 64
+201 131 64
+202 131 64
+203 131 64
+204 131 64
+205 131 64
+206 131 64
+207 131 64
+208 131 64
+209 131 64
+210 131 64
+211 131 64
+212 131 64
+213 131 64
+214 131 64
+215 131 64
+216 131 64
+217 131 64
+218 131 64
+219 131 64
+220 131 64
+221 131 64
+222 131 64
+223 131 64
+224 131 64
+225 131 64
+226 131 64
+227 131 64
+228 131 64
+229 131 64
+230 131 64
+231 131 64
+232 131 64
+233 131 64
+234 131 64
+235 131 64
+236 131 64
+237 131 64
+238 131 64
+239 131 64
+240 131 64
+241 131 64
+242 131 64
+243 131 64
+244 131 64
+245 131 64
+246 131 64
+247 131 64
+248 131 64
+249 131 64
+250 131 64
+251 131 64
+252 131 64
+253 131 64
+254 131 64
+255 131 64
+0 130 64
+1 130 64
+2 130 64
+3 130 64
+4 130 64
+5 130 64
+6 130 64
+7 130 64
+8 130 64
+9 130 64
+10 130 64
+11 130 64
+12 130 64
+13 130 64
+14 130 64
+15 130 64
+16 130 64
+17 130 64
+18 130 64
+19 130 64
+20 130 64
+21 130 64
+22 130 64
+23 130 64
+24 130 64
+25 130 64
+26 130 64
+27 130 64
+28 130 64
+29 130 64
+30 130 64
+31 130 64
+32 130 64
+33 130 64
+34 130 64
+35 130 64
+36 130 64
+37 130 64
+38 130 64
+39 130 64
+40 130 64
+41 130 64
+42 130 64
+43 130 64
+44 130 64
+45 130 64
+46 130 64
+47 130 64
+48 130 64
+49 130 64
+50 130 64
+51 130 64
+52 130 64
+53 130 64
+54 130 64
+55 130 64
+56 130 64
+57 130 64
+58 130 64
+59 130 64
+60 130 64
+61 130 64
+62 130 64
+63 130 64
+64 130 64
+65 130 64
+66 130 64
+67 130 64
+68 130 64
+69 130 64
+70 130 64
+71 130 64
+72 130 64
+73 130 64
+74 130 64
+75 130 64
+76 130 64
+77 130 64
+78 130 64
+79 130 64
+80 130 64
+81 130 64
+82 130 64
+83 130 64
+84 130 64
+85 130 64
+86 130 64
+87 130 64
+88 130 64
+89 130 64
+90 130 64
+91 130 64
+92 130 64
+93 130 64
+94 130 64
+95 130 64
+96 130 64
+97 130 64
+98 130 64
+99 130 64
+100 130 64
+101 130 64
+102 130 64
+103 130 64
+104 130 64
+105 130 64
+106 130 64
+107 130 64
+108 130 64
+109 130 64
+110 130 64
+111 130 64
+112 130 64
+113 130 64
+114 130 64
+115 130 64
+116 130 64
+117 130 64
+118 130 64
+119 130 64
+120 130 64
+121 130 64
+122 130 64
+123 130 64
+124 130 64
+125 130 64
+126 130 64
+127 130 64
+128 130 64
+129 130 64
+130 130 64
+131 130 64
+132 130 64
+133 130 64
+134 130 64
+135 130 64
+136 130 64
+137 130 64
+138 130 64
+139 130 64
+140 130 64
+141 130 64
+142 130 64
+143 130 64
+144 130 64
+145 130 64
+146 130 64
+147 130 64
+148 130 64
+149 130 64
+150 130 64
+151 130 64
+152 130 64
+153 130 64
+154 130 64
+155 130 64
+156 130 64
+157 130 64
+158 130 64
+159 130 64
+160 130 64
+161 130 64
+162 130 64
+163 130 64
+164 130 64
+165 130 64
+166 130 64
+167 130 64
+168 130 64
+169 130 64
+170 130 64
+171 130 64
+172 130 64
+173 130 64
+174 130 64
+175 130 64
+176 130 64
+177 130 64
+178 130 64
+179 130 64
+180 130 64
+181 130 64
+182 130 64
+183 130 64
+184 130 64
+185 130 64
+186 130 64
+187 130 64
+188 130 64
+189 130 64
+190 130 64
+191 130 64
+192 130 64
+193 130 64
+194 130 64
+195 130 64
+196 130 64
+197 130 64
+198 130 64
+199 130 64
+200 130 64
+201 130 64
+202 130 64
+203 130 64
+204 130 64
+205 130 64
+206 130 64
+207 130 64
+208 130 64
+209 130 64
+210 130 64
+211 130 64
+212 130 64
+213 130 64
+214 130 64
+215 130 64
+216 130 64
+217 130 64
+218 130 64
+219 130 64
+220 130 64
+221 130 64
+222 130 64
+223 130 64
+224 130 64
+225 130 64
+226 130 64
+227 130 64
+228 130 64
+229 130 64
+230 130 64
+231 130 64
+232 130 64
+233 130 64
+234 130 64
+235 130 64
+236 130 64
+237 130 64
+238 130 64
+239 130 64
+240 130 64
+241 130 64
+242 130 64
+243 130 64
+244 130 64
+245 130 64
+246 130 64
+247 130 64
+248 130 64
+249 130 64
+250 130 64
+251 130 64
+252 130 64
+253 130 64
+254 130 64
+255 130 64
+0 129 64
+1 129 64
+2 129 64
+3 129 64
+4 129 64
+5 129 64
+6 129 64
+7 129 64
+8 129 64
+9 129 64
+10 129 64
+11 129 64
+12 129 64
+13 129 64
+14 129 64
+15 129 64
+16 129 64
+17 129 64
+18 129 64
+19 129 64
+20 129 64
+21 129 64
+22 129 64
+23 129 64
+24 129 64
+25 129 64
+26 129 64
+27 129 64
+28 129 64
+29 129 64
+30 129 64
+31 129 64
+32 129 64
+33 129 64
+34 129 64
+35 129 64
+36 129 64
+37 129 64
+38 129 64
+39 129 64
+40 129 64
+41 129 64
+42 129 64
+43 129 64
+44 129 64
+45 129 64
+46 129 64
+47 129 64
+48 129 64
+49 129 64
+50 129 64
+51 129 64
+52 129 64
+53 129 64
+54 129 64
+55 129 64
+56 129 64
+57 129 64
+58 129 64
+59 129 64
+60 129 64
+61 129 64
+62 129 64
+63 129 64
+64 129 64
+65 129 64
+66 129 64
+67 129 64
+68 129 64
+69 129 64
+70 129 64
+71 129 64
+72 129 64
+73 129 64
+74 129 64
+75 129 64
+76 129 64
+77 129 64
+78 129 64
+79 129 64
+80 129 64
+81 129 64
+82 129 64
+83 129 64
+84 129 64
+85 129 64
+86 129 64
+87 129 64
+88 129 64
+89 129 64
+90 129 64
+91 129 64
+92 129 64
+93 129 64
+94 129 64
+95 129 64
+96 129 64
+97 129 64
+98 129 64
+99 129 64
+100 129 64
+101 129 64
+102 129 64
+103 129 64
+104 129 64
+105 129 64
+106 129 64
+107 129 64
+108 129 64
+109 129 64
+110 129 64
+111 129 64
+112 129 64
+113 129 64
+114 129 64
+115 129 64
+116 129 64
+117 129 64
+118 129 64
+119 129 64
+120 129 64
+121 129 64
+122 129 64
+123 129 64
+124 129 64
+125 129 64
+126 129 64
+127 129 64
+128 129 64
+129 129 64
+130 129 64
+131 129 64
+132 129 64
+133 129 64
+134 129 64
+135 129 64
+136 129 64
+137 129 64
+138 129 64
+139 129 64
+140 129 64
+141 129 64
+142 129 64
+143 129 64
+144 129 64
+145 129 64
+146 129 64
+147 129 64
+148 129 64
+149 129 64
+150 129 64
+151 129 64
+152 129 64
+153 129 64
+154 129 64
+155 129 64
+156 129 64
+157 129 64
+158 129 64
+159 129 64
+160 129 64
+161 129 64
+162 129 64
+163 129 64
+164 129 64
+165 129 64
+166 129 64
+167 129 64
+168 129 64
+169 129 64
+170 129 64
+171 129 64
+172 129 64
+173 129 64
+174 129 64
+175 129 64
+176 129 64
+177 129 64
+178 129 64
+179 129 64
+180 129 64
+181 129 64
+182 129 64
+183 129 64
+184 129 64
+185 129 64
+186 129 64
+187 129 64
+188 129 64
+189 129 64
+190 129 64
+191 129 64
+192 129 64
+193 129 64
+194 129 64
+195 129 64
+196 129 64
+197 129 64
+198 129 64
+199 129 64
+200 129 64
+201 129 64
+202 129 64
+203 129 64
+204 129 64
+205 129 64
+206 129 64
+207 129 64
+208 129 64
+209 129 64
+210 129 64
+211 129 64
+212 129 64
+213 129 64
+214 129 64
+215 129 64
+216 129 64
+217 129 64
+218 129 64
+219 129 64
+220 129 64
+221 129 64
+222 129 64
+223 129 64
+224 129 64
+225 129 64
+226 129 64
+227 129 64
+228 129 64
+229 129 64
+230 129 64
+231 129 64
+232 129 64
+233 129 64
+234 129 64
+235 129 64
+236 129 64
+237 129 64
+238 129 64
+239 129 64
+240 129 64
+241 129 64
+242 129 64
+243 129 64
+244 129 64
+245 129 64
+246 129 64
+247 129 64
+248 129 64
+249 129 64
+250 129 64
+251 129 64
+252 129 64
+253 129 64
+254 129 64
+255 129 64
+0 128 64
+1 128 64
+2 128 64
+3 128 64
+4 128 64
+5 128 64
+6 128 64
+7 128 64
+8 128 64
+9 128 64
+10 128 64
+11 128 64
+12 128 64
+13 128 64
+14 128 64
+15 128 64
+16 128 64
+17 128 64
+18 128 64
+19 128 64
+20 128 64
+21 128 64
+22 128 64
+23 128 64
+24 128 64
+25 128 64
+26 128 64
+27 128 64
+28 128 64
+29 128 64
+30 128 64
+31 128 64
+32 128 64
+33 128 64
+34 128 64
+35 128 64
+36 128 64
+37 128 64
+38 128 64
+39 128 64
+40 128 64
+41 128 64
+42 128 64
+43 128 64
+44 128 64
+45 128 64
+46 128 64
+47 128 64
+48 128 64
+49 128 64
+50 128 64
+51 128 64
+52 128 64
+53 128 64
+54 128 64
+55 128 64
+56 128 64
+57 128 64
+58 128 64
+59 128 64
+60 128 64
+61 128 64
+62 128 64
+63 128 64
+64 128 64
+65 128 64
+66 128 64
+67 128 64
+68 128 64
+69 128 64
+70 128 64
+71 128 64
+72 128 64
+73 128 64
+74 128 64
+75 128 64
+76 128 64
+77 128 64
+78 128 64
+79 128 64
+80 128 64
+81 128 64
+82 128 64
+83 128 64
+84 128 64
+85 128 64
+86 128 64
+87 128 64
+88 128 64
+89 128 64
+90 128 64
+91 128 64
+92 128 64
+93 128 64
+94 128 64
+95 128 64
+96 128 64
+97 128 64
+98 128 64
+99 128 64
+100 128 64
+101 128 64
+102 128 64
+103 128 64
+104 128 64
+105 128 64
+106 128 64
+107 128 64
+108 128 64
+109 128 64
+110 128 64
+111 128 64
+112 128 64
+113 128 64
+114 128 64
+115 128 64
+116 128 64
+117 128 64
+118 128 64
+119 128 64
+120 128 64
+121 128 64
+122 128 64
+123 128 64
+124 128 64
+125 128 64
+126 128 64
+127 128 64
+128 128 64
+129 128 64
+130 128 64
+131 128 64
+132 128 64
+133 128 64
+134 128 64
+135 128 64
+136 128 64
+137 128 64
+138 128 64
+139 128 64
+140 128 64
+141 128 64
+142 128 64
+143 128 64
+144 128 64
+145 128 64
+146 128 64
+147 128 64
+148 128 64
+149 128 64
+150 128 64
+151 128 64
+152 128 64
+153 128 64
+154 128 64
+155 128 64
+156 128 64
+157 128 64
+158 128 64
+159 128 64
+160 128 64
+161 128 64
+162 128 64
+163 128 64
+164 128 64
+165 128 64
+166 128 64
+167 128 64
+168 128 64
+169 128 64
+170 128 64
+171 128 64
+172 128 64
+173 128 64
+174 128 64
+175 128 64
+176 128 64
+177 128 64
+178 128 64
+179 128 64
+180 128 64
+181 128 64
+182 128 64
+183 128 64
+184 128 64
+185 128 64
+186 128 64
+187 128 64
+188 128 64
+189 128 64
+190 128 64
+191 128 64
+192 128 64
+193 128 64
+194 128 64
+195 128 64
+196 128 64
+197 128 64
+198 128 64
+199 128 64
+200 128 64
+201 128 64
+202 128 64
+203 128 64
+204 128 64
+205 128 64
+206 128 64
+207 128 64
+208 128 64
+209 128 64
+210 128 64
+211 128 64
+212 128 64
+213 128 64
+214 128 64
+215 128 64
+216 128 64
+217 128 64
+218 128 64
+219 128 64
+220 128 64
+221 128 64
+222 128 64
+223 128 64
+224 128 64
+225 128 64
+226 128 64
+227 128 64
+228 128 64
+229 128 64
+230 128 64
+231 128 64
+232 128 64
+233 128 64
+234 128 64
+235 128 64
+236 128 64
+237 128 64
+238 128 64
+239 128 64
+240 128 64
+241 128 64
+242 128 64
+243 128 64
+244 128 64
+245 128 64
+246 128 64
+247 128 64
+248 128 64
+249 128 64
+250 128 64
+251 128 64
+252 128 64
+253 128 64
+254 128 64
+255 128 64
+0 127 64
+1 127 64
+2 127 64
+3 127 64
+4 127 64
+5 127 64
+6 127 64
+7 127 64
+8 127 64
+9 127 64
+10 127 64
+11 127 64
+12 127 64
+13 127 64
+14 127 64
+15 127 64
+16 127 64
+17 127 64
+18 127 64
+19 127 64
+20 127 64
+21 127 64
+22 127 64
+23 127 64
+24 127 64
+25 127 64
+26 127 64
+27 127 64
+28 127 64
+29 127 64
+30 127 64
+31 127 64
+32 127 64
+33 127 64
+34 127 64
+35 127 64
+36 127 64
+37 127 64
+38 127 64
+39 127 64
+40 127 64
+41 127 64
+42 127 64
+43 127 64
+44 127 64
+45 127 64
+46 127 64
+47 127 64
+48 127 64
+49 127 64
+50 127 64
+51 127 64
+52 127 64
+53 127 64
+54 127 64
+55 127 64
+56 127 64
+57 127 64
+58 127 64
+59 127 64
+60 127 64
+61 127 64
+62 127 64
+63 127 64
+64 127 64
+65 127 64
+66 127 64
+67 127 64
+68 127 64
+69 127 64
+70 127 64
+71 127 64
+72 127 64
+73 127 64
+74 127 64
+75 127 64
+76 127 64
+77 127 64
+78 127 64
+79 127 64
+80 127 64
+81 127 64
+82 127 64
+83 127 64
+84 127 64
+85 127 64
+86 127 64
+87 127 64
+88 127 64
+89 127 64
+90 127 64
+91 127 64
+92 127 64
+93 127 64
+94 127 64
+95 127 64
+96 127 64
+97 127 64
+98 127 64
+99 127 64
+100 127 64
+101 127 64
+102 127 64
+103 127 64
+104 127 64
+105 127 64
+106 127 64
+107 127 64
+108 127 64
+109 127 64
+110 127 64
+111 127 64
+112 127 64
+113 127 64
+114 127 64
+115 127 64
+116 127 64
+117 127 64
+118 127 64
+119 127 64
+120 127 64
+121 127 64
+122 127 64
+123 127 64
+124 127 64
+125 127 64
+126 127 64
+127 127 64
+128 127 64
+129 127 64
+130 127 64
+131 127 64
+132 127 64
+133 127 64
+134 127 64
+135 127 64
+136 127 64
+137 127 64
+138 127 64
+139 127 64
+140 127 64
+141 127 64
+142 127 64
+143 127 64
+144 127 64
+145 127 64
+146 127 64
+147 127 64
+148 127 64
+149 127 64
+150 127 64
+151 127 64
+152 127 64
+153 127 64
+154 127 64
+155 127 64
+156 127 64
+157 127 64
+158 127 64
+159 127 64
+160 127 64
+161 127 64
+162 127 64
+163 127 64
+164 127 64
+165 127 64
+166 127 64
+167 127 64
+168 127 64
+169 127 64
+170 127 64
+171 127 64
+172 127 64
+173 127 64
+174 127 64
+175 127 64
+176 127 64
+177 127 64
+178 127 64
+179 127 64
+180 127 64
+181 127 64
+182 127 64
+183 127 64
+184 127 64
+185 127 64
+186 127 64
+187 127 64
+188 127 64
+189 127 64
+190 127 64
+191 127 64
+192 127 64
+193 127 64
+194 127 64
+195 127 64
+196 127 64
+197 127 64
+198 127 64
+199 127 64
+200 127 64
+201 127 64
+202 127 64
+203 127 64
+204 127 64
+205 127 64
+206 127 64
+207 127 64
+208 127 64
+209 127 64
+210 127 64
+211 127 64
+212 127 64
+213 127 64
+214 127 64
+215 127 64
+216 127 64
+217 127 64
+218 127 64
+219 127 64
+220 127 64
+221 127 64
+222 127 64
+223 127 64
+224 127 64
+225 127 64
+226 127 64
+227 127 64
+228 127 64
+229 127 64
+230 127 64
+231 127 64
+232 127 64
+233 127 64
+234 127 64
+235 127 64
+236 127 64
+237 127 64
+238 127 64
+239 127 64
+240 127 64
+241 127 64
+242 127 64
+243 127 64
+244 127 64
+245 127 64
+246 127 64
+247 127 64
+248 127 64
+249 127 64
+250 127 64
+251 127 64
+252 127 64
+253 127 64
+254 127 64
+255 127 64
+0 126 64
+1 126 64
+2 126 64
+3 126 64
+4 126 64
+5 126 64
+6 126 64
+7 126 64
+8 126 64
+9 126 64
+10 126 64
+11 126 64
+12 126 64
+13 126 64
+14 126 64
+15 126 64
+16 126 64
+17 126 64
+18 126 64
+19 126 64
+20 126 64
+21 126 64
+22 126 64
+23 126 64
+24 126 64
+25 126 64
+26 126 64
+27 126 64
+28 126 64
+29 126 64
+30 126 64
+31 126 64
+32 126 64
+33 126 64
+34 126 64
+35 126 64
+36 126 64
+37 126 64
+38 126 64
+39 126 64
+40 126 64
+41 126 64
+42 126 64
+43 126 64
+44 126 64
+45 126 64
+46 126 64
+47 126 64
+48 126 64
+49 126 64
+50 126 64
+51 126 64
+52 126 64
+53 126 64
+54 126 64
+55 126 64
+56 126 64
+57 126 64
+58 126 64
+59 126 64
+60 126 64
+61 126 64
+62 126 64
+63 126 64
+64 126 64
+65 126 64
+66 126 64
+67 126 64
+68 126 64
+69 126 64
+70 126 64
+71 126 64
+72 126 64
+73 126 64
+74 126 64
+75 126 64
+76 126 64
+77 126 64
+78 126 64
+79 126 64
+80 126 64
+81 126 64
+82 126 64
+83 126 64
+84 126 64
+85 126 64
+86 126 64
+87 126 64
+88 126 64
+89 126 64
+90 126 64
+91 126 64
+92 126 64
+93 126 64
+94 126 64
+95 126 64
+96 126 64
+97 126 64
+98 126 64
+99 126 64
+100 126 64
+101 126 64
+102 126 64
+103 126 64
+104 126 64
+105 126 64
+106 126 64
+107 126 64
+108 126 64
+109 126 64
+110 126 64
+111 126 64
+112 126 64
+113 126 64
+114 126 64
+115 126 64
+116 126 64
+117 126 64
+118 126 64
+119 126 64
+120 126 64
+121 126 64
+122 126 64
+123 126 64
+124 126 64
+125 126 64
+126 126 64
+127 126 64
+128 126 64
+129 126 64
+130 126 64
+131 126 64
+132 126 64
+133 126 64
+134 126 64
+135 126 64
+136 126 64
+137 126 64
+138 126 64
+139 126 64
+140 126 64
+141 126 64
+142 126 64
+143 126 64
+144 126 64
+145 126 64
+146 126 64
+147 126 64
+148 126 64
+149 126 64
+150 126 64
+151 126 64
+152 126 64
+153 126 64
+154 126 64
+155 126 64
+156 126 64
+157 126 64
+158 126 64
+159 126 64
+160 126 64
+161 126 64
+162 126 64
+163 126 64
+164 126 64
+165 126 64
+166 126 64
+167 126 64
+168 126 64
+169 126 64
+170 126 64
+171 126 64
+172 126 64
+173 126 64
+174 126 64
+175 126 64
+176 126 64
+177 126 64
+178 126 64
+179 126 64
+180 126 64
+181 126 64
+182 126 64
+183 126 64
+184 126 64
+185 126 64
+186 126 64
+187 126 64
+188 126 64
+189 126 64
+190 126 64
+191 126 64
+192 126 64
+193 126 64
+194 126 64
+195 126 64
+196 126 64
+197 126 64
+198 126 64
+199 126 64
+200 126 64
+201 126 64
+202 126 64
+203 126 64
+204 126 64
+205 126 64
+206 126 64
+207 126 64
+208 126 64
+209 126 64
+210 126 64
+211 126 64
+212 126 64
+213 126 64
+214 126 64
+215 126 64
+216 126 64
+217 126 64
+218 126 64
+219 126 64
+220 126 64
+221 126 64
+222 126 64
+223 126 64
+224 126 64
+225 126 64
+226 126 64
+227 126 64
+228 126 64
+229 126 64
+230 126 64
+231 126 64
+232 126 64
+233 126 64
+234 126 64
+235 126 64
+236 126 64
+237 126 64
+238 126 64
+239 126 64
+240 126 64
+241 126 64
+242 126 64
+243 126 64
+244 126 64
+245 126 64
+246 126 64
+247 126 64
+248 126 64
+249 126 64
+250 126 64
+251 126 64
+252 126 64
+253 126 64
+254 126 64
+255 126 64
+0 125 64
+1 125 64
+2 125 64
+3 125 64
+4 125 64
+5 125 64
+6 125 64
+7 125 64
+8 125 64
+9 125 64
+10 125 64
+11 125 64
+12 125 64
+13 125 64
+14 125 64
+15 125 64
+16 125 64
+17 125 64
+18 125 64
+19 125 64
+20 125 64
+21 125 64
+22 125 64
+23 125 64
+24 125 64
+25 125 64
+26 125 64
+27 125 64
+28 125 64
+29 125 64
+30 125 64
+31 125 64
+32 125 64
+33 125 64
+34 125 64
+35 125 64
+36 125 64
+37 125 64
+38 125 64
+39 125 64
+40 125 64
+41 125 64
+42 125 64
+43 125 64
+44 125 64
+45 125 64
+46 125 64
+47 125 64
+48 125 64
+49 125 64
+50 125 64
+51 125 64
+52 125 64
+53 125 64
+54 125 64
+55 125 64
+56 125 64
+57 125 64
+58 125 64
+59 125 64
+60 125 64
+61 125 64
+62 125 64
+63 125 64
+64 125 64
+65 125 64
+66 125 64
+67 125 64
+68 125 64
+69 125 64
+70 125 64
+71 125 64
+72 125 64
+73 125 64
+74 125 64
+75 125 64
+76 125 64
+77 125 64
+78 125 64
+79 125 64
+80 125 64
+81 125 64
+82 125 64
+83 125 64
+84 125 64
+85 125 64
+86 125 64
+87 125 64
+88 125 64
+89 125 64
+90 125 64
+91 125 64
+92 125 64
+93 125 64
+94 125 64
+95 125 64
+96 125 64
+97 125 64
+98 125 64
+99 125 64
+100 125 64
+101 125 64
+102 125 64
+103 125 64
+104 125 64
+105 125 64
+106 125 64
+107 125 64
+108 125 64
+109 125 64
+110 125 64
+111 125 64
+112 125 64
+113 125 64
+114 125 64
+115 125 64
+116 125 64
+117 125 64
+118 125 64
+119 125 64
+120 125 64
+121 125 64
+122 125 64
+123 125 64
+124 125 64
+125 125 64
+126 125 64
+127 125 64
+128 125 64
+129 125 64
+130 125 64
+131 125 64
+132 125 64
+133 125 64
+134 125 64
+135 125 64
+136 125 64
+137 125 64
+138 125 64
+139 125 64
+140 125 64
+141 125 64
+142 125 64
+143 125 64
+144 125 64
+145 125 64
+146 125 64
+147 125 64
+148 125 64
+149 125 64
+150 125 64
+151 125 64
+152 125 64
+153 125 64
+154 125 64
+155 125 64
+156 125 64
+157 125 64
+158 125 64
+159 125 64
+160 125 64
+161 125 64
+162 125 64
+163 125 64
+164 125 64
+165 125 64
+166 125 64
+167 125 64
+168 125 64
+169 125 64
+170 125 64
+171 125 64
+172 125 64
+173 125 64
+174 125 64
+175 125 64
+176 125 64
+177 125 64
+178 125 64
+179 125 64
+180 125 64
+181 125 64
+182 125 64
+183 125 64
+184 125 64
+185 125 64
+186 125 64
+187 125 64
+188 125 64
+189 125 64
+190 125 64
+191 125 64
+192 125 64
+193 125 64
+194 125 64
+195 125 64
+196 125 64
+197 125 64
+198 125 64
+199 125 64
+200 125 64
+201 125 64
+202 125 64
+203 125 64
+204 125 64
+205 125 64
+206 125 64
+207 125 64
+208 125 64
+209 125 64
+210 125 64
+211 125 64
+212 125 64
+213 125 64
+214 125 64
+215 125 64
+216 125 64
+217 125 64
+218 125 64
+219 125 64
+220 125 64
+221 125 64
+222 125 64
+223 125 64
+224 125 64
+225 125 64
+226 125 64
+227 125 64
+228 125 64
+229 125 64
+230 125 64
+231 125 64
+232 125 64
+233 125 64
+234 125 64
+235 125 64
+236 125 64
+237 125 64
+238 125 64
+239 125 64
+240 125 64
+241 125 64
+242 125 64
+243 125 64
+244 125 64
+245 125 64
+246 125 64
+247 125 64
+248 125 64
+249 125 64
+250 125 64
+251 125 64
+252 125 64
+253 125 64
+254 125 64
+255 125 64
+0 124 64
+1 124 64
+2 124 64
+3 124 64
+4 124 64
+5 124 64
+6 124 64
+7 124 64
+8 124 64
+9 124 64
+10 124 64
+11 124 64
+12 124 64
+13 124 64
+14 124 64
+15 124 64
+16 124 64
+17 124 64
+18 124 64
+19 124 64
+20 124 64
+21 124 64
+22 124 64
+23 124 64
+24 124 64
+25 124 64
+26 124 64
+27 124 64
+28 124 64
+29 124 64
+30 124 64
+31 124 64
+32 124 64
+33 124 64
+34 124 64
+35 124 64
+36 124 64
+37 124 64
+38 124 64
+39 124 64
+40 124 64
+41 124 64
+42 124 64
+43 124 64
+44 124 64
+45 124 64
+46 124 64
+47 124 64
+48 124 64
+49 124 64
+50 124 64
+51 124 64
+52 124 64
+53 124 64
+54 124 64
+55 124 64
+56 124 64
+57 124 64
+58 124 64
+59 124 64
+60 124 64
+61 124 64
+62 124 64
+63 124 64
+64 124 64
+65 124 64
+66 124 64
+67 124 64
+68 124 64
+69 124 64
+70 124 64
+71 124 64
+72 124 64
+73 124 64
+74 124 64
+75 124 64
+76 124 64
+77 124 64
+78 124 64
+79 124 64
+80 124 64
+81 124 64
+82 124 64
+83 124 64
+84 124 64
+85 124 64
+86 124 64
+87 124 64
+88 124 64
+89 124 64
+90 124 64
+91 124 64
+92 124 64
+93 124 64
+94 124 64
+95 124 64
+96 124 64
+97 124 64
+98 124 64
+99 124 64
+100 124 64
+101 124 64
+102 124 64
+103 124 64
+104 124 64
+105 124 64
+106 124 64
+107 124 64
+108 124 64
+109 124 64
+110 124 64
+111 124 64
+112 124 64
+113 124 64
+114 124 64
+115 124 64
+116 124 64
+117 124 64
+118 124 64
+119 124 64
+120 124 64
+121 124 64
+122 124 64
+123 124 64
+124 124 64
+125 124 64
+126 124 64
+127 124 64
+128 124 64
+129 124 64
+130 124 64
+131 124 64
+132 124 64
+133 124 64
+134 124 64
+135 124 64
+136 124 64
+137 124 64
+138 124 64
+139 124 64
+140 124 64
+141 124 64
+142 124 64
+143 124 64
+144 124 64
+145 124 64
+146 124 64
+147 124 64
+148 124 64
+149 124 64
+150 124 64
+151 124 64
+152 124 64
+153 124 64
+154 124 64
+155 124 64
+156 124 64
+157 124 64
+158 124 64
+159 124 64
+160 124 64
+161 124 64
+162 124 64
+163 124 64
+164 124 64
+165 124 64
+166 124 64
+167 124 64
+168 124 64
+169 124 64
+170 124 64
+171 124 64
+172 124 64
+173 124 64
+174 124 64
+175 124 64
+176 124 64
+177 124 64
+178 124 64
+179 124 64
+180 124 64
+181 124 64
+182 124 64
+183 124 64
+184 124 64
+185 124 64
+186 124 64
+187 124 64
+188 124 64
+189 124 64
+190 124 64
+191 124 64
+192 124 64
+193 124 64
+194 124 64
+195 124 64
+196 124 64
+197 124 64
+198 124 64
+199 124 64
+200 124 64
+201 124 64
+202 124 64
+203 124 64
+204 124 64
+205 124 64
+206 124 64
+207 124 64
+208 124 64
+209 124 64
+210 124 64
+211 124 64
+212 124 64
+213 124 64
+214 124 64
+215 124 64
+216 124 64
+217 124 64
+218 124 64
+219 124 64
+220 124 64
+221 124 64
+222 124 64
+223 124 64
+224 124 64
+225 124 64
+226 124 64
+227 124 64
+228 124 64
+229 124 64
+230 124 64
+231 124 64
+232 124 64
+233 124 64
+234 124 64
+235 124 64
+236 124 64
+237 124 64
+238 124 64
+239 124 64
+240 124 64
+241 124 64
+242 124 64
+243 124 64
+244 124 64
+245 124 64
+246 124 64
+247 124 64
+248 124 64
+249 124 64
+250 124 64
+251 124 64
+252 124 64
+253 124 64
+254 124 64
+255 124 64
+0 123 64
+1 123 64
+2 123 64
+3 123 64
+4 123 64
+5 123 64
+6 123 64
+7 123 64
+8 123 64
+9 123 64
+10 123 64
+11 123 64
+12 123 64
+13 123 64
+14 123 64
+15 123 64
+16 123 64
+17 123 64
+18 123 64
+19 123 64
+20 123 64
+21 123 64
+22 123 64
+23 123 64
+24 123 64
+25 123 64
+26 123 64
+27 123 64
+28 123 64
+29 123 64
+30 123 64
+31 123 64
+32 123 64
+33 123 64
+34 123 64
+35 123 64
+36 123 64
+37 123 64
+38 123 64
+39 123 64
+40 123 64
+41 123 64
+42 123 64
+43 123 64
+44 123 64
+45 123 64
+46 123 64
+47 123 64
+48 123 64
+49 123 64
+50 123 64
+51 123 64
+52 123 64
+53 123 64
+54 123 64
+55 123 64
+56 123 64
+57 123 64
+58 123 64
+59 123 64
+60 123 64
+61 123 64
+62 123 64
+63 123 64
+64 123 64
+65 123 64
+66 123 64
+67 123 64
+68 123 64
+69 123 64
+70 123 64
+71 123 64
+72 123 64
+73 123 64
+74 123 64
+75 123 64
+76 123 64
+77 123 64
+78 123 64
+79 123 64
+80 123 64
+81 123 64
+82 123 64
+83 123 64
+84 123 64
+85 123 64
+86 123 64
+87 123 64
+88 123 64
+89 123 64
+90 123 64
+91 123 64
+92 123 64
+93 123 64
+94 123 64
+95 123 64
+96 123 64
+97 123 64
+98 123 64
+99 123 64
+100 123 64
+101 123 64
+102 123 64
+103 123 64
+104 123 64
+105 123 64
+106 123 64
+107 123 64
+108 123 64
+109 123 64
+110 123 64
+111 123 64
+112 123 64
+113 123 64
+114 123 64
+115 123 64
+116 123 64
+117 123 64
+118 123 64
+119 123 64
+120 123 64
+121 123 64
+122 123 64
+123 123 64
+124 123 64
+125 123 64
+126 123 64
+127 123 64
+128 123 64
+129 123 64
+130 123 64
+131 123 64
+132 123 64
+133 123 64
+134 123 64
+135 123 64
+136 123 64
+137 123 64
+138 123 64
+139 123 64
+140 123 64
+141 123 64
+142 123 64
+143 123 64
+144 123 64
+145 123 64
+146 123 64
+147 123 64
+148 123 64
+149 123 64
+150 123 64
+151 123 64
+152 123 64
+153 123 64
+154 123 64
+155 123 64
+156 123 64
+157 123 64
+158 123 64
+159 123 64
+160 123 64
+161 123 64
+162 123 64
+163 123 64
+164 123 64
+165 123 64
+166 123 64
+167 123 64
+168 123 64
+169 123 64
+170 123 64
+171 123 64
+172 123 64
+173 123 64
+174 123 64
+175 123 64
+176 123 64
+177 123 64
+178 123 64
+179 123 64
+180 123 64
+181 123 64
+182 123 64
+183 123 64
+184 123 64
+185 123 64
+186 123 64
+187 123 64
+188 123 64
+189 123 64
+190 123 64
+191 123 64
+192 123 64
+193 123 64
+194 123 64
+195 123 64
+196 123 64
+197 123 64
+198 123 64
+199 123 64
+200 123 64
+201 123 64
+202 123 64
+203 123 64
+204 123 64
+205 123 64
+206 123 64
+207 123 64
+208 123 64
+209 123 64
+210 123 64
+211 123 64
+212 123 64
+213 123 64
+214 123 64
+215 123 64
+216 123 64
+217 123 64
+218 123 64
+219 123 64
+220 123 64
+221 123 64
+222 123 64
+223 123 64
+224 123 64
+225 123 64
+226 123 64
+227 123 64
+228 123 64
+229 123 64
+230 123 64
+231 123 64
+232 123 64
+233 123 64
+234 123 64
+235 123 64
+236 123 64
+237 123 64
+238 123 64
+239 123 64
+240 123 64
+241 123 64
+242 123 64
+243 123 64
+244 123 64
+245 123 64
+246 123 64
+247 123 64
+248 123 64
+249 123 64
+250 123 64
+251 123 64
+252 123 64
+253 123 64
+254 123 64
+255 123 64
+0 122 64
+1 122 64
+2 122 64
+3 122 64
+4 122 64
+5 122 64
+6 122 64
+7 122 64
+8 122 64
+9 122 64
+10 122 64
+11 122 64
+12 122 64
+13 122 64
+14 122 64
+15 122 64
+16 122 64
+17 122 64
+18 122 64
+19 122 64
+20 122 64
+21 122 64
+22 122 64
+23 122 64
+24 122 64
+25 122 64
+26 122 64
+27 122 64
+28 122 64
+29 122 64
+30 122 64
+31 122 64
+32 122 64
+33 122 64
+34 122 64
+35 122 64
+36 122 64
+37 122 64
+38 122 64
+39 122 64
+40 122 64
+41 122 64
+42 122 64
+43 122 64
+44 122 64
+45 122 64
+46 122 64
+47 122 64
+48 122 64
+49 122 64
+50 122 64
+51 122 64
+52 122 64
+53 122 64
+54 122 64
+55 122 64
+56 122 64
+57 122 64
+58 122 64
+59 122 64
+60 122 64
+61 122 64
+62 122 64
+63 122 64
+64 122 64
+65 122 64
+66 122 64
+67 122 64
+68 122 64
+69 122 64
+70 122 64
+71 122 64
+72 122 64
+73 122 64
+74 122 64
+75 122 64
+76 122 64
+77 122 64
+78 122 64
+79 122 64
+80 122 64
+81 122 64
+82 122 64
+83 122 64
+84 122 64
+85 122 64
+86 122 64
+87 122 64
+88 122 64
+89 122 64
+90 122 64
+91 122 64
+92 122 64
+93 122 64
+94 122 64
+95 122 64
+96 122 64
+97 122 64
+98 122 64
+99 122 64
+100 122 64
+101 122 64
+102 122 64
+103 122 64
+104 122 64
+105 122 64
+106 122 64
+107 122 64
+108 122 64
+109 122 64
+110 122 64
+111 122 64
+112 122 64
+113 122 64
+114 122 64
+115 122 64
+116 122 64
+117 122 64
+118 122 64
+119 122 64
+120 122 64
+121 122 64
+122 122 64
+123 122 64
+124 122 64
+125 122 64
+126 122 64
+127 122 64
+128 122 64
+129 122 64
+130 122 64
+131 122 64
+132 122 64
+133 122 64
+134 122 64
+135 122 64
+136 122 64
+137 122 64
+138 122 64
+139 122 64
+140 122 64
+141 122 64
+142 122 64
+143 122 64
+144 122 64
+145 122 64
+146 122 64
+147 122 64
+148 122 64
+149 122 64
+150 122 64
+151 122 64
+152 122 64
+153 122 64
+154 122 64
+155 122 64
+156 122 64
+157 122 64
+158 122 64
+159 122 64
+160 122 64
+161 122 64
+162 122 64
+163 122 64
+164 122 64
+165 122 64
+166 122 64
+167 122 64
+168 122 64
+169 122 64
+170 122 64
+171 122 64
+172 122 64
+173 122 64
+174 122 64
+175 122 64
+176 122 64
+177 122 64
+178 122 64
+179 122 64
+180 122 64
+181 122 64
+182 122 64
+183 122 64
+184 122 64
+185 122 64
+186 122 64
+187 122 64
+188 122 64
+189 122 64
+190 122 64
+191 122 64
+192 122 64
+193 122 64
+194 122 64
+195 122 64
+196 122 64
+197 122 64
+198 122 64
+199 122 64
+200 122 64
+201 122 64
+202 122 64
+203 122 64
+204 122 64
+205 122 64
+206 122 64
+207 122 64
+208 122 64
+209 122 64
+210 122 64
+211 122 64
+212 122 64
+213 122 64
+214 122 64
+215 122 64
+216 122 64
+217 122 64
+218 122 64
+219 122 64
+220 122 64
+221 122 64
+222 122 64
+223 122 64
+224 122 64
+225 122 64
+226 122 64
+227 122 64
+228 122 64
+229 122 64
+230 122 64
+231 122 64
+232 122 64
+233 122 64
+234 122 64
+235 122 64
+236 122 64
+237 122 64
+238 122 64
+239 122 64
+240 122 64
+241 122 64
+242 122 64
+243 122 64
+244 122 64
+245 122 64
+246 122 64
+247 122 64
+248 122 64
+249 122 64
+250 122 64
+251 122 64
+252 122 64
+253 122 64
+254 122 64
+255 122 64
+0 121 64
+1 121 64
+2 121 64
+3 121 64
+4 121 64
+5 121 64
+6 121 64
+7 121 64
+8 121 64
+9 121 64
+10 121 64
+11 121 64
+12 121 64
+13 121 64
+14 121 64
+15 121 64
+16 121 64
+17 121 64
+18 121 64
+19 121 64
+20 121 64
+21 121 64
+22 121 64
+23 121 64
+24 121 64
+25 121 64
+26 121 64
+27 121 64
+28 121 64
+29 121 64
+30 121 64
+31 121 64
+32 121 64
+33 121 64
+34 121 64
+35 121 64
+36 121 64
+37 121 64
+38 121 64
+39 121 64
+40 121 64
+41 121 64
+42 121 64
+43 121 64
+44 121 64
+45 121 64
+46 121 64
+47 121 64
+48 121 64
+49 121 64
+50 121 64
+51 121 64
+52 121 64
+53 121 64
+54 121 64
+55 121 64
+56 121 64
+57 121 64
+58 121 64
+59 121 64
+60 121 64
+61 121 64
+62 121 64
+63 121 64
+64 121 64
+65 121 64
+66 121 64
+67 121 64
+68 121 64
+69 121 64
+70 121 64
+71 121 64
+72 121 64
+73 121 64
+74 121 64
+75 121 64
+76 121 64
+77 121 64
+78 121 64
+79 121 64
+80 121 64
+81 121 64
+82 121 64
+83 121 64
+84 121 64
+85 121 64
+86 121 64
+87 121 64
+88 121 64
+89 121 64
+90 121 64
+91 121 64
+92 121 64
+93 121 64
+94 121 64
+95 121 64
+96 121 64
+97 121 64
+98 121 64
+99 121 64
+100 121 64
+101 121 64
+102 121 64
+103 121 64
+104 121 64
+105 121 64
+106 121 64
+107 121 64
+108 121 64
+109 121 64
+110 121 64
+111 121 64
+112 121 64
+113 121 64
+114 121 64
+115 121 64
+116 121 64
+117 121 64
+118 121 64
+119 121 64
+120 121 64
+121 121 64
+122 121 64
+123 121 64
+124 121 64
+125 121 64
+126 121 64
+127 121 64
+128 121 64
+129 121 64
+130 121 64
+131 121 64
+132 121 64
+133 121 64
+134 121 64
+135 121 64
+136 121 64
+137 121 64
+138 121 64
+139 121 64
+140 121 64
+141 121 64
+142 121 64
+143 121 64
+144 121 64
+145 121 64
+146 121 64
+147 121 64
+148 121 64
+149 121 64
+150 121 64
+151 121 64
+152 121 64
+153 121 64
+154 121 64
+155 121 64
+156 121 64
+157 121 64
+158 121 64
+159 121 64
+160 121 64
+161 121 64
+162 121 64
+163 121 64
+164 121 64
+165 121 64
+166 121 64
+167 121 64
+168 121 64
+169 121 64
+170 121 64
+171 121 64
+172 121 64
+173 121 64
+174 121 64
+175 121 64
+176 121 64
+177 121 64
+178 121 64
+179 121 64
+180 121 64
+181 121 64
+182 121 64
+183 121 64
+184 121 64
+185 121 64
+186 121 64
+187 121 64
+188 121 64
+189 121 64
+190 121 64
+191 121 64
+192 121 64
+193 121 64
+194 121 64
+195 121 64
+196 121 64
+197 121 64
+198 121 64
+199 121 64
+200 121 64
+201 121 64
+202 121 64
+203 121 64
+204 121 64
+205 121 64
+206 121 64
+207 121 64
+208 121 64
+209 121 64
+210 121 64
+211 121 64
+212 121 64
+213 121 64
+214 121 64
+215 121 64
+216 121 64
+217 121 64
+218 121 64
+219 121 64
+220 121 64
+221 121 64
+222 121 64
+223 121 64
+224 121 64
+225 121 64
+226 121 64
+227 121 64
+228 121 64
+229 121 64
+230 121 64
+231 121 64
+232 121 64
+233 121 64
+234 121 64
+235 121 64
+236 121 64
+237 121 64
+238 121 64
+239 121 64
+240 121 64
+241 121 64
+242 121 64
+243 121 64
+244 121 64
+245 121 64
+246 121 64
+247 121 64
+248 121 64
+249 121 64
+250 121 64
+251 121 64
+252 121 64
+253 121 64
+254 121 64
+255 121 64
+0 120 64
+1 120 64
+2 120 64
+3 120 64
+4 120 64
+5 120 64
+6 120 64
+7 120 64
+8 120 64
+9 120 64
+10 120 64
+11 120 64
+12 120 64
+13 120 64
+14 120 64
+15 120 64
+16 120 64
+17 120 64
+18 120 64
+19 120 64
+20 120 64
+21 120 64
+22 120 64
+23 120 64
+24 120 64
+25 120 64
+26 120 64
+27 120 64
+28 120 64
+29 120 64
+30 120 64
+31 120 64
+32 120 64
+33 120 64
+34 120 64
+35 120 64
+36 120 64
+37 120 64
+38 120 64
+39 120 64
+40 120 64
+41 120 64
+42 120 64
+43 120 64
+44 120 64
+45 120 64
+46 120 64
+47 120 64
+48 120 64
+49 120 64
+50 120 64
+51 120 64
+52 120 64
+53 120 64
+54 120 64
+55 120 64
+56 120 64
+57 120 64
+58 120 64
+59 120 64
+60 120 64
+61 120 64
+62 120 64
+63 120 64
+64 120 64
+65 120 64
+66 120 64
+67 120 64
+68 120 64
+69 120 64
+70 120 64
+71 120 64
+72 120 64
+73 120 64
+74 120 64
+75 120 64
+76 120 64
+77 120 64
+78 120 64
+79 120 64
+80 120 64
+81 120 64
+82 120 64
+83 120 64
+84 120 64
+85 120 64
+86 120 64
+87 120 64
+88 120 64
+89 120 64
+90 120 64
+91 120 64
+92 120 64
+93 120 64
+94 120 64
+95 120 64
+96 120 64
+97 120 64
+98 120 64
+99 120 64
+100 120 64
+101 120 64
+102 120 64
+103 120 64
+104 120 64
+105 120 64
+106 120 64
+107 120 64
+108 120 64
+109 120 64
+110 120 64
+111 120 64
+112 120 64
+113 120 64
+114 120 64
+115 120 64
+116 120 64
+117 120 64
+118 120 64
+119 120 64
+120 120 64
+121 120 64
+122 120 64
+123 120 64
+124 120 64
+125 120 64
+126 120 64
+127 120 64
+128 120 64
+129 120 64
+130 120 64
+131 120 64
+132 120 64
+133 120 64
+134 120 64
+135 120 64
+136 120 64
+137 120 64
+138 120 64
+139 120 64
+140 120 64
+141 120 64
+142 120 64
+143 120 64
+144 120 64
+145 120 64
+146 120 64
+147 120 64
+148 120 64
+149 120 64
+150 120 64
+151 120 64
+152 120 64
+153 120 64
+154 120 64
+155 120 64
+156 120 64
+157 120 64
+158 120 64
+159 120 64
+160 120 64
+161 120 64
+162 120 64
+163 120 64
+164 120 64
+165 120 64
+166 120 64
+167 120 64
+168 120 64
+169 120 64
+170 120 64
+171 120 64
+172 120 64
+173 120 64
+174 120 64
+175 120 64
+176 120 64
+177 120 64
+178 120 64
+179 120 64
+180 120 64
+181 120 64
+182 120 64
+183 120 64
+184 120 64
+185 120 64
+186 120 64
+187 120 64
+188 120 64
+189 120 64
+190 120 64
+191 120 64
+192 120 64
+193 120 64
+194 120 64
+195 120 64
+196 120 64
+197 120 64
+198 120 64
+199 120 64
+200 120 64
+201 120 64
+202 120 64
+203 120 64
+204 120 64
+205 120 64
+206 120 64
+207 120 64
+208 120 64
+209 120 64
+210 120 64
+211 120 64
+212 120 64
+213 120 64
+214 120 64
+215 120 64
+216 120 64
+217 120 64
+218 120 64
+219 120 64
+220 120 64
+221 120 64
+222 120 64
+223 120 64
+224 120 64
+225 120 64
+226 120 64
+227 120 64
+228 120 64
+229 120 64
+230 120 64
+231 120 64
+232 120 64
+233 120 64
+234 120 64
+235 120 64
+236 120 64
+237 120 64
+238 120 64
+239 120 64
+240 120 64
+241 120 64
+242 120 64
+243 120 64
+244 120 64
+245 120 64
+246 120 64
+247 120 64
+248 120 64
+249 120 64
+250 120 64
+251 120 64
+252 120 64
+253 120 64
+254 120 64
+255 120 64
+0 119 64
+1 119 64
+2 119 64
+3 119 64
+4 119 64
+5 119 64
+6 119 64
+7 119 64
+8 119 64
+9 119 64
+10 119 64
+11 119 64
+12 119 64
+13 119 64
+14 119 64
+15 119 64
+16 119 64
+17 119 64
+18 119 64
+19 119 64
+20 119 64
+21 119 64
+22 119 64
+23 119 64
+24 119 64
+25 119 64
+26 119 64
+27 119 64
+28 119 64
+29 119 64
+30 119 64
+31 119 64
+32 119 64
+33 119 64
+34 119 64
+35 119 64
+36 119 64
+37 119 64
+38 119 64
+39 119 64
+40 119 64
+41 119 64
+42 119 64
+43 119 64
+44 119 64
+45 119 64
+46 119 64
+47 119 64
+48 119 64
+49 119 64
+50 119 64
+51 119 64
+52 119 64
+53 119 64
+54 119 64
+55 119 64
+56 119 64
+57 119 64
+58 119 64
+59 119 64
+60 119 64
+61 119 64
+62 119 64
+63 119 64
+64 119 64
+65 119 64
+66 119 64
+67 119 64
+68 119 64
+69 119 64
+70 119 64
+71 119 64
+72 119 64
+73 119 64
+74 119 64
+75 119 64
+76 119 64
+77 119 64
+78 119 64
+79 119 64
+80 119 64
+81 119 64
+82 119 64
+83 119 64
+84 119 64
+85 119 64
+86 119 64
+87 119 64
+88 119 64
+89 119 64
+90 119 64
+91 119 64
+92 119 64
+93 119 64
+94 119 64
+95 119 64
+96 119 64
+97 119 64
+98 119 64
+99 119 64
+100 119 64
+101 119 64
+102 119 64
+103 119 64
+104 119 64
+105 119 64
+106 119 64
+107 119 64
+108 119 64
+109 119 64
+110 119 64
+111 119 64
+112 119 64
+113 119 64
+114 119 64
+115 119 64
+116 119 64
+117 119 64
+118 119 64
+119 119 64
+120 119 64
+121 119 64
+122 119 64
+123 119 64
+124 119 64
+125 119 64
+126 119 64
+127 119 64
+128 119 64
+129 119 64
+130 119 64
+131 119 64
+132 119 64
+133 119 64
+134 119 64
+135 119 64
+136 119 64
+137 119 64
+138 119 64
+139 119 64
+140 119 64
+141 119 64
+142 119 64
+143 119 64
+144 119 64
+145 119 64
+146 119 64
+147 119 64
+148 119 64
+149 119 64
+150 119 64
+151 119 64
+152 119 64
+153 119 64
+154 119 64
+155 119 64
+156 119 64
+157 119 64
+158 119 64
+159 119 64
+160 119 64
+161 119 64
+162 119 64
+163 119 64
+164 119 64
+165 119 64
+166 119 64
+167 119 64
+168 119 64
+169 119 64
+170 119 64
+171 119 64
+172 119 64
+173 119 64
+174 119 64
+175 119 64
+176 119 64
+177 119 64
+178 119 64
+179 119 64
+180 119 64
+181 119 64
+182 119 64
+183 119 64
+184 119 64
+185 119 64
+186 119 64
+187 119 64
+188 119 64
+189 119 64
+190 119 64
+191 119 64
+192 119 64
+193 119 64
+194 119 64
+195 119 64
+196 119 64
+197 119 64
+198 119 64
+199 119 64
+200 119 64
+201 119 64
+202 119 64
+203 119 64
+204 119 64
+205 119 64
+206 119 64
+207 119 64
+208 119 64
+209 119 64
+210 119 64
+211 119 64
+212 119 64
+213 119 64
+214 119 64
+215 119 64
+216 119 64
+217 119 64
+218 119 64
+219 119 64
+220 119 64
+221 119 64
+222 119 64
+223 119 64
+224 119 64
+225 119 64
+226 119 64
+227 119 64
+228 119 64
+229 119 64
+230 119 64
+231 119 64
+232 119 64
+233 119 64
+234 119 64
+235 119 64
+236 119 64
+237 119 64
+238 119 64
+239 119 64
+240 119 64
+241 119 64
+242 119 64
+243 119 64
+244 119 64
+245 119 64
+246 119 64
+247 119 64
+248 119 64
+249 119 64
+250 119 64
+251 119 64
+252 119 64
+253 119 64
+254 119 64
+255 119 64
+0 118 64
+1 118 64
+2 118 64
+3 118 64
+4 118 64
+5 118 64
+6 118 64
+7 118 64
+8 118 64
+9 118 64
+10 118 64
+11 118 64
+12 118 64
+13 118 64
+14 118 64
+15 118 64
+16 118 64
+17 118 64
+18 118 64
+19 118 64
+20 118 64
+21 118 64
+22 118 64
+23 118 64
+24 118 64
+25 118 64
+26 118 64
+27 118 64
+28 118 64
+29 118 64
+30 118 64
+31 118 64
+32 118 64
+33 118 64
+34 118 64
+35 118 64
+36 118 64
+37 118 64
+38 118 64
+39 118 64
+40 118 64
+41 118 64
+42 118 64
+43 118 64
+44 118 64
+45 118 64
+46 118 64
+47 118 64
+48 118 64
+49 118 64
+50 118 64
+51 118 64
+52 118 64
+53 118 64
+54 118 64
+55 118 64
+56 118 64
+57 118 64
+58 118 64
+59 118 64
+60 118 64
+61 118 64
+62 118 64
+63 118 64
+64 118 64
+65 118 64
+66 118 64
+67 118 64
+68 118 64
+69 118 64
+70 118 64
+71 118 64
+72 118 64
+73 118 64
+74 118 64
+75 118 64
+76 118 64
+77 118 64
+78 118 64
+79 118 64
+80 118 64
+81 118 64
+82 118 64
+83 118 64
+84 118 64
+85 118 64
+86 118 64
+87 118 64
+88 118 64
+89 118 64
+90 118 64
+91 118 64
+92 118 64
+93 118 64
+94 118 64
+95 118 64
+96 118 64
+97 118 64
+98 118 64
+99 118 64
+100 118 64
+101 118 64
+102 118 64
+103 118 64
+104 118 64
+105 118 64
+106 118 64
+107 118 64
+108 118 64
+109 118 64
+110 118 64
+111 118 64
+112 118 64
+113 118 64
+114 118 64
+115 118 64
+116 118 64
+117 118 64
+118 118 64
+119 118 64
+120 118 64
+121 118 64
+122 118 64
+123 118 64
+124 118 64
+125 118 64
+126 118 64
+127 118 64
+128 118 64
+129 118 64
+130 118 64
+131 118 64
+132 118 64
+133 118 64
+134 118 64
+135 118 64
+136 118 64
+137 118 64
+138 118 64
+139 118 64
+140 118 64
+141 118 64
+142 118 64
+143 118 64
+144 118 64
+145 118 64
+146 118 64
+147 118 64
+148 118 64
+149 118 64
+150 118 64
+151 118 64
+152 118 64
+153 118 64
+154 118 64
+155 118 64
+156 118 64
+157 118 64
+158 118 64
+159 118 64
+160 118 64
+161 118 64
+162 118 64
+163 118 64
+164 118 64
+165 118 64
+166 118 64
+167 118 64
+168 118 64
+169 118 64
+170 118 64
+171 118 64
+172 118 64
+173 118 64
+174 118 64
+175 118 64
+176 118 64
+177 118 64
+178 118 64
+179 118 64
+180 118 64
+181 118 64
+182 118 64
+183 118 64
+184 118 64
+185 118 64
+186 118 64
+187 118 64
+188 118 64
+189 118 64
+190 118 64
+191 118 64
+192 118 64
+193 118 64
+194 118 64
+195 118 64
+196 118 64
+197 118 64
+198 118 64
+199 118 64
+200 118 64
+201 118 64
+202 118 64
+203 118 64
+204 118 64
+205 118 64
+206 118 64
+207 118 64
+208 118 64
+209 118 64
+210 118 64
+211 118 64
+212 118 64
+213 118 64
+214 118 64
+215 118 64
+216 118 64
+217 118 64
+218 118 64
+219 118 64
+220 118 64
+221 118 64
+222 118 64
+223 118 64
+224 118 64
+225 118 64
+226 118 64
+227 118 64
+228 118 64
+229 118 64
+230 118 64
+231 118 64
+232 118 64
+233 118 64
+234 118 64
+235 118 64
+236 118 64
+237 118 64
+238 118 64
+239 118 64
+240 118 64
+241 118 64
+242 118 64
+243 118 64
+244 118 64
+245 118 64
+246 118 64
+247 118 64
+248 118 64
+249 118 64
+250 118 64
+251 118 64
+252 118 64
+253 118 64
+254 118 64
+255 118 64
+0 117 64
+1 117 64
+2 117 64
+3 117 64
+4 117 64
+5 117 64
+6 117 64
+7 117 64
+8 117 64
+9 117 64
+10 117 64
+11 117 64
+12 117 64
+13 117 64
+14 117 64
+15 117 64
+16 117 64
+17 117 64
+18 117 64
+19 117 64
+20 117 64
+21 117 64
+22 117 64
+23 117 64
+24 117 64
+25 117 64
+26 117 64
+27 117 64
+28 117 64
+29 117 64
+30 117 64
+31 117 64
+32 117 64
+33 117 64
+34 117 64
+35 117 64
+36 117 64
+37 117 64
+38 117 64
+39 117 64
+40 117 64
+41 117 64
+42 117 64
+43 117 64
+44 117 64
+45 117 64
+46 117 64
+47 117 64
+48 117 64
+49 117 64
+50 117 64
+51 117 64
+52 117 64
+53 117 64
+54 117 64
+55 117 64
+56 117 64
+57 117 64
+58 117 64
+59 117 64
+60 117 64
+61 117 64
+62 117 64
+63 117 64
+64 117 64
+65 117 64
+66 117 64
+67 117 64
+68 117 64
+69 117 64
+70 117 64
+71 117 64
+72 117 64
+73 117 64
+74 117 64
+75 117 64
+76 117 64
+77 117 64
+78 117 64
+79 117 64
+80 117 64
+81 117 64
+82 117 64
+83 117 64
+84 117 64
+85 117 64
+86 117 64
+87 117 64
+88 117 64
+89 117 64
+90 117 64
+91 117 64
+92 117 64
+93 117 64
+94 117 64
+95 117 64
+96 117 64
+97 117 64
+98 117 64
+99 117 64
+100 117 64
+101 117 64
+102 117 64
+103 117 64
+104 117 64
+105 117 64
+106 117 64
+107 117 64
+108 117 64
+109 117 64
+110 117 64
+111 117 64
+112 117 64
+113 117 64
+114 117 64
+115 117 64
+116 117 64
+117 117 64
+118 117 64
+119 117 64
+120 117 64
+121 117 64
+122 117 64
+123 117 64
+124 117 64
+125 117 64
+126 117 64
+127 117 64
+128 117 64
+129 117 64
+130 117 64
+131 117 64
+132 117 64
+133 117 64
+134 117 64
+135 117 64
+136 117 64
+137 117 64
+138 117 64
+139 117 64
+140 117 64
+141 117 64
+142 117 64
+143 117 64
+144 117 64
+145 117 64
+146 117 64
+147 117 64
+148 117 64
+149 117 64
+150 117 64
+151 117 64
+152 117 64
+153 117 64
+154 117 64
+155 117 64
+156 117 64
+157 117 64
+158 117 64
+159 117 64
+160 117 64
+161 117 64
+162 117 64
+163 117 64
+164 117 64
+165 117 64
+166 117 64
+167 117 64
+168 117 64
+169 117 64
+170 117 64
+171 117 64
+172 117 64
+173 117 64
+174 117 64
+175 117 64
+176 117 64
+177 117 64
+178 117 64
+179 117 64
+180 117 64
+181 117 64
+182 117 64
+183 117 64
+184 117 64
+185 117 64
+186 117 64
+187 117 64
+188 117 64
+189 117 64
+190 117 64
+191 117 64
+192 117 64
+193 117 64
+194 117 64
+195 117 64
+196 117 64
+197 117 64
+198 117 64
+199 117 64
+200 117 64
+201 117 64
+202 117 64
+203 117 64
+204 117 64
+205 117 64
+206 117 64
+207 117 64
+208 117 64
+209 117 64
+210 117 64
+211 117 64
+212 117 64
+213 117 64
+214 117 64
+215 117 64
+216 117 64
+217 117 64
+218 117 64
+219 117 64
+220 117 64
+221 117 64
+222 117 64
+223 117 64
+224 117 64
+225 117 64
+226 117 64
+227 117 64
+228 117 64
+229 117 64
+230 117 64
+231 117 64
+232 117 64
+233 117 64
+234 117 64
+235 117 64
+236 117 64
+237 117 64
+238 117 64
+239 117 64
+240 117 64
+241 117 64
+242 117 64
+243 117 64
+244 117 64
+245 117 64
+246 117 64
+247 117 64
+248 117 64
+249 117 64
+250 117 64
+251 117 64
+252 117 64
+253 117 64
+254 117 64
+255 117 64
+0 116 64
+1 116 64
+2 116 64
+3 116 64
+4 116 64
+5 116 64
+6 116 64
+7 116 64
+8 116 64
+9 116 64
+10 116 64
+11 116 64
+12 116 64
+13 116 64
+14 116 64
+15 116 64
+16 116 64
+17 116 64
+18 116 64
+19 116 64
+20 116 64
+21 116 64
+22 116 64
+23 116 64
+24 116 64
+25 116 64
+26 116 64
+27 116 64
+28 116 64
+29 116 64
+30 116 64
+31 116 64
+32 116 64
+33 116 64
+34 116 64
+35 116 64
+36 116 64
+37 116 64
+38 116 64
+39 116 64
+40 116 64
+41 116 64
+42 116 64
+43 116 64
+44 116 64
+45 116 64
+46 116 64
+47 116 64
+48 116 64
+49 116 64
+50 116 64
+51 116 64
+52 116 64
+53 116 64
+54 116 64
+55 116 64
+56 116 64
+57 116 64
+58 116 64
+59 116 64
+60 116 64
+61 116 64
+62 116 64
+63 116 64
+64 116 64
+65 116 64
+66 116 64
+67 116 64
+68 116 64
+69 116 64
+70 116 64
+71 116 64
+72 116 64
+73 116 64
+74 116 64
+75 116 64
+76 116 64
+77 116 64
+78 116 64
+79 116 64
+80 116 64
+81 116 64
+82 116 64
+83 116 64
+84 116 64
+85 116 64
+86 116 64
+87 116 64
+88 116 64
+89 116 64
+90 116 64
+91 116 64
+92 116 64
+93 116 64
+94 116 64
+95 116 64
+96 116 64
+97 116 64
+98 116 64
+99 116 64
+100 116 64
+101 116 64
+102 116 64
+103 116 64
+104 116 64
+105 116 64
+106 116 64
+107 116 64
+108 116 64
+109 116 64
+110 116 64
+111 116 64
+112 116 64
+113 116 64
+114 116 64
+115 116 64
+116 116 64
+117 116 64
+118 116 64
+119 116 64
+120 116 64
+121 116 64
+122 116 64
+123 116 64
+124 116 64
+125 116 64
+126 116 64
+127 116 64
+128 116 64
+129 116 64
+130 116 64
+131 116 64
+132 116 64
+133 116 64
+134 116 64
+135 116 64
+136 116 64
+137 116 64
+138 116 64
+139 116 64
+140 116 64
+141 116 64
+142 116 64
+143 116 64
+144 116 64
+145 116 64
+146 116 64
+147 116 64
+148 116 64
+149 116 64
+150 116 64
+151 116 64
+152 116 64
+153 116 64
+154 116 64
+155 116 64
+156 116 64
+157 116 64
+158 116 64
+159 116 64
+160 116 64
+161 116 64
+162 116 64
+163 116 64
+164 116 64
+165 116 64
+166 116 64
+167 116 64
+168 116 64
+169 116 64
+170 116 64
+171 116 64
+172 116 64
+173 116 64
+174 116 64
+175 116 64
+176 116 64
+177 116 64
+178 116 64
+179 116 64
+180 116 64
+181 116 64
+182 116 64
+183 116 64
+184 116 64
+185 116 64
+186 116 64
+187 116 64
+188 116 64
+189 116 64
+190 116 64
+191 116 64
+192 116 64
+193 116 64
+194 116 64
+195 116 64
+196 116 64
+197 116 64
+198 116 64
+199 116 64
+200 116 64
+201 116 64
+202 116 64
+203 116 64
+204 116 64
+205 116 64
+206 116 64
+207 116 64
+208 116 64
+209 116 64
+210 116 64
+211 116 64
+212 116 64
+213 116 64
+214 116 64
+215 116 64
+216 116 64
+217 116 64
+218 116 64
+219 116 64
+220 116 64
+221 116 64
+222 116 64
+223 116 64
+224 116 64
+225 116 64
+226 116 64
+227 116 64
+228 116 64
+229 116 64
+230 116 64
+231 116 64
+232 116 64
+233 116 64
+234 116 64
+235 116 64
+236 116 64
+237 116 64
+238 116 64
+239 116 64
+240 116 64
+241 116 64
+242 116 64
+243 116 64
+244 116 64
+245 116 64
+246 116 64
+247 116 64
+248 116 64
+249 116 64
+250 116 64
+251 116 64
+252 116 64
+253 116 64
+254 116 64
+255 116 64
+0 115 64
+1 115 64
+2 115 64
+3 115 64
+4 115 64
+5 115 64
+6 115 64
+7 115 64
+8 115 64
+9 115 64
+10 115 64
+11 115 64
+12 115 64
+13 115 64
+14 115 64
+15 115 64
+16 115 64
+17 115 64
+18 115 64
+19 115 64
+20 115 64
+21 115 64
+22 115 64
+23 115 64
+24 115 64
+25 115 64
+26 115 64
+27 115 64
+28 115 64
+29 115 64
+30 115 64
+31 115 64
+32 115 64
+33 115 64
+34 115 64
+35 115 64
+36 115 64
+37 115 64
+38 115 64
+39 115 64
+40 115 64
+41 115 64
+42 115 64
+43 115 64
+44 115 64
+45 115 64
+46 115 64
+47 115 64
+48 115 64
+49 115 64
+50 115 64
+51 115 64
+52 115 64
+53 115 64
+54 115 64
+55 115 64
+56 115 64
+57 115 64
+58 115 64
+59 115 64
+60 115 64
+61 115 64
+62 115 64
+63 115 64
+64 115 64
+65 115 64
+66 115 64
+67 115 64
+68 115 64
+69 115 64
+70 115 64
+71 115 64
+72 115 64
+73 115 64
+74 115 64
+75 115 64
+76 115 64
+77 115 64
+78 115 64
+79 115 64
+80 115 64
+81 115 64
+82 115 64
+83 115 64
+84 115 64
+85 115 64
+86 115 64
+87 115 64
+88 115 64
+89 115 64
+90 115 64
+91 115 64
+92 115 64
+93 115 64
+94 115 64
+95 115 64
+96 115 64
+97 115 64
+98 115 64
+99 115 64
+100 115 64
+101 115 64
+102 115 64
+103 115 64
+104 115 64
+105 115 64
+106 115 64
+107 115 64
+108 115 64
+109 115 64
+110 115 64
+111 115 64
+112 115 64
+113 115 64
+114 115 64
+115 115 64
+116 115 64
+117 115 64
+118 115 64
+119 115 64
+120 115 64
+121 115 64
+122 115 64
+123 115 64
+124 115 64
+125 115 64
+126 115 64
+127 115 64
+128 115 64
+129 115 64
+130 115 64
+131 115 64
+132 115 64
+133 115 64
+134 115 64
+135 115 64
+136 115 64
+137 115 64
+138 115 64
+139 115 64
+140 115 64
+141 115 64
+142 115 64
+143 115 64
+144 115 64
+145 115 64
+146 115 64
+147 115 64
+148 115 64
+149 115 64
+150 115 64
+151 115 64
+152 115 64
+153 115 64
+154 115 64
+155 115 64
+156 115 64
+157 115 64
+158 115 64
+159 115 64
+160 115 64
+161 115 64
+162 115 64
+163 115 64
+164 115 64
+165 115 64
+166 115 64
+167 115 64
+168 115 64
+169 115 64
+170 115 64
+171 115 64
+172 115 64
+173 115 64
+174 115 64
+175 115 64
+176 115 64
+177 115 64
+178 115 64
+179 115 64
+180 115 64
+181 115 64
+182 115 64
+183 115 64
+184 115 64
+185 115 64
+186 115 64
+187 115 64
+188 115 64
+189 115 64
+190 115 64
+191 115 64
+192 115 64
+193 115 64
+194 115 64
+195 115 64
+196 115 64
+197 115 64
+198 115 64
+199 115 64
+200 115 64
+201 115 64
+202 115 64
+203 115 64
+204 115 64
+205 115 64
+206 115 64
+207 115 64
+208 115 64
+209 115 64
+210 115 64
+211 115 64
+212 115 64
+213 115 64
+214 115 64
+215 115 64
+216 115 64
+217 115 64
+218 115 64
+219 115 64
+220 115 64
+221 115 64
+222 115 64
+223 115 64
+224 115 64
+225 115 64
+226 115 64
+227 115 64
+228 115 64
+229 115 64
+230 115 64
+231 115 64
+232 115 64
+233 115 64
+234 115 64
+235 115 64
+236 115 64
+237 115 64
+238 115 64
+239 115 64
+240 115 64
+241 115 64
+242 115 64
+243 115 64
+244 115 64
+245 115 64
+246 115 64
+247 115 64
+248 115 64
+249 115 64
+250 115 64
+251 115 64
+252 115 64
+253 115 64
+254 115 64
+255 115 64
+0 114 64
+1 114 64
+2 114 64
+3 114 64
+4 114 64
+5 114 64
+6 114 64
+7 114 64
+8 114 64
+9 114 64
+10 114 64
+11 114 64
+12 114 64
+13 114 64
+14 114 64
+15 114 64
+16 114 64
+17 114 64
+18 114 64
+19 114 64
+20 114 64
+21 114 64
+22 114 64
+23 114 64
+24 114 64
+25 114 64
+26 114 64
+27 114 64
+28 114 64
+29 114 64
+30 114 64
+31 114 64
+32 114 64
+33 114 64
+34 114 64
+35 114 64
+36 114 64
+37 114 64
+38 114 64
+39 114 64
+40 114 64
+41 114 64
+42 114 64
+43 114 64
+44 114 64
+45 114 64
+46 114 64
+47 114 64
+48 114 64
+49 114 64
+50 114 64
+51 114 64
+52 114 64
+53 114 64
+54 114 64
+55 114 64
+56 114 64
+57 114 64
+58 114 64
+59 114 64
+60 114 64
+61 114 64
+62 114 64
+63 114 64
+64 114 64
+65 114 64
+66 114 64
+67 114 64
+68 114 64
+69 114 64
+70 114 64
+71 114 64
+72 114 64
+73 114 64
+74 114 64
+75 114 64
+76 114 64
+77 114 64
+78 114 64
+79 114 64
+80 114 64
+81 114 64
+82 114 64
+83 114 64
+84 114 64
+85 114 64
+86 114 64
+87 114 64
+88 114 64
+89 114 64
+90 114 64
+91 114 64
+92 114 64
+93 114 64
+94 114 64
+95 114 64
+96 114 64
+97 114 64
+98 114 64
+99 114 64
+100 114 64
+101 114 64
+102 114 64
+103 114 64
+104 114 64
+105 114 64
+106 114 64
+107 114 64
+108 114 64
+109 114 64
+110 114 64
+111 114 64
+112 114 64
+113 114 64
+114 114 64
+115 114 64
+116 114 64
+117 114 64
+118 114 64
+119 114 64
+120 114 64
+121 114 64
+122 114 64
+123 114 64
+124 114 64
+125 114 64
+126 114 64
+127 114 64
+128 114 64
+129 114 64
+130 114 64
+131 114 64
+132 114 64
+133 114 64
+134 114 64
+135 114 64
+136 114 64
+137 114 64
+138 114 64
+139 114 64
+140 114 64
+141 114 64
+142 114 64
+143 114 64
+144 114 64
+145 114 64
+146 114 64
+147 114 64
+148 114 64
+149 114 64
+150 114 64
+151 114 64
+152 114 64
+153 114 64
+154 114 64
+155 114 64
+156 114 64
+157 114 64
+158 114 64
+159 114 64
+160 114 64
+161 114 64
+162 114 64
+163 114 64
+164 114 64
+165 114 64
+166 114 64
+167 114 64
+168 114 64
+169 114 64
+170 114 64
+171 114 64
+172 114 64
+173 114 64
+174 114 64
+175 114 64
+176 114 64
+177 114 64
+178 114 64
+179 114 64
+180 114 64
+181 114 64
+182 114 64
+183 114 64
+184 114 64
+185 114 64
+186 114 64
+187 114 64
+188 114 64
+189 114 64
+190 114 64
+191 114 64
+192 114 64
+193 114 64
+194 114 64
+195 114 64
+196 114 64
+197 114 64
+198 114 64
+199 114 64
+200 114 64
+201 114 64
+202 114 64
+203 114 64
+204 114 64
+205 114 64
+206 114 64
+207 114 64
+208 114 64
+209 114 64
+210 114 64
+211 114 64
+212 114 64
+213 114 64
+214 114 64
+215 114 64
+216 114 64
+217 114 64
+218 114 64
+219 114 64
+220 114 64
+221 114 64
+222 114 64
+223 114 64
+224 114 64
+225 114 64
+226 114 64
+227 114 64
+228 114 64
+229 114 64
+230 114 64
+231 114 64
+232 114 64
+233 114 64
+234 114 64
+235 114 64
+236 114 64
+237 114 64
+238 114 64
+239 114 64
+240 114 64
+241 114 64
+242 114 64
+243 114 64
+244 114 64
+245 114 64
+246 114 64
+247 114 64
+248 114 64
+249 114 64
+250 114 64
+251 114 64
+252 114 64
+253 114 64
+254 114 64
+255 114 64
+0 113 64
+1 113 64
+2 113 64
+3 113 64
+4 113 64
+5 113 64
+6 113 64
+7 113 64
+8 113 64
+9 113 64
+10 113 64
+11 113 64
+12 113 64
+13 113 64
+14 113 64
+15 113 64
+16 113 64
+17 113 64
+18 113 64
+19 113 64
+20 113 64
+21 113 64
+22 113 64
+23 113 64
+24 113 64
+25 113 64
+26 113 64
+27 113 64
+28 113 64
+29 113 64
+30 113 64
+31 113 64
+32 113 64
+33 113 64
+34 113 64
+35 113 64
+36 113 64
+37 113 64
+38 113 64
+39 113 64
+40 113 64
+41 113 64
+42 113 64
+43 113 64
+44 113 64
+45 113 64
+46 113 64
+47 113 64
+48 113 64
+49 113 64
+50 113 64
+51 113 64
+52 113 64
+53 113 64
+54 113 64
+55 113 64
+56 113 64
+57 113 64
+58 113 64
+59 113 64
+60 113 64
+61 113 64
+62 113 64
+63 113 64
+64 113 64
+65 113 64
+66 113 64
+67 113 64
+68 113 64
+69 113 64
+70 113 64
+71 113 64
+72 113 64
+73 113 64
+74 113 64
+75 113 64
+76 113 64
+77 113 64
+78 113 64
+79 113 64
+80 113 64
+81 113 64
+82 113 64
+83 113 64
+84 113 64
+85 113 64
+86 113 64
+87 113 64
+88 113 64
+89 113 64
+90 113 64
+91 113 64
+92 113 64
+93 113 64
+94 113 64
+95 113 64
+96 113 64
+97 113 64
+98 113 64
+99 113 64
+100 113 64
+101 113 64
+102 113 64
+103 113 64
+104 113 64
+105 113 64
+106 113 64
+107 113 64
+108 113 64
+109 113 64
+110 113 64
+111 113 64
+112 113 64
+113 113 64
+114 113 64
+115 113 64
+116 113 64
+117 113 64
+118 113 64
+119 113 64
+120 113 64
+121 113 64
+122 113 64
+123 113 64
+124 113 64
+125 113 64
+126 113 64
+127 113 64
+128 113 64
+129 113 64
+130 113 64
+131 113 64
+132 113 64
+133 113 64
+134 113 64
+135 113 64
+136 113 64
+137 113 64
+138 113 64
+139 113 64
+140 113 64
+141 113 64
+142 113 64
+143 113 64
+144 113 64
+145 113 64
+146 113 64
+147 113 64
+148 113 64
+149 113 64
+150 113 64
+151 113 64
+152 113 64
+153 113 64
+154 113 64
+155 113 64
+156 113 64
+157 113 64
+158 113 64
+159 113 64
+160 113 64
+161 113 64
+162 113 64
+163 113 64
+164 113 64
+165 113 64
+166 113 64
+167 113 64
+168 113 64
+169 113 64
+170 113 64
+171 113 64
+172 113 64
+173 113 64
+174 113 64
+175 113 64
+176 113 64
+177 113 64
+178 113 64
+179 113 64
+180 113 64
+181 113 64
+182 113 64
+183 113 64
+184 113 64
+185 113 64
+186 113 64
+187 113 64
+188 113 64
+189 113 64
+190 113 64
+191 113 64
+192 113 64
+193 113 64
+194 113 64
+195 113 64
+196 113 64
+197 113 64
+198 113 64
+199 113 64
+200 113 64
+201 113 64
+202 113 64
+203 113 64
+204 113 64
+205 113 64
+206 113 64
+207 113 64
+208 113 64
+209 113 64
+210 113 64
+211 113 64
+212 113 64
+213 113 64
+214 113 64
+215 113 64
+216 113 64
+217 113 64
+218 113 64
+219 113 64
+220 113 64
+221 113 64
+222 113 64
+223 113 64
+224 113 64
+225 113 64
+226 113 64
+227 113 64
+228 113 64
+229 113 64
+230 113 64
+231 113 64
+232 113 64
+233 113 64
+234 113 64
+235 113 64
+236 113 64
+237 113 64
+238 113 64
+239 113 64
+240 113 64
+241 113 64
+242 113 64
+243 113 64
+244 113 64
+245 113 64
+246 113 64
+247 113 64
+248 113 64
+249 113 64
+250 113 64
+251 113 64
+252 113 64
+253 113 64
+254 113 64
+255 113 64
+0 112 64
+1 112 64
+2 112 64
+3 112 64
+4 112 64
+5 112 64
+6 112 64
+7 112 64
+8 112 64
+9 112 64
+10 112 64
+11 112 64
+12 112 64
+13 112 64
+14 112 64
+15 112 64
+16 112 64
+17 112 64
+18 112 64
+19 112 64
+20 112 64
+21 112 64
+22 112 64
+23 112 64
+24 112 64
+25 112 64
+26 112 64
+27 112 64
+28 112 64
+29 112 64
+30 112 64
+31 112 64
+32 112 64
+33 112 64
+34 112 64
+35 112 64
+36 112 64
+37 112 64
+38 112 64
+39 112 64
+40 112 64
+41 112 64
+42 112 64
+43 112 64
+44 112 64
+45 112 64
+46 112 64
+47 112 64
+48 112 64
+49 112 64
+50 112 64
+51 112 64
+52 112 64
+53 112 64
+54 112 64
+55 112 64
+56 112 64
+57 112 64
+58 112 64
+59 112 64
+60 112 64
+61 112 64
+62 112 64
+63 112 64
+64 112 64
+65 112 64
+66 112 64
+67 112 64
+68 112 64
+69 112 64
+70 112 64
+71 112 64
+72 112 64
+73 112 64
+74 112 64
+75 112 64
+76 112 64
+77 112 64
+78 112 64
+79 112 64
+80 112 64
+81 112 64
+82 112 64
+83 112 64
+84 112 64
+85 112 64
+86 112 64
+87 112 64
+88 112 64
+89 112 64
+90 112 64
+91 112 64
+92 112 64
+93 112 64
+94 112 64
+95 112 64
+96 112 64
+97 112 64
+98 112 64
+99 112 64
+100 112 64
+101 112 64
+102 112 64
+103 112 64
+104 112 64
+105 112 64
+106 112 64
+107 112 64
+108 112 64
+109 112 64
+110 112 64
+111 112 64
+112 112 64
+113 112 64
+114 112 64
+115 112 64
+116 112 64
+117 112 64
+118 112 64
+119 112 64
+120 112 64
+121 112 64
+122 112 64
+123 112 64
+124 112 64
+125 112 64
+126 112 64
+127 112 64
+128 112 64
+129 112 64
+130 112 64
+131 112 64
+132 112 64
+133 112 64
+134 112 64
+135 112 64
+136 112 64
+137 112 64
+138 112 64
+139 112 64
+140 112 64
+141 112 64
+142 112 64
+143 112 64
+144 112 64
+145 112 64
+146 112 64
+147 112 64
+148 112 64
+149 112 64
+150 112 64
+151 112 64
+152 112 64
+153 112 64
+154 112 64
+155 112 64
+156 112 64
+157 112 64
+158 112 64
+159 112 64
+160 112 64
+161 112 64
+162 112 64
+163 112 64
+164 112 64
+165 112 64
+166 112 64
+167 112 64
+168 112 64
+169 112 64
+170 112 64
+171 112 64
+172 112 64
+173 112 64
+174 112 64
+175 112 64
+176 112 64
+177 112 64
+178 112 64
+179 112 64
+180 112 64
+181 112 64
+182 112 64
+183 112 64
+184 112 64
+185 112 64
+186 112 64
+187 112 64
+188 112 64
+189 112 64
+190 112 64
+191 112 64
+192 112 64
+193 112 64
+194 112 64
+195 112 64
+196 112 64
+197 112 64
+198 112 64
+199 112 64
+200 112 64
+201 112 64
+202 112 64
+203 112 64
+204 112 64
+205 112 64
+206 112 64
+207 112 64
+208 112 64
+209 112 64
+210 112 64
+211 112 64
+212 112 64
+213 112 64
+214 112 64
+215 112 64
+216 112 64
+217 112 64
+218 112 64
+219 112 64
+220 112 64
+221 112 64
+222 112 64
+223 112 64
+224 112 64
+225 112 64
+226 112 64
+227 112 64
+228 112 64
+229 112 64
+230 112 64
+231 112 64
+232 112 64
+233 112 64
+234 112 64
+235 112 64
+236 112 64
+237 112 64
+238 112 64
+239 112 64
+240 112 64
+241 112 64
+242 112 64
+243 112 64
+244 112 64
+245 112 64
+246 112 64
+247 112 64
+248 112 64
+249 112 64
+250 112 64
+251 112 64
+252 112 64
+253 112 64
+254 112 64
+255 112 64
+0 111 64
+1 111 64
+2 111 64
+3 111 64
+4 111 64
+5 111 64
+6 111 64
+7 111 64
+8 111 64
+9 111 64
+10 111 64
+11 111 64
+12 111 64
+13 111 64
+14 111 64
+15 111 64
+16 111 64
+17 111 64
+18 111 64
+19 111 64
+20 111 64
+21 111 64
+22 111 64
+23 111 64
+24 111 64
+25 111 64
+26 111 64
+27 111 64
+28 111 64
+29 111 64
+30 111 64
+31 111 64
+32 111 64
+33 111 64
+34 111 64
+35 111 64
+36 111 64
+37 111 64
+38 111 64
+39 111 64
+40 111 64
+41 111 64
+42 111 64
+43 111 64
+44 111 64
+45 111 64
+46 111 64
+47 111 64
+48 111 64
+49 111 64
+50 111 64
+51 111 64
+52 111 64
+53 111 64
+54 111 64
+55 111 64
+56 111 64
+57 111 64
+58 111 64
+59 111 64
+60 111 64
+61 111 64
+62 111 64
+63 111 64
+64 111 64
+65 111 64
+66 111 64
+67 111 64
+68 111 64
+69 111 64
+70 111 64
+71 111 64
+72 111 64
+73 111 64
+74 111 64
+75 111 64
+76 111 64
+77 111 64
+78 111 64
+79 111 64
+80 111 64
+81 111 64
+82 111 64
+83 111 64
+84 111 64
+85 111 64
+86 111 64
+87 111 64
+88 111 64
+89 111 64
+90 111 64
+91 111 64
+92 111 64
+93 111 64
+94 111 64
+95 111 64
+96 111 64
+97 111 64
+98 111 64
+99 111 64
+100 111 64
+101 111 64
+102 111 64
+103 111 64
+104 111 64
+105 111 64
+106 111 64
+107 111 64
+108 111 64
+109 111 64
+110 111 64
+111 111 64
+112 111 64
+113 111 64
+114 111 64
+115 111 64
+116 111 64
+117 111 64
+118 111 64
+119 111 64
+120 111 64
+121 111 64
+122 111 64
+123 111 64
+124 111 64
+125 111 64
+126 111 64
+127 111 64
+128 111 64
+129 111 64
+130 111 64
+131 111 64
+132 111 64
+133 111 64
+134 111 64
+135 111 64
+136 111 64
+137 111 64
+138 111 64
+139 111 64
+140 111 64
+141 111 64
+142 111 64
+143 111 64
+144 111 64
+145 111 64
+146 111 64
+147 111 64
+148 111 64
+149 111 64
+150 111 64
+151 111 64
+152 111 64
+153 111 64
+154 111 64
+155 111 64
+156 111 64
+157 111 64
+158 111 64
+159 111 64
+160 111 64
+161 111 64
+162 111 64
+163 111 64
+164 111 64
+165 111 64
+166 111 64
+167 111 64
+168 111 64
+169 111 64
+170 111 64
+171 111 64
+172 111 64
+173 111 64
+174 111 64
+175 111 64
+176 111 64
+177 111 64
+178 111 64
+179 111 64
+180 111 64
+181 111 64
+182 111 64
+183 111 64
+184 111 64
+185 111 64
+186 111 64
+187 111 64
+188 111 64
+189 111 64
+190 111 64
+191 111 64
+192 111 64
+193 111 64
+194 111 64
+195 111 64
+196 111 64
+197 111 64
+198 111 64
+199 111 64
+200 111 64
+201 111 64
+202 111 64
+203 111 64
+204 111 64
+205 111 64
+206 111 64
+207 111 64
+208 111 64
+209 111 64
+210 111 64
+211 111 64
+212 111 64
+213 111 64
+214 111 64
+215 111 64
+216 111 64
+217 111 64
+218 111 64
+219 111 64
+220 111 64
+221 111 64
+222 111 64
+223 111 64
+224 111 64
+225 111 64
+226 111 64
+227 111 64
+228 111 64
+229 111 64
+230 111 64
+231 111 64
+232 111 64
+233 111 64
+234 111 64
+235 111 64
+236 111 64
+237 111 64
+238 111 64
+239 111 64
+240 111 64
+241 111 64
+242 111 64
+243 111 64
+244 111 64
+245 111 64
+246 111 64
+247 111 64
+248 111 64
+249 111 64
+250 111 64
+251 111 64
+252 111 64
+253 111 64
+254 111 64
+255 111 64
+0 110 64
+1 110 64
+2 110 64
+3 110 64
+4 110 64
+5 110 64
+6 110 64
+7 110 64
+8 110 64
+9 110 64
+10 110 64
+11 110 64
+12 110 64
+13 110 64
+14 110 64
+15 110 64
+16 110 64
+17 110 64
+18 110 64
+19 110 64
+20 110 64
+21 110 64
+22 110 64
+23 110 64
+24 110 64
+25 110 64
+26 110 64
+27 110 64
+28 110 64
+29 110 64
+30 110 64
+31 110 64
+32 110 64
+33 110 64
+34 110 64
+35 110 64
+36 110 64
+37 110 64
+38 110 64
+39 110 64
+40 110 64
+41 110 64
+42 110 64
+43 110 64
+44 110 64
+45 110 64
+46 110 64
+47 110 64
+48 110 64
+49 110 64
+50 110 64
+51 110 64
+52 110 64
+53 110 64
+54 110 64
+55 110 64
+56 110 64
+57 110 64
+58 110 64
+59 110 64
+60 110 64
+61 110 64
+62 110 64
+63 110 64
+64 110 64
+65 110 64
+66 110 64
+67 110 64
+68 110 64
+69 110 64
+70 110 64
+71 110 64
+72 110 64
+73 110 64
+74 110 64
+75 110 64
+76 110 64
+77 110 64
+78 110 64
+79 110 64
+80 110 64
+81 110 64
+82 110 64
+83 110 64
+84 110 64
+85 110 64
+86 110 64
+87 110 64
+88 110 64
+89 110 64
+90 110 64
+91 110 64
+92 110 64
+93 110 64
+94 110 64
+95 110 64
+96 110 64
+97 110 64
+98 110 64
+99 110 64
+100 110 64
+101 110 64
+102 110 64
+103 110 64
+104 110 64
+105 110 64
+106 110 64
+107 110 64
+108 110 64
+109 110 64
+110 110 64
+111 110 64
+112 110 64
+113 110 64
+114 110 64
+115 110 64
+116 110 64
+117 110 64
+118 110 64
+119 110 64
+120 110 64
+121 110 64
+122 110 64
+123 110 64
+124 110 64
+125 110 64
+126 110 64
+127 110 64
+128 110 64
+129 110 64
+130 110 64
+131 110 64
+132 110 64
+133 110 64
+134 110 64
+135 110 64
+136 110 64
+137 110 64
+138 110 64
+139 110 64
+140 110 64
+141 110 64
+142 110 64
+143 110 64
+144 110 64
+145 110 64
+146 110 64
+147 110 64
+148 110 64
+149 110 64
+150 110 64
+151 110 64
+152 110 64
+153 110 64
+154 110 64
+155 110 64
+156 110 64
+157 110 64
+158 110 64
+159 110 64
+160 110 64
+161 110 64
+162 110 64
+163 110 64
+164 110 64
+165 110 64
+166 110 64
+167 110 64
+168 110 64
+169 110 64
+170 110 64
+171 110 64
+172 110 64
+173 110 64
+174 110 64
+175 110 64
+176 110 64
+177 110 64
+178 110 64
+179 110 64
+180 110 64
+181 110 64
+182 110 64
+183 110 64
+184 110 64
+185 110 64
+186 110 64
+187 110 64
+188 110 64
+189 110 64
+190 110 64
+191 110 64
+192 110 64
+193 110 64
+194 110 64
+195 110 64
+196 110 64
+197 110 64
+198 110 64
+199 110 64
+200 110 64
+201 110 64
+202 110 64
+203 110 64
+204 110 64
+205 110 64
+206 110 64
+207 110 64
+208 110 64
+209 110 64
+210 110 64
+211 110 64
+212 110 64
+213 110 64
+214 110 64
+215 110 64
+216 110 64
+217 110 64
+218 110 64
+219 110 64
+220 110 64
+221 110 64
+222 110 64
+223 110 64
+224 110 64
+225 110 64
+226 110 64
+227 110 64
+228 110 64
+229 110 64
+230 110 64
+231 110 64
+232 110 64
+233 110 64
+234 110 64
+235 110 64
+236 110 64
+237 110 64
+238 110 64
+239 110 64
+240 110 64
+241 110 64
+242 110 64
+243 110 64
+244 110 64
+245 110 64
+246 110 64
+247 110 64
+248 110 64
+249 110 64
+250 110 64
+251 110 64
+252 110 64
+253 110 64
+254 110 64
+255 110 64
+0 109 64
+1 109 64
+2 109 64
+3 109 64
+4 109 64
+5 109 64
+6 109 64
+7 109 64
+8 109 64
+9 109 64
+10 109 64
+11 109 64
+12 109 64
+13 109 64
+14 109 64
+15 109 64
+16 109 64
+17 109 64
+18 109 64
+19 109 64
+20 109 64
+21 109 64
+22 109 64
+23 109 64
+24 109 64
+25 109 64
+26 109 64
+27 109 64
+28 109 64
+29 109 64
+30 109 64
+31 109 64
+32 109 64
+33 109 64
+34 109 64
+35 109 64
+36 109 64
+37 109 64
+38 109 64
+39 109 64
+40 109 64
+41 109 64
+42 109 64
+43 109 64
+44 109 64
+45 109 64
+46 109 64
+47 109 64
+48 109 64
+49 109 64
+50 109 64
+51 109 64
+52 109 64
+53 109 64
+54 109 64
+55 109 64
+56 109 64
+57 109 64
+58 109 64
+59 109 64
+60 109 64
+61 109 64
+62 109 64
+63 109 64
+64 109 64
+65 109 64
+66 109 64
+67 109 64
+68 109 64
+69 109 64
+70 109 64
+71 109 64
+72 109 64
+73 109 64
+74 109 64
+75 109 64
+76 109 64
+77 109 64
+78 109 64
+79 109 64
+80 109 64
+81 109 64
+82 109 64
+83 109 64
+84 109 64
+85 109 64
+86 109 64
+87 109 64
+88 109 64
+89 109 64
+90 109 64
+91 109 64
+92 109 64
+93 109 64
+94 109 64
+95 109 64
+96 109 64
+97 109 64
+98 109 64
+99 109 64
+100 109 64
+101 109 64
+102 109 64
+103 109 64
+104 109 64
+105 109 64
+106 109 64
+107 109 64
+108 109 64
+109 109 64
+110 109 64
+111 109 64
+112 109 64
+113 109 64
+114 109 64
+115 109 64
+116 109 64
+117 109 64
+118 109 64
+119 109 64
+120 109 64
+121 109 64
+122 109 64
+123 109 64
+124 109 64
+125 109 64
+126 109 64
+127 109 64
+128 109 64
+129 109 64
+130 109 64
+131 109 64
+132 109 64
+133 109 64
+134 109 64
+135 109 64
+136 109 64
+137 109 64
+138 109 64
+139 109 64
+140 109 64
+141 109 64
+142 109 64
+143 109 64
+144 109 64
+145 109 64
+146 109 64
+147 109 64
+148 109 64
+149 109 64
+150 109 64
+151 109 64
+152 109 64
+153 109 64
+154 109 64
+155 109 64
+156 109 64
+157 109 64
+158 109 64
+159 109 64
+160 109 64
+161 109 64
+162 109 64
+163 109 64
+164 109 64
+165 109 64
+166 109 64
+167 109 64
+168 109 64
+169 109 64
+170 109 64
+171 109 64
+172 109 64
+173 109 64
+174 109 64
+175 109 64
+176 109 64
+177 109 64
+178 109 64
+179 109 64
+180 109 64
+181 109 64
+182 109 64
+183 109 64
+184 109 64
+185 109 64
+186 109 64
+187 109 64
+188 109 64
+189 109 64
+190 109 64
+191 109 64
+192 109 64
+193 109 64
+194 109 64
+195 109 64
+196 109 64
+197 109 64
+198 109 64
+199 109 64
+200 109 64
+201 109 64
+202 109 64
+203 109 64
+204 109 64
+205 109 64
+206 109 64
+207 109 64
+208 109 64
+209 109 64
+210 109 64
+211 109 64
+212 109 64
+213 109 64
+214 109 64
+215 109 64
+216 109 64
+217 109 64
+218 109 64
+219 109 64
+220 109 64
+221 109 64
+222 109 64
+223 109 64
+224 109 64
+225 109 64
+226 109 64
+227 109 64
+228 109 64
+229 109 64
+230 109 64
+231 109 64
+232 109 64
+233 109 64
+234 109 64
+235 109 64
+236 109 64
+237 109 64
+238 109 64
+239 109 64
+240 109 64
+241 109 64
+242 109 64
+243 109 64
+244 109 64
+245 109 64
+246 109 64
+247 109 64
+248 109 64
+249 109 64
+250 109 64
+251 109 64
+252 109 64
+253 109 64
+254 109 64
+255 109 64
+0 108 64
+1 108 64
+2 108 64
+3 108 64
+4 108 64
+5 108 64
+6 108 64
+7 108 64
+8 108 64
+9 108 64
+10 108 64
+11 108 64
+12 108 64
+13 108 64
+14 108 64
+15 108 64
+16 108 64
+17 108 64
+18 108 64
+19 108 64
+20 108 64
+21 108 64
+22 108 64
+23 108 64
+24 108 64
+25 108 64
+26 108 64
+27 108 64
+28 108 64
+29 108 64
+30 108 64
+31 108 64
+32 108 64
+33 108 64
+34 108 64
+35 108 64
+36 108 64
+37 108 64
+38 108 64
+39 108 64
+40 108 64
+41 108 64
+42 108 64
+43 108 64
+44 108 64
+45 108 64
+46 108 64
+47 108 64
+48 108 64
+49 108 64
+50 108 64
+51 108 64
+52 108 64
+53 108 64
+54 108 64
+55 108 64
+56 108 64
+57 108 64
+58 108 64
+59 108 64
+60 108 64
+61 108 64
+62 108 64
+63 108 64
+64 108 64
+65 108 64
+66 108 64
+67 108 64
+68 108 64
+69 108 64
+70 108 64
+71 108 64
+72 108 64
+73 108 64
+74 108 64
+75 108 64
+76 108 64
+77 108 64
+78 108 64
+79 108 64
+80 108 64
+81 108 64
+82 108 64
+83 108 64
+84 108 64
+85 108 64
+86 108 64
+87 108 64
+88 108 64
+89 108 64
+90 108 64
+91 108 64
+92 108 64
+93 108 64
+94 108 64
+95 108 64
+96 108 64
+97 108 64
+98 108 64
+99 108 64
+100 108 64
+101 108 64
+102 108 64
+103 108 64
+104 108 64
+105 108 64
+106 108 64
+107 108 64
+108 108 64
+109 108 64
+110 108 64
+111 108 64
+112 108 64
+113 108 64
+114 108 64
+115 108 64
+116 108 64
+117 108 64
+118 108 64
+119 108 64
+120 108 64
+121 108 64
+122 108 64
+123 108 64
+124 108 64
+125 108 64
+126 108 64
+127 108 64
+128 108 64
+129 108 64
+130 108 64
+131 108 64
+132 108 64
+133 108 64
+134 108 64
+135 108 64
+136 108 64
+137 108 64
+138 108 64
+139 108 64
+140 108 64
+141 108 64
+142 108 64
+143 108 64
+144 108 64
+145 108 64
+146 108 64
+147 108 64
+148 108 64
+149 108 64
+150 108 64
+151 108 64
+152 108 64
+153 108 64
+154 108 64
+155 108 64
+156 108 64
+157 108 64
+158 108 64
+159 108 64
+160 108 64
+161 108 64
+162 108 64
+163 108 64
+164 108 64
+165 108 64
+166 108 64
+167 108 64
+168 108 64
+169 108 64
+170 108 64
+171 108 64
+172 108 64
+173 108 64
+174 108 64
+175 108 64
+176 108 64
+177 108 64
+178 108 64
+179 108 64
+180 108 64
+181 108 64
+182 108 64
+183 108 64
+184 108 64
+185 108 64
+186 108 64
+187 108 64
+188 108 64
+189 108 64
+190 108 64
+191 108 64
+192 108 64
+193 108 64
+194 108 64
+195 108 64
+196 108 64
+197 108 64
+198 108 64
+199 108 64
+200 108 64
+201 108 64
+202 108 64
+203 108 64
+204 108 64
+205 108 64
+206 108 64
+207 108 64
+208 108 64
+209 108 64
+210 108 64
+211 108 64
+212 108 64
+213 108 64
+214 108 64
+215 108 64
+216 108 64
+217 108 64
+218 108 64
+219 108 64
+220 108 64
+221 108 64
+222 108 64
+223 108 64
+224 108 64
+225 108 64
+226 108 64
+227 108 64
+228 108 64
+229 108 64
+230 108 64
+231 108 64
+232 108 64
+233 108 64
+234 108 64
+235 108 64
+236 108 64
+237 108 64
+238 108 64
+239 108 64
+240 108 64
+241 108 64
+242 108 64
+243 108 64
+244 108 64
+245 108 64
+246 108 64
+247 108 64
+248 108 64
+249 108 64
+250 108 64
+251 108 64
+252 108 64
+253 108 64
+254 108 64
+255 108 64
+0 107 64
+1 107 64
+2 107 64
+3 107 64
+4 107 64
+5 107 64
+6 107 64
+7 107 64
+8 107 64
+9 107 64
+10 107 64
+11 107 64
+12 107 64
+13 107 64
+14 107 64
+15 107 64
+16 107 64
+17 107 64
+18 107 64
+19 107 64
+20 107 64
+21 107 64
+22 107 64
+23 107 64
+24 107 64
+25 107 64
+26 107 64
+27 107 64
+28 107 64
+29 107 64
+30 107 64
+31 107 64
+32 107 64
+33 107 64
+34 107 64
+35 107 64
+36 107 64
+37 107 64
+38 107 64
+39 107 64
+40 107 64
+41 107 64
+42 107 64
+43 107 64
+44 107 64
+45 107 64
+46 107 64
+47 107 64
+48 107 64
+49 107 64
+50 107 64
+51 107 64
+52 107 64
+53 107 64
+54 107 64
+55 107 64
+56 107 64
+57 107 64
+58 107 64
+59 107 64
+60 107 64
+61 107 64
+62 107 64
+63 107 64
+64 107 64
+65 107 64
+66 107 64
+67 107 64
+68 107 64
+69 107 64
+70 107 64
+71 107 64
+72 107 64
+73 107 64
+74 107 64
+75 107 64
+76 107 64
+77 107 64
+78 107 64
+79 107 64
+80 107 64
+81 107 64
+82 107 64
+83 107 64
+84 107 64
+85 107 64
+86 107 64
+87 107 64
+88 107 64
+89 107 64
+90 107 64
+91 107 64
+92 107 64
+93 107 64
+94 107 64
+95 107 64
+96 107 64
+97 107 64
+98 107 64
+99 107 64
+100 107 64
+101 107 64
+102 107 64
+103 107 64
+104 107 64
+105 107 64
+106 107 64
+107 107 64
+108 107 64
+109 107 64
+110 107 64
+111 107 64
+112 107 64
+113 107 64
+114 107 64
+115 107 64
+116 107 64
+117 107 64
+118 107 64
+119 107 64
+120 107 64
+121 107 64
+122 107 64
+123 107 64
+124 107 64
+125 107 64
+126 107 64
+127 107 64
+128 107 64
+129 107 64
+130 107 64
+131 107 64
+132 107 64
+133 107 64
+134 107 64
+135 107 64
+136 107 64
+137 107 64
+138 107 64
+139 107 64
+140 107 64
+141 107 64
+142 107 64
+143 107 64
+144 107 64
+145 107 64
+146 107 64
+147 107 64
+148 107 64
+149 107 64
+150 107 64
+151 107 64
+152 107 64
+153 107 64
+154 107 64
+155 107 64
+156 107 64
+157 107 64
+158 107 64
+159 107 64
+160 107 64
+161 107 64
+162 107 64
+163 107 64
+164 107 64
+165 107 64
+166 107 64
+167 107 64
+168 107 64
+169 107 64
+170 107 64
+171 107 64
+172 107 64
+173 107 64
+174 107 64
+175 107 64
+176 107 64
+177 107 64
+178 107 64
+179 107 64
+180 107 64
+181 107 64
+182 107 64
+183 107 64
+184 107 64
+185 107 64
+186 107 64
+187 107 64
+188 107 64
+189 107 64
+190 107 64
+191 107 64
+192 107 64
+193 107 64
+194 107 64
+195 107 64
+196 107 64
+197 107 64
+198 107 64
+199 107 64
+200 107 64
+201 107 64
+202 107 64
+203 107 64
+204 107 64
+205 107 64
+206 107 64
+207 107 64
+208 107 64
+209 107 64
+210 107 64
+211 107 64
+212 107 64
+213 107 64
+214 107 64
+215 107 64
+216 107 64
+217 107 64
+218 107 64
+219 107 64
+220 107 64
+221 107 64
+222 107 64
+223 107 64
+224 107 64
+225 107 64
+226 107 64
+227 107 64
+228 107 64
+229 107 64
+230 107 64
+231 107 64
+232 107 64
+233 107 64
+234 107 64
+235 107 64
+236 107 64
+237 107 64
+238 107 64
+239 107 64
+240 107 64
+241 107 64
+242 107 64
+243 107 64
+244 107 64
+245 107 64
+246 107 64
+247 107 64
+248 107 64
+249 107 64
+250 107 64
+251 107 64
+252 107 64
+253 107 64
+254 107 64
+255 107 64
+0 106 64
+1 106 64
+2 106 64
+3 106 64
+4 106 64
+5 106 64
+6 106 64
+7 106 64
+8 106 64
+9 106 64
+10 106 64
+11 106 64
+12 106 64
+13 106 64
+14 106 64
+15 106 64
+16 106 64
+17 106 64
+18 106 64
+19 106 64
+20 106 64
+21 106 64
+22 106 64
+23 106 64
+24 106 64
+25 106 64
+26 106 64
+27 106 64
+28 106 64
+29 106 64
+30 106 64
+31 106 64
+32 106 64
+33 106 64
+34 106 64
+35 106 64
+36 106 64
+37 106 64
+38 106 64
+39 106 64
+40 106 64
+41 106 64
+42 106 64
+43 106 64
+44 106 64
+45 106 64
+46 106 64
+47 106 64
+48 106 64
+49 106 64
+50 106 64
+51 106 64
+52 106 64
+53 106 64
+54 106 64
+55 106 64
+56 106 64
+57 106 64
+58 106 64
+59 106 64
+60 106 64
+61 106 64
+62 106 64
+63 106 64
+64 106 64
+65 106 64
+66 106 64
+67 106 64
+68 106 64
+69 106 64
+70 106 64
+71 106 64
+72 106 64
+73 106 64
+74 106 64
+75 106 64
+76 106 64
+77 106 64
+78 106 64
+79 106 64
+80 106 64
+81 106 64
+82 106 64
+83 106 64
+84 106 64
+85 106 64
+86 106 64
+87 106 64
+88 106 64
+89 106 64
+90 106 64
+91 106 64
+92 106 64
+93 106 64
+94 106 64
+95 106 64
+96 106 64
+97 106 64
+98 106 64
+99 106 64
+100 106 64
+101 106 64
+102 106 64
+103 106 64
+104 106 64
+105 106 64
+106 106 64
+107 106 64
+108 106 64
+109 106 64
+110 106 64
+111 106 64
+112 106 64
+113 106 64
+114 106 64
+115 106 64
+116 106 64
+117 106 64
+118 106 64
+119 106 64
+120 106 64
+121 106 64
+122 106 64
+123 106 64
+124 106 64
+125 106 64
+126 106 64
+127 106 64
+128 106 64
+129 106 64
+130 106 64
+131 106 64
+132 106 64
+133 106 64
+134 106 64
+135 106 64
+136 106 64
+137 106 64
+138 106 64
+139 106 64
+140 106 64
+141 106 64
+142 106 64
+143 106 64
+144 106 64
+145 106 64
+146 106 64
+147 106 64
+148 106 64
+149 106 64
+150 106 64
+151 106 64
+152 106 64
+153 106 64
+154 106 64
+155 106 64
+156 106 64
+157 106 64
+158 106 64
+159 106 64
+160 106 64
+161 106 64
+162 106 64
+163 106 64
+164 106 64
+165 106 64
+166 106 64
+167 106 64
+168 106 64
+169 106 64
+170 106 64
+171 106 64
+172 106 64
+173 106 64
+174 106 64
+175 106 64
+176 106 64
+177 106 64
+178 106 64
+179 106 64
+180 106 64
+181 106 64
+182 106 64
+183 106 64
+184 106 64
+185 106 64
+186 106 64
+187 106 64
+188 106 64
+189 106 64
+190 106 64
+191 106 64
+192 106 64
+193 106 64
+194 106 64
+195 106 64
+196 106 64
+197 106 64
+198 106 64
+199 106 64
+200 106 64
+201 106 64
+202 106 64
+203 106 64
+204 106 64
+205 106 64
+206 106 64
+207 106 64
+208 106 64
+209 106 64
+210 106 64
+211 106 64
+212 106 64
+213 106 64
+214 106 64
+215 106 64
+216 106 64
+217 106 64
+218 106 64
+219 106 64
+220 106 64
+221 106 64
+222 106 64
+223 106 64
+224 106 64
+225 106 64
+226 106 64
+227 106 64
+228 106 64
+229 106 64
+230 106 64
+231 106 64
+232 106 64
+233 106 64
+234 106 64
+235 106 64
+236 106 64
+237 106 64
+238 106 64
+239 106 64
+240 106 64
+241 106 64
+242 106 64
+243 106 64
+244 106 64
+245 106 64
+246 106 64
+247 106 64
+248 106 64
+249 106 64
+250 106 64
+251 106 64
+252 106 64
+253 106 64
+254 106 64
+255 106 64
+0 105 64
+1 105 64
+2 105 64
+3 105 64
+4 105 64
+5 105 64
+6 105 64
+7 105 64
+8 105 64
+9 105 64
+10 105 64
+11 105 64
+12 105 64
+13 105 64
+14 105 64
+15 105 64
+16 105 64
+17 105 64
+18 105 64
+19 105 64
+20 105 64
+21 105 64
+22 105 64
+23 105 64
+24 105 64
+25 105 64
+26 105 64
+27 105 64
+28 105 64
+29 105 64
+30 105 64
+31 105 64
+32 105 64
+33 105 64
+34 105 64
+35 105 64
+36 105 64
+37 105 64
+38 105 64
+39 105 64
+40 105 64
+41 105 64
+42 105 64
+43 105 64
+44 105 64
+45 105 64
+46 105 64
+47 105 64
+48 105 64
+49 105 64
+50 105 64
+51 105 64
+52 105 64
+53 105 64
+54 105 64
+55 105 64
+56 105 64
+57 105 64
+58 105 64
+59 105 64
+60 105 64
+61 105 64
+62 105 64
+63 105 64
+64 105 64
+65 105 64
+66 105 64
+67 105 64
+68 105 64
+69 105 64
+70 105 64
+71 105 64
+72 105 64
+73 105 64
+74 105 64
+75 105 64
+76 105 64
+77 105 64
+78 105 64
+79 105 64
+80 105 64
+81 105 64
+82 105 64
+83 105 64
+84 105 64
+85 105 64
+86 105 64
+87 105 64
+88 105 64
+89 105 64
+90 105 64
+91 105 64
+92 105 64
+93 105 64
+94 105 64
+95 105 64
+96 105 64
+97 105 64
+98 105 64
+99 105 64
+100 105 64
+101 105 64
+102 105 64
+103 105 64
+104 105 64
+105 105 64
+106 105 64
+107 105 64
+108 105 64
+109 105 64
+110 105 64
+111 105 64
+112 105 64
+113 105 64
+114 105 64
+115 105 64
+116 105 64
+117 105 64
+118 105 64
+119 105 64
+120 105 64
+121 105 64
+122 105 64
+123 105 64
+124 105 64
+125 105 64
+126 105 64
+127 105 64
+128 105 64
+129 105 64
+130 105 64
+131 105 64
+132 105 64
+133 105 64
+134 105 64
+135 105 64
+136 105 64
+137 105 64
+138 105 64
+139 105 64
+140 105 64
+141 105 64
+142 105 64
+143 105 64
+144 105 64
+145 105 64
+146 105 64
+147 105 64
+148 105 64
+149 105 64
+150 105 64
+151 105 64
+152 105 64
+153 105 64
+154 105 64
+155 105 64
+156 105 64
+157 105 64
+158 105 64
+159 105 64
+160 105 64
+161 105 64
+162 105 64
+163 105 64
+164 105 64
+165 105 64
+166 105 64
+167 105 64
+168 105 64
+169 105 64
+170 105 64
+171 105 64
+172 105 64
+173 105 64
+174 105 64
+175 105 64
+176 105 64
+177 105 64
+178 105 64
+179 105 64
+180 105 64
+181 105 64
+182 105 64
+183 105 64
+184 105 64
+185 105 64
+186 105 64
+187 105 64
+188 105 64
+189 105 64
+190 105 64
+191 105 64
+192 105 64
+193 105 64
+194 105 64
+195 105 64
+196 105 64
+197 105 64
+198 105 64
+199 105 64
+200 105 64
+201 105 64
+202 105 64
+203 105 64
+204 105 64
+205 105 64
+206 105 64
+207 105 64
+208 105 64
+209 105 64
+210 105 64
+211 105 64
+212 105 64
+213 105 64
+214 105 64
+215 105 64
+216 105 64
+217 105 64
+218 105 64
+219 105 64
+220 105 64
+221 105 64
+222 105 64
+223 105 64
+224 105 64
+225 105 64
+226 105 64
+227 105 64
+228 105 64
+229 105 64
+230 105 64
+231 105 64
+232 105 64
+233 105 64
+234 105 64
+235 105 64
+236 105 64
+237 105 64
+238 105 64
+239 105 64
+240 105 64
+241 105 64
+242 105 64
+243 105 64
+244 105 64
+245 105 64
+246 105 64
+247 105 64
+248 105 64
+249 105 64
+250 105 64
+251 105 64
+252 105 64
+253 105 64
+254 105 64
+255 105 64
+0 104 64
+1 104 64
+2 104 64
+3 104 64
+4 104 64
+5 104 64
+6 104 64
+7 104 64
+8 104 64
+9 104 64
+10 104 64
+11 104 64
+12 104 64
+13 104 64
+14 104 64
+15 104 64
+16 104 64
+17 104 64
+18 104 64
+19 104 64
+20 104 64
+21 104 64
+22 104 64
+23 104 64
+24 104 64
+25 104 64
+26 104 64
+27 104 64
+28 104 64
+29 104 64
+30 104 64
+31 104 64
+32 104 64
+33 104 64
+34 104 64
+35 104 64
+36 104 64
+37 104 64
+38 104 64
+39 104 64
+40 104 64
+41 104 64
+42 104 64
+43 104 64
+44 104 64
+45 104 64
+46 104 64
+47 104 64
+48 104 64
+49 104 64
+50 104 64
+51 104 64
+52 104 64
+53 104 64
+54 104 64
+55 104 64
+56 104 64
+57 104 64
+58 104 64
+59 104 64
+60 104 64
+61 104 64
+62 104 64
+63 104 64
+64 104 64
+65 104 64
+66 104 64
+67 104 64
+68 104 64
+69 104 64
+70 104 64
+71 104 64
+72 104 64
+73 104 64
+74 104 64
+75 104 64
+76 104 64
+77 104 64
+78 104 64
+79 104 64
+80 104 64
+81 104 64
+82 104 64
+83 104 64
+84 104 64
+85 104 64
+86 104 64
+87 104 64
+88 104 64
+89 104 64
+90 104 64
+91 104 64
+92 104 64
+93 104 64
+94 104 64
+95 104 64
+96 104 64
+97 104 64
+98 104 64
+99 104 64
+100 104 64
+101 104 64
+102 104 64
+103 104 64
+104 104 64
+105 104 64
+106 104 64
+107 104 64
+108 104 64
+109 104 64
+110 104 64
+111 104 64
+112 104 64
+113 104 64
+114 104 64
+115 104 64
+116 104 64
+117 104 64
+118 104 64
+119 104 64
+120 104 64
+121 104 64
+122 104 64
+123 104 64
+124 104 64
+125 104 64
+126 104 64
+127 104 64
+128 104 64
+129 104 64
+130 104 64
+131 104 64
+132 104 64
+133 104 64
+134 104 64
+135 104 64
+136 104 64
+137 104 64
+138 104 64
+139 104 64
+140 104 64
+141 104 64
+142 104 64
+143 104 64
+144 104 64
+145 104 64
+146 104 64
+147 104 64
+148 104 64
+149 104 64
+150 104 64
+151 104 64
+152 104 64
+153 104 64
+154 104 64
+155 104 64
+156 104 64
+157 104 64
+158 104 64
+159 104 64
+160 104 64
+161 104 64
+162 104 64
+163 104 64
+164 104 64
+165 104 64
+166 104 64
+167 104 64
+168 104 64
+169 104 64
+170 104 64
+171 104 64
+172 104 64
+173 104 64
+174 104 64
+175 104 64
+176 104 64
+177 104 64
+178 104 64
+179 104 64
+180 104 64
+181 104 64
+182 104 64
+183 104 64
+184 104 64
+185 104 64
+186 104 64
+187 104 64
+188 104 64
+189 104 64
+190 104 64
+191 104 64
+192 104 64
+193 104 64
+194 104 64
+195 104 64
+196 104 64
+197 104 64
+198 104 64
+199 104 64
+200 104 64
+201 104 64
+202 104 64
+203 104 64
+204 104 64
+205 104 64
+206 104 64
+207 104 64
+208 104 64
+209 104 64
+210 104 64
+211 104 64
+212 104 64
+213 104 64
+214 104 64
+215 104 64
+216 104 64
+217 104 64
+218 104 64
+219 104 64
+220 104 64
+221 104 64
+222 104 64
+223 104 64
+224 104 64
+225 104 64
+226 104 64
+227 104 64
+228 104 64
+229 104 64
+230 104 64
+231 104 64
+232 104 64
+233 104 64
+234 104 64
+235 104 64
+236 104 64
+237 104 64
+238 104 64
+239 104 64
+240 104 64
+241 104 64
+242 104 64
+243 104 64
+244 104 64
+245 104 64
+246 104 64
+247 104 64
+248 104 64
+249 104 64
+250 104 64
+251 104 64
+252 104 64
+253 104 64
+254 104 64
+255 104 64
+0 103 64
+1 103 64
+2 103 64
+3 103 64
+4 103 64
+5 103 64
+6 103 64
+7 103 64
+8 103 64
+9 103 64
+10 103 64
+11 103 64
+12 103 64
+13 103 64
+14 103 64
+15 103 64
+16 103 64
+17 103 64
+18 103 64
+19 103 64
+20 103 64
+21 103 64
+22 103 64
+23 103 64
+24 103 64
+25 103 64
+26 103 64
+27 103 64
+28 103 64
+29 103 64
+30 103 64
+31 103 64
+32 103 64
+33 103 64
+34 103 64
+35 103 64
+36 103 64
+37 103 64
+38 103 64
+39 103 64
+40 103 64
+41 103 64
+42 103 64
+43 103 64
+44 103 64
+45 103 64
+46 103 64
+47 103 64
+48 103 64
+49 103 64
+50 103 64
+51 103 64
+52 103 64
+53 103 64
+54 103 64
+55 103 64
+56 103 64
+57 103 64
+58 103 64
+59 103 64
+60 103 64
+61 103 64
+62 103 64
+63 103 64
+64 103 64
+65 103 64
+66 103 64
+67 103 64
+68 103 64
+69 103 64
+70 103 64
+71 103 64
+72 103 64
+73 103 64
+74 103 64
+75 103 64
+76 103 64
+77 103 64
+78 103 64
+79 103 64
+80 103 64
+81 103 64
+82 103 64
+83 103 64
+84 103 64
+85 103 64
+86 103 64
+87 103 64
+88 103 64
+89 103 64
+90 103 64
+91 103 64
+92 103 64
+93 103 64
+94 103 64
+95 103 64
+96 103 64
+97 103 64
+98 103 64
+99 103 64
+100 103 64
+101 103 64
+102 103 64
+103 103 64
+104 103 64
+105 103 64
+106 103 64
+107 103 64
+108 103 64
+109 103 64
+110 103 64
+111 103 64
+112 103 64
+113 103 64
+114 103 64
+115 103 64
+116 103 64
+117 103 64
+118 103 64
+119 103 64
+120 103 64
+121 103 64
+122 103 64
+123 103 64
+124 103 64
+125 103 64
+126 103 64
+127 103 64
+128 103 64
+129 103 64
+130 103 64
+131 103 64
+132 103 64
+133 103 64
+134 103 64
+135 103 64
+136 103 64
+137 103 64
+138 103 64
+139 103 64
+140 103 64
+141 103 64
+142 103 64
+143 103 64
+144 103 64
+145 103 64
+146 103 64
+147 103 64
+148 103 64
+149 103 64
+150 103 64
+151 103 64
+152 103 64
+153 103 64
+154 103 64
+155 103 64
+156 103 64
+157 103 64
+158 103 64
+159 103 64
+160 103 64
+161 103 64
+162 103 64
+163 103 64
+164 103 64
+165 103 64
+166 103 64
+167 103 64
+168 103 64
+169 103 64
+170 103 64
+171 103 64
+172 103 64
+173 103 64
+174 103 64
+175 103 64
+176 103 64
+177 103 64
+178 103 64
+179 103 64
+180 103 64
+181 103 64
+182 103 64
+183 103 64
+184 103 64
+185 103 64
+186 103 64
+187 103 64
+188 103 64
+189 103 64
+190 103 64
+191 103 64
+192 103 64
+193 103 64
+194 103 64
+195 103 64
+196 103 64
+197 103 64
+198 103 64
+199 103 64
+200 103 64
+201 103 64
+202 103 64
+203 103 64
+204 103 64
+205 103 64
+206 103 64
+207 103 64
+208 103 64
+209 103 64
+210 103 64
+211 103 64
+212 103 64
+213 103 64
+214 103 64
+215 103 64
+216 103 64
+217 103 64
+218 103 64
+219 103 64
+220 103 64
+221 103 64
+222 103 64
+223 103 64
+224 103 64
+225 103 64
+226 103 64
+227 103 64
+228 103 64
+229 103 64
+230 103 64
+231 103 64
+232 103 64
+233 103 64
+234 103 64
+235 103 64
+236 103 64
+237 103 64
+238 103 64
+239 103 64
+240 103 64
+241 103 64
+242 103 64
+243 103 64
+244 103 64
+245 103 64
+246 103 64
+247 103 64
+248 103 64
+249 103 64
+250 103 64
+251 103 64
+252 103 64
+253 103 64
+254 103 64
+255 103 64
+0 102 64
+1 102 64
+2 102 64
+3 102 64
+4 102 64
+5 102 64
+6 102 64
+7 102 64
+8 102 64
+9 102 64
+10 102 64
+11 102 64
+12 102 64
+13 102 64
+14 102 64
+15 102 64
+16 102 64
+17 102 64
+18 102 64
+19 102 64
+20 102 64
+21 102 64
+22 102 64
+23 102 64
+24 102 64
+25 102 64
+26 102 64
+27 102 64
+28 102 64
+29 102 64
+30 102 64
+31 102 64
+32 102 64
+33 102 64
+34 102 64
+35 102 64
+36 102 64
+37 102 64
+38 102 64
+39 102 64
+40 102 64
+41 102 64
+42 102 64
+43 102 64
+44 102 64
+45 102 64
+46 102 64
+47 102 64
+48 102 64
+49 102 64
+50 102 64
+51 102 64
+52 102 64
+53 102 64
+54 102 64
+55 102 64
+56 102 64
+57 102 64
+58 102 64
+59 102 64
+60 102 64
+61 102 64
+62 102 64
+63 102 64
+64 102 64
+65 102 64
+66 102 64
+67 102 64
+68 102 64
+69 102 64
+70 102 64
+71 102 64
+72 102 64
+73 102 64
+74 102 64
+75 102 64
+76 102 64
+77 102 64
+78 102 64
+79 102 64
+80 102 64
+81 102 64
+82 102 64
+83 102 64
+84 102 64
+85 102 64
+86 102 64
+87 102 64
+88 102 64
+89 102 64
+90 102 64
+91 102 64
+92 102 64
+93 102 64
+94 102 64
+95 102 64
+96 102 64
+97 102 64
+98 102 64
+99 102 64
+100 102 64
+101 102 64
+102 102 64
+103 102 64
+104 102 64
+105 102 64
+106 102 64
+107 102 64
+108 102 64
+109 102 64
+110 102 64
+111 102 64
+112 102 64
+113 102 64
+114 102 64
+115 102 64
+116 102 64
+117 102 64
+118 102 64
+119 102 64
+120 102 64
+121 102 64
+122 102 64
+123 102 64
+124 102 64
+125 102 64
+126 102 64
+127 102 64
+128 102 64
+129 102 64
+130 102 64
+131 102 64
+132 102 64
+133 102 64
+134 102 64
+135 102 64
+136 102 64
+137 102 64
+138 102 64
+139 102 64
+140 102 64
+141 102 64
+142 102 64
+143 102 64
+144 102 64
+145 102 64
+146 102 64
+147 102 64
+148 102 64
+149 102 64
+150 102 64
+151 102 64
+152 102 64
+153 102 64
+154 102 64
+155 102 64
+156 102 64
+157 102 64
+158 102 64
+159 102 64
+160 102 64
+161 102 64
+162 102 64
+163 102 64
+164 102 64
+165 102 64
+166 102 64
+167 102 64
+168 102 64
+169 102 64
+170 102 64
+171 102 64
+172 102 64
+173 102 64
+174 102 64
+175 102 64
+176 102 64
+177 102 64
+178 102 64
+179 102 64
+180 102 64
+181 102 64
+182 102 64
+183 102 64
+184 102 64
+185 102 64
+186 102 64
+187 102 64
+188 102 64
+189 102 64
+190 102 64
+191 102 64
+192 102 64
+193 102 64
+194 102 64
+195 102 64
+196 102 64
+197 102 64
+198 102 64
+199 102 64
+200 102 64
+201 102 64
+202 102 64
+203 102 64
+204 102 64
+205 102 64
+206 102 64
+207 102 64
+208 102 64
+209 102 64
+210 102 64
+211 102 64
+212 102 64
+213 102 64
+214 102 64
+215 102 64
+216 102 64
+217 102 64
+218 102 64
+219 102 64
+220 102 64
+221 102 64
+222 102 64
+223 102 64
+224 102 64
+225 102 64
+226 102 64
+227 102 64
+228 102 64
+229 102 64
+230 102 64
+231 102 64
+232 102 64
+233 102 64
+234 102 64
+235 102 64
+236 102 64
+237 102 64
+238 102 64
+239 102 64
+240 102 64
+241 102 64
+242 102 64
+243 102 64
+244 102 64
+245 102 64
+246 102 64
+247 102 64
+248 102 64
+249 102 64
+250 102 64
+251 102 64
+252 102 64
+253 102 64
+254 102 64
+255 102 64
+0 101 64
+1 101 64
+2 101 64
+3 101 64
+4 101 64
+5 101 64
+6 101 64
+7 101 64
+8 101 64
+9 101 64
+10 101 64
+11 101 64
+12 101 64
+13 101 64
+14 101 64
+15 101 64
+16 101 64
+17 101 64
+18 101 64
+19 101 64
+20 101 64
+21 101 64
+22 101 64
+23 101 64
+24 101 64
+25 101 64
+26 101 64
+27 101 64
+28 101 64
+29 101 64
+30 101 64
+31 101 64
+32 101 64
+33 101 64
+34 101 64
+35 101 64
+36 101 64
+37 101 64
+38 101 64
+39 101 64
+40 101 64
+41 101 64
+42 101 64
+43 101 64
+44 101 64
+45 101 64
+46 101 64
+47 101 64
+48 101 64
+49 101 64
+50 101 64
+51 101 64
+52 101 64
+53 101 64
+54 101 64
+55 101 64
+56 101 64
+57 101 64
+58 101 64
+59 101 64
+60 101 64
+61 101 64
+62 101 64
+63 101 64
+64 101 64
+65 101 64
+66 101 64
+67 101 64
+68 101 64
+69 101 64
+70 101 64
+71 101 64
+72 101 64
+73 101 64
+74 101 64
+75 101 64
+76 101 64
+77 101 64
+78 101 64
+79 101 64
+80 101 64
+81 101 64
+82 101 64
+83 101 64
+84 101 64
+85 101 64
+86 101 64
+87 101 64
+88 101 64
+89 101 64
+90 101 64
+91 101 64
+92 101 64
+93 101 64
+94 101 64
+95 101 64
+96 101 64
+97 101 64
+98 101 64
+99 101 64
+100 101 64
+101 101 64
+102 101 64
+103 101 64
+104 101 64
+105 101 64
+106 101 64
+107 101 64
+108 101 64
+109 101 64
+110 101 64
+111 101 64
+112 101 64
+113 101 64
+114 101 64
+115 101 64
+116 101 64
+117 101 64
+118 101 64
+119 101 64
+120 101 64
+121 101 64
+122 101 64
+123 101 64
+124 101 64
+125 101 64
+126 101 64
+127 101 64
+128 101 64
+129 101 64
+130 101 64
+131 101 64
+132 101 64
+133 101 64
+134 101 64
+135 101 64
+136 101 64
+137 101 64
+138 101 64
+139 101 64
+140 101 64
+141 101 64
+142 101 64
+143 101 64
+144 101 64
+145 101 64
+146 101 64
+147 101 64
+148 101 64
+149 101 64
+150 101 64
+151 101 64
+152 101 64
+153 101 64
+154 101 64
+155 101 64
+156 101 64
+157 101 64
+158 101 64
+159 101 64
+160 101 64
+161 101 64
+162 101 64
+163 101 64
+164 101 64
+165 101 64
+166 101 64
+167 101 64
+168 101 64
+169 101 64
+170 101 64
+171 101 64
+172 101 64
+173 101 64
+174 101 64
+175 101 64
+176 101 64
+177 101 64
+178 101 64
+179 101 64
+180 101 64
+181 101 64
+182 101 64
+183 101 64
+184 101 64
+185 101 64
+186 101 64
+187 101 64
+188 101 64
+189 101 64
+190 101 64
+191 101 64
+192 101 64
+193 101 64
+194 101 64
+195 101 64
+196 101 64
+197 101 64
+198 101 64
+199 101 64
+200 101 64
+201 101 64
+202 101 64
+203 101 64
+204 101 64
+205 101 64
+206 101 64
+207 101 64
+208 101 64
+209 101 64
+210 101 64
+211 101 64
+212 101 64
+213 101 64
+214 101 64
+215 101 64
+216 101 64
+217 101 64
+218 101 64
+219 101 64
+220 101 64
+221 101 64
+222 101 64
+223 101 64
+224 101 64
+225 101 64
+226 101 64
+227 101 64
+228 101 64
+229 101 64
+230 101 64
+231 101 64
+232 101 64
+233 101 64
+234 101 64
+235 101 64
+236 101 64
+237 101 64
+238 101 64
+239 101 64
+240 101 64
+241 101 64
+242 101 64
+243 101 64
+244 101 64
+245 101 64
+246 101 64
+247 101 64
+248 101 64
+249 101 64
+250 101 64
+251 101 64
+252 101 64
+253 101 64
+254 101 64
+255 101 64
+0 100 64
+1 100 64
+2 100 64
+3 100 64
+4 100 64
+5 100 64
+6 100 64
+7 100 64
+8 100 64
+9 100 64
+10 100 64
+11 100 64
+12 100 64
+13 100 64
+14 100 64
+15 100 64
+16 100 64
+17 100 64
+18 100 64
+19 100 64
+20 100 64
+21 100 64
+22 100 64
+23 100 64
+24 100 64
+25 100 64
+26 100 64
+27 100 64
+28 100 64
+29 100 64
+30 100 64
+31 100 64
+32 100 64
+33 100 64
+34 100 64
+35 100 64
+36 100 64
+37 100 64
+38 100 64
+39 100 64
+40 100 64
+41 100 64
+42 100 64
+43 100 64
+44 100 64
+45 100 64
+46 100 64
+47 100 64
+48 100 64
+49 100 64
+50 100 64
+51 100 64
+52 100 64
+53 100 64
+54 100 64
+55 100 64
+56 100 64
+57 100 64
+58 100 64
+59 100 64
+60 100 64
+61 100 64
+62 100 64
+63 100 64
+64 100 64
+65 100 64
+66 100 64
+67 100 64
+68 100 64
+69 100 64
+70 100 64
+71 100 64
+72 100 64
+73 100 64
+74 100 64
+75 100 64
+76 100 64
+77 100 64
+78 100 64
+79 100 64
+80 100 64
+81 100 64
+82 100 64
+83 100 64
+84 100 64
+85 100 64
+86 100 64
+87 100 64
+88 100 64
+89 100 64
+90 100 64
+91 100 64
+92 100 64
+93 100 64
+94 100 64
+95 100 64
+96 100 64
+97 100 64
+98 100 64
+99 100 64
+100 100 64
+101 100 64
+102 100 64
+103 100 64
+104 100 64
+105 100 64
+106 100 64
+107 100 64
+108 100 64
+109 100 64
+110 100 64
+111 100 64
+112 100 64
+113 100 64
+114 100 64
+115 100 64
+116 100 64
+117 100 64
+118 100 64
+119 100 64
+120 100 64
+121 100 64
+122 100 64
+123 100 64
+124 100 64
+125 100 64
+126 100 64
+127 100 64
+128 100 64
+129 100 64
+130 100 64
+131 100 64
+132 100 64
+133 100 64
+134 100 64
+135 100 64
+136 100 64
+137 100 64
+138 100 64
+139 100 64
+140 100 64
+141 100 64
+142 100 64
+143 100 64
+144 100 64
+145 100 64
+146 100 64
+147 100 64
+148 100 64
+149 100 64
+150 100 64
+151 100 64
+152 100 64
+153 100 64
+154 100 64
+155 100 64
+156 100 64
+157 100 64
+158 100 64
+159 100 64
+160 100 64
+161 100 64
+162 100 64
+163 100 64
+164 100 64
+165 100 64
+166 100 64
+167 100 64
+168 100 64
+169 100 64
+170 100 64
+171 100 64
+172 100 64
+173 100 64
+174 100 64
+175 100 64
+176 100 64
+177 100 64
+178 100 64
+179 100 64
+180 100 64
+181 100 64
+182 100 64
+183 100 64
+184 100 64
+185 100 64
+186 100 64
+187 100 64
+188 100 64
+189 100 64
+190 100 64
+191 100 64
+192 100 64
+193 100 64
+194 100 64
+195 100 64
+196 100 64
+197 100 64
+198 100 64
+199 100 64
+200 100 64
+201 100 64
+202 100 64
+203 100 64
+204 100 64
+205 100 64
+206 100 64
+207 100 64
+208 100 64
+209 100 64
+210 100 64
+211 100 64
+212 100 64
+213 100 64
+214 100 64
+215 100 64
+216 100 64
+217 100 64
+218 100 64
+219 100 64
+220 100 64
+221 100 64
+222 100 64
+223 100 64
+224 100 64
+225 100 64
+226 100 64
+227 100 64
+228 100 64
+229 100 64
+230 100 64
+231 100 64
+232 100 64
+233 100 64
+234 100 64
+235 100 64
+236 100 64
+237 100 64
+238 100 64
+239 100 64
+240 100 64
+241 100 64
+242 100 64
+243 100 64
+244 100 64
+245 100 64
+246 100 64
+247 100 64
+248 100 64
+249 100 64
+250 100 64
+251 100 64
+252 100 64
+253 100 64
+254 100 64
+255 100 64
+0 99 64
+1 99 64
+2 99 64
+3 99 64
+4 99 64
+5 99 64
+6 99 64
+7 99 64
+8 99 64
+9 99 64
+10 99 64
+11 99 64
+12 99 64
+13 99 64
+14 99 64
+15 99 64
+16 99 64
+17 99 64
+18 99 64
+19 99 64
+20 99 64
+21 99 64
+22 99 64
+23 99 64
+24 99 64
+25 99 64
+26 99 64
+27 99 64
+28 99 64
+29 99 64
+30 99 64
+31 99 64
+32 99 64
+33 99 64
+34 99 64
+35 99 64
+36 99 64
+37 99 64
+38 99 64
+39 99 64
+40 99 64
+41 99 64
+42 99 64
+43 99 64
+44 99 64
+45 99 64
+46 99 64
+47 99 64
+48 99 64
+49 99 64
+50 99 64
+51 99 64
+52 99 64
+53 99 64
+54 99 64
+55 99 64
+56 99 64
+57 99 64
+58 99 64
+59 99 64
+60 99 64
+61 99 64
+62 99 64
+63 99 64
+64 99 64
+65 99 64
+66 99 64
+67 99 64
+68 99 64
+69 99 64
+70 99 64
+71 99 64
+72 99 64
+73 99 64
+74 99 64
+75 99 64
+76 99 64
+77 99 64
+78 99 64
+79 99 64
+80 99 64
+81 99 64
+82 99 64
+83 99 64
+84 99 64
+85 99 64
+86 99 64
+87 99 64
+88 99 64
+89 99 64
+90 99 64
+91 99 64
+92 99 64
+93 99 64
+94 99 64
+95 99 64
+96 99 64
+97 99 64
+98 99 64
+99 99 64
+100 99 64
+101 99 64
+102 99 64
+103 99 64
+104 99 64
+105 99 64
+106 99 64
+107 99 64
+108 99 64
+109 99 64
+110 99 64
+111 99 64
+112 99 64
+113 99 64
+114 99 64
+115 99 64
+116 99 64
+117 99 64
+118 99 64
+119 99 64
+120 99 64
+121 99 64
+122 99 64
+123 99 64
+124 99 64
+125 99 64
+126 99 64
+127 99 64
+128 99 64
+129 99 64
+130 99 64
+131 99 64
+132 99 64
+133 99 64
+134 99 64
+135 99 64
+136 99 64
+137 99 64
+138 99 64
+139 99 64
+140 99 64
+141 99 64
+142 99 64
+143 99 64
+144 99 64
+145 99 64
+146 99 64
+147 99 64
+148 99 64
+149 99 64
+150 99 64
+151 99 64
+152 99 64
+153 99 64
+154 99 64
+155 99 64
+156 99 64
+157 99 64
+158 99 64
+159 99 64
+160 99 64
+161 99 64
+162 99 64
+163 99 64
+164 99 64
+165 99 64
+166 99 64
+167 99 64
+168 99 64
+169 99 64
+170 99 64
+171 99 64
+172 99 64
+173 99 64
+174 99 64
+175 99 64
+176 99 64
+177 99 64
+178 99 64
+179 99 64
+180 99 64
+181 99 64
+182 99 64
+183 99 64
+184 99 64
+185 99 64
+186 99 64
+187 99 64
+188 99 64
+189 99 64
+190 99 64
+191 99 64
+192 99 64
+193 99 64
+194 99 64
+195 99 64
+196 99 64
+197 99 64
+198 99 64
+199 99 64
+200 99 64
+201 99 64
+202 99 64
+203 99 64
+204 99 64
+205 99 64
+206 99 64
+207 99 64
+208 99 64
+209 99 64
+210 99 64
+211 99 64
+212 99 64
+213 99 64
+214 99 64
+215 99 64
+216 99 64
+217 99 64
+218 99 64
+219 99 64
+220 99 64
+221 99 64
+222 99 64
+223 99 64
+224 99 64
+225 99 64
+226 99 64
+227 99 64
+228 99 64
+229 99 64
+230 99 64
+231 99 64
+232 99 64
+233 99 64
+234 99 64
+235 99 64
+236 99 64
+237 99 64
+238 99 64
+239 99 64
+240 99 64
+241 99 64
+242 99 64
+243 99 64
+244 99 64
+245 99 64
+246 99 64
+247 99 64
+248 99 64
+249 99 64
+250 99 64
+251 99 64
+252 99 64
+253 99 64
+254 99 64
+255 99 64
+0 98 64
+1 98 64
+2 98 64
+3 98 64
+4 98 64
+5 98 64
+6 98 64
+7 98 64
+8 98 64
+9 98 64
+10 98 64
+11 98 64
+12 98 64
+13 98 64
+14 98 64
+15 98 64
+16 98 64
+17 98 64
+18 98 64
+19 98 64
+20 98 64
+21 98 64
+22 98 64
+23 98 64
+24 98 64
+25 98 64
+26 98 64
+27 98 64
+28 98 64
+29 98 64
+30 98 64
+31 98 64
+32 98 64
+33 98 64
+34 98 64
+35 98 64
+36 98 64
+37 98 64
+38 98 64
+39 98 64
+40 98 64
+41 98 64
+42 98 64
+43 98 64
+44 98 64
+45 98 64
+46 98 64
+47 98 64
+48 98 64
+49 98 64
+50 98 64
+51 98 64
+52 98 64
+53 98 64
+54 98 64
+55 98 64
+56 98 64
+57 98 64
+58 98 64
+59 98 64
+60 98 64
+61 98 64
+62 98 64
+63 98 64
+64 98 64
+65 98 64
+66 98 64
+67 98 64
+68 98 64
+69 98 64
+70 98 64
+71 98 64
+72 98 64
+73 98 64
+74 98 64
+75 98 64
+76 98 64
+77 98 64
+78 98 64
+79 98 64
+80 98 64
+81 98 64
+82 98 64
+83 98 64
+84 98 64
+85 98 64
+86 98 64
+87 98 64
+88 98 64
+89 98 64
+90 98 64
+91 98 64
+92 98 64
+93 98 64
+94 98 64
+95 98 64
+96 98 64
+97 98 64
+98 98 64
+99 98 64
+100 98 64
+101 98 64
+102 98 64
+103 98 64
+104 98 64
+105 98 64
+106 98 64
+107 98 64
+108 98 64
+109 98 64
+110 98 64
+111 98 64
+112 98 64
+113 98 64
+114 98 64
+115 98 64
+116 98 64
+117 98 64
+118 98 64
+119 98 64
+120 98 64
+121 98 64
+122 98 64
+123 98 64
+124 98 64
+125 98 64
+126 98 64
+127 98 64
+128 98 64
+129 98 64
+130 98 64
+131 98 64
+132 98 64
+133 98 64
+134 98 64
+135 98 64
+136 98 64
+137 98 64
+138 98 64
+139 98 64
+140 98 64
+141 98 64
+142 98 64
+143 98 64
+144 98 64
+145 98 64
+146 98 64
+147 98 64
+148 98 64
+149 98 64
+150 98 64
+151 98 64
+152 98 64
+153 98 64
+154 98 64
+155 98 64
+156 98 64
+157 98 64
+158 98 64
+159 98 64
+160 98 64
+161 98 64
+162 98 64
+163 98 64
+164 98 64
+165 98 64
+166 98 64
+167 98 64
+168 98 64
+169 98 64
+170 98 64
+171 98 64
+172 98 64
+173 98 64
+174 98 64
+175 98 64
+176 98 64
+177 98 64
+178 98 64
+179 98 64
+180 98 64
+181 98 64
+182 98 64
+183 98 64
+184 98 64
+185 98 64
+186 98 64
+187 98 64
+188 98 64
+189 98 64
+190 98 64
+191 98 64
+192 98 64
+193 98 64
+194 98 64
+195 98 64
+196 98 64
+197 98 64
+198 98 64
+199 98 64
+200 98 64
+201 98 64
+202 98 64
+203 98 64
+204 98 64
+205 98 64
+206 98 64
+207 98 64
+208 98 64
+209 98 64
+210 98 64
+211 98 64
+212 98 64
+213 98 64
+214 98 64
+215 98 64
+216 98 64
+217 98 64
+218 98 64
+219 98 64
+220 98 64
+221 98 64
+222 98 64
+223 98 64
+224 98 64
+225 98 64
+226 98 64
+227 98 64
+228 98 64
+229 98 64
+230 98 64
+231 98 64
+232 98 64
+233 98 64
+234 98 64
+235 98 64
+236 98 64
+237 98 64
+238 98 64
+239 98 64
+240 98 64
+241 98 64
+242 98 64
+243 98 64
+244 98 64
+245 98 64
+246 98 64
+247 98 64
+248 98 64
+249 98 64
+250 98 64
+251 98 64
+252 98 64
+253 98 64
+254 98 64
+255 98 64
+0 97 64
+1 97 64
+2 97 64
+3 97 64
+4 97 64
+5 97 64
+6 97 64
+7 97 64
+8 97 64
+9 97 64
+10 97 64
+11 97 64
+12 97 64
+13 97 64
+14 97 64
+15 97 64
+16 97 64
+17 97 64
+18 97 64
+19 97 64
+20 97 64
+21 97 64
+22 97 64
+23 97 64
+24 97 64
+25 97 64
+26 97 64
+27 97 64
+28 97 64
+29 97 64
+30 97 64
+31 97 64
+32 97 64
+33 97 64
+34 97 64
+35 97 64
+36 97 64
+37 97 64
+38 97 64
+39 97 64
+40 97 64
+41 97 64
+42 97 64
+43 97 64
+44 97 64
+45 97 64
+46 97 64
+47 97 64
+48 97 64
+49 97 64
+50 97 64
+51 97 64
+52 97 64
+53 97 64
+54 97 64
+55 97 64
+56 97 64
+57 97 64
+58 97 64
+59 97 64
+60 97 64
+61 97 64
+62 97 64
+63 97 64
+64 97 64
+65 97 64
+66 97 64
+67 97 64
+68 97 64
+69 97 64
+70 97 64
+71 97 64
+72 97 64
+73 97 64
+74 97 64
+75 97 64
+76 97 64
+77 97 64
+78 97 64
+79 97 64
+80 97 64
+81 97 64
+82 97 64
+83 97 64
+84 97 64
+85 97 64
+86 97 64
+87 97 64
+88 97 64
+89 97 64
+90 97 64
+91 97 64
+92 97 64
+93 97 64
+94 97 64
+95 97 64
+96 97 64
+97 97 64
+98 97 64
+99 97 64
+100 97 64
+101 97 64
+102 97 64
+103 97 64
+104 97 64
+105 97 64
+106 97 64
+107 97 64
+108 97 64
+109 97 64
+110 97 64
+111 97 64
+112 97 64
+113 97 64
+114 97 64
+115 97 64
+116 97 64
+117 97 64
+118 97 64
+119 97 64
+120 97 64
+121 97 64
+122 97 64
+123 97 64
+124 97 64
+125 97 64
+126 97 64
+127 97 64
+128 97 64
+129 97 64
+130 97 64
+131 97 64
+132 97 64
+133 97 64
+134 97 64
+135 97 64
+136 97 64
+137 97 64
+138 97 64
+139 97 64
+140 97 64
+141 97 64
+142 97 64
+143 97 64
+144 97 64
+145 97 64
+146 97 64
+147 97 64
+148 97 64
+149 97 64
+150 97 64
+151 97 64
+152 97 64
+153 97 64
+154 97 64
+155 97 64
+156 97 64
+157 97 64
+158 97 64
+159 97 64
+160 97 64
+161 97 64
+162 97 64
+163 97 64
+164 97 64
+165 97 64
+166 97 64
+167 97 64
+168 97 64
+169 97 64
+170 97 64
+171 97 64
+172 97 64
+173 97 64
+174 97 64
+175 97 64
+176 97 64
+177 97 64
+178 97 64
+179 97 64
+180 97 64
+181 97 64
+182 97 64
+183 97 64
+184 97 64
+185 97 64
+186 97 64
+187 97 64
+188 97 64
+189 97 64
+190 97 64
+191 97 64
+192 97 64
+193 97 64
+194 97 64
+195 97 64
+196 97 64
+197 97 64
+198 97 64
+199 97 64
+200 97 64
+201 97 64
+202 97 64
+203 97 64
+204 97 64
+205 97 64
+206 97 64
+207 97 64
+208 97 64
+209 97 64
+210 97 64
+211 97 64
+212 97 64
+213 97 64
+214 97 64
+215 97 64
+216 97 64
+217 97 64
+218 97 64
+219 97 64
+220 97 64
+221 97 64
+222 97 64
+223 97 64
+224 97 64
+225 97 64
+226 97 64
+227 97 64
+228 97 64
+229 97 64
+230 97 64
+231 97 64
+232 97 64
+233 97 64
+234 97 64
+235 97 64
+236 97 64
+237 97 64
+238 97 64
+239 97 64
+240 97 64
+241 97 64
+242 97 64
+243 97 64
+244 97 64
+245 97 64
+246 97 64
+247 97 64
+248 97 64
+249 97 64
+250 97 64
+251 97 64
+252 97 64
+253 97 64
+254 97 64
+255 97 64
+0 96 64
+1 96 64
+2 96 64
+3 96 64
+4 96 64
+5 96 64
+6 96 64
+7 96 64
+8 96 64
+9 96 64
+10 96 64
+11 96 64
+12 96 64
+13 96 64
+14 96 64
+15 96 64
+16 96 64
+17 96 64
+18 96 64
+19 96 64
+20 96 64
+21 96 64
+22 96 64
+23 96 64
+24 96 64
+25 96 64
+26 96 64
+27 96 64
+28 96 64
+29 96 64
+30 96 64
+31 96 64
+32 96 64
+33 96 64
+34 96 64
+35 96 64
+36 96 64
+37 96 64
+38 96 64
+39 96 64
+40 96 64
+41 96 64
+42 96 64
+43 96 64
+44 96 64
+45 96 64
+46 96 64
+47 96 64
+48 96 64
+49 96 64
+50 96 64
+51 96 64
+52 96 64
+53 96 64
+54 96 64
+55 96 64
+56 96 64
+57 96 64
+58 96 64
+59 96 64
+60 96 64
+61 96 64
+62 96 64
+63 96 64
+64 96 64
+65 96 64
+66 96 64
+67 96 64
+68 96 64
+69 96 64
+70 96 64
+71 96 64
+72 96 64
+73 96 64
+74 96 64
+75 96 64
+76 96 64
+77 96 64
+78 96 64
+79 96 64
+80 96 64
+81 96 64
+82 96 64
+83 96 64
+84 96 64
+85 96 64
+86 96 64
+87 96 64
+88 96 64
+89 96 64
+90 96 64
+91 96 64
+92 96 64
+93 96 64
+94 96 64
+95 96 64
+96 96 64
+97 96 64
+98 96 64
+99 96 64
+100 96 64
+101 96 64
+102 96 64
+103 96 64
+104 96 64
+105 96 64
+106 96 64
+107 96 64
+108 96 64
+109 96 64
+110 96 64
+111 96 64
+112 96 64
+113 96 64
+114 96 64
+115 96 64
+116 96 64
+117 96 64
+118 96 64
+119 96 64
+120 96 64
+121 96 64
+122 96 64
+123 96 64
+124 96 64
+125 96 64
+126 96 64
+127 96 64
+128 96 64
+129 96 64
+130 96 64
+131 96 64
+132 96 64
+133 96 64
+134 96 64
+135 96 64
+136 96 64
+137 96 64
+138 96 64
+139 96 64
+140 96 64
+141 96 64
+142 96 64
+143 96 64
+144 96 64
+145 96 64
+146 96 64
+147 96 64
+148 96 64
+149 96 64
+150 96 64
+151 96 64
+152 96 64
+153 96 64
+154 96 64
+155 96 64
+156 96 64
+157 96 64
+158 96 64
+159 96 64
+160 96 64
+161 96 64
+162 96 64
+163 96 64
+164 96 64
+165 96 64
+166 96 64
+167 96 64
+168 96 64
+169 96 64
+170 96 64
+171 96 64
+172 96 64
+173 96 64
+174 96 64
+175 96 64
+176 96 64
+177 96 64
+178 96 64
+179 96 64
+180 96 64
+181 96 64
+182 96 64
+183 96 64
+184 96 64
+185 96 64
+186 96 64
+187 96 64
+188 96 64
+189 96 64
+190 96 64
+191 96 64
+192 96 64
+193 96 64
+194 96 64
+195 96 64
+196 96 64
+197 96 64
+198 96 64
+199 96 64
+200 96 64
+201 96 64
+202 96 64
+203 96 64
+204 96 64
+205 96 64
+206 96 64
+207 96 64
+208 96 64
+209 96 64
+210 96 64
+211 96 64
+212 96 64
+213 96 64
+214 96 64
+215 96 64
+216 96 64
+217 96 64
+218 96 64
+219 96 64
+220 96 64
+221 96 64
+222 96 64
+223 96 64
+224 96 64
+225 96 64
+226 96 64
+227 96 64
+228 96 64
+229 96 64
+230 96 64
+231 96 64
+232 96 64
+233 96 64
+234 96 64
+235 96 64
+236 96 64
+237 96 64
+238 96 64
+239 96 64
+240 96 64
+241 96 64
+242 96 64
+243 96 64
+244 96 64
+245 96 64
+246 96 64
+247 96 64
+248 96 64
+249 96 64
+250 96 64
+251 96 64
+252 96 64
+253 96 64
+254 96 64
+255 96 64
+0 95 64
+1 95 64
+2 95 64
+3 95 64
+4 95 64
+5 95 64
+6 95 64
+7 95 64
+8 95 64
+9 95 64
+10 95 64
+11 95 64
+12 95 64
+13 95 64
+14 95 64
+15 95 64
+16 95 64
+17 95 64
+18 95 64
+19 95 64
+20 95 64
+21 95 64
+22 95 64
+23 95 64
+24 95 64
+25 95 64
+26 95 64
+27 95 64
+28 95 64
+29 95 64
+30 95 64
+31 95 64
+32 95 64
+33 95 64
+34 95 64
+35 95 64
+36 95 64
+37 95 64
+38 95 64
+39 95 64
+40 95 64
+41 95 64
+42 95 64
+43 95 64
+44 95 64
+45 95 64
+46 95 64
+47 95 64
+48 95 64
+49 95 64
+50 95 64
+51 95 64
+52 95 64
+53 95 64
+54 95 64
+55 95 64
+56 95 64
+57 95 64
+58 95 64
+59 95 64
+60 95 64
+61 95 64
+62 95 64
+63 95 64
+64 95 64
+65 95 64
+66 95 64
+67 95 64
+68 95 64
+69 95 64
+70 95 64
+71 95 64
+72 95 64
+73 95 64
+74 95 64
+75 95 64
+76 95 64
+77 95 64
+78 95 64
+79 95 64
+80 95 64
+81 95 64
+82 95 64
+83 95 64
+84 95 64
+85 95 64
+86 95 64
+87 95 64
+88 95 64
+89 95 64
+90 95 64
+91 95 64
+92 95 64
+93 95 64
+94 95 64
+95 95 64
+96 95 64
+97 95 64
+98 95 64
+99 95 64
+100 95 64
+101 95 64
+102 95 64
+103 95 64
+104 95 64
+105 95 64
+106 95 64
+107 95 64
+108 95 64
+109 95 64
+110 95 64
+111 95 64
+112 95 64
+113 95 64
+114 95 64
+115 95 64
+116 95 64
+117 95 64
+118 95 64
+119 95 64
+120 95 64
+121 95 64
+122 95 64
+123 95 64
+124 95 64
+125 95 64
+126 95 64
+127 95 64
+128 95 64
+129 95 64
+130 95 64
+131 95 64
+132 95 64
+133 95 64
+134 95 64
+135 95 64
+136 95 64
+137 95 64
+138 95 64
+139 95 64
+140 95 64
+141 95 64
+142 95 64
+143 95 64
+144 95 64
+145 95 64
+146 95 64
+147 95 64
+148 95 64
+149 95 64
+150 95 64
+151 95 64
+152 95 64
+153 95 64
+154 95 64
+155 95 64
+156 95 64
+157 95 64
+158 95 64
+159 95 64
+160 95 64
+161 95 64
+162 95 64
+163 95 64
+164 95 64
+165 95 64
+166 95 64
+167 95 64
+168 95 64
+169 95 64
+170 95 64
+171 95 64
+172 95 64
+173 95 64
+174 95 64
+175 95 64
+176 95 64
+177 95 64
+178 95 64
+179 95 64
+180 95 64
+181 95 64
+182 95 64
+183 95 64
+184 95 64
+185 95 64
+186 95 64
+187 95 64
+188 95 64
+189 95 64
+190 95 64
+191 95 64
+192 95 64
+193 95 64
+194 95 64
+195 95 64
+196 95 64
+197 95 64
+198 95 64
+199 95 64
+200 95 64
+201 95 64
+202 95 64
+203 95 64
+204 95 64
+205 95 64
+206 95 64
+207 95 64
+208 95 64
+209 95 64
+210 95 64
+211 95 64
+212 95 64
+213 95 64
+214 95 64
+215 95 64
+216 95 64
+217 95 64
+218 95 64
+219 95 64
+220 95 64
+221 95 64
+222 95 64
+223 95 64
+224 95 64
+225 95 64
+226 95 64
+227 95 64
+228 95 64
+229 95 64
+230 95 64
+231 95 64
+232 95 64
+233 95 64
+234 95 64
+235 95 64
+236 95 64
+237 95 64
+238 95 64
+239 95 64
+240 95 64
+241 95 64
+242 95 64
+243 95 64
+244 95 64
+245 95 64
+246 95 64
+247 95 64
+248 95 64
+249 95 64
+250 95 64
+251 95 64
+252 95 64
+253 95 64
+254 95 64
+255 95 64
+0 94 64
+1 94 64
+2 94 64
+3 94 64
+4 94 64
+5 94 64
+6 94 64
+7 94 64
+8 94 64
+9 94 64
+10 94 64
+11 94 64
+12 94 64
+13 94 64
+14 94 64
+15 94 64
+16 94 64
+17 94 64
+18 94 64
+19 94 64
+20 94 64
+21 94 64
+22 94 64
+23 94 64
+24 94 64
+25 94 64
+26 94 64
+27 94 64
+28 94 64
+29 94 64
+30 94 64
+31 94 64
+32 94 64
+33 94 64
+34 94 64
+35 94 64
+36 94 64
+37 94 64
+38 94 64
+39 94 64
+40 94 64
+41 94 64
+42 94 64
+43 94 64
+44 94 64
+45 94 64
+46 94 64
+47 94 64
+48 94 64
+49 94 64
+50 94 64
+51 94 64
+52 94 64
+53 94 64
+54 94 64
+55 94 64
+56 94 64
+57 94 64
+58 94 64
+59 94 64
+60 94 64
+61 94 64
+62 94 64
+63 94 64
+64 94 64
+65 94 64
+66 94 64
+67 94 64
+68 94 64
+69 94 64
+70 94 64
+71 94 64
+72 94 64
+73 94 64
+74 94 64
+75 94 64
+76 94 64
+77 94 64
+78 94 64
+79 94 64
+80 94 64
+81 94 64
+82 94 64
+83 94 64
+84 94 64
+85 94 64
+86 94 64
+87 94 64
+88 94 64
+89 94 64
+90 94 64
+91 94 64
+92 94 64
+93 94 64
+94 94 64
+95 94 64
+96 94 64
+97 94 64
+98 94 64
+99 94 64
+100 94 64
+101 94 64
+102 94 64
+103 94 64
+104 94 64
+105 94 64
+106 94 64
+107 94 64
+108 94 64
+109 94 64
+110 94 64
+111 94 64
+112 94 64
+113 94 64
+114 94 64
+115 94 64
+116 94 64
+117 94 64
+118 94 64
+119 94 64
+120 94 64
+121 94 64
+122 94 64
+123 94 64
+124 94 64
+125 94 64
+126 94 64
+127 94 64
+128 94 64
+129 94 64
+130 94 64
+131 94 64
+132 94 64
+133 94 64
+134 94 64
+135 94 64
+136 94 64
+137 94 64
+138 94 64
+139 94 64
+140 94 64
+141 94 64
+142 94 64
+143 94 64
+144 94 64
+145 94 64
+146 94 64
+147 94 64
+148 94 64
+149 94 64
+150 94 64
+151 94 64
+152 94 64
+153 94 64
+154 94 64
+155 94 64
+156 94 64
+157 94 64
+158 94 64
+159 94 64
+160 94 64
+161 94 64
+162 94 64
+163 94 64
+164 94 64
+165 94 64
+166 94 64
+167 94 64
+168 94 64
+169 94 64
+170 94 64
+171 94 64
+172 94 64
+173 94 64
+174 94 64
+175 94 64
+176 94 64
+177 94 64
+178 94 64
+179 94 64
+180 94 64
+181 94 64
+182 94 64
+183 94 64
+184 94 64
+185 94 64
+186 94 64
+187 94 64
+188 94 64
+189 94 64
+190 94 64
+191 94 64
+192 94 64
+193 94 64
+194 94 64
+195 94 64
+196 94 64
+197 94 64
+198 94 64
+199 94 64
+200 94 64
+201 94 64
+202 94 64
+203 94 64
+204 94 64
+205 94 64
+206 94 64
+207 94 64
+208 94 64
+209 94 64
+210 94 64
+211 94 64
+212 94 64
+213 94 64
+214 94 64
+215 94 64
+216 94 64
+217 94 64
+218 94 64
+219 94 64
+220 94 64
+221 94 64
+222 94 64
+223 94 64
+224 94 64
+225 94 64
+226 94 64
+227 94 64
+228 94 64
+229 94 64
+230 94 64
+231 94 64
+232 94 64
+233 94 64
+234 94 64
+235 94 64
+236 94 64
+237 94 64
+238 94 64
+239 94 64
+240 94 64
+241 94 64
+242 94 64
+243 94 64
+244 94 64
+245 94 64
+246 94 64
+247 94 64
+248 94 64
+249 94 64
+250 94 64
+251 94 64
+252 94 64
+253 94 64
+254 94 64
+255 94 64
+0 93 64
+1 93 64
+2 93 64
+3 93 64
+4 93 64
+5 93 64
+6 93 64
+7 93 64
+8 93 64
+9 93 64
+10 93 64
+11 93 64
+12 93 64
+13 93 64
+14 93 64
+15 93 64
+16 93 64
+17 93 64
+18 93 64
+19 93 64
+20 93 64
+21 93 64
+22 93 64
+23 93 64
+24 93 64
+25 93 64
+26 93 64
+27 93 64
+28 93 64
+29 93 64
+30 93 64
+31 93 64
+32 93 64
+33 93 64
+34 93 64
+35 93 64
+36 93 64
+37 93 64
+38 93 64
+39 93 64
+40 93 64
+41 93 64
+42 93 64
+43 93 64
+44 93 64
+45 93 64
+46 93 64
+47 93 64
+48 93 64
+49 93 64
+50 93 64
+51 93 64
+52 93 64
+53 93 64
+54 93 64
+55 93 64
+56 93 64
+57 93 64
+58 93 64
+59 93 64
+60 93 64
+61 93 64
+62 93 64
+63 93 64
+64 93 64
+65 93 64
+66 93 64
+67 93 64
+68 93 64
+69 93 64
+70 93 64
+71 93 64
+72 93 64
+73 93 64
+74 93 64
+75 93 64
+76 93 64
+77 93 64
+78 93 64
+79 93 64
+80 93 64
+81 93 64
+82 93 64
+83 93 64
+84 93 64
+85 93 64
+86 93 64
+87 93 64
+88 93 64
+89 93 64
+90 93 64
+91 93 64
+92 93 64
+93 93 64
+94 93 64
+95 93 64
+96 93 64
+97 93 64
+98 93 64
+99 93 64
+100 93 64
+101 93 64
+102 93 64
+103 93 64
+104 93 64
+105 93 64
+106 93 64
+107 93 64
+108 93 64
+109 93 64
+110 93 64
+111 93 64
+112 93 64
+113 93 64
+114 93 64
+115 93 64
+116 93 64
+117 93 64
+118 93 64
+119 93 64
+120 93 64
+121 93 64
+122 93 64
+123 93 64
+124 93 64
+125 93 64
+126 93 64
+127 93 64
+128 93 64
+129 93 64
+130 93 64
+131 93 64
+132 93 64
+133 93 64
+134 93 64
+135 93 64
+136 93 64
+137 93 64
+138 93 64
+139 93 64
+140 93 64
+141 93 64
+142 93 64
+143 93 64
+144 93 64
+145 93 64
+146 93 64
+147 93 64
+148 93 64
+149 93 64
+150 93 64
+151 93 64
+152 93 64
+153 93 64
+154 93 64
+155 93 64
+156 93 64
+157 93 64
+158 93 64
+159 93 64
+160 93 64
+161 93 64
+162 93 64
+163 93 64
+164 93 64
+165 93 64
+166 93 64
+167 93 64
+168 93 64
+169 93 64
+170 93 64
+171 93 64
+172 93 64
+173 93 64
+174 93 64
+175 93 64
+176 93 64
+177 93 64
+178 93 64
+179 93 64
+180 93 64
+181 93 64
+182 93 64
+183 93 64
+184 93 64
+185 93 64
+186 93 64
+187 93 64
+188 93 64
+189 93 64
+190 93 64
+191 93 64
+192 93 64
+193 93 64
+194 93 64
+195 93 64
+196 93 64
+197 93 64
+198 93 64
+199 93 64
+200 93 64
+201 93 64
+202 93 64
+203 93 64
+204 93 64
+205 93 64
+206 93 64
+207 93 64
+208 93 64
+209 93 64
+210 93 64
+211 93 64
+212 93 64
+213 93 64
+214 93 64
+215 93 64
+216 93 64
+217 93 64
+218 93 64
+219 93 64
+220 93 64
+221 93 64
+222 93 64
+223 93 64
+224 93 64
+225 93 64
+226 93 64
+227 93 64
+228 93 64
+229 93 64
+230 93 64
+231 93 64
+232 93 64
+233 93 64
+234 93 64
+235 93 64
+236 93 64
+237 93 64
+238 93 64
+239 93 64
+240 93 64
+241 93 64
+242 93 64
+243 93 64
+244 93 64
+245 93 64
+246 93 64
+247 93 64
+248 93 64
+249 93 64
+250 93 64
+251 93 64
+252 93 64
+253 93 64
+254 93 64
+255 93 64
+0 92 64
+1 92 64
+2 92 64
+3 92 64
+4 92 64
+5 92 64
+6 92 64
+7 92 64
+8 92 64
+9 92 64
+10 92 64
+11 92 64
+12 92 64
+13 92 64
+14 92 64
+15 92 64
+16 92 64
+17 92 64
+18 92 64
+19 92 64
+20 92 64
+21 92 64
+22 92 64
+23 92 64
+24 92 64
+25 92 64
+26 92 64
+27 92 64
+28 92 64
+29 92 64
+30 92 64
+31 92 64
+32 92 64
+33 92 64
+34 92 64
+35 92 64
+36 92 64
+37 92 64
+38 92 64
+39 92 64
+40 92 64
+41 92 64
+42 92 64
+43 92 64
+44 92 64
+45 92 64
+46 92 64
+47 92 64
+48 92 64
+49 92 64
+50 92 64
+51 92 64
+52 92 64
+53 92 64
+54 92 64
+55 92 64
+56 92 64
+57 92 64
+58 92 64
+59 92 64
+60 92 64
+61 92 64
+62 92 64
+63 92 64
+64 92 64
+65 92 64
+66 92 64
+67 92 64
+68 92 64
+69 92 64
+70 92 64
+71 92 64
+72 92 64
+73 92 64
+74 92 64
+75 92 64
+76 92 64
+77 92 64
+78 92 64
+79 92 64
+80 92 64
+81 92 64
+82 92 64
+83 92 64
+84 92 64
+85 92 64
+86 92 64
+87 92 64
+88 92 64
+89 92 64
+90 92 64
+91 92 64
+92 92 64
+93 92 64
+94 92 64
+95 92 64
+96 92 64
+97 92 64
+98 92 64
+99 92 64
+100 92 64
+101 92 64
+102 92 64
+103 92 64
+104 92 64
+105 92 64
+106 92 64
+107 92 64
+108 92 64
+109 92 64
+110 92 64
+111 92 64
+112 92 64
+113 92 64
+114 92 64
+115 92 64
+116 92 64
+117 92 64
+118 92 64
+119 92 64
+120 92 64
+121 92 64
+122 92 64
+123 92 64
+124 92 64
+125 92 64
+126 92 64
+127 92 64
+128 92 64
+129 92 64
+130 92 64
+131 92 64
+132 92 64
+133 92 64
+134 92 64
+135 92 64
+136 92 64
+137 92 64
+138 92 64
+139 92 64
+140 92 64
+141 92 64
+142 92 64
+143 92 64
+144 92 64
+145 92 64
+146 92 64
+147 92 64
+148 92 64
+149 92 64
+150 92 64
+151 92 64
+152 92 64
+153 92 64
+154 92 64
+155 92 64
+156 92 64
+157 92 64
+158 92 64
+159 92 64
+160 92 64
+161 92 64
+162 92 64
+163 92 64
+164 92 64
+165 92 64
+166 92 64
+167 92 64
+168 92 64
+169 92 64
+170 92 64
+171 92 64
+172 92 64
+173 92 64
+174 92 64
+175 92 64
+176 92 64
+177 92 64
+178 92 64
+179 92 64
+180 92 64
+181 92 64
+182 92 64
+183 92 64
+184 92 64
+185 92 64
+186 92 64
+187 92 64
+188 92 64
+189 92 64
+190 92 64
+191 92 64
+192 92 64
+193 92 64
+194 92 64
+195 92 64
+196 92 64
+197 92 64
+198 92 64
+199 92 64
+200 92 64
+201 92 64
+202 92 64
+203 92 64
+204 92 64
+205 92 64
+206 92 64
+207 92 64
+208 92 64
+209 92 64
+210 92 64
+211 92 64
+212 92 64
+213 92 64
+214 92 64
+215 92 64
+216 92 64
+217 92 64
+218 92 64
+219 92 64
+220 92 64
+221 92 64
+222 92 64
+223 92 64
+224 92 64
+225 92 64
+226 92 64
+227 92 64
+228 92 64
+229 92 64
+230 92 64
+231 92 64
+232 92 64
+233 92 64
+234 92 64
+235 92 64
+236 92 64
+237 92 64
+238 92 64
+239 92 64
+240 92 64
+241 92 64
+242 92 64
+243 92 64
+244 92 64
+245 92 64
+246 92 64
+247 92 64
+248 92 64
+249 92 64
+250 92 64
+251 92 64
+252 92 64
+253 92 64
+254 92 64
+255 92 64
+0 91 64
+1 91 64
+2 91 64
+3 91 64
+4 91 64
+5 91 64
+6 91 64
+7 91 64
+8 91 64
+9 91 64
+10 91 64
+11 91 64
+12 91 64
+13 91 64
+14 91 64
+15 91 64
+16 91 64
+17 91 64
+18 91 64
+19 91 64
+20 91 64
+21 91 64
+22 91 64
+23 91 64
+24 91 64
+25 91 64
+26 91 64
+27 91 64
+28 91 64
+29 91 64
+30 91 64
+31 91 64
+32 91 64
+33 91 64
+34 91 64
+35 91 64
+36 91 64
+37 91 64
+38 91 64
+39 91 64
+40 91 64
+41 91 64
+42 91 64
+43 91 64
+44 91 64
+45 91 64
+46 91 64
+47 91 64
+48 91 64
+49 91 64
+50 91 64
+51 91 64
+52 91 64
+53 91 64
+54 91 64
+55 91 64
+56 91 64
+57 91 64
+58 91 64
+59 91 64
+60 91 64
+61 91 64
+62 91 64
+63 91 64
+64 91 64
+65 91 64
+66 91 64
+67 91 64
+68 91 64
+69 91 64
+70 91 64
+71 91 64
+72 91 64
+73 91 64
+74 91 64
+75 91 64
+76 91 64
+77 91 64
+78 91 64
+79 91 64
+80 91 64
+81 91 64
+82 91 64
+83 91 64
+84 91 64
+85 91 64
+86 91 64
+87 91 64
+88 91 64
+89 91 64
+90 91 64
+91 91 64
+92 91 64
+93 91 64
+94 91 64
+95 91 64
+96 91 64
+97 91 64
+98 91 64
+99 91 64
+100 91 64
+101 91 64
+102 91 64
+103 91 64
+104 91 64
+105 91 64
+106 91 64
+107 91 64
+108 91 64
+109 91 64
+110 91 64
+111 91 64
+112 91 64
+113 91 64
+114 91 64
+115 91 64
+116 91 64
+117 91 64
+118 91 64
+119 91 64
+120 91 64
+121 91 64
+122 91 64
+123 91 64
+124 91 64
+125 91 64
+126 91 64
+127 91 64
+128 91 64
+129 91 64
+130 91 64
+131 91 64
+132 91 64
+133 91 64
+134 91 64
+135 91 64
+136 91 64
+137 91 64
+138 91 64
+139 91 64
+140 91 64
+141 91 64
+142 91 64
+143 91 64
+144 91 64
+145 91 64
+146 91 64
+147 91 64
+148 91 64
+149 91 64
+150 91 64
+151 91 64
+152 91 64
+153 91 64
+154 91 64
+155 91 64
+156 91 64
+157 91 64
+158 91 64
+159 91 64
+160 91 64
+161 91 64
+162 91 64
+163 91 64
+164 91 64
+165 91 64
+166 91 64
+167 91 64
+168 91 64
+169 91 64
+170 91 64
+171 91 64
+172 91 64
+173 91 64
+174 91 64
+175 91 64
+176 91 64
+177 91 64
+178 91 64
+179 91 64
+180 91 64
+181 91 64
+182 91 64
+183 91 64
+184 91 64
+185 91 64
+186 91 64
+187 91 64
+188 91 64
+189 91 64
+190 91 64
+191 91 64
+192 91 64
+193 91 64
+194 91 64
+195 91 64
+196 91 64
+197 91 64
+198 91 64
+199 91 64
+200 91 64
+201 91 64
+202 91 64
+203 91 64
+204 91 64
+205 91 64
+206 91 64
+207 91 64
+208 91 64
+209 91 64
+210 91 64
+211 91 64
+212 91 64
+213 91 64
+214 91 64
+215 91 64
+216 91 64
+217 91 64
+218 91 64
+219 91 64
+220 91 64
+221 91 64
+222 91 64
+223 91 64
+224 91 64
+225 91 64
+226 91 64
+227 91 64
+228 91 64
+229 91 64
+230 91 64
+231 91 64
+232 91 64
+233 91 64
+234 91 64
+235 91 64
+236 91 64
+237 91 64
+238 91 64
+239 91 64
+240 91 64
+241 91 64
+242 91 64
+243 91 64
+244 91 64
+245 91 64
+246 91 64
+247 91 64
+248 91 64
+249 91 64
+250 91 64
+251 91 64
+252 91 64
+253 91 64
+254 91 64
+255 91 64
+0 90 64
+1 90 64
+2 90 64
+3 90 64
+4 90 64
+5 90 64
+6 90 64
+7 90 64
+8 90 64
+9 90 64
+10 90 64
+11 90 64
+12 90 64
+13 90 64
+14 90 64
+15 90 64
+16 90 64
+17 90 64
+18 90 64
+19 90 64
+20 90 64
+21 90 64
+22 90 64
+23 90 64
+24 90 64
+25 90 64
+26 90 64
+27 90 64
+28 90 64
+29 90 64
+30 90 64
+31 90 64
+32 90 64
+33 90 64
+34 90 64
+35 90 64
+36 90 64
+37 90 64
+38 90 64
+39 90 64
+40 90 64
+41 90 64
+42 90 64
+43 90 64
+44 90 64
+45 90 64
+46 90 64
+47 90 64
+48 90 64
+49 90 64
+50 90 64
+51 90 64
+52 90 64
+53 90 64
+54 90 64
+55 90 64
+56 90 64
+57 90 64
+58 90 64
+59 90 64
+60 90 64
+61 90 64
+62 90 64
+63 90 64
+64 90 64
+65 90 64
+66 90 64
+67 90 64
+68 90 64
+69 90 64
+70 90 64
+71 90 64
+72 90 64
+73 90 64
+74 90 64
+75 90 64
+76 90 64
+77 90 64
+78 90 64
+79 90 64
+80 90 64
+81 90 64
+82 90 64
+83 90 64
+84 90 64
+85 90 64
+86 90 64
+87 90 64
+88 90 64
+89 90 64
+90 90 64
+91 90 64
+92 90 64
+93 90 64
+94 90 64
+95 90 64
+96 90 64
+97 90 64
+98 90 64
+99 90 64
+100 90 64
+101 90 64
+102 90 64
+103 90 64
+104 90 64
+105 90 64
+106 90 64
+107 90 64
+108 90 64
+109 90 64
+110 90 64
+111 90 64
+112 90 64
+113 90 64
+114 90 64
+115 90 64
+116 90 64
+117 90 64
+118 90 64
+119 90 64
+120 90 64
+121 90 64
+122 90 64
+123 90 64
+124 90 64
+125 90 64
+126 90 64
+127 90 64
+128 90 64
+129 90 64
+130 90 64
+131 90 64
+132 90 64
+133 90 64
+134 90 64
+135 90 64
+136 90 64
+137 90 64
+138 90 64
+139 90 64
+140 90 64
+141 90 64
+142 90 64
+143 90 64
+144 90 64
+145 90 64
+146 90 64
+147 90 64
+148 90 64
+149 90 64
+150 90 64
+151 90 64
+152 90 64
+153 90 64
+154 90 64
+155 90 64
+156 90 64
+157 90 64
+158 90 64
+159 90 64
+160 90 64
+161 90 64
+162 90 64
+163 90 64
+164 90 64
+165 90 64
+166 90 64
+167 90 64
+168 90 64
+169 90 64
+170 90 64
+171 90 64
+172 90 64
+173 90 64
+174 90 64
+175 90 64
+176 90 64
+177 90 64
+178 90 64
+179 90 64
+180 90 64
+181 90 64
+182 90 64
+183 90 64
+184 90 64
+185 90 64
+186 90 64
+187 90 64
+188 90 64
+189 90 64
+190 90 64
+191 90 64
+192 90 64
+193 90 64
+194 90 64
+195 90 64
+196 90 64
+197 90 64
+198 90 64
+199 90 64
+200 90 64
+201 90 64
+202 90 64
+203 90 64
+204 90 64
+205 90 64
+206 90 64
+207 90 64
+208 90 64
+209 90 64
+210 90 64
+211 90 64
+212 90 64
+213 90 64
+214 90 64
+215 90 64
+216 90 64
+217 90 64
+218 90 64
+219 90 64
+220 90 64
+221 90 64
+222 90 64
+223 90 64
+224 90 64
+225 90 64
+226 90 64
+227 90 64
+228 90 64
+229 90 64
+230 90 64
+231 90 64
+232 90 64
+233 90 64
+234 90 64
+235 90 64
+236 90 64
+237 90 64
+238 90 64
+239 90 64
+240 90 64
+241 90 64
+242 90 64
+243 90 64
+244 90 64
+245 90 64
+246 90 64
+247 90 64
+248 90 64
+249 90 64
+250 90 64
+251 90 64
+252 90 64
+253 90 64
+254 90 64
+255 90 64
+0 89 64
+1 89 64
+2 89 64
+3 89 64
+4 89 64
+5 89 64
+6 89 64
+7 89 64
+8 89 64
+9 89 64
+10 89 64
+11 89 64
+12 89 64
+13 89 64
+14 89 64
+15 89 64
+16 89 64
+17 89 64
+18 89 64
+19 89 64
+20 89 64
+21 89 64
+22 89 64
+23 89 64
+24 89 64
+25 89 64
+26 89 64
+27 89 64
+28 89 64
+29 89 64
+30 89 64
+31 89 64
+32 89 64
+33 89 64
+34 89 64
+35 89 64
+36 89 64
+37 89 64
+38 89 64
+39 89 64
+40 89 64
+41 89 64
+42 89 64
+43 89 64
+44 89 64
+45 89 64
+46 89 64
+47 89 64
+48 89 64
+49 89 64
+50 89 64
+51 89 64
+52 89 64
+53 89 64
+54 89 64
+55 89 64
+56 89 64
+57 89 64
+58 89 64
+59 89 64
+60 89 64
+61 89 64
+62 89 64
+63 89 64
+64 89 64
+65 89 64
+66 89 64
+67 89 64
+68 89 64
+69 89 64
+70 89 64
+71 89 64
+72 89 64
+73 89 64
+74 89 64
+75 89 64
+76 89 64
+77 89 64
+78 89 64
+79 89 64
+80 89 64
+81 89 64
+82 89 64
+83 89 64
+84 89 64
+85 89 64
+86 89 64
+87 89 64
+88 89 64
+89 89 64
+90 89 64
+91 89 64
+92 89 64
+93 89 64
+94 89 64
+95 89 64
+96 89 64
+97 89 64
+98 89 64
+99 89 64
+100 89 64
+101 89 64
+102 89 64
+103 89 64
+104 89 64
+105 89 64
+106 89 64
+107 89 64
+108 89 64
+109 89 64
+110 89 64
+111 89 64
+112 89 64
+113 89 64
+114 89 64
+115 89 64
+116 89 64
+117 89 64
+118 89 64
+119 89 64
+120 89 64
+121 89 64
+122 89 64
+123 89 64
+124 89 64
+125 89 64
+126 89 64
+127 89 64
+128 89 64
+129 89 64
+130 89 64
+131 89 64
+132 89 64
+133 89 64
+134 89 64
+135 89 64
+136 89 64
+137 89 64
+138 89 64
+139 89 64
+140 89 64
+141 89 64
+142 89 64
+143 89 64
+144 89 64
+145 89 64
+146 89 64
+147 89 64
+148 89 64
+149 89 64
+150 89 64
+151 89 64
+152 89 64
+153 89 64
+154 89 64
+155 89 64
+156 89 64
+157 89 64
+158 89 64
+159 89 64
+160 89 64
+161 89 64
+162 89 64
+163 89 64
+164 89 64
+165 89 64
+166 89 64
+167 89 64
+168 89 64
+169 89 64
+170 89 64
+171 89 64
+172 89 64
+173 89 64
+174 89 64
+175 89 64
+176 89 64
+177 89 64
+178 89 64
+179 89 64
+180 89 64
+181 89 64
+182 89 64
+183 89 64
+184 89 64
+185 89 64
+186 89 64
+187 89 64
+188 89 64
+189 89 64
+190 89 64
+191 89 64
+192 89 64
+193 89 64
+194 89 64
+195 89 64
+196 89 64
+197 89 64
+198 89 64
+199 89 64
+200 89 64
+201 89 64
+202 89 64
+203 89 64
+204 89 64
+205 89 64
+206 89 64
+207 89 64
+208 89 64
+209 89 64
+210 89 64
+211 89 64
+212 89 64
+213 89 64
+214 89 64
+215 89 64
+216 89 64
+217 89 64
+218 89 64
+219 89 64
+220 89 64
+221 89 64
+222 89 64
+223 89 64
+224 89 64
+225 89 64
+226 89 64
+227 89 64
+228 89 64
+229 89 64
+230 89 64
+231 89 64
+232 89 64
+233 89 64
+234 89 64
+235 89 64
+236 89 64
+237 89 64
+238 89 64
+239 89 64
+240 89 64
+241 89 64
+242 89 64
+243 89 64
+244 89 64
+245 89 64
+246 89 64
+247 89 64
+248 89 64
+249 89 64
+250 89 64
+251 89 64
+252 89 64
+253 89 64
+254 89 64
+255 89 64
+0 88 64
+1 88 64
+2 88 64
+3 88 64
+4 88 64
+5 88 64
+6 88 64
+7 88 64
+8 88 64
+9 88 64
+10 88 64
+11 88 64
+12 88 64
+13 88 64
+14 88 64
+15 88 64
+16 88 64
+17 88 64
+18 88 64
+19 88 64
+20 88 64
+21 88 64
+22 88 64
+23 88 64
+24 88 64
+25 88 64
+26 88 64
+27 88 64
+28 88 64
+29 88 64
+30 88 64
+31 88 64
+32 88 64
+33 88 64
+34 88 64
+35 88 64
+36 88 64
+37 88 64
+38 88 64
+39 88 64
+40 88 64
+41 88 64
+42 88 64
+43 88 64
+44 88 64
+45 88 64
+46 88 64
+47 88 64
+48 88 64
+49 88 64
+50 88 64
+51 88 64
+52 88 64
+53 88 64
+54 88 64
+55 88 64
+56 88 64
+57 88 64
+58 88 64
+59 88 64
+60 88 64
+61 88 64
+62 88 64
+63 88 64
+64 88 64
+65 88 64
+66 88 64
+67 88 64
+68 88 64
+69 88 64
+70 88 64
+71 88 64
+72 88 64
+73 88 64
+74 88 64
+75 88 64
+76 88 64
+77 88 64
+78 88 64
+79 88 64
+80 88 64
+81 88 64
+82 88 64
+83 88 64
+84 88 64
+85 88 64
+86 88 64
+87 88 64
+88 88 64
+89 88 64
+90 88 64
+91 88 64
+92 88 64
+93 88 64
+94 88 64
+95 88 64
+96 88 64
+97 88 64
+98 88 64
+99 88 64
+100 88 64
+101 88 64
+102 88 64
+103 88 64
+104 88 64
+105 88 64
+106 88 64
+107 88 64
+108 88 64
+109 88 64
+110 88 64
+111 88 64
+112 88 64
+113 88 64
+114 88 64
+115 88 64
+116 88 64
+117 88 64
+118 88 64
+119 88 64
+120 88 64
+121 88 64
+122 88 64
+123 88 64
+124 88 64
+125 88 64
+126 88 64
+127 88 64
+128 88 64
+129 88 64
+130 88 64
+131 88 64
+132 88 64
+133 88 64
+134 88 64
+135 88 64
+136 88 64
+137 88 64
+138 88 64
+139 88 64
+140 88 64
+141 88 64
+142 88 64
+143 88 64
+144 88 64
+145 88 64
+146 88 64
+147 88 64
+148 88 64
+149 88 64
+150 88 64
+151 88 64
+152 88 64
+153 88 64
+154 88 64
+155 88 64
+156 88 64
+157 88 64
+158 88 64
+159 88 64
+160 88 64
+161 88 64
+162 88 64
+163 88 64
+164 88 64
+165 88 64
+166 88 64
+167 88 64
+168 88 64
+169 88 64
+170 88 64
+171 88 64
+172 88 64
+173 88 64
+174 88 64
+175 88 64
+176 88 64
+177 88 64
+178 88 64
+179 88 64
+180 88 64
+181 88 64
+182 88 64
+183 88 64
+184 88 64
+185 88 64
+186 88 64
+187 88 64
+188 88 64
+189 88 64
+190 88 64
+191 88 64
+192 88 64
+193 88 64
+194 88 64
+195 88 64
+196 88 64
+197 88 64
+198 88 64
+199 88 64
+200 88 64
+201 88 64
+202 88 64
+203 88 64
+204 88 64
+205 88 64
+206 88 64
+207 88 64
+208 88 64
+209 88 64
+210 88 64
+211 88 64
+212 88 64
+213 88 64
+214 88 64
+215 88 64
+216 88 64
+217 88 64
+218 88 64
+219 88 64
+220 88 64
+221 88 64
+222 88 64
+223 88 64
+224 88 64
+225 88 64
+226 88 64
+227 88 64
+228 88 64
+229 88 64
+230 88 64
+231 88 64
+232 88 64
+233 88 64
+234 88 64
+235 88 64
+236 88 64
+237 88 64
+238 88 64
+239 88 64
+240 88 64
+241 88 64
+242 88 64
+243 88 64
+244 88 64
+245 88 64
+246 88 64
+247 88 64
+248 88 64
+249 88 64
+250 88 64
+251 88 64
+252 88 64
+253 88 64
+254 88 64
+255 88 64
+0 87 64
+1 87 64
+2 87 64
+3 87 64
+4 87 64
+5 87 64
+6 87 64
+7 87 64
+8 87 64
+9 87 64
+10 87 64
+11 87 64
+12 87 64
+13 87 64
+14 87 64
+15 87 64
+16 87 64
+17 87 64
+18 87 64
+19 87 64
+20 87 64
+21 87 64
+22 87 64
+23 87 64
+24 87 64
+25 87 64
+26 87 64
+27 87 64
+28 87 64
+29 87 64
+30 87 64
+31 87 64
+32 87 64
+33 87 64
+34 87 64
+35 87 64
+36 87 64
+37 87 64
+38 87 64
+39 87 64
+40 87 64
+41 87 64
+42 87 64
+43 87 64
+44 87 64
+45 87 64
+46 87 64
+47 87 64
+48 87 64
+49 87 64
+50 87 64
+51 87 64
+52 87 64
+53 87 64
+54 87 64
+55 87 64
+56 87 64
+57 87 64
+58 87 64
+59 87 64
+60 87 64
+61 87 64
+62 87 64
+63 87 64
+64 87 64
+65 87 64
+66 87 64
+67 87 64
+68 87 64
+69 87 64
+70 87 64
+71 87 64
+72 87 64
+73 87 64
+74 87 64
+75 87 64
+76 87 64
+77 87 64
+78 87 64
+79 87 64
+80 87 64
+81 87 64
+82 87 64
+83 87 64
+84 87 64
+85 87 64
+86 87 64
+87 87 64
+88 87 64
+89 87 64
+90 87 64
+91 87 64
+92 87 64
+93 87 64
+94 87 64
+95 87 64
+96 87 64
+97 87 64
+98 87 64
+99 87 64
+100 87 64
+101 87 64
+102 87 64
+103 87 64
+104 87 64
+105 87 64
+106 87 64
+107 87 64
+108 87 64
+109 87 64
+110 87 64
+111 87 64
+112 87 64
+113 87 64
+114 87 64
+115 87 64
+116 87 64
+117 87 64
+118 87 64
+119 87 64
+120 87 64
+121 87 64
+122 87 64
+123 87 64
+124 87 64
+125 87 64
+126 87 64
+127 87 64
+128 87 64
+129 87 64
+130 87 64
+131 87 64
+132 87 64
+133 87 64
+134 87 64
+135 87 64
+136 87 64
+137 87 64
+138 87 64
+139 87 64
+140 87 64
+141 87 64
+142 87 64
+143 87 64
+144 87 64
+145 87 64
+146 87 64
+147 87 64
+148 87 64
+149 87 64
+150 87 64
+151 87 64
+152 87 64
+153 87 64
+154 87 64
+155 87 64
+156 87 64
+157 87 64
+158 87 64
+159 87 64
+160 87 64
+161 87 64
+162 87 64
+163 87 64
+164 87 64
+165 87 64
+166 87 64
+167 87 64
+168 87 64
+169 87 64
+170 87 64
+171 87 64
+172 87 64
+173 87 64
+174 87 64
+175 87 64
+176 87 64
+177 87 64
+178 87 64
+179 87 64
+180 87 64
+181 87 64
+182 87 64
+183 87 64
+184 87 64
+185 87 64
+186 87 64
+187 87 64
+188 87 64
+189 87 64
+190 87 64
+191 87 64
+192 87 64
+193 87 64
+194 87 64
+195 87 64
+196 87 64
+197 87 64
+198 87 64
+199 87 64
+200 87 64
+201 87 64
+202 87 64
+203 87 64
+204 87 64
+205 87 64
+206 87 64
+207 87 64
+208 87 64
+209 87 64
+210 87 64
+211 87 64
+212 87 64
+213 87 64
+214 87 64
+215 87 64
+216 87 64
+217 87 64
+218 87 64
+219 87 64
+220 87 64
+221 87 64
+222 87 64
+223 87 64
+224 87 64
+225 87 64
+226 87 64
+227 87 64
+228 87 64
+229 87 64
+230 87 64
+231 87 64
+232 87 64
+233 87 64
+234 87 64
+235 87 64
+236 87 64
+237 87 64
+238 87 64
+239 87 64
+240 87 64
+241 87 64
+242 87 64
+243 87 64
+244 87 64
+245 87 64
+246 87 64
+247 87 64
+248 87 64
+249 87 64
+250 87 64
+251 87 64
+252 87 64
+253 87 64
+254 87 64
+255 87 64
+0 86 64
+1 86 64
+2 86 64
+3 86 64
+4 86 64
+5 86 64
+6 86 64
+7 86 64
+8 86 64
+9 86 64
+10 86 64
+11 86 64
+12 86 64
+13 86 64
+14 86 64
+15 86 64
+16 86 64
+17 86 64
+18 86 64
+19 86 64
+20 86 64
+21 86 64
+22 86 64
+23 86 64
+24 86 64
+25 86 64
+26 86 64
+27 86 64
+28 86 64
+29 86 64
+30 86 64
+31 86 64
+32 86 64
+33 86 64
+34 86 64
+35 86 64
+36 86 64
+37 86 64
+38 86 64
+39 86 64
+40 86 64
+41 86 64
+42 86 64
+43 86 64
+44 86 64
+45 86 64
+46 86 64
+47 86 64
+48 86 64
+49 86 64
+50 86 64
+51 86 64
+52 86 64
+53 86 64
+54 86 64
+55 86 64
+56 86 64
+57 86 64
+58 86 64
+59 86 64
+60 86 64
+61 86 64
+62 86 64
+63 86 64
+64 86 64
+65 86 64
+66 86 64
+67 86 64
+68 86 64
+69 86 64
+70 86 64
+71 86 64
+72 86 64
+73 86 64
+74 86 64
+75 86 64
+76 86 64
+77 86 64
+78 86 64
+79 86 64
+80 86 64
+81 86 64
+82 86 64
+83 86 64
+84 86 64
+85 86 64
+86 86 64
+87 86 64
+88 86 64
+89 86 64
+90 86 64
+91 86 64
+92 86 64
+93 86 64
+94 86 64
+95 86 64
+96 86 64
+97 86 64
+98 86 64
+99 86 64
+100 86 64
+101 86 64
+102 86 64
+103 86 64
+104 86 64
+105 86 64
+106 86 64
+107 86 64
+108 86 64
+109 86 64
+110 86 64
+111 86 64
+112 86 64
+113 86 64
+114 86 64
+115 86 64
+116 86 64
+117 86 64
+118 86 64
+119 86 64
+120 86 64
+121 86 64
+122 86 64
+123 86 64
+124 86 64
+125 86 64
+126 86 64
+127 86 64
+128 86 64
+129 86 64
+130 86 64
+131 86 64
+132 86 64
+133 86 64
+134 86 64
+135 86 64
+136 86 64
+137 86 64
+138 86 64
+139 86 64
+140 86 64
+141 86 64
+142 86 64
+143 86 64
+144 86 64
+145 86 64
+146 86 64
+147 86 64
+148 86 64
+149 86 64
+150 86 64
+151 86 64
+152 86 64
+153 86 64
+154 86 64
+155 86 64
+156 86 64
+157 86 64
+158 86 64
+159 86 64
+160 86 64
+161 86 64
+162 86 64
+163 86 64
+164 86 64
+165 86 64
+166 86 64
+167 86 64
+168 86 64
+169 86 64
+170 86 64
+171 86 64
+172 86 64
+173 86 64
+174 86 64
+175 86 64
+176 86 64
+177 86 64
+178 86 64
+179 86 64
+180 86 64
+181 86 64
+182 86 64
+183 86 64
+184 86 64
+185 86 64
+186 86 64
+187 86 64
+188 86 64
+189 86 64
+190 86 64
+191 86 64
+192 86 64
+193 86 64
+194 86 64
+195 86 64
+196 86 64
+197 86 64
+198 86 64
+199 86 64
+200 86 64
+201 86 64
+202 86 64
+203 86 64
+204 86 64
+205 86 64
+206 86 64
+207 86 64
+208 86 64
+209 86 64
+210 86 64
+211 86 64
+212 86 64
+213 86 64
+214 86 64
+215 86 64
+216 86 64
+217 86 64
+218 86 64
+219 86 64
+220 86 64
+221 86 64
+222 86 64
+223 86 64
+224 86 64
+225 86 64
+226 86 64
+227 86 64
+228 86 64
+229 86 64
+230 86 64
+231 86 64
+232 86 64
+233 86 64
+234 86 64
+235 86 64
+236 86 64
+237 86 64
+238 86 64
+239 86 64
+240 86 64
+241 86 64
+242 86 64
+243 86 64
+244 86 64
+245 86 64
+246 86 64
+247 86 64
+248 86 64
+249 86 64
+250 86 64
+251 86 64
+252 86 64
+253 86 64
+254 86 64
+255 86 64
+0 85 64
+1 85 64
+2 85 64
+3 85 64
+4 85 64
+5 85 64
+6 85 64
+7 85 64
+8 85 64
+9 85 64
+10 85 64
+11 85 64
+12 85 64
+13 85 64
+14 85 64
+15 85 64
+16 85 64
+17 85 64
+18 85 64
+19 85 64
+20 85 64
+21 85 64
+22 85 64
+23 85 64
+24 85 64
+25 85 64
+26 85 64
+27 85 64
+28 85 64
+29 85 64
+30 85 64
+31 85 64
+32 85 64
+33 85 64
+34 85 64
+35 85 64
+36 85 64
+37 85 64
+38 85 64
+39 85 64
+40 85 64
+41 85 64
+42 85 64
+43 85 64
+44 85 64
+45 85 64
+46 85 64
+47 85 64
+48 85 64
+49 85 64
+50 85 64
+51 85 64
+52 85 64
+53 85 64
+54 85 64
+55 85 64
+56 85 64
+57 85 64
+58 85 64
+59 85 64
+60 85 64
+61 85 64
+62 85 64
+63 85 64
+64 85 64
+65 85 64
+66 85 64
+67 85 64
+68 85 64
+69 85 64
+70 85 64
+71 85 64
+72 85 64
+73 85 64
+74 85 64
+75 85 64
+76 85 64
+77 85 64
+78 85 64
+79 85 64
+80 85 64
+81 85 64
+82 85 64
+83 85 64
+84 85 64
+85 85 64
+86 85 64
+87 85 64
+88 85 64
+89 85 64
+90 85 64
+91 85 64
+92 85 64
+93 85 64
+94 85 64
+95 85 64
+96 85 64
+97 85 64
+98 85 64
+99 85 64
+100 85 64
+101 85 64
+102 85 64
+103 85 64
+104 85 64
+105 85 64
+106 85 64
+107 85 64
+108 85 64
+109 85 64
+110 85 64
+111 85 64
+112 85 64
+113 85 64
+114 85 64
+115 85 64
+116 85 64
+117 85 64
+118 85 64
+119 85 64
+120 85 64
+121 85 64
+122 85 64
+123 85 64
+124 85 64
+125 85 64
+126 85 64
+127 85 64
+128 85 64
+129 85 64
+130 85 64
+131 85 64
+132 85 64
+133 85 64
+134 85 64
+135 85 64
+136 85 64
+137 85 64
+138 85 64
+139 85 64
+140 85 64
+141 85 64
+142 85 64
+143 85 64
+144 85 64
+145 85 64
+146 85 64
+147 85 64
+148 85 64
+149 85 64
+150 85 64
+151 85 64
+152 85 64
+153 85 64
+154 85 64
+155 85 64
+156 85 64
+157 85 64
+158 85 64
+159 85 64
+160 85 64
+161 85 64
+162 85 64
+163 85 64
+164 85 64
+165 85 64
+166 85 64
+167 85 64
+168 85 64
+169 85 64
+170 85 64
+171 85 64
+172 85 64
+173 85 64
+174 85 64
+175 85 64
+176 85 64
+177 85 64
+178 85 64
+179 85 64
+180 85 64
+181 85 64
+182 85 64
+183 85 64
+184 85 64
+185 85 64
+186 85 64
+187 85 64
+188 85 64
+189 85 64
+190 85 64
+191 85 64
+192 85 64
+193 85 64
+194 85 64
+195 85 64
+196 85 64
+197 85 64
+198 85 64
+199 85 64
+200 85 64
+201 85 64
+202 85 64
+203 85 64
+204 85 64
+205 85 64
+206 85 64
+207 85 64
+208 85 64
+209 85 64
+210 85 64
+211 85 64
+212 85 64
+213 85 64
+214 85 64
+215 85 64
+216 85 64
+217 85 64
+218 85 64
+219 85 64
+220 85 64
+221 85 64
+222 85 64
+223 85 64
+224 85 64
+225 85 64
+226 85 64
+227 85 64
+228 85 64
+229 85 64
+230 85 64
+231 85 64
+232 85 64
+233 85 64
+234 85 64
+235 85 64
+236 85 64
+237 85 64
+238 85 64
+239 85 64
+240 85 64
+241 85 64
+242 85 64
+243 85 64
+244 85 64
+245 85 64
+246 85 64
+247 85 64
+248 85 64
+249 85 64
+250 85 64
+251 85 64
+252 85 64
+253 85 64
+254 85 64
+255 85 64
+0 84 64
+1 84 64
+2 84 64
+3 84 64
+4 84 64
+5 84 64
+6 84 64
+7 84 64
+8 84 64
+9 84 64
+10 84 64
+11 84 64
+12 84 64
+13 84 64
+14 84 64
+15 84 64
+16 84 64
+17 84 64
+18 84 64
+19 84 64
+20 84 64
+21 84 64
+22 84 64
+23 84 64
+24 84 64
+25 84 64
+26 84 64
+27 84 64
+28 84 64
+29 84 64
+30 84 64
+31 84 64
+32 84 64
+33 84 64
+34 84 64
+35 84 64
+36 84 64
+37 84 64
+38 84 64
+39 84 64
+40 84 64
+41 84 64
+42 84 64
+43 84 64
+44 84 64
+45 84 64
+46 84 64
+47 84 64
+48 84 64
+49 84 64
+50 84 64
+51 84 64
+52 84 64
+53 84 64
+54 84 64
+55 84 64
+56 84 64
+57 84 64
+58 84 64
+59 84 64
+60 84 64
+61 84 64
+62 84 64
+63 84 64
+64 84 64
+65 84 64
+66 84 64
+67 84 64
+68 84 64
+69 84 64
+70 84 64
+71 84 64
+72 84 64
+73 84 64
+74 84 64
+75 84 64
+76 84 64
+77 84 64
+78 84 64
+79 84 64
+80 84 64
+81 84 64
+82 84 64
+83 84 64
+84 84 64
+85 84 64
+86 84 64
+87 84 64
+88 84 64
+89 84 64
+90 84 64
+91 84 64
+92 84 64
+93 84 64
+94 84 64
+95 84 64
+96 84 64
+97 84 64
+98 84 64
+99 84 64
+100 84 64
+101 84 64
+102 84 64
+103 84 64
+104 84 64
+105 84 64
+106 84 64
+107 84 64
+108 84 64
+109 84 64
+110 84 64
+111 84 64
+112 84 64
+113 84 64
+114 84 64
+115 84 64
+116 84 64
+117 84 64
+118 84 64
+119 84 64
+120 84 64
+121 84 64
+122 84 64
+123 84 64
+124 84 64
+125 84 64
+126 84 64
+127 84 64
+128 84 64
+129 84 64
+130 84 64
+131 84 64
+132 84 64
+133 84 64
+134 84 64
+135 84 64
+136 84 64
+137 84 64
+138 84 64
+139 84 64
+140 84 64
+141 84 64
+142 84 64
+143 84 64
+144 84 64
+145 84 64
+146 84 64
+147 84 64
+148 84 64
+149 84 64
+150 84 64
+151 84 64
+152 84 64
+153 84 64
+154 84 64
+155 84 64
+156 84 64
+157 84 64
+158 84 64
+159 84 64
+160 84 64
+161 84 64
+162 84 64
+163 84 64
+164 84 64
+165 84 64
+166 84 64
+167 84 64
+168 84 64
+169 84 64
+170 84 64
+171 84 64
+172 84 64
+173 84 64
+174 84 64
+175 84 64
+176 84 64
+177 84 64
+178 84 64
+179 84 64
+180 84 64
+181 84 64
+182 84 64
+183 84 64
+184 84 64
+185 84 64
+186 84 64
+187 84 64
+188 84 64
+189 84 64
+190 84 64
+191 84 64
+192 84 64
+193 84 64
+194 84 64
+195 84 64
+196 84 64
+197 84 64
+198 84 64
+199 84 64
+200 84 64
+201 84 64
+202 84 64
+203 84 64
+204 84 64
+205 84 64
+206 84 64
+207 84 64
+208 84 64
+209 84 64
+210 84 64
+211 84 64
+212 84 64
+213 84 64
+214 84 64
+215 84 64
+216 84 64
+217 84 64
+218 84 64
+219 84 64
+220 84 64
+221 84 64
+222 84 64
+223 84 64
+224 84 64
+225 84 64
+226 84 64
+227 84 64
+228 84 64
+229 84 64
+230 84 64
+231 84 64
+232 84 64
+233 84 64
+234 84 64
+235 84 64
+236 84 64
+237 84 64
+238 84 64
+239 84 64
+240 84 64
+241 84 64
+242 84 64
+243 84 64
+244 84 64
+245 84 64
+246 84 64
+247 84 64
+248 84 64
+249 84 64
+250 84 64
+251 84 64
+252 84 64
+253 84 64
+254 84 64
+255 84 64
+0 83 64
+1 83 64
+2 83 64
+3 83 64
+4 83 64
+5 83 64
+6 83 64
+7 83 64
+8 83 64
+9 83 64
+10 83 64
+11 83 64
+12 83 64
+13 83 64
+14 83 64
+15 83 64
+16 83 64
+17 83 64
+18 83 64
+19 83 64
+20 83 64
+21 83 64
+22 83 64
+23 83 64
+24 83 64
+25 83 64
+26 83 64
+27 83 64
+28 83 64
+29 83 64
+30 83 64
+31 83 64
+32 83 64
+33 83 64
+34 83 64
+35 83 64
+36 83 64
+37 83 64
+38 83 64
+39 83 64
+40 83 64
+41 83 64
+42 83 64
+43 83 64
+44 83 64
+45 83 64
+46 83 64
+47 83 64
+48 83 64
+49 83 64
+50 83 64
+51 83 64
+52 83 64
+53 83 64
+54 83 64
+55 83 64
+56 83 64
+57 83 64
+58 83 64
+59 83 64
+60 83 64
+61 83 64
+62 83 64
+63 83 64
+64 83 64
+65 83 64
+66 83 64
+67 83 64
+68 83 64
+69 83 64
+70 83 64
+71 83 64
+72 83 64
+73 83 64
+74 83 64
+75 83 64
+76 83 64
+77 83 64
+78 83 64
+79 83 64
+80 83 64
+81 83 64
+82 83 64
+83 83 64
+84 83 64
+85 83 64
+86 83 64
+87 83 64
+88 83 64
+89 83 64
+90 83 64
+91 83 64
+92 83 64
+93 83 64
+94 83 64
+95 83 64
+96 83 64
+97 83 64
+98 83 64
+99 83 64
+100 83 64
+101 83 64
+102 83 64
+103 83 64
+104 83 64
+105 83 64
+106 83 64
+107 83 64
+108 83 64
+109 83 64
+110 83 64
+111 83 64
+112 83 64
+113 83 64
+114 83 64
+115 83 64
+116 83 64
+117 83 64
+118 83 64
+119 83 64
+120 83 64
+121 83 64
+122 83 64
+123 83 64
+124 83 64
+125 83 64
+126 83 64
+127 83 64
+128 83 64
+129 83 64
+130 83 64
+131 83 64
+132 83 64
+133 83 64
+134 83 64
+135 83 64
+136 83 64
+137 83 64
+138 83 64
+139 83 64
+140 83 64
+141 83 64
+142 83 64
+143 83 64
+144 83 64
+145 83 64
+146 83 64
+147 83 64
+148 83 64
+149 83 64
+150 83 64
+151 83 64
+152 83 64
+153 83 64
+154 83 64
+155 83 64
+156 83 64
+157 83 64
+158 83 64
+159 83 64
+160 83 64
+161 83 64
+162 83 64
+163 83 64
+164 83 64
+165 83 64
+166 83 64
+167 83 64
+168 83 64
+169 83 64
+170 83 64
+171 83 64
+172 83 64
+173 83 64
+174 83 64
+175 83 64
+176 83 64
+177 83 64
+178 83 64
+179 83 64
+180 83 64
+181 83 64
+182 83 64
+183 83 64
+184 83 64
+185 83 64
+186 83 64
+187 83 64
+188 83 64
+189 83 64
+190 83 64
+191 83 64
+192 83 64
+193 83 64
+194 83 64
+195 83 64
+196 83 64
+197 83 64
+198 83 64
+199 83 64
+200 83 64
+201 83 64
+202 83 64
+203 83 64
+204 83 64
+205 83 64
+206 83 64
+207 83 64
+208 83 64
+209 83 64
+210 83 64
+211 83 64
+212 83 64
+213 83 64
+214 83 64
+215 83 64
+216 83 64
+217 83 64
+218 83 64
+219 83 64
+220 83 64
+221 83 64
+222 83 64
+223 83 64
+224 83 64
+225 83 64
+226 83 64
+227 83 64
+228 83 64
+229 83 64
+230 83 64
+231 83 64
+232 83 64
+233 83 64
+234 83 64
+235 83 64
+236 83 64
+237 83 64
+238 83 64
+239 83 64
+240 83 64
+241 83 64
+242 83 64
+243 83 64
+244 83 64
+245 83 64
+246 83 64
+247 83 64
+248 83 64
+249 83 64
+250 83 64
+251 83 64
+252 83 64
+253 83 64
+254 83 64
+255 83 64
+0 82 64
+1 82 64
+2 82 64
+3 82 64
+4 82 64
+5 82 64
+6 82 64
+7 82 64
+8 82 64
+9 82 64
+10 82 64
+11 82 64
+12 82 64
+13 82 64
+14 82 64
+15 82 64
+16 82 64
+17 82 64
+18 82 64
+19 82 64
+20 82 64
+21 82 64
+22 82 64
+23 82 64
+24 82 64
+25 82 64
+26 82 64
+27 82 64
+28 82 64
+29 82 64
+30 82 64
+31 82 64
+32 82 64
+33 82 64
+34 82 64
+35 82 64
+36 82 64
+37 82 64
+38 82 64
+39 82 64
+40 82 64
+41 82 64
+42 82 64
+43 82 64
+44 82 64
+45 82 64
+46 82 64
+47 82 64
+48 82 64
+49 82 64
+50 82 64
+51 82 64
+52 82 64
+53 82 64
+54 82 64
+55 82 64
+56 82 64
+57 82 64
+58 82 64
+59 82 64
+60 82 64
+61 82 64
+62 82 64
+63 82 64
+64 82 64
+65 82 64
+66 82 64
+67 82 64
+68 82 64
+69 82 64
+70 82 64
+71 82 64
+72 82 64
+73 82 64
+74 82 64
+75 82 64
+76 82 64
+77 82 64
+78 82 64
+79 82 64
+80 82 64
+81 82 64
+82 82 64
+83 82 64
+84 82 64
+85 82 64
+86 82 64
+87 82 64
+88 82 64
+89 82 64
+90 82 64
+91 82 64
+92 82 64
+93 82 64
+94 82 64
+95 82 64
+96 82 64
+97 82 64
+98 82 64
+99 82 64
+100 82 64
+101 82 64
+102 82 64
+103 82 64
+104 82 64
+105 82 64
+106 82 64
+107 82 64
+108 82 64
+109 82 64
+110 82 64
+111 82 64
+112 82 64
+113 82 64
+114 82 64
+115 82 64
+116 82 64
+117 82 64
+118 82 64
+119 82 64
+120 82 64
+121 82 64
+122 82 64
+123 82 64
+124 82 64
+125 82 64
+126 82 64
+127 82 64
+128 82 64
+129 82 64
+130 82 64
+131 82 64
+132 82 64
+133 82 64
+134 82 64
+135 82 64
+136 82 64
+137 82 64
+138 82 64
+139 82 64
+140 82 64
+141 82 64
+142 82 64
+143 82 64
+144 82 64
+145 82 64
+146 82 64
+147 82 64
+148 82 64
+149 82 64
+150 82 64
+151 82 64
+152 82 64
+153 82 64
+154 82 64
+155 82 64
+156 82 64
+157 82 64
+158 82 64
+159 82 64
+160 82 64
+161 82 64
+162 82 64
+163 82 64
+164 82 64
+165 82 64
+166 82 64
+167 82 64
+168 82 64
+169 82 64
+170 82 64
+171 82 64
+172 82 64
+173 82 64
+174 82 64
+175 82 64
+176 82 64
+177 82 64
+178 82 64
+179 82 64
+180 82 64
+181 82 64
+182 82 64
+183 82 64
+184 82 64
+185 82 64
+186 82 64
+187 82 64
+188 82 64
+189 82 64
+190 82 64
+191 82 64
+192 82 64
+193 82 64
+194 82 64
+195 82 64
+196 82 64
+197 82 64
+198 82 64
+199 82 64
+200 82 64
+201 82 64
+202 82 64
+203 82 64
+204 82 64
+205 82 64
+206 82 64
+207 82 64
+208 82 64
+209 82 64
+210 82 64
+211 82 64
+212 82 64
+213 82 64
+214 82 64
+215 82 64
+216 82 64
+217 82 64
+218 82 64
+219 82 64
+220 82 64
+221 82 64
+222 82 64
+223 82 64
+224 82 64
+225 82 64
+226 82 64
+227 82 64
+228 82 64
+229 82 64
+230 82 64
+231 82 64
+232 82 64
+233 82 64
+234 82 64
+235 82 64
+236 82 64
+237 82 64
+238 82 64
+239 82 64
+240 82 64
+241 82 64
+242 82 64
+243 82 64
+244 82 64
+245 82 64
+246 82 64
+247 82 64
+248 82 64
+249 82 64
+250 82 64
+251 82 64
+252 82 64
+253 82 64
+254 82 64
+255 82 64
+0 81 64
+1 81 64
+2 81 64
+3 81 64
+4 81 64
+5 81 64
+6 81 64
+7 81 64
+8 81 64
+9 81 64
+10 81 64
+11 81 64
+12 81 64
+13 81 64
+14 81 64
+15 81 64
+16 81 64
+17 81 64
+18 81 64
+19 81 64
+20 81 64
+21 81 64
+22 81 64
+23 81 64
+24 81 64
+25 81 64
+26 81 64
+27 81 64
+28 81 64
+29 81 64
+30 81 64
+31 81 64
+32 81 64
+33 81 64
+34 81 64
+35 81 64
+36 81 64
+37 81 64
+38 81 64
+39 81 64
+40 81 64
+41 81 64
+42 81 64
+43 81 64
+44 81 64
+45 81 64
+46 81 64
+47 81 64
+48 81 64
+49 81 64
+50 81 64
+51 81 64
+52 81 64
+53 81 64
+54 81 64
+55 81 64
+56 81 64
+57 81 64
+58 81 64
+59 81 64
+60 81 64
+61 81 64
+62 81 64
+63 81 64
+64 81 64
+65 81 64
+66 81 64
+67 81 64
+68 81 64
+69 81 64
+70 81 64
+71 81 64
+72 81 64
+73 81 64
+74 81 64
+75 81 64
+76 81 64
+77 81 64
+78 81 64
+79 81 64
+80 81 64
+81 81 64
+82 81 64
+83 81 64
+84 81 64
+85 81 64
+86 81 64
+87 81 64
+88 81 64
+89 81 64
+90 81 64
+91 81 64
+92 81 64
+93 81 64
+94 81 64
+95 81 64
+96 81 64
+97 81 64
+98 81 64
+99 81 64
+100 81 64
+101 81 64
+102 81 64
+103 81 64
+104 81 64
+105 81 64
+106 81 64
+107 81 64
+108 81 64
+109 81 64
+110 81 64
+111 81 64
+112 81 64
+113 81 64
+114 81 64
+115 81 64
+116 81 64
+117 81 64
+118 81 64
+119 81 64
+120 81 64
+121 81 64
+122 81 64
+123 81 64
+124 81 64
+125 81 64
+126 81 64
+127 81 64
+128 81 64
+129 81 64
+130 81 64
+131 81 64
+132 81 64
+133 81 64
+134 81 64
+135 81 64
+136 81 64
+137 81 64
+138 81 64
+139 81 64
+140 81 64
+141 81 64
+142 81 64
+143 81 64
+144 81 64
+145 81 64
+146 81 64
+147 81 64
+148 81 64
+149 81 64
+150 81 64
+151 81 64
+152 81 64
+153 81 64
+154 81 64
+155 81 64
+156 81 64
+157 81 64
+158 81 64
+159 81 64
+160 81 64
+161 81 64
+162 81 64
+163 81 64
+164 81 64
+165 81 64
+166 81 64
+167 81 64
+168 81 64
+169 81 64
+170 81 64
+171 81 64
+172 81 64
+173 81 64
+174 81 64
+175 81 64
+176 81 64
+177 81 64
+178 81 64
+179 81 64
+180 81 64
+181 81 64
+182 81 64
+183 81 64
+184 81 64
+185 81 64
+186 81 64
+187 81 64
+188 81 64
+189 81 64
+190 81 64
+191 81 64
+192 81 64
+193 81 64
+194 81 64
+195 81 64
+196 81 64
+197 81 64
+198 81 64
+199 81 64
+200 81 64
+201 81 64
+202 81 64
+203 81 64
+204 81 64
+205 81 64
+206 81 64
+207 81 64
+208 81 64
+209 81 64
+210 81 64
+211 81 64
+212 81 64
+213 81 64
+214 81 64
+215 81 64
+216 81 64
+217 81 64
+218 81 64
+219 81 64
+220 81 64
+221 81 64
+222 81 64
+223 81 64
+224 81 64
+225 81 64
+226 81 64
+227 81 64
+228 81 64
+229 81 64
+230 81 64
+231 81 64
+232 81 64
+233 81 64
+234 81 64
+235 81 64
+236 81 64
+237 81 64
+238 81 64
+239 81 64
+240 81 64
+241 81 64
+242 81 64
+243 81 64
+244 81 64
+245 81 64
+246 81 64
+247 81 64
+248 81 64
+249 81 64
+250 81 64
+251 81 64
+252 81 64
+253 81 64
+254 81 64
+255 81 64
+0 80 64
+1 80 64
+2 80 64
+3 80 64
+4 80 64
+5 80 64
+6 80 64
+7 80 64
+8 80 64
+9 80 64
+10 80 64
+11 80 64
+12 80 64
+13 80 64
+14 80 64
+15 80 64
+16 80 64
+17 80 64
+18 80 64
+19 80 64
+20 80 64
+21 80 64
+22 80 64
+23 80 64
+24 80 64
+25 80 64
+26 80 64
+27 80 64
+28 80 64
+29 80 64
+30 80 64
+31 80 64
+32 80 64
+33 80 64
+34 80 64
+35 80 64
+36 80 64
+37 80 64
+38 80 64
+39 80 64
+40 80 64
+41 80 64
+42 80 64
+43 80 64
+44 80 64
+45 80 64
+46 80 64
+47 80 64
+48 80 64
+49 80 64
+50 80 64
+51 80 64
+52 80 64
+53 80 64
+54 80 64
+55 80 64
+56 80 64
+57 80 64
+58 80 64
+59 80 64
+60 80 64
+61 80 64
+62 80 64
+63 80 64
+64 80 64
+65 80 64
+66 80 64
+67 80 64
+68 80 64
+69 80 64
+70 80 64
+71 80 64
+72 80 64
+73 80 64
+74 80 64
+75 80 64
+76 80 64
+77 80 64
+78 80 64
+79 80 64
+80 80 64
+81 80 64
+82 80 64
+83 80 64
+84 80 64
+85 80 64
+86 80 64
+87 80 64
+88 80 64
+89 80 64
+90 80 64
+91 80 64
+92 80 64
+93 80 64
+94 80 64
+95 80 64
+96 80 64
+97 80 64
+98 80 64
+99 80 64
+100 80 64
+101 80 64
+102 80 64
+103 80 64
+104 80 64
+105 80 64
+106 80 64
+107 80 64
+108 80 64
+109 80 64
+110 80 64
+111 80 64
+112 80 64
+113 80 64
+114 80 64
+115 80 64
+116 80 64
+117 80 64
+118 80 64
+119 80 64
+120 80 64
+121 80 64
+122 80 64
+123 80 64
+124 80 64
+125 80 64
+126 80 64
+127 80 64
+128 80 64
+129 80 64
+130 80 64
+131 80 64
+132 80 64
+133 80 64
+134 80 64
+135 80 64
+136 80 64
+137 80 64
+138 80 64
+139 80 64
+140 80 64
+141 80 64
+142 80 64
+143 80 64
+144 80 64
+145 80 64
+146 80 64
+147 80 64
+148 80 64
+149 80 64
+150 80 64
+151 80 64
+152 80 64
+153 80 64
+154 80 64
+155 80 64
+156 80 64
+157 80 64
+158 80 64
+159 80 64
+160 80 64
+161 80 64
+162 80 64
+163 80 64
+164 80 64
+165 80 64
+166 80 64
+167 80 64
+168 80 64
+169 80 64
+170 80 64
+171 80 64
+172 80 64
+173 80 64
+174 80 64
+175 80 64
+176 80 64
+177 80 64
+178 80 64
+179 80 64
+180 80 64
+181 80 64
+182 80 64
+183 80 64
+184 80 64
+185 80 64
+186 80 64
+187 80 64
+188 80 64
+189 80 64
+190 80 64
+191 80 64
+192 80 64
+193 80 64
+194 80 64
+195 80 64
+196 80 64
+197 80 64
+198 80 64
+199 80 64
+200 80 64
+201 80 64
+202 80 64
+203 80 64
+204 80 64
+205 80 64
+206 80 64
+207 80 64
+208 80 64
+209 80 64
+210 80 64
+211 80 64
+212 80 64
+213 80 64
+214 80 64
+215 80 64
+216 80 64
+217 80 64
+218 80 64
+219 80 64
+220 80 64
+221 80 64
+222 80 64
+223 80 64
+224 80 64
+225 80 64
+226 80 64
+227 80 64
+228 80 64
+229 80 64
+230 80 64
+231 80 64
+232 80 64
+233 80 64
+234 80 64
+235 80 64
+236 80 64
+237 80 64
+238 80 64
+239 80 64
+240 80 64
+241 80 64
+242 80 64
+243 80 64
+244 80 64
+245 80 64
+246 80 64
+247 80 64
+248 80 64
+249 80 64
+250 80 64
+251 80 64
+252 80 64
+253 80 64
+254 80 64
+255 80 64
+0 79 64
+1 79 64
+2 79 64
+3 79 64
+4 79 64
+5 79 64
+6 79 64
+7 79 64
+8 79 64
+9 79 64
+10 79 64
+11 79 64
+12 79 64
+13 79 64
+14 79 64
+15 79 64
+16 79 64
+17 79 64
+18 79 64
+19 79 64
+20 79 64
+21 79 64
+22 79 64
+23 79 64
+24 79 64
+25 79 64
+26 79 64
+27 79 64
+28 79 64
+29 79 64
+30 79 64
+31 79 64
+32 79 64
+33 79 64
+34 79 64
+35 79 64
+36 79 64
+37 79 64
+38 79 64
+39 79 64
+40 79 64
+41 79 64
+42 79 64
+43 79 64
+44 79 64
+45 79 64
+46 79 64
+47 79 64
+48 79 64
+49 79 64
+50 79 64
+51 79 64
+52 79 64
+53 79 64
+54 79 64
+55 79 64
+56 79 64
+57 79 64
+58 79 64
+59 79 64
+60 79 64
+61 79 64
+62 79 64
+63 79 64
+64 79 64
+65 79 64
+66 79 64
+67 79 64
+68 79 64
+69 79 64
+70 79 64
+71 79 64
+72 79 64
+73 79 64
+74 79 64
+75 79 64
+76 79 64
+77 79 64
+78 79 64
+79 79 64
+80 79 64
+81 79 64
+82 79 64
+83 79 64
+84 79 64
+85 79 64
+86 79 64
+87 79 64
+88 79 64
+89 79 64
+90 79 64
+91 79 64
+92 79 64
+93 79 64
+94 79 64
+95 79 64
+96 79 64
+97 79 64
+98 79 64
+99 79 64
+100 79 64
+101 79 64
+102 79 64
+103 79 64
+104 79 64
+105 79 64
+106 79 64
+107 79 64
+108 79 64
+109 79 64
+110 79 64
+111 79 64
+112 79 64
+113 79 64
+114 79 64
+115 79 64
+116 79 64
+117 79 64
+118 79 64
+119 79 64
+120 79 64
+121 79 64
+122 79 64
+123 79 64
+124 79 64
+125 79 64
+126 79 64
+127 79 64
+128 79 64
+129 79 64
+130 79 64
+131 79 64
+132 79 64
+133 79 64
+134 79 64
+135 79 64
+136 79 64
+137 79 64
+138 79 64
+139 79 64
+140 79 64
+141 79 64
+142 79 64
+143 79 64
+144 79 64
+145 79 64
+146 79 64
+147 79 64
+148 79 64
+149 79 64
+150 79 64
+151 79 64
+152 79 64
+153 79 64
+154 79 64
+155 79 64
+156 79 64
+157 79 64
+158 79 64
+159 79 64
+160 79 64
+161 79 64
+162 79 64
+163 79 64
+164 79 64
+165 79 64
+166 79 64
+167 79 64
+168 79 64
+169 79 64
+170 79 64
+171 79 64
+172 79 64
+173 79 64
+174 79 64
+175 79 64
+176 79 64
+177 79 64
+178 79 64
+179 79 64
+180 79 64
+181 79 64
+182 79 64
+183 79 64
+184 79 64
+185 79 64
+186 79 64
+187 79 64
+188 79 64
+189 79 64
+190 79 64
+191 79 64
+192 79 64
+193 79 64
+194 79 64
+195 79 64
+196 79 64
+197 79 64
+198 79 64
+199 79 64
+200 79 64
+201 79 64
+202 79 64
+203 79 64
+204 79 64
+205 79 64
+206 79 64
+207 79 64
+208 79 64
+209 79 64
+210 79 64
+211 79 64
+212 79 64
+213 79 64
+214 79 64
+215 79 64
+216 79 64
+217 79 64
+218 79 64
+219 79 64
+220 79 64
+221 79 64
+222 79 64
+223 79 64
+224 79 64
+225 79 64
+226 79 64
+227 79 64
+228 79 64
+229 79 64
+230 79 64
+231 79 64
+232 79 64
+233 79 64
+234 79 64
+235 79 64
+236 79 64
+237 79 64
+238 79 64
+239 79 64
+240 79 64
+241 79 64
+242 79 64
+243 79 64
+244 79 64
+245 79 64
+246 79 64
+247 79 64
+248 79 64
+249 79 64
+250 79 64
+251 79 64
+252 79 64
+253 79 64
+254 79 64
+255 79 64
+0 78 64
+1 78 64
+2 78 64
+3 78 64
+4 78 64
+5 78 64
+6 78 64
+7 78 64
+8 78 64
+9 78 64
+10 78 64
+11 78 64
+12 78 64
+13 78 64
+14 78 64
+15 78 64
+16 78 64
+17 78 64
+18 78 64
+19 78 64
+20 78 64
+21 78 64
+22 78 64
+23 78 64
+24 78 64
+25 78 64
+26 78 64
+27 78 64
+28 78 64
+29 78 64
+30 78 64
+31 78 64
+32 78 64
+33 78 64
+34 78 64
+35 78 64
+36 78 64
+37 78 64
+38 78 64
+39 78 64
+40 78 64
+41 78 64
+42 78 64
+43 78 64
+44 78 64
+45 78 64
+46 78 64
+47 78 64
+48 78 64
+49 78 64
+50 78 64
+51 78 64
+52 78 64
+53 78 64
+54 78 64
+55 78 64
+56 78 64
+57 78 64
+58 78 64
+59 78 64
+60 78 64
+61 78 64
+62 78 64
+63 78 64
+64 78 64
+65 78 64
+66 78 64
+67 78 64
+68 78 64
+69 78 64
+70 78 64
+71 78 64
+72 78 64
+73 78 64
+74 78 64
+75 78 64
+76 78 64
+77 78 64
+78 78 64
+79 78 64
+80 78 64
+81 78 64
+82 78 64
+83 78 64
+84 78 64
+85 78 64
+86 78 64
+87 78 64
+88 78 64
+89 78 64
+90 78 64
+91 78 64
+92 78 64
+93 78 64
+94 78 64
+95 78 64
+96 78 64
+97 78 64
+98 78 64
+99 78 64
+100 78 64
+101 78 64
+102 78 64
+103 78 64
+104 78 64
+105 78 64
+106 78 64
+107 78 64
+108 78 64
+109 78 64
+110 78 64
+111 78 64
+112 78 64
+113 78 64
+114 78 64
+115 78 64
+116 78 64
+117 78 64
+118 78 64
+119 78 64
+120 78 64
+121 78 64
+122 78 64
+123 78 64
+124 78 64
+125 78 64
+126 78 64
+127 78 64
+128 78 64
+129 78 64
+130 78 64
+131 78 64
+132 78 64
+133 78 64
+134 78 64
+135 78 64
+136 78 64
+137 78 64
+138 78 64
+139 78 64
+140 78 64
+141 78 64
+142 78 64
+143 78 64
+144 78 64
+145 78 64
+146 78 64
+147 78 64
+148 78 64
+149 78 64
+150 78 64
+151 78 64
+152 78 64
+153 78 64
+154 78 64
+155 78 64
+156 78 64
+157 78 64
+158 78 64
+159 78 64
+160 78 64
+161 78 64
+162 78 64
+163 78 64
+164 78 64
+165 78 64
+166 78 64
+167 78 64
+168 78 64
+169 78 64
+170 78 64
+171 78 64
+172 78 64
+173 78 64
+174 78 64
+175 78 64
+176 78 64
+177 78 64
+178 78 64
+179 78 64
+180 78 64
+181 78 64
+182 78 64
+183 78 64
+184 78 64
+185 78 64
+186 78 64
+187 78 64
+188 78 64
+189 78 64
+190 78 64
+191 78 64
+192 78 64
+193 78 64
+194 78 64
+195 78 64
+196 78 64
+197 78 64
+198 78 64
+199 78 64
+200 78 64
+201 78 64
+202 78 64
+203 78 64
+204 78 64
+205 78 64
+206 78 64
+207 78 64
+208 78 64
+209 78 64
+210 78 64
+211 78 64
+212 78 64
+213 78 64
+214 78 64
+215 78 64
+216 78 64
+217 78 64
+218 78 64
+219 78 64
+220 78 64
+221 78 64
+222 78 64
+223 78 64
+224 78 64
+225 78 64
+226 78 64
+227 78 64
+228 78 64
+229 78 64
+230 78 64
+231 78 64
+232 78 64
+233 78 64
+234 78 64
+235 78 64
+236 78 64
+237 78 64
+238 78 64
+239 78 64
+240 78 64
+241 78 64
+242 78 64
+243 78 64
+244 78 64
+245 78 64
+246 78 64
+247 78 64
+248 78 64
+249 78 64
+250 78 64
+251 78 64
+252 78 64
+253 78 64
+254 78 64
+255 78 64
+0 77 64
+1 77 64
+2 77 64
+3 77 64
+4 77 64
+5 77 64
+6 77 64
+7 77 64
+8 77 64
+9 77 64
+10 77 64
+11 77 64
+12 77 64
+13 77 64
+14 77 64
+15 77 64
+16 77 64
+17 77 64
+18 77 64
+19 77 64
+20 77 64
+21 77 64
+22 77 64
+23 77 64
+24 77 64
+25 77 64
+26 77 64
+27 77 64
+28 77 64
+29 77 64
+30 77 64
+31 77 64
+32 77 64
+33 77 64
+34 77 64
+35 77 64
+36 77 64
+37 77 64
+38 77 64
+39 77 64
+40 77 64
+41 77 64
+42 77 64
+43 77 64
+44 77 64
+45 77 64
+46 77 64
+47 77 64
+48 77 64
+49 77 64
+50 77 64
+51 77 64
+52 77 64
+53 77 64
+54 77 64
+55 77 64
+56 77 64
+57 77 64
+58 77 64
+59 77 64
+60 77 64
+61 77 64
+62 77 64
+63 77 64
+64 77 64
+65 77 64
+66 77 64
+67 77 64
+68 77 64
+69 77 64
+70 77 64
+71 77 64
+72 77 64
+73 77 64
+74 77 64
+75 77 64
+76 77 64
+77 77 64
+78 77 64
+79 77 64
+80 77 64
+81 77 64
+82 77 64
+83 77 64
+84 77 64
+85 77 64
+86 77 64
+87 77 64
+88 77 64
+89 77 64
+90 77 64
+91 77 64
+92 77 64
+93 77 64
+94 77 64
+95 77 64
+96 77 64
+97 77 64
+98 77 64
+99 77 64
+100 77 64
+101 77 64
+102 77 64
+103 77 64
+104 77 64
+105 77 64
+106 77 64
+107 77 64
+108 77 64
+109 77 64
+110 77 64
+111 77 64
+112 77 64
+113 77 64
+114 77 64
+115 77 64
+116 77 64
+117 77 64
+118 77 64
+119 77 64
+120 77 64
+121 77 64
+122 77 64
+123 77 64
+124 77 64
+125 77 64
+126 77 64
+127 77 64
+128 77 64
+129 77 64
+130 77 64
+131 77 64
+132 77 64
+133 77 64
+134 77 64
+135 77 64
+136 77 64
+137 77 64
+138 77 64
+139 77 64
+140 77 64
+141 77 64
+142 77 64
+143 77 64
+144 77 64
+145 77 64
+146 77 64
+147 77 64
+148 77 64
+149 77 64
+150 77 64
+151 77 64
+152 77 64
+153 77 64
+154 77 64
+155 77 64
+156 77 64
+157 77 64
+158 77 64
+159 77 64
+160 77 64
+161 77 64
+162 77 64
+163 77 64
+164 77 64
+165 77 64
+166 77 64
+167 77 64
+168 77 64
+169 77 64
+170 77 64
+171 77 64
+172 77 64
+173 77 64
+174 77 64
+175 77 64
+176 77 64
+177 77 64
+178 77 64
+179 77 64
+180 77 64
+181 77 64
+182 77 64
+183 77 64
+184 77 64
+185 77 64
+186 77 64
+187 77 64
+188 77 64
+189 77 64
+190 77 64
+191 77 64
+192 77 64
+193 77 64
+194 77 64
+195 77 64
+196 77 64
+197 77 64
+198 77 64
+199 77 64
+200 77 64
+201 77 64
+202 77 64
+203 77 64
+204 77 64
+205 77 64
+206 77 64
+207 77 64
+208 77 64
+209 77 64
+210 77 64
+211 77 64
+212 77 64
+213 77 64
+214 77 64
+215 77 64
+216 77 64
+217 77 64
+218 77 64
+219 77 64
+220 77 64
+221 77 64
+222 77 64
+223 77 64
+224 77 64
+225 77 64
+226 77 64
+227 77 64
+228 77 64
+229 77 64
+230 77 64
+231 77 64
+232 77 64
+233 77 64
+234 77 64
+235 77 64
+236 77 64
+237 77 64
+238 77 64
+239 77 64
+240 77 64
+241 77 64
+242 77 64
+243 77 64
+244 77 64
+245 77 64
+246 77 64
+247 77 64
+248 77 64
+249 77 64
+250 77 64
+251 77 64
+252 77 64
+253 77 64
+254 77 64
+255 77 64
+0 76 64
+1 76 64
+2 76 64
+3 76 64
+4 76 64
+5 76 64
+6 76 64
+7 76 64
+8 76 64
+9 76 64
+10 76 64
+11 76 64
+12 76 64
+13 76 64
+14 76 64
+15 76 64
+16 76 64
+17 76 64
+18 76 64
+19 76 64
+20 76 64
+21 76 64
+22 76 64
+23 76 64
+24 76 64
+25 76 64
+26 76 64
+27 76 64
+28 76 64
+29 76 64
+30 76 64
+31 76 64
+32 76 64
+33 76 64
+34 76 64
+35 76 64
+36 76 64
+37 76 64
+38 76 64
+39 76 64
+40 76 64
+41 76 64
+42 76 64
+43 76 64
+44 76 64
+45 76 64
+46 76 64
+47 76 64
+48 76 64
+49 76 64
+50 76 64
+51 76 64
+52 76 64
+53 76 64
+54 76 64
+55 76 64
+56 76 64
+57 76 64
+58 76 64
+59 76 64
+60 76 64
+61 76 64
+62 76 64
+63 76 64
+64 76 64
+65 76 64
+66 76 64
+67 76 64
+68 76 64
+69 76 64
+70 76 64
+71 76 64
+72 76 64
+73 76 64
+74 76 64
+75 76 64
+76 76 64
+77 76 64
+78 76 64
+79 76 64
+80 76 64
+81 76 64
+82 76 64
+83 76 64
+84 76 64
+85 76 64
+86 76 64
+87 76 64
+88 76 64
+89 76 64
+90 76 64
+91 76 64
+92 76 64
+93 76 64
+94 76 64
+95 76 64
+96 76 64
+97 76 64
+98 76 64
+99 76 64
+100 76 64
+101 76 64
+102 76 64
+103 76 64
+104 76 64
+105 76 64
+106 76 64
+107 76 64
+108 76 64
+109 76 64
+110 76 64
+111 76 64
+112 76 64
+113 76 64
+114 76 64
+115 76 64
+116 76 64
+117 76 64
+118 76 64
+119 76 64
+120 76 64
+121 76 64
+122 76 64
+123 76 64
+124 76 64
+125 76 64
+126 76 64
+127 76 64
+128 76 64
+129 76 64
+130 76 64
+131 76 64
+132 76 64
+133 76 64
+134 76 64
+135 76 64
+136 76 64
+137 76 64
+138 76 64
+139 76 64
+140 76 64
+141 76 64
+142 76 64
+143 76 64
+144 76 64
+145 76 64
+146 76 64
+147 76 64
+148 76 64
+149 76 64
+150 76 64
+151 76 64
+152 76 64
+153 76 64
+154 76 64
+155 76 64
+156 76 64
+157 76 64
+158 76 64
+159 76 64
+160 76 64
+161 76 64
+162 76 64
+163 76 64
+164 76 64
+165 76 64
+166 76 64
+167 76 64
+168 76 64
+169 76 64
+170 76 64
+171 76 64
+172 76 64
+173 76 64
+174 76 64
+175 76 64
+176 76 64
+177 76 64
+178 76 64
+179 76 64
+180 76 64
+181 76 64
+182 76 64
+183 76 64
+184 76 64
+185 76 64
+186 76 64
+187 76 64
+188 76 64
+189 76 64
+190 76 64
+191 76 64
+192 76 64
+193 76 64
+194 76 64
+195 76 64
+196 76 64
+197 76 64
+198 76 64
+199 76 64
+200 76 64
+201 76 64
+202 76 64
+203 76 64
+204 76 64
+205 76 64
+206 76 64
+207 76 64
+208 76 64
+209 76 64
+210 76 64
+211 76 64
+212 76 64
+213 76 64
+214 76 64
+215 76 64
+216 76 64
+217 76 64
+218 76 64
+219 76 64
+220 76 64
+221 76 64
+222 76 64
+223 76 64
+224 76 64
+225 76 64
+226 76 64
+227 76 64
+228 76 64
+229 76 64
+230 76 64
+231 76 64
+232 76 64
+233 76 64
+234 76 64
+235 76 64
+236 76 64
+237 76 64
+238 76 64
+239 76 64
+240 76 64
+241 76 64
+242 76 64
+243 76 64
+244 76 64
+245 76 64
+246 76 64
+247 76 64
+248 76 64
+249 76 64
+250 76 64
+251 76 64
+252 76 64
+253 76 64
+254 76 64
+255 76 64
+0 75 64
+1 75 64
+2 75 64
+3 75 64
+4 75 64
+5 75 64
+6 75 64
+7 75 64
+8 75 64
+9 75 64
+10 75 64
+11 75 64
+12 75 64
+13 75 64
+14 75 64
+15 75 64
+16 75 64
+17 75 64
+18 75 64
+19 75 64
+20 75 64
+21 75 64
+22 75 64
+23 75 64
+24 75 64
+25 75 64
+26 75 64
+27 75 64
+28 75 64
+29 75 64
+30 75 64
+31 75 64
+32 75 64
+33 75 64
+34 75 64
+35 75 64
+36 75 64
+37 75 64
+38 75 64
+39 75 64
+40 75 64
+41 75 64
+42 75 64
+43 75 64
+44 75 64
+45 75 64
+46 75 64
+47 75 64
+48 75 64
+49 75 64
+50 75 64
+51 75 64
+52 75 64
+53 75 64
+54 75 64
+55 75 64
+56 75 64
+57 75 64
+58 75 64
+59 75 64
+60 75 64
+61 75 64
+62 75 64
+63 75 64
+64 75 64
+65 75 64
+66 75 64
+67 75 64
+68 75 64
+69 75 64
+70 75 64
+71 75 64
+72 75 64
+73 75 64
+74 75 64
+75 75 64
+76 75 64
+77 75 64
+78 75 64
+79 75 64
+80 75 64
+81 75 64
+82 75 64
+83 75 64
+84 75 64
+85 75 64
+86 75 64
+87 75 64
+88 75 64
+89 75 64
+90 75 64
+91 75 64
+92 75 64
+93 75 64
+94 75 64
+95 75 64
+96 75 64
+97 75 64
+98 75 64
+99 75 64
+100 75 64
+101 75 64
+102 75 64
+103 75 64
+104 75 64
+105 75 64
+106 75 64
+107 75 64
+108 75 64
+109 75 64
+110 75 64
+111 75 64
+112 75 64
+113 75 64
+114 75 64
+115 75 64
+116 75 64
+117 75 64
+118 75 64
+119 75 64
+120 75 64
+121 75 64
+122 75 64
+123 75 64
+124 75 64
+125 75 64
+126 75 64
+127 75 64
+128 75 64
+129 75 64
+130 75 64
+131 75 64
+132 75 64
+133 75 64
+134 75 64
+135 75 64
+136 75 64
+137 75 64
+138 75 64
+139 75 64
+140 75 64
+141 75 64
+142 75 64
+143 75 64
+144 75 64
+145 75 64
+146 75 64
+147 75 64
+148 75 64
+149 75 64
+150 75 64
+151 75 64
+152 75 64
+153 75 64
+154 75 64
+155 75 64
+156 75 64
+157 75 64
+158 75 64
+159 75 64
+160 75 64
+161 75 64
+162 75 64
+163 75 64
+164 75 64
+165 75 64
+166 75 64
+167 75 64
+168 75 64
+169 75 64
+170 75 64
+171 75 64
+172 75 64
+173 75 64
+174 75 64
+175 75 64
+176 75 64
+177 75 64
+178 75 64
+179 75 64
+180 75 64
+181 75 64
+182 75 64
+183 75 64
+184 75 64
+185 75 64
+186 75 64
+187 75 64
+188 75 64
+189 75 64
+190 75 64
+191 75 64
+192 75 64
+193 75 64
+194 75 64
+195 75 64
+196 75 64
+197 75 64
+198 75 64
+199 75 64
+200 75 64
+201 75 64
+202 75 64
+203 75 64
+204 75 64
+205 75 64
+206 75 64
+207 75 64
+208 75 64
+209 75 64
+210 75 64
+211 75 64
+212 75 64
+213 75 64
+214 75 64
+215 75 64
+216 75 64
+217 75 64
+218 75 64
+219 75 64
+220 75 64
+221 75 64
+222 75 64
+223 75 64
+224 75 64
+225 75 64
+226 75 64
+227 75 64
+228 75 64
+229 75 64
+230 75 64
+231 75 64
+232 75 64
+233 75 64
+234 75 64
+235 75 64
+236 75 64
+237 75 64
+238 75 64
+239 75 64
+240 75 64
+241 75 64
+242 75 64
+243 75 64
+244 75 64
+245 75 64
+246 75 64
+247 75 64
+248 75 64
+249 75 64
+250 75 64
+251 75 64
+252 75 64
+253 75 64
+254 75 64
+255 75 64
+0 74 64
+1 74 64
+2 74 64
+3 74 64
+4 74 64
+5 74 64
+6 74 64
+7 74 64
+8 74 64
+9 74 64
+10 74 64
+11 74 64
+12 74 64
+13 74 64
+14 74 64
+15 74 64
+16 74 64
+17 74 64
+18 74 64
+19 74 64
+20 74 64
+21 74 64
+22 74 64
+23 74 64
+24 74 64
+25 74 64
+26 74 64
+27 74 64
+28 74 64
+29 74 64
+30 74 64
+31 74 64
+32 74 64
+33 74 64
+34 74 64
+35 74 64
+36 74 64
+37 74 64
+38 74 64
+39 74 64
+40 74 64
+41 74 64
+42 74 64
+43 74 64
+44 74 64
+45 74 64
+46 74 64
+47 74 64
+48 74 64
+49 74 64
+50 74 64
+51 74 64
+52 74 64
+53 74 64
+54 74 64
+55 74 64
+56 74 64
+57 74 64
+58 74 64
+59 74 64
+60 74 64
+61 74 64
+62 74 64
+63 74 64
+64 74 64
+65 74 64
+66 74 64
+67 74 64
+68 74 64
+69 74 64
+70 74 64
+71 74 64
+72 74 64
+73 74 64
+74 74 64
+75 74 64
+76 74 64
+77 74 64
+78 74 64
+79 74 64
+80 74 64
+81 74 64
+82 74 64
+83 74 64
+84 74 64
+85 74 64
+86 74 64
+87 74 64
+88 74 64
+89 74 64
+90 74 64
+91 74 64
+92 74 64
+93 74 64
+94 74 64
+95 74 64
+96 74 64
+97 74 64
+98 74 64
+99 74 64
+100 74 64
+101 74 64
+102 74 64
+103 74 64
+104 74 64
+105 74 64
+106 74 64
+107 74 64
+108 74 64
+109 74 64
+110 74 64
+111 74 64
+112 74 64
+113 74 64
+114 74 64
+115 74 64
+116 74 64
+117 74 64
+118 74 64
+119 74 64
+120 74 64
+121 74 64
+122 74 64
+123 74 64
+124 74 64
+125 74 64
+126 74 64
+127 74 64
+128 74 64
+129 74 64
+130 74 64
+131 74 64
+132 74 64
+133 74 64
+134 74 64
+135 74 64
+136 74 64
+137 74 64
+138 74 64
+139 74 64
+140 74 64
+141 74 64
+142 74 64
+143 74 64
+144 74 64
+145 74 64
+146 74 64
+147 74 64
+148 74 64
+149 74 64
+150 74 64
+151 74 64
+152 74 64
+153 74 64
+154 74 64
+155 74 64
+156 74 64
+157 74 64
+158 74 64
+159 74 64
+160 74 64
+161 74 64
+162 74 64
+163 74 64
+164 74 64
+165 74 64
+166 74 64
+167 74 64
+168 74 64
+169 74 64
+170 74 64
+171 74 64
+172 74 64
+173 74 64
+174 74 64
+175 74 64
+176 74 64
+177 74 64
+178 74 64
+179 74 64
+180 74 64
+181 74 64
+182 74 64
+183 74 64
+184 74 64
+185 74 64
+186 74 64
+187 74 64
+188 74 64
+189 74 64
+190 74 64
+191 74 64
+192 74 64
+193 74 64
+194 74 64
+195 74 64
+196 74 64
+197 74 64
+198 74 64
+199 74 64
+200 74 64
+201 74 64
+202 74 64
+203 74 64
+204 74 64
+205 74 64
+206 74 64
+207 74 64
+208 74 64
+209 74 64
+210 74 64
+211 74 64
+212 74 64
+213 74 64
+214 74 64
+215 74 64
+216 74 64
+217 74 64
+218 74 64
+219 74 64
+220 74 64
+221 74 64
+222 74 64
+223 74 64
+224 74 64
+225 74 64
+226 74 64
+227 74 64
+228 74 64
+229 74 64
+230 74 64
+231 74 64
+232 74 64
+233 74 64
+234 74 64
+235 74 64
+236 74 64
+237 74 64
+238 74 64
+239 74 64
+240 74 64
+241 74 64
+242 74 64
+243 74 64
+244 74 64
+245 74 64
+246 74 64
+247 74 64
+248 74 64
+249 74 64
+250 74 64
+251 74 64
+252 74 64
+253 74 64
+254 74 64
+255 74 64
+0 73 64
+1 73 64
+2 73 64
+3 73 64
+4 73 64
+5 73 64
+6 73 64
+7 73 64
+8 73 64
+9 73 64
+10 73 64
+11 73 64
+12 73 64
+13 73 64
+14 73 64
+15 73 64
+16 73 64
+17 73 64
+18 73 64
+19 73 64
+20 73 64
+21 73 64
+22 73 64
+23 73 64
+24 73 64
+25 73 64
+26 73 64
+27 73 64
+28 73 64
+29 73 64
+30 73 64
+31 73 64
+32 73 64
+33 73 64
+34 73 64
+35 73 64
+36 73 64
+37 73 64
+38 73 64
+39 73 64
+40 73 64
+41 73 64
+42 73 64
+43 73 64
+44 73 64
+45 73 64
+46 73 64
+47 73 64
+48 73 64
+49 73 64
+50 73 64
+51 73 64
+52 73 64
+53 73 64
+54 73 64
+55 73 64
+56 73 64
+57 73 64
+58 73 64
+59 73 64
+60 73 64
+61 73 64
+62 73 64
+63 73 64
+64 73 64
+65 73 64
+66 73 64
+67 73 64
+68 73 64
+69 73 64
+70 73 64
+71 73 64
+72 73 64
+73 73 64
+74 73 64
+75 73 64
+76 73 64
+77 73 64
+78 73 64
+79 73 64
+80 73 64
+81 73 64
+82 73 64
+83 73 64
+84 73 64
+85 73 64
+86 73 64
+87 73 64
+88 73 64
+89 73 64
+90 73 64
+91 73 64
+92 73 64
+93 73 64
+94 73 64
+95 73 64
+96 73 64
+97 73 64
+98 73 64
+99 73 64
+100 73 64
+101 73 64
+102 73 64
+103 73 64
+104 73 64
+105 73 64
+106 73 64
+107 73 64
+108 73 64
+109 73 64
+110 73 64
+111 73 64
+112 73 64
+113 73 64
+114 73 64
+115 73 64
+116 73 64
+117 73 64
+118 73 64
+119 73 64
+120 73 64
+121 73 64
+122 73 64
+123 73 64
+124 73 64
+125 73 64
+126 73 64
+127 73 64
+128 73 64
+129 73 64
+130 73 64
+131 73 64
+132 73 64
+133 73 64
+134 73 64
+135 73 64
+136 73 64
+137 73 64
+138 73 64
+139 73 64
+140 73 64
+141 73 64
+142 73 64
+143 73 64
+144 73 64
+145 73 64
+146 73 64
+147 73 64
+148 73 64
+149 73 64
+150 73 64
+151 73 64
+152 73 64
+153 73 64
+154 73 64
+155 73 64
+156 73 64
+157 73 64
+158 73 64
+159 73 64
+160 73 64
+161 73 64
+162 73 64
+163 73 64
+164 73 64
+165 73 64
+166 73 64
+167 73 64
+168 73 64
+169 73 64
+170 73 64
+171 73 64
+172 73 64
+173 73 64
+174 73 64
+175 73 64
+176 73 64
+177 73 64
+178 73 64
+179 73 64
+180 73 64
+181 73 64
+182 73 64
+183 73 64
+184 73 64
+185 73 64
+186 73 64
+187 73 64
+188 73 64
+189 73 64
+190 73 64
+191 73 64
+192 73 64
+193 73 64
+194 73 64
+195 73 64
+196 73 64
+197 73 64
+198 73 64
+199 73 64
+200 73 64
+201 73 64
+202 73 64
+203 73 64
+204 73 64
+205 73 64
+206 73 64
+207 73 64
+208 73 64
+209 73 64
+210 73 64
+211 73 64
+212 73 64
+213 73 64
+214 73 64
+215 73 64
+216 73 64
+217 73 64
+218 73 64
+219 73 64
+220 73 64
+221 73 64
+222 73 64
+223 73 64
+224 73 64
+225 73 64
+226 73 64
+227 73 64
+228 73 64
+229 73 64
+230 73 64
+231 73 64
+232 73 64
+233 73 64
+234 73 64
+235 73 64
+236 73 64
+237 73 64
+238 73 64
+239 73 64
+240 73 64
+241 73 64
+242 73 64
+243 73 64
+244 73 64
+245 73 64
+246 73 64
+247 73 64
+248 73 64
+249 73 64
+250 73 64
+251 73 64
+252 73 64
+253 73 64
+254 73 64
+255 73 64
+0 72 64
+1 72 64
+2 72 64
+3 72 64
+4 72 64
+5 72 64
+6 72 64
+7 72 64
+8 72 64
+9 72 64
+10 72 64
+11 72 64
+12 72 64
+13 72 64
+14 72 64
+15 72 64
+16 72 64
+17 72 64
+18 72 64
+19 72 64
+20 72 64
+21 72 64
+22 72 64
+23 72 64
+24 72 64
+25 72 64
+26 72 64
+27 72 64
+28 72 64
+29 72 64
+30 72 64
+31 72 64
+32 72 64
+33 72 64
+34 72 64
+35 72 64
+36 72 64
+37 72 64
+38 72 64
+39 72 64
+40 72 64
+41 72 64
+42 72 64
+43 72 64
+44 72 64
+45 72 64
+46 72 64
+47 72 64
+48 72 64
+49 72 64
+50 72 64
+51 72 64
+52 72 64
+53 72 64
+54 72 64
+55 72 64
+56 72 64
+57 72 64
+58 72 64
+59 72 64
+60 72 64
+61 72 64
+62 72 64
+63 72 64
+64 72 64
+65 72 64
+66 72 64
+67 72 64
+68 72 64
+69 72 64
+70 72 64
+71 72 64
+72 72 64
+73 72 64
+74 72 64
+75 72 64
+76 72 64
+77 72 64
+78 72 64
+79 72 64
+80 72 64
+81 72 64
+82 72 64
+83 72 64
+84 72 64
+85 72 64
+86 72 64
+87 72 64
+88 72 64
+89 72 64
+90 72 64
+91 72 64
+92 72 64
+93 72 64
+94 72 64
+95 72 64
+96 72 64
+97 72 64
+98 72 64
+99 72 64
+100 72 64
+101 72 64
+102 72 64
+103 72 64
+104 72 64
+105 72 64
+106 72 64
+107 72 64
+108 72 64
+109 72 64
+110 72 64
+111 72 64
+112 72 64
+113 72 64
+114 72 64
+115 72 64
+116 72 64
+117 72 64
+118 72 64
+119 72 64
+120 72 64
+121 72 64
+122 72 64
+123 72 64
+124 72 64
+125 72 64
+126 72 64
+127 72 64
+128 72 64
+129 72 64
+130 72 64
+131 72 64
+132 72 64
+133 72 64
+134 72 64
+135 72 64
+136 72 64
+137 72 64
+138 72 64
+139 72 64
+140 72 64
+141 72 64
+142 72 64
+143 72 64
+144 72 64
+145 72 64
+146 72 64
+147 72 64
+148 72 64
+149 72 64
+150 72 64
+151 72 64
+152 72 64
+153 72 64
+154 72 64
+155 72 64
+156 72 64
+157 72 64
+158 72 64
+159 72 64
+160 72 64
+161 72 64
+162 72 64
+163 72 64
+164 72 64
+165 72 64
+166 72 64
+167 72 64
+168 72 64
+169 72 64
+170 72 64
+171 72 64
+172 72 64
+173 72 64
+174 72 64
+175 72 64
+176 72 64
+177 72 64
+178 72 64
+179 72 64
+180 72 64
+181 72 64
+182 72 64
+183 72 64
+184 72 64
+185 72 64
+186 72 64
+187 72 64
+188 72 64
+189 72 64
+190 72 64
+191 72 64
+192 72 64
+193 72 64
+194 72 64
+195 72 64
+196 72 64
+197 72 64
+198 72 64
+199 72 64
+200 72 64
+201 72 64
+202 72 64
+203 72 64
+204 72 64
+205 72 64
+206 72 64
+207 72 64
+208 72 64
+209 72 64
+210 72 64
+211 72 64
+212 72 64
+213 72 64
+214 72 64
+215 72 64
+216 72 64
+217 72 64
+218 72 64
+219 72 64
+220 72 64
+221 72 64
+222 72 64
+223 72 64
+224 72 64
+225 72 64
+226 72 64
+227 72 64
+228 72 64
+229 72 64
+230 72 64
+231 72 64
+232 72 64
+233 72 64
+234 72 64
+235 72 64
+236 72 64
+237 72 64
+238 72 64
+239 72 64
+240 72 64
+241 72 64
+242 72 64
+243 72 64
+244 72 64
+245 72 64
+246 72 64
+247 72 64
+248 72 64
+249 72 64
+250 72 64
+251 72 64
+252 72 64
+253 72 64
+254 72 64
+255 72 64
+0 71 64
+1 71 64
+2 71 64
+3 71 64
+4 71 64
+5 71 64
+6 71 64
+7 71 64
+8 71 64
+9 71 64
+10 71 64
+11 71 64
+12 71 64
+13 71 64
+14 71 64
+15 71 64
+16 71 64
+17 71 64
+18 71 64
+19 71 64
+20 71 64
+21 71 64
+22 71 64
+23 71 64
+24 71 64
+25 71 64
+26 71 64
+27 71 64
+28 71 64
+29 71 64
+30 71 64
+31 71 64
+32 71 64
+33 71 64
+34 71 64
+35 71 64
+36 71 64
+37 71 64
+38 71 64
+39 71 64
+40 71 64
+41 71 64
+42 71 64
+43 71 64
+44 71 64
+45 71 64
+46 71 64
+47 71 64
+48 71 64
+49 71 64
+50 71 64
+51 71 64
+52 71 64
+53 71 64
+54 71 64
+55 71 64
+56 71 64
+57 71 64
+58 71 64
+59 71 64
+60 71 64
+61 71 64
+62 71 64
+63 71 64
+64 71 64
+65 71 64
+66 71 64
+67 71 64
+68 71 64
+69 71 64
+70 71 64
+71 71 64
+72 71 64
+73 71 64
+74 71 64
+75 71 64
+76 71 64
+77 71 64
+78 71 64
+79 71 64
+80 71 64
+81 71 64
+82 71 64
+83 71 64
+84 71 64
+85 71 64
+86 71 64
+87 71 64
+88 71 64
+89 71 64
+90 71 64
+91 71 64
+92 71 64
+93 71 64
+94 71 64
+95 71 64
+96 71 64
+97 71 64
+98 71 64
+99 71 64
+100 71 64
+101 71 64
+102 71 64
+103 71 64
+104 71 64
+105 71 64
+106 71 64
+107 71 64
+108 71 64
+109 71 64
+110 71 64
+111 71 64
+112 71 64
+113 71 64
+114 71 64
+115 71 64
+116 71 64
+117 71 64
+118 71 64
+119 71 64
+120 71 64
+121 71 64
+122 71 64
+123 71 64
+124 71 64
+125 71 64
+126 71 64
+127 71 64
+128 71 64
+129 71 64
+130 71 64
+131 71 64
+132 71 64
+133 71 64
+134 71 64
+135 71 64
+136 71 64
+137 71 64
+138 71 64
+139 71 64
+140 71 64
+141 71 64
+142 71 64
+143 71 64
+144 71 64
+145 71 64
+146 71 64
+147 71 64
+148 71 64
+149 71 64
+150 71 64
+151 71 64
+152 71 64
+153 71 64
+154 71 64
+155 71 64
+156 71 64
+157 71 64
+158 71 64
+159 71 64
+160 71 64
+161 71 64
+162 71 64
+163 71 64
+164 71 64
+165 71 64
+166 71 64
+167 71 64
+168 71 64
+169 71 64
+170 71 64
+171 71 64
+172 71 64
+173 71 64
+174 71 64
+175 71 64
+176 71 64
+177 71 64
+178 71 64
+179 71 64
+180 71 64
+181 71 64
+182 71 64
+183 71 64
+184 71 64
+185 71 64
+186 71 64
+187 71 64
+188 71 64
+189 71 64
+190 71 64
+191 71 64
+192 71 64
+193 71 64
+194 71 64
+195 71 64
+196 71 64
+197 71 64
+198 71 64
+199 71 64
+200 71 64
+201 71 64
+202 71 64
+203 71 64
+204 71 64
+205 71 64
+206 71 64
+207 71 64
+208 71 64
+209 71 64
+210 71 64
+211 71 64
+212 71 64
+213 71 64
+214 71 64
+215 71 64
+216 71 64
+217 71 64
+218 71 64
+219 71 64
+220 71 64
+221 71 64
+222 71 64
+223 71 64
+224 71 64
+225 71 64
+226 71 64
+227 71 64
+228 71 64
+229 71 64
+230 71 64
+231 71 64
+232 71 64
+233 71 64
+234 71 64
+235 71 64
+236 71 64
+237 71 64
+238 71 64
+239 71 64
+240 71 64
+241 71 64
+242 71 64
+243 71 64
+244 71 64
+245 71 64
+246 71 64
+247 71 64
+248 71 64
+249 71 64
+250 71 64
+251 71 64
+252 71 64
+253 71 64
+254 71 64
+255 71 64
+0 70 64
+1 70 64
+2 70 64
+3 70 64
+4 70 64
+5 70 64
+6 70 64
+7 70 64
+8 70 64
+9 70 64
+10 70 64
+11 70 64
+12 70 64
+13 70 64
+14 70 64
+15 70 64
+16 70 64
+17 70 64
+18 70 64
+19 70 64
+20 70 64
+21 70 64
+22 70 64
+23 70 64
+24 70 64
+25 70 64
+26 70 64
+27 70 64
+28 70 64
+29 70 64
+30 70 64
+31 70 64
+32 70 64
+33 70 64
+34 70 64
+35 70 64
+36 70 64
+37 70 64
+38 70 64
+39 70 64
+40 70 64
+41 70 64
+42 70 64
+43 70 64
+44 70 64
+45 70 64
+46 70 64
+47 70 64
+48 70 64
+49 70 64
+50 70 64
+51 70 64
+52 70 64
+53 70 64
+54 70 64
+55 70 64
+56 70 64
+57 70 64
+58 70 64
+59 70 64
+60 70 64
+61 70 64
+62 70 64
+63 70 64
+64 70 64
+65 70 64
+66 70 64
+67 70 64
+68 70 64
+69 70 64
+70 70 64
+71 70 64
+72 70 64
+73 70 64
+74 70 64
+75 70 64
+76 70 64
+77 70 64
+78 70 64
+79 70 64
+80 70 64
+81 70 64
+82 70 64
+83 70 64
+84 70 64
+85 70 64
+86 70 64
+87 70 64
+88 70 64
+89 70 64
+90 70 64
+91 70 64
+92 70 64
+93 70 64
+94 70 64
+95 70 64
+96 70 64
+97 70 64
+98 70 64
+99 70 64
+100 70 64
+101 70 64
+102 70 64
+103 70 64
+104 70 64
+105 70 64
+106 70 64
+107 70 64
+108 70 64
+109 70 64
+110 70 64
+111 70 64
+112 70 64
+113 70 64
+114 70 64
+115 70 64
+116 70 64
+117 70 64
+118 70 64
+119 70 64
+120 70 64
+121 70 64
+122 70 64
+123 70 64
+124 70 64
+125 70 64
+126 70 64
+127 70 64
+128 70 64
+129 70 64
+130 70 64
+131 70 64
+132 70 64
+133 70 64
+134 70 64
+135 70 64
+136 70 64
+137 70 64
+138 70 64
+139 70 64
+140 70 64
+141 70 64
+142 70 64
+143 70 64
+144 70 64
+145 70 64
+146 70 64
+147 70 64
+148 70 64
+149 70 64
+150 70 64
+151 70 64
+152 70 64
+153 70 64
+154 70 64
+155 70 64
+156 70 64
+157 70 64
+158 70 64
+159 70 64
+160 70 64
+161 70 64
+162 70 64
+163 70 64
+164 70 64
+165 70 64
+166 70 64
+167 70 64
+168 70 64
+169 70 64
+170 70 64
+171 70 64
+172 70 64
+173 70 64
+174 70 64
+175 70 64
+176 70 64
+177 70 64
+178 70 64
+179 70 64
+180 70 64
+181 70 64
+182 70 64
+183 70 64
+184 70 64
+185 70 64
+186 70 64
+187 70 64
+188 70 64
+189 70 64
+190 70 64
+191 70 64
+192 70 64
+193 70 64
+194 70 64
+195 70 64
+196 70 64
+197 70 64
+198 70 64
+199 70 64
+200 70 64
+201 70 64
+202 70 64
+203 70 64
+204 70 64
+205 70 64
+206 70 64
+207 70 64
+208 70 64
+209 70 64
+210 70 64
+211 70 64
+212 70 64
+213 70 64
+214 70 64
+215 70 64
+216 70 64
+217 70 64
+218 70 64
+219 70 64
+220 70 64
+221 70 64
+222 70 64
+223 70 64
+224 70 64
+225 70 64
+226 70 64
+227 70 64
+228 70 64
+229 70 64
+230 70 64
+231 70 64
+232 70 64
+233 70 64
+234 70 64
+235 70 64
+236 70 64
+237 70 64
+238 70 64
+239 70 64
+240 70 64
+241 70 64
+242 70 64
+243 70 64
+244 70 64
+245 70 64
+246 70 64
+247 70 64
+248 70 64
+249 70 64
+250 70 64
+251 70 64
+252 70 64
+253 70 64
+254 70 64
+255 70 64
+0 69 64
+1 69 64
+2 69 64
+3 69 64
+4 69 64
+5 69 64
+6 69 64
+7 69 64
+8 69 64
+9 69 64
+10 69 64
+11 69 64
+12 69 64
+13 69 64
+14 69 64
+15 69 64
+16 69 64
+17 69 64
+18 69 64
+19 69 64
+20 69 64
+21 69 64
+22 69 64
+23 69 64
+24 69 64
+25 69 64
+26 69 64
+27 69 64
+28 69 64
+29 69 64
+30 69 64
+31 69 64
+32 69 64
+33 69 64
+34 69 64
+35 69 64
+36 69 64
+37 69 64
+38 69 64
+39 69 64
+40 69 64
+41 69 64
+42 69 64
+43 69 64
+44 69 64
+45 69 64
+46 69 64
+47 69 64
+48 69 64
+49 69 64
+50 69 64
+51 69 64
+52 69 64
+53 69 64
+54 69 64
+55 69 64
+56 69 64
+57 69 64
+58 69 64
+59 69 64
+60 69 64
+61 69 64
+62 69 64
+63 69 64
+64 69 64
+65 69 64
+66 69 64
+67 69 64
+68 69 64
+69 69 64
+70 69 64
+71 69 64
+72 69 64
+73 69 64
+74 69 64
+75 69 64
+76 69 64
+77 69 64
+78 69 64
+79 69 64
+80 69 64
+81 69 64
+82 69 64
+83 69 64
+84 69 64
+85 69 64
+86 69 64
+87 69 64
+88 69 64
+89 69 64
+90 69 64
+91 69 64
+92 69 64
+93 69 64
+94 69 64
+95 69 64
+96 69 64
+97 69 64
+98 69 64
+99 69 64
+100 69 64
+101 69 64
+102 69 64
+103 69 64
+104 69 64
+105 69 64
+106 69 64
+107 69 64
+108 69 64
+109 69 64
+110 69 64
+111 69 64
+112 69 64
+113 69 64
+114 69 64
+115 69 64
+116 69 64
+117 69 64
+118 69 64
+119 69 64
+120 69 64
+121 69 64
+122 69 64
+123 69 64
+124 69 64
+125 69 64
+126 69 64
+127 69 64
+128 69 64
+129 69 64
+130 69 64
+131 69 64
+132 69 64
+133 69 64
+134 69 64
+135 69 64
+136 69 64
+137 69 64
+138 69 64
+139 69 64
+140 69 64
+141 69 64
+142 69 64
+143 69 64
+144 69 64
+145 69 64
+146 69 64
+147 69 64
+148 69 64
+149 69 64
+150 69 64
+151 69 64
+152 69 64
+153 69 64
+154 69 64
+155 69 64
+156 69 64
+157 69 64
+158 69 64
+159 69 64
+160 69 64
+161 69 64
+162 69 64
+163 69 64
+164 69 64
+165 69 64
+166 69 64
+167 69 64
+168 69 64
+169 69 64
+170 69 64
+171 69 64
+172 69 64
+173 69 64
+174 69 64
+175 69 64
+176 69 64
+177 69 64
+178 69 64
+179 69 64
+180 69 64
+181 69 64
+182 69 64
+183 69 64
+184 69 64
+185 69 64
+186 69 64
+187 69 64
+188 69 64
+189 69 64
+190 69 64
+191 69 64
+192 69 64
+193 69 64
+194 69 64
+195 69 64
+196 69 64
+197 69 64
+198 69 64
+199 69 64
+200 69 64
+201 69 64
+202 69 64
+203 69 64
+204 69 64
+205 69 64
+206 69 64
+207 69 64
+208 69 64
+209 69 64
+210 69 64
+211 69 64
+212 69 64
+213 69 64
+214 69 64
+215 69 64
+216 69 64
+217 69 64
+218 69 64
+219 69 64
+220 69 64
+221 69 64
+222 69 64
+223 69 64
+224 69 64
+225 69 64
+226 69 64
+227 69 64
+228 69 64
+229 69 64
+230 69 64
+231 69 64
+232 69 64
+233 69 64
+234 69 64
+235 69 64
+236 69 64
+237 69 64
+238 69 64
+239 69 64
+240 69 64
+241 69 64
+242 69 64
+243 69 64
+244 69 64
+245 69 64
+246 69 64
+247 69 64
+248 69 64
+249 69 64
+250 69 64
+251 69 64
+252 69 64
+253 69 64
+254 69 64
+255 69 64
+0 68 64
+1 68 64
+2 68 64
+3 68 64
+4 68 64
+5 68 64
+6 68 64
+7 68 64
+8 68 64
+9 68 64
+10 68 64
+11 68 64
+12 68 64
+13 68 64
+14 68 64
+15 68 64
+16 68 64
+17 68 64
+18 68 64
+19 68 64
+20 68 64
+21 68 64
+22 68 64
+23 68 64
+24 68 64
+25 68 64
+26 68 64
+27 68 64
+28 68 64
+29 68 64
+30 68 64
+31 68 64
+32 68 64
+33 68 64
+34 68 64
+35 68 64
+36 68 64
+37 68 64
+38 68 64
+39 68 64
+40 68 64
+41 68 64
+42 68 64
+43 68 64
+44 68 64
+45 68 64
+46 68 64
+47 68 64
+48 68 64
+49 68 64
+50 68 64
+51 68 64
+52 68 64
+53 68 64
+54 68 64
+55 68 64
+56 68 64
+57 68 64
+58 68 64
+59 68 64
+60 68 64
+61 68 64
+62 68 64
+63 68 64
+64 68 64
+65 68 64
+66 68 64
+67 68 64
+68 68 64
+69 68 64
+70 68 64
+71 68 64
+72 68 64
+73 68 64
+74 68 64
+75 68 64
+76 68 64
+77 68 64
+78 68 64
+79 68 64
+80 68 64
+81 68 64
+82 68 64
+83 68 64
+84 68 64
+85 68 64
+86 68 64
+87 68 64
+88 68 64
+89 68 64
+90 68 64
+91 68 64
+92 68 64
+93 68 64
+94 68 64
+95 68 64
+96 68 64
+97 68 64
+98 68 64
+99 68 64
+100 68 64
+101 68 64
+102 68 64
+103 68 64
+104 68 64
+105 68 64
+106 68 64
+107 68 64
+108 68 64
+109 68 64
+110 68 64
+111 68 64
+112 68 64
+113 68 64
+114 68 64
+115 68 64
+116 68 64
+117 68 64
+118 68 64
+119 68 64
+120 68 64
+121 68 64
+122 68 64
+123 68 64
+124 68 64
+125 68 64
+126 68 64
+127 68 64
+128 68 64
+129 68 64
+130 68 64
+131 68 64
+132 68 64
+133 68 64
+134 68 64
+135 68 64
+136 68 64
+137 68 64
+138 68 64
+139 68 64
+140 68 64
+141 68 64
+142 68 64
+143 68 64
+144 68 64
+145 68 64
+146 68 64
+147 68 64
+148 68 64
+149 68 64
+150 68 64
+151 68 64
+152 68 64
+153 68 64
+154 68 64
+155 68 64
+156 68 64
+157 68 64
+158 68 64
+159 68 64
+160 68 64
+161 68 64
+162 68 64
+163 68 64
+164 68 64
+165 68 64
+166 68 64
+167 68 64
+168 68 64
+169 68 64
+170 68 64
+171 68 64
+172 68 64
+173 68 64
+174 68 64
+175 68 64
+176 68 64
+177 68 64
+178 68 64
+179 68 64
+180 68 64
+181 68 64
+182 68 64
+183 68 64
+184 68 64
+185 68 64
+186 68 64
+187 68 64
+188 68 64
+189 68 64
+190 68 64
+191 68 64
+192 68 64
+193 68 64
+194 68 64
+195 68 64
+196 68 64
+197 68 64
+198 68 64
+199 68 64
+200 68 64
+201 68 64
+202 68 64
+203 68 64
+204 68 64
+205 68 64
+206 68 64
+207 68 64
+208 68 64
+209 68 64
+210 68 64
+211 68 64
+212 68 64
+213 68 64
+214 68 64
+215 68 64
+216 68 64
+217 68 64
+218 68 64
+219 68 64
+220 68 64
+221 68 64
+222 68 64
+223 68 64
+224 68 64
+225 68 64
+226 68 64
+227 68 64
+228 68 64
+229 68 64
+230 68 64
+231 68 64
+232 68 64
+233 68 64
+234 68 64
+235 68 64
+236 68 64
+237 68 64
+238 68 64
+239 68 64
+240 68 64
+241 68 64
+242 68 64
+243 68 64
+244 68 64
+245 68 64
+246 68 64
+247 68 64
+248 68 64
+249 68 64
+250 68 64
+251 68 64
+252 68 64
+253 68 64
+254 68 64
+255 68 64
+0 67 64
+1 67 64
+2 67 64
+3 67 64
+4 67 64
+5 67 64
+6 67 64
+7 67 64
+8 67 64
+9 67 64
+10 67 64
+11 67 64
+12 67 64
+13 67 64
+14 67 64
+15 67 64
+16 67 64
+17 67 64
+18 67 64
+19 67 64
+20 67 64
+21 67 64
+22 67 64
+23 67 64
+24 67 64
+25 67 64
+26 67 64
+27 67 64
+28 67 64
+29 67 64
+30 67 64
+31 67 64
+32 67 64
+33 67 64
+34 67 64
+35 67 64
+36 67 64
+37 67 64
+38 67 64
+39 67 64
+40 67 64
+41 67 64
+42 67 64
+43 67 64
+44 67 64
+45 67 64
+46 67 64
+47 67 64
+48 67 64
+49 67 64
+50 67 64
+51 67 64
+52 67 64
+53 67 64
+54 67 64
+55 67 64
+56 67 64
+57 67 64
+58 67 64
+59 67 64
+60 67 64
+61 67 64
+62 67 64
+63 67 64
+64 67 64
+65 67 64
+66 67 64
+67 67 64
+68 67 64
+69 67 64
+70 67 64
+71 67 64
+72 67 64
+73 67 64
+74 67 64
+75 67 64
+76 67 64
+77 67 64
+78 67 64
+79 67 64
+80 67 64
+81 67 64
+82 67 64
+83 67 64
+84 67 64
+85 67 64
+86 67 64
+87 67 64
+88 67 64
+89 67 64
+90 67 64
+91 67 64
+92 67 64
+93 67 64
+94 67 64
+95 67 64
+96 67 64
+97 67 64
+98 67 64
+99 67 64
+100 67 64
+101 67 64
+102 67 64
+103 67 64
+104 67 64
+105 67 64
+106 67 64
+107 67 64
+108 67 64
+109 67 64
+110 67 64
+111 67 64
+112 67 64
+113 67 64
+114 67 64
+115 67 64
+116 67 64
+117 67 64
+118 67 64
+119 67 64
+120 67 64
+121 67 64
+122 67 64
+123 67 64
+124 67 64
+125 67 64
+126 67 64
+127 67 64
+128 67 64
+129 67 64
+130 67 64
+131 67 64
+132 67 64
+133 67 64
+134 67 64
+135 67 64
+136 67 64
+137 67 64
+138 67 64
+139 67 64
+140 67 64
+141 67 64
+142 67 64
+143 67 64
+144 67 64
+145 67 64
+146 67 64
+147 67 64
+148 67 64
+149 67 64
+150 67 64
+151 67 64
+152 67 64
+153 67 64
+154 67 64
+155 67 64
+156 67 64
+157 67 64
+158 67 64
+159 67 64
+160 67 64
+161 67 64
+162 67 64
+163 67 64
+164 67 64
+165 67 64
+166 67 64
+167 67 64
+168 67 64
+169 67 64
+170 67 64
+171 67 64
+172 67 64
+173 67 64
+174 67 64
+175 67 64
+176 67 64
+177 67 64
+178 67 64
+179 67 64
+180 67 64
+181 67 64
+182 67 64
+183 67 64
+184 67 64
+185 67 64
+186 67 64
+187 67 64
+188 67 64
+189 67 64
+190 67 64
+191 67 64
+192 67 64
+193 67 64
+194 67 64
+195 67 64
+196 67 64
+197 67 64
+198 67 64
+199 67 64
+200 67 64
+201 67 64
+202 67 64
+203 67 64
+204 67 64
+205 67 64
+206 67 64
+207 67 64
+208 67 64
+209 67 64
+210 67 64
+211 67 64
+212 67 64
+213 67 64
+214 67 64
+215 67 64
+216 67 64
+217 67 64
+218 67 64
+219 67 64
+220 67 64
+221 67 64
+222 67 64
+223 67 64
+224 67 64
+225 67 64
+226 67 64
+227 67 64
+228 67 64
+229 67 64
+230 67 64
+231 67 64
+232 67 64
+233 67 64
+234 67 64
+235 67 64
+236 67 64
+237 67 64
+238 67 64
+239 67 64
+240 67 64
+241 67 64
+242 67 64
+243 67 64
+244 67 64
+245 67 64
+246 67 64
+247 67 64
+248 67 64
+249 67 64
+250 67 64
+251 67 64
+252 67 64
+253 67 64
+254 67 64
+255 67 64
+0 66 64
+1 66 64
+2 66 64
+3 66 64
+4 66 64
+5 66 64
+6 66 64
+7 66 64
+8 66 64
+9 66 64
+10 66 64
+11 66 64
+12 66 64
+13 66 64
+14 66 64
+15 66 64
+16 66 64
+17 66 64
+18 66 64
+19 66 64
+20 66 64
+21 66 64
+22 66 64
+23 66 64
+24 66 64
+25 66 64
+26 66 64
+27 66 64
+28 66 64
+29 66 64
+30 66 64
+31 66 64
+32 66 64
+33 66 64
+34 66 64
+35 66 64
+36 66 64
+37 66 64
+38 66 64
+39 66 64
+40 66 64
+41 66 64
+42 66 64
+43 66 64
+44 66 64
+45 66 64
+46 66 64
+47 66 64
+48 66 64
+49 66 64
+50 66 64
+51 66 64
+52 66 64
+53 66 64
+54 66 64
+55 66 64
+56 66 64
+57 66 64
+58 66 64
+59 66 64
+60 66 64
+61 66 64
+62 66 64
+63 66 64
+64 66 64
+65 66 64
+66 66 64
+67 66 64
+68 66 64
+69 66 64
+70 66 64
+71 66 64
+72 66 64
+73 66 64
+74 66 64
+75 66 64
+76 66 64
+77 66 64
+78 66 64
+79 66 64
+80 66 64
+81 66 64
+82 66 64
+83 66 64
+84 66 64
+85 66 64
+86 66 64
+87 66 64
+88 66 64
+89 66 64
+90 66 64
+91 66 64
+92 66 64
+93 66 64
+94 66 64
+95 66 64
+96 66 64
+97 66 64
+98 66 64
+99 66 64
+100 66 64
+101 66 64
+102 66 64
+103 66 64
+104 66 64
+105 66 64
+106 66 64
+107 66 64
+108 66 64
+109 66 64
+110 66 64
+111 66 64
+112 66 64
+113 66 64
+114 66 64
+115 66 64
+116 66 64
+117 66 64
+118 66 64
+119 66 64
+120 66 64
+121 66 64
+122 66 64
+123 66 64
+124 66 64
+125 66 64
+126 66 64
+127 66 64
+128 66 64
+129 66 64
+130 66 64
+131 66 64
+132 66 64
+133 66 64
+134 66 64
+135 66 64
+136 66 64
+137 66 64
+138 66 64
+139 66 64
+140 66 64
+141 66 64
+142 66 64
+143 66 64
+144 66 64
+145 66 64
+146 66 64
+147 66 64
+148 66 64
+149 66 64
+150 66 64
+151 66 64
+152 66 64
+153 66 64
+154 66 64
+155 66 64
+156 66 64
+157 66 64
+158 66 64
+159 66 64
+160 66 64
+161 66 64
+162 66 64
+163 66 64
+164 66 64
+165 66 64
+166 66 64
+167 66 64
+168 66 64
+169 66 64
+170 66 64
+171 66 64
+172 66 64
+173 66 64
+174 66 64
+175 66 64
+176 66 64
+177 66 64
+178 66 64
+179 66 64
+180 66 64
+181 66 64
+182 66 64
+183 66 64
+184 66 64
+185 66 64
+186 66 64
+187 66 64
+188 66 64
+189 66 64
+190 66 64
+191 66 64
+192 66 64
+193 66 64
+194 66 64
+195 66 64
+196 66 64
+197 66 64
+198 66 64
+199 66 64
+200 66 64
+201 66 64
+202 66 64
+203 66 64
+204 66 64
+205 66 64
+206 66 64
+207 66 64
+208 66 64
+209 66 64
+210 66 64
+211 66 64
+212 66 64
+213 66 64
+214 66 64
+215 66 64
+216 66 64
+217 66 64
+218 66 64
+219 66 64
+220 66 64
+221 66 64
+222 66 64
+223 66 64
+224 66 64
+225 66 64
+226 66 64
+227 66 64
+228 66 64
+229 66 64
+230 66 64
+231 66 64
+232 66 64
+233 66 64
+234 66 64
+235 66 64
+236 66 64
+237 66 64
+238 66 64
+239 66 64
+240 66 64
+241 66 64
+242 66 64
+243 66 64
+244 66 64
+245 66 64
+246 66 64
+247 66 64
+248 66 64
+249 66 64
+250 66 64
+251 66 64
+252 66 64
+253 66 64
+254 66 64
+255 66 64
+0 65 64
+1 65 64
+2 65 64
+3 65 64
+4 65 64
+5 65 64
+6 65 64
+7 65 64
+8 65 64
+9 65 64
+10 65 64
+11 65 64
+12 65 64
+13 65 64
+14 65 64
+15 65 64
+16 65 64
+17 65 64
+18 65 64
+19 65 64
+20 65 64
+21 65 64
+22 65 64
+23 65 64
+24 65 64
+25 65 64
+26 65 64
+27 65 64
+28 65 64
+29 65 64
+30 65 64
+31 65 64
+32 65 64
+33 65 64
+34 65 64
+35 65 64
+36 65 64
+37 65 64
+38 65 64
+39 65 64
+40 65 64
+41 65 64
+42 65 64
+43 65 64
+44 65 64
+45 65 64
+46 65 64
+47 65 64
+48 65 64
+49 65 64
+50 65 64
+51 65 64
+52 65 64
+53 65 64
+54 65 64
+55 65 64
+56 65 64
+57 65 64
+58 65 64
+59 65 64
+60 65 64
+61 65 64
+62 65 64
+63 65 64
+64 65 64
+65 65 64
+66 65 64
+67 65 64
+68 65 64
+69 65 64
+70 65 64
+71 65 64
+72 65 64
+73 65 64
+74 65 64
+75 65 64
+76 65 64
+77 65 64
+78 65 64
+79 65 64
+80 65 64
+81 65 64
+82 65 64
+83 65 64
+84 65 64
+85 65 64
+86 65 64
+87 65 64
+88 65 64
+89 65 64
+90 65 64
+91 65 64
+92 65 64
+93 65 64
+94 65 64
+95 65 64
+96 65 64
+97 65 64
+98 65 64
+99 65 64
+100 65 64
+101 65 64
+102 65 64
+103 65 64
+104 65 64
+105 65 64
+106 65 64
+107 65 64
+108 65 64
+109 65 64
+110 65 64
+111 65 64
+112 65 64
+113 65 64
+114 65 64
+115 65 64
+116 65 64
+117 65 64
+118 65 64
+119 65 64
+120 65 64
+121 65 64
+122 65 64
+123 65 64
+124 65 64
+125 65 64
+126 65 64
+127 65 64
+128 65 64
+129 65 64
+130 65 64
+131 65 64
+132 65 64
+133 65 64
+134 65 64
+135 65 64
+136 65 64
+137 65 64
+138 65 64
+139 65 64
+140 65 64
+141 65 64
+142 65 64
+143 65 64
+144 65 64
+145 65 64
+146 65 64
+147 65 64
+148 65 64
+149 65 64
+150 65 64
+151 65 64
+152 65 64
+153 65 64
+154 65 64
+155 65 64
+156 65 64
+157 65 64
+158 65 64
+159 65 64
+160 65 64
+161 65 64
+162 65 64
+163 65 64
+164 65 64
+165 65 64
+166 65 64
+167 65 64
+168 65 64
+169 65 64
+170 65 64
+171 65 64
+172 65 64
+173 65 64
+174 65 64
+175 65 64
+176 65 64
+177 65 64
+178 65 64
+179 65 64
+180 65 64
+181 65 64
+182 65 64
+183 65 64
+184 65 64
+185 65 64
+186 65 64
+187 65 64
+188 65 64
+189 65 64
+190 65 64
+191 65 64
+192 65 64
+193 65 64
+194 65 64
+195 65 64
+196 65 64
+197 65 64
+198 65 64
+199 65 64
+200 65 64
+201 65 64
+202 65 64
+203 65 64
+204 65 64
+205 65 64
+206 65 64
+207 65 64
+208 65 64
+209 65 64
+210 65 64
+211 65 64
+212 65 64
+213 65 64
+214 65 64
+215 65 64
+216 65 64
+217 65 64
+218 65 64
+219 65 64
+220 65 64
+221 65 64
+222 65 64
+223 65 64
+224 65 64
+225 65 64
+226 65 64
+227 65 64
+228 65 64
+229 65 64
+230 65 64
+231 65 64
+232 65 64
+233 65 64
+234 65 64
+235 65 64
+236 65 64
+237 65 64
+238 65 64
+239 65 64
+240 65 64
+241 65 64
+242 65 64
+243 65 64
+244 65 64
+245 65 64
+246 65 64
+247 65 64
+248 65 64
+249 65 64
+250 65 64
+251 65 64
+252 65 64
+253 65 64
+254 65 64
+255 65 64
+0 64 64
+1 64 64
+2 64 64
+3 64 64
+4 64 64
+5 64 64
+6 64 64
+7 64 64
+8 64 64
+9 64 64
+10 64 64
+11 64 64
+12 64 64
+13 64 64
+14 64 64
+15 64 64
+16 64 64
+17 64 64
+18 64 64
+19 64 64
+20 64 64
+21 64 64
+22 64 64
+23 64 64
+24 64 64
+25 64 64
+26 64 64
+27 64 64
+28 64 64
+29 64 64
+30 64 64
+31 64 64
+32 64 64
+33 64 64
+34 64 64
+35 64 64
+36 64 64
+37 64 64
+38 64 64
+39 64 64
+40 64 64
+41 64 64
+42 64 64
+43 64 64
+44 64 64
+45 64 64
+46 64 64
+47 64 64
+48 64 64
+49 64 64
+50 64 64
+51 64 64
+52 64 64
+53 64 64
+54 64 64
+55 64 64
+56 64 64
+57 64 64
+58 64 64
+59 64 64
+60 64 64
+61 64 64
+62 64 64
+63 64 64
+64 64 64
+65 64 64
+66 64 64
+67 64 64
+68 64 64
+69 64 64
+70 64 64
+71 64 64
+72 64 64
+73 64 64
+74 64 64
+75 64 64
+76 64 64
+77 64 64
+78 64 64
+79 64 64
+80 64 64
+81 64 64
+82 64 64
+83 64 64
+84 64 64
+85 64 64
+86 64 64
+87 64 64
+88 64 64
+89 64 64
+90 64 64
+91 64 64
+92 64 64
+93 64 64
+94 64 64
+95 64 64
+96 64 64
+97 64 64
+98 64 64
+99 64 64
+100 64 64
+101 64 64
+102 64 64
+103 64 64
+104 64 64
+105 64 64
+106 64 64
+107 64 64
+108 64 64
+109 64 64
+110 64 64
+111 64 64
+112 64 64
+113 64 64
+114 64 64
+115 64 64
+116 64 64
+117 64 64
+118 64 64
+119 64 64
+120 64 64
+121 64 64
+122 64 64
+123 64 64
+124 64 64
+125 64 64
+126 64 64
+127 64 64
+128 64 64
+129 64 64
+130 64 64
+131 64 64
+132 64 64
+133 64 64
+134 64 64
+135 64 64
+136 64 64
+137 64 64
+138 64 64
+139 64 64
+140 64 64
+141 64 64
+142 64 64
+143 64 64
+144 64 64
+145 64 64
+146 64 64
+147 64 64
+148 64 64
+149 64 64
+150 64 64
+151 64 64
+152 64 64
+153 64 64
+154 64 64
+155 64 64
+156 64 64
+157 64 64
+158 64 64
+159 64 64
+160 64 64
+161 64 64
+162 64 64
+163 64 64
+164 64 64
+165 64 64
+166 64 64
+167 64 64
+168 64 64
+169 64 64
+170 64 64
+171 64 64
+172 64 64
+173 64 64
+174 64 64
+175 64 64
+176 64 64
+177 64 64
+178 64 64
+179 64 64
+180 64 64
+181 64 64
+182 64 64
+183 64 64
+184 64 64
+185 64 64
+186 64 64
+187 64 64
+188 64 64
+189 64 64
+190 64 64
+191 64 64
+192 64 64
+193 64 64
+194 64 64
+195 64 64
+196 64 64
+197 64 64
+198 64 64
+199 64 64
+200 64 64
+201 64 64
+202 64 64
+203 64 64
+204 64 64
+205 64 64
+206 64 64
+207 64 64
+208 64 64
+209 64 64
+210 64 64
+211 64 64
+212 64 64
+213 64 64
+214 64 64
+215 64 64
+216 64 64
+217 64 64
+218 64 64
+219 64 64
+220 64 64
+221 64 64
+222 64 64
+223 64 64
+224 64 64
+225 64 64
+226 64 64
+227 64 64
+228 64 64
+229 64 64
+230 64 64
+231 64 64
+232 64 64
+233 64 64
+234 64 64
+235 64 64
+236 64 64
+237 64 64
+238 64 64
+239 64 64
+240 64 64
+241 64 64
+242 64 64
+243 64 64
+244 64 64
+245 64 64
+246 64 64
+247 64 64
+248 64 64
+249 64 64
+250 64 64
+251 64 64
+252 64 64
+253 64 64
+254 64 64
+255 64 64
+0 63 64
+1 63 64
+2 63 64
+3 63 64
+4 63 64
+5 63 64
+6 63 64
+7 63 64
+8 63 64
+9 63 64
+10 63 64
+11 63 64
+12 63 64
+13 63 64
+14 63 64
+15 63 64
+16 63 64
+17 63 64
+18 63 64
+19 63 64
+20 63 64
+21 63 64
+22 63 64
+23 63 64
+24 63 64
+25 63 64
+26 63 64
+27 63 64
+28 63 64
+29 63 64
+30 63 64
+31 63 64
+32 63 64
+33 63 64
+34 63 64
+35 63 64
+36 63 64
+37 63 64
+38 63 64
+39 63 64
+40 63 64
+41 63 64
+42 63 64
+43 63 64
+44 63 64
+45 63 64
+46 63 64
+47 63 64
+48 63 64
+49 63 64
+50 63 64
+51 63 64
+52 63 64
+53 63 64
+54 63 64
+55 63 64
+56 63 64
+57 63 64
+58 63 64
+59 63 64
+60 63 64
+61 63 64
+62 63 64
+63 63 64
+64 63 64
+65 63 64
+66 63 64
+67 63 64
+68 63 64
+69 63 64
+70 63 64
+71 63 64
+72 63 64
+73 63 64
+74 63 64
+75 63 64
+76 63 64
+77 63 64
+78 63 64
+79 63 64
+80 63 64
+81 63 64
+82 63 64
+83 63 64
+84 63 64
+85 63 64
+86 63 64
+87 63 64
+88 63 64
+89 63 64
+90 63 64
+91 63 64
+92 63 64
+93 63 64
+94 63 64
+95 63 64
+96 63 64
+97 63 64
+98 63 64
+99 63 64
+100 63 64
+101 63 64
+102 63 64
+103 63 64
+104 63 64
+105 63 64
+106 63 64
+107 63 64
+108 63 64
+109 63 64
+110 63 64
+111 63 64
+112 63 64
+113 63 64
+114 63 64
+115 63 64
+116 63 64
+117 63 64
+118 63 64
+119 63 64
+120 63 64
+121 63 64
+122 63 64
+123 63 64
+124 63 64
+125 63 64
+126 63 64
+127 63 64
+128 63 64
+129 63 64
+130 63 64
+131 63 64
+132 63 64
+133 63 64
+134 63 64
+135 63 64
+136 63 64
+137 63 64
+138 63 64
+139 63 64
+140 63 64
+141 63 64
+142 63 64
+143 63 64
+144 63 64
+145 63 64
+146 63 64
+147 63 64
+148 63 64
+149 63 64
+150 63 64
+151 63 64
+152 63 64
+153 63 64
+154 63 64
+155 63 64
+156 63 64
+157 63 64
+158 63 64
+159 63 64
+160 63 64
+161 63 64
+162 63 64
+163 63 64
+164 63 64
+165 63 64
+166 63 64
+167 63 64
+168 63 64
+169 63 64
+170 63 64
+171 63 64
+172 63 64
+173 63 64
+174 63 64
+175 63 64
+176 63 64
+177 63 64
+178 63 64
+179 63 64
+180 63 64
+181 63 64
+182 63 64
+183 63 64
+184 63 64
+185 63 64
+186 63 64
+187 63 64
+188 63 64
+189 63 64
+190 63 64
+191 63 64
+192 63 64
+193 63 64
+194 63 64
+195 63 64
+196 63 64
+197 63 64
+198 63 64
+199 63 64
+200 63 64
+201 63 64
+202 63 64
+203 63 64
+204 63 64
+205 63 64
+206 63 64
+207 63 64
+208 63 64
+209 63 64
+210 63 64
+211 63 64
+212 63 64
+213 63 64
+214 63 64
+215 63 64
+216 63 64
+217 63 64
+218 63 64
+219 63 64
+220 63 64
+221 63 64
+222 63 64
+223 63 64
+224 63 64
+225 63 64
+226 63 64
+227 63 64
+228 63 64
+229 63 64
+230 63 64
+231 63 64
+232 63 64
+233 63 64
+234 63 64
+235 63 64
+236 63 64
+237 63 64
+238 63 64
+239 63 64
+240 63 64
+241 63 64
+242 63 64
+243 63 64
+244 63 64
+245 63 64
+246 63 64
+247 63 64
+248 63 64
+249 63 64
+250 63 64
+251 63 64
+252 63 64
+253 63 64
+254 63 64
+255 63 64
+0 62 64
+1 62 64
+2 62 64
+3 62 64
+4 62 64
+5 62 64
+6 62 64
+7 62 64
+8 62 64
+9 62 64
+10 62 64
+11 62 64
+12 62 64
+13 62 64
+14 62 64
+15 62 64
+16 62 64
+17 62 64
+18 62 64
+19 62 64
+20 62 64
+21 62 64
+22 62 64
+23 62 64
+24 62 64
+25 62 64
+26 62 64
+27 62 64
+28 62 64
+29 62 64
+30 62 64
+31 62 64
+32 62 64
+33 62 64
+34 62 64
+35 62 64
+36 62 64
+37 62 64
+38 62 64
+39 62 64
+40 62 64
+41 62 64
+42 62 64
+43 62 64
+44 62 64
+45 62 64
+46 62 64
+47 62 64
+48 62 64
+49 62 64
+50 62 64
+51 62 64
+52 62 64
+53 62 64
+54 62 64
+55 62 64
+56 62 64
+57 62 64
+58 62 64
+59 62 64
+60 62 64
+61 62 64
+62 62 64
+63 62 64
+64 62 64
+65 62 64
+66 62 64
+67 62 64
+68 62 64
+69 62 64
+70 62 64
+71 62 64
+72 62 64
+73 62 64
+74 62 64
+75 62 64
+76 62 64
+77 62 64
+78 62 64
+79 62 64
+80 62 64
+81 62 64
+82 62 64
+83 62 64
+84 62 64
+85 62 64
+86 62 64
+87 62 64
+88 62 64
+89 62 64
+90 62 64
+91 62 64
+92 62 64
+93 62 64
+94 62 64
+95 62 64
+96 62 64
+97 62 64
+98 62 64
+99 62 64
+100 62 64
+101 62 64
+102 62 64
+103 62 64
+104 62 64
+105 62 64
+106 62 64
+107 62 64
+108 62 64
+109 62 64
+110 62 64
+111 62 64
+112 62 64
+113 62 64
+114 62 64
+115 62 64
+116 62 64
+117 62 64
+118 62 64
+119 62 64
+120 62 64
+121 62 64
+122 62 64
+123 62 64
+124 62 64
+125 62 64
+126 62 64
+127 62 64
+128 62 64
+129 62 64
+130 62 64
+131 62 64
+132 62 64
+133 62 64
+134 62 64
+135 62 64
+136 62 64
+137 62 64
+138 62 64
+139 62 64
+140 62 64
+141 62 64
+142 62 64
+143 62 64
+144 62 64
+145 62 64
+146 62 64
+147 62 64
+148 62 64
+149 62 64
+150 62 64
+151 62 64
+152 62 64
+153 62 64
+154 62 64
+155 62 64
+156 62 64
+157 62 64
+158 62 64
+159 62 64
+160 62 64
+161 62 64
+162 62 64
+163 62 64
+164 62 64
+165 62 64
+166 62 64
+167 62 64
+168 62 64
+169 62 64
+170 62 64
+171 62 64
+172 62 64
+173 62 64
+174 62 64
+175 62 64
+176 62 64
+177 62 64
+178 62 64
+179 62 64
+180 62 64
+181 62 64
+182 62 64
+183 62 64
+184 62 64
+185 62 64
+186 62 64
+187 62 64
+188 62 64
+189 62 64
+190 62 64
+191 62 64
+192 62 64
+193 62 64
+194 62 64
+195 62 64
+196 62 64
+197 62 64
+198 62 64
+199 62 64
+200 62 64
+201 62 64
+202 62 64
+203 62 64
+204 62 64
+205 62 64
+206 62 64
+207 62 64
+208 62 64
+209 62 64
+210 62 64
+211 62 64
+212 62 64
+213 62 64
+214 62 64
+215 62 64
+216 62 64
+217 62 64
+218 62 64
+219 62 64
+220 62 64
+221 62 64
+222 62 64
+223 62 64
+224 62 64
+225 62 64
+226 62 64
+227 62 64
+228 62 64
+229 62 64
+230 62 64
+231 62 64
+232 62 64
+233 62 64
+234 62 64
+235 62 64
+236 62 64
+237 62 64
+238 62 64
+239 62 64
+240 62 64
+241 62 64
+242 62 64
+243 62 64
+244 62 64
+245 62 64
+246 62 64
+247 62 64
+248 62 64
+249 62 64
+250 62 64
+251 62 64
+252 62 64
+253 62 64
+254 62 64
+255 62 64
+0 61 64
+1 61 64
+2 61 64
+3 61 64
+4 61 64
+5 61 64
+6 61 64
+7 61 64
+8 61 64
+9 61 64
+10 61 64
+11 61 64
+12 61 64
+13 61 64
+14 61 64
+15 61 64
+16 61 64
+17 61 64
+18 61 64
+19 61 64
+20 61 64
+21 61 64
+22 61 64
+23 61 64
+24 61 64
+25 61 64
+26 61 64
+27 61 64
+28 61 64
+29 61 64
+30 61 64
+31 61 64
+32 61 64
+33 61 64
+34 61 64
+35 61 64
+36 61 64
+37 61 64
+38 61 64
+39 61 64
+40 61 64
+41 61 64
+42 61 64
+43 61 64
+44 61 64
+45 61 64
+46 61 64
+47 61 64
+48 61 64
+49 61 64
+50 61 64
+51 61 64
+52 61 64
+53 61 64
+54 61 64
+55 61 64
+56 61 64
+57 61 64
+58 61 64
+59 61 64
+60 61 64
+61 61 64
+62 61 64
+63 61 64
+64 61 64
+65 61 64
+66 61 64
+67 61 64
+68 61 64
+69 61 64
+70 61 64
+71 61 64
+72 61 64
+73 61 64
+74 61 64
+75 61 64
+76 61 64
+77 61 64
+78 61 64
+79 61 64
+80 61 64
+81 61 64
+82 61 64
+83 61 64
+84 61 64
+85 61 64
+86 61 64
+87 61 64
+88 61 64
+89 61 64
+90 61 64
+91 61 64
+92 61 64
+93 61 64
+94 61 64
+95 61 64
+96 61 64
+97 61 64
+98 61 64
+99 61 64
+100 61 64
+101 61 64
+102 61 64
+103 61 64
+104 61 64
+105 61 64
+106 61 64
+107 61 64
+108 61 64
+109 61 64
+110 61 64
+111 61 64
+112 61 64
+113 61 64
+114 61 64
+115 61 64
+116 61 64
+117 61 64
+118 61 64
+119 61 64
+120 61 64
+121 61 64
+122 61 64
+123 61 64
+124 61 64
+125 61 64
+126 61 64
+127 61 64
+128 61 64
+129 61 64
+130 61 64
+131 61 64
+132 61 64
+133 61 64
+134 61 64
+135 61 64
+136 61 64
+137 61 64
+138 61 64
+139 61 64
+140 61 64
+141 61 64
+142 61 64
+143 61 64
+144 61 64
+145 61 64
+146 61 64
+147 61 64
+148 61 64
+149 61 64
+150 61 64
+151 61 64
+152 61 64
+153 61 64
+154 61 64
+155 61 64
+156 61 64
+157 61 64
+158 61 64
+159 61 64
+160 61 64
+161 61 64
+162 61 64
+163 61 64
+164 61 64
+165 61 64
+166 61 64
+167 61 64
+168 61 64
+169 61 64
+170 61 64
+171 61 64
+172 61 64
+173 61 64
+174 61 64
+175 61 64
+176 61 64
+177 61 64
+178 61 64
+179 61 64
+180 61 64
+181 61 64
+182 61 64
+183 61 64
+184 61 64
+185 61 64
+186 61 64
+187 61 64
+188 61 64
+189 61 64
+190 61 64
+191 61 64
+192 61 64
+193 61 64
+194 61 64
+195 61 64
+196 61 64
+197 61 64
+198 61 64
+199 61 64
+200 61 64
+201 61 64
+202 61 64
+203 61 64
+204 61 64
+205 61 64
+206 61 64
+207 61 64
+208 61 64
+209 61 64
+210 61 64
+211 61 64
+212 61 64
+213 61 64
+214 61 64
+215 61 64
+216 61 64
+217 61 64
+218 61 64
+219 61 64
+220 61 64
+221 61 64
+222 61 64
+223 61 64
+224 61 64
+225 61 64
+226 61 64
+227 61 64
+228 61 64
+229 61 64
+230 61 64
+231 61 64
+232 61 64
+233 61 64
+234 61 64
+235 61 64
+236 61 64
+237 61 64
+238 61 64
+239 61 64
+240 61 64
+241 61 64
+242 61 64
+243 61 64
+244 61 64
+245 61 64
+246 61 64
+247 61 64
+248 61 64
+249 61 64
+250 61 64
+251 61 64
+252 61 64
+253 61 64
+254 61 64
+255 61 64
+0 60 64
+1 60 64
+2 60 64
+3 60 64
+4 60 64
+5 60 64
+6 60 64
+7 60 64
+8 60 64
+9 60 64
+10 60 64
+11 60 64
+12 60 64
+13 60 64
+14 60 64
+15 60 64
+16 60 64
+17 60 64
+18 60 64
+19 60 64
+20 60 64
+21 60 64
+22 60 64
+23 60 64
+24 60 64
+25 60 64
+26 60 64
+27 60 64
+28 60 64
+29 60 64
+30 60 64
+31 60 64
+32 60 64
+33 60 64
+34 60 64
+35 60 64
+36 60 64
+37 60 64
+38 60 64
+39 60 64
+40 60 64
+41 60 64
+42 60 64
+43 60 64
+44 60 64
+45 60 64
+46 60 64
+47 60 64
+48 60 64
+49 60 64
+50 60 64
+51 60 64
+52 60 64
+53 60 64
+54 60 64
+55 60 64
+56 60 64
+57 60 64
+58 60 64
+59 60 64
+60 60 64
+61 60 64
+62 60 64
+63 60 64
+64 60 64
+65 60 64
+66 60 64
+67 60 64
+68 60 64
+69 60 64
+70 60 64
+71 60 64
+72 60 64
+73 60 64
+74 60 64
+75 60 64
+76 60 64
+77 60 64
+78 60 64
+79 60 64
+80 60 64
+81 60 64
+82 60 64
+83 60 64
+84 60 64
+85 60 64
+86 60 64
+87 60 64
+88 60 64
+89 60 64
+90 60 64
+91 60 64
+92 60 64
+93 60 64
+94 60 64
+95 60 64
+96 60 64
+97 60 64
+98 60 64
+99 60 64
+100 60 64
+101 60 64
+102 60 64
+103 60 64
+104 60 64
+105 60 64
+106 60 64
+107 60 64
+108 60 64
+109 60 64
+110 60 64
+111 60 64
+112 60 64
+113 60 64
+114 60 64
+115 60 64
+116 60 64
+117 60 64
+118 60 64
+119 60 64
+120 60 64
+121 60 64
+122 60 64
+123 60 64
+124 60 64
+125 60 64
+126 60 64
+127 60 64
+128 60 64
+129 60 64
+130 60 64
+131 60 64
+132 60 64
+133 60 64
+134 60 64
+135 60 64
+136 60 64
+137 60 64
+138 60 64
+139 60 64
+140 60 64
+141 60 64
+142 60 64
+143 60 64
+144 60 64
+145 60 64
+146 60 64
+147 60 64
+148 60 64
+149 60 64
+150 60 64
+151 60 64
+152 60 64
+153 60 64
+154 60 64
+155 60 64
+156 60 64
+157 60 64
+158 60 64
+159 60 64
+160 60 64
+161 60 64
+162 60 64
+163 60 64
+164 60 64
+165 60 64
+166 60 64
+167 60 64
+168 60 64
+169 60 64
+170 60 64
+171 60 64
+172 60 64
+173 60 64
+174 60 64
+175 60 64
+176 60 64
+177 60 64
+178 60 64
+179 60 64
+180 60 64
+181 60 64
+182 60 64
+183 60 64
+184 60 64
+185 60 64
+186 60 64
+187 60 64
+188 60 64
+189 60 64
+190 60 64
+191 60 64
+192 60 64
+193 60 64
+194 60 64
+195 60 64
+196 60 64
+197 60 64
+198 60 64
+199 60 64
+200 60 64
+201 60 64
+202 60 64
+203 60 64
+204 60 64
+205 60 64
+206 60 64
+207 60 64
+208 60 64
+209 60 64
+210 60 64
+211 60 64
+212 60 64
+213 60 64
+214 60 64
+215 60 64
+216 60 64
+217 60 64
+218 60 64
+219 60 64
+220 60 64
+221 60 64
+222 60 64
+223 60 64
+224 60 64
+225 60 64
+226 60 64
+227 60 64
+228 60 64
+229 60 64
+230 60 64
+231 60 64
+232 60 64
+233 60 64
+234 60 64
+235 60 64
+236 60 64
+237 60 64
+238 60 64
+239 60 64
+240 60 64
+241 60 64
+242 60 64
+243 60 64
+244 60 64
+245 60 64
+246 60 64
+247 60 64
+248 60 64
+249 60 64
+250 60 64
+251 60 64
+252 60 64
+253 60 64
+254 60 64
+255 60 64
+0 59 64
+1 59 64
+2 59 64
+3 59 64
+4 59 64
+5 59 64
+6 59 64
+7 59 64
+8 59 64
+9 59 64
+10 59 64
+11 59 64
+12 59 64
+13 59 64
+14 59 64
+15 59 64
+16 59 64
+17 59 64
+18 59 64
+19 59 64
+20 59 64
+21 59 64
+22 59 64
+23 59 64
+24 59 64
+25 59 64
+26 59 64
+27 59 64
+28 59 64
+29 59 64
+30 59 64
+31 59 64
+32 59 64
+33 59 64
+34 59 64
+35 59 64
+36 59 64
+37 59 64
+38 59 64
+39 59 64
+40 59 64
+41 59 64
+42 59 64
+43 59 64
+44 59 64
+45 59 64
+46 59 64
+47 59 64
+48 59 64
+49 59 64
+50 59 64
+51 59 64
+52 59 64
+53 59 64
+54 59 64
+55 59 64
+56 59 64
+57 59 64
+58 59 64
+59 59 64
+60 59 64
+61 59 64
+62 59 64
+63 59 64
+64 59 64
+65 59 64
+66 59 64
+67 59 64
+68 59 64
+69 59 64
+70 59 64
+71 59 64
+72 59 64
+73 59 64
+74 59 64
+75 59 64
+76 59 64
+77 59 64
+78 59 64
+79 59 64
+80 59 64
+81 59 64
+82 59 64
+83 59 64
+84 59 64
+85 59 64
+86 59 64
+87 59 64
+88 59 64
+89 59 64
+90 59 64
+91 59 64
+92 59 64
+93 59 64
+94 59 64
+95 59 64
+96 59 64
+97 59 64
+98 59 64
+99 59 64
+100 59 64
+101 59 64
+102 59 64
+103 59 64
+104 59 64
+105 59 64
+106 59 64
+107 59 64
+108 59 64
+109 59 64
+110 59 64
+111 59 64
+112 59 64
+113 59 64
+114 59 64
+115 59 64
+116 59 64
+117 59 64
+118 59 64
+119 59 64
+120 59 64
+121 59 64
+122 59 64
+123 59 64
+124 59 64
+125 59 64
+126 59 64
+127 59 64
+128 59 64
+129 59 64
+130 59 64
+131 59 64
+132 59 64
+133 59 64
+134 59 64
+135 59 64
+136 59 64
+137 59 64
+138 59 64
+139 59 64
+140 59 64
+141 59 64
+142 59 64
+143 59 64
+144 59 64
+145 59 64
+146 59 64
+147 59 64
+148 59 64
+149 59 64
+150 59 64
+151 59 64
+152 59 64
+153 59 64
+154 59 64
+155 59 64
+156 59 64
+157 59 64
+158 59 64
+159 59 64
+160 59 64
+161 59 64
+162 59 64
+163 59 64
+164 59 64
+165 59 64
+166 59 64
+167 59 64
+168 59 64
+169 59 64
+170 59 64
+171 59 64
+172 59 64
+173 59 64
+174 59 64
+175 59 64
+176 59 64
+177 59 64
+178 59 64
+179 59 64
+180 59 64
+181 59 64
+182 59 64
+183 59 64
+184 59 64
+185 59 64
+186 59 64
+187 59 64
+188 59 64
+189 59 64
+190 59 64
+191 59 64
+192 59 64
+193 59 64
+194 59 64
+195 59 64
+196 59 64
+197 59 64
+198 59 64
+199 59 64
+200 59 64
+201 59 64
+202 59 64
+203 59 64
+204 59 64
+205 59 64
+206 59 64
+207 59 64
+208 59 64
+209 59 64
+210 59 64
+211 59 64
+212 59 64
+213 59 64
+214 59 64
+215 59 64
+216 59 64
+217 59 64
+218 59 64
+219 59 64
+220 59 64
+221 59 64
+222 59 64
+223 59 64
+224 59 64
+225 59 64
+226 59 64
+227 59 64
+228 59 64
+229 59 64
+230 59 64
+231 59 64
+232 59 64
+233 59 64
+234 59 64
+235 59 64
+236 59 64
+237 59 64
+238 59 64
+239 59 64
+240 59 64
+241 59 64
+242 59 64
+243 59 64
+244 59 64
+245 59 64
+246 59 64
+247 59 64
+248 59 64
+249 59 64
+250 59 64
+251 59 64
+252 59 64
+253 59 64
+254 59 64
+255 59 64
+0 58 64
+1 58 64
+2 58 64
+3 58 64
+4 58 64
+5 58 64
+6 58 64
+7 58 64
+8 58 64
+9 58 64
+10 58 64
+11 58 64
+12 58 64
+13 58 64
+14 58 64
+15 58 64
+16 58 64
+17 58 64
+18 58 64
+19 58 64
+20 58 64
+21 58 64
+22 58 64
+23 58 64
+24 58 64
+25 58 64
+26 58 64
+27 58 64
+28 58 64
+29 58 64
+30 58 64
+31 58 64
+32 58 64
+33 58 64
+34 58 64
+35 58 64
+36 58 64
+37 58 64
+38 58 64
+39 58 64
+40 58 64
+41 58 64
+42 58 64
+43 58 64
+44 58 64
+45 58 64
+46 58 64
+47 58 64
+48 58 64
+49 58 64
+50 58 64
+51 58 64
+52 58 64
+53 58 64
+54 58 64
+55 58 64
+56 58 64
+57 58 64
+58 58 64
+59 58 64
+60 58 64
+61 58 64
+62 58 64
+63 58 64
+64 58 64
+65 58 64
+66 58 64
+67 58 64
+68 58 64
+69 58 64
+70 58 64
+71 58 64
+72 58 64
+73 58 64
+74 58 64
+75 58 64
+76 58 64
+77 58 64
+78 58 64
+79 58 64
+80 58 64
+81 58 64
+82 58 64
+83 58 64
+84 58 64
+85 58 64
+86 58 64
+87 58 64
+88 58 64
+89 58 64
+90 58 64
+91 58 64
+92 58 64
+93 58 64
+94 58 64
+95 58 64
+96 58 64
+97 58 64
+98 58 64
+99 58 64
+100 58 64
+101 58 64
+102 58 64
+103 58 64
+104 58 64
+105 58 64
+106 58 64
+107 58 64
+108 58 64
+109 58 64
+110 58 64
+111 58 64
+112 58 64
+113 58 64
+114 58 64
+115 58 64
+116 58 64
+117 58 64
+118 58 64
+119 58 64
+120 58 64
+121 58 64
+122 58 64
+123 58 64
+124 58 64
+125 58 64
+126 58 64
+127 58 64
+128 58 64
+129 58 64
+130 58 64
+131 58 64
+132 58 64
+133 58 64
+134 58 64
+135 58 64
+136 58 64
+137 58 64
+138 58 64
+139 58 64
+140 58 64
+141 58 64
+142 58 64
+143 58 64
+144 58 64
+145 58 64
+146 58 64
+147 58 64
+148 58 64
+149 58 64
+150 58 64
+151 58 64
+152 58 64
+153 58 64
+154 58 64
+155 58 64
+156 58 64
+157 58 64
+158 58 64
+159 58 64
+160 58 64
+161 58 64
+162 58 64
+163 58 64
+164 58 64
+165 58 64
+166 58 64
+167 58 64
+168 58 64
+169 58 64
+170 58 64
+171 58 64
+172 58 64
+173 58 64
+174 58 64
+175 58 64
+176 58 64
+177 58 64
+178 58 64
+179 58 64
+180 58 64
+181 58 64
+182 58 64
+183 58 64
+184 58 64
+185 58 64
+186 58 64
+187 58 64
+188 58 64
+189 58 64
+190 58 64
+191 58 64
+192 58 64
+193 58 64
+194 58 64
+195 58 64
+196 58 64
+197 58 64
+198 58 64
+199 58 64
+200 58 64
+201 58 64
+202 58 64
+203 58 64
+204 58 64
+205 58 64
+206 58 64
+207 58 64
+208 58 64
+209 58 64
+210 58 64
+211 58 64
+212 58 64
+213 58 64
+214 58 64
+215 58 64
+216 58 64
+217 58 64
+218 58 64
+219 58 64
+220 58 64
+221 58 64
+222 58 64
+223 58 64
+224 58 64
+225 58 64
+226 58 64
+227 58 64
+228 58 64
+229 58 64
+230 58 64
+231 58 64
+232 58 64
+233 58 64
+234 58 64
+235 58 64
+236 58 64
+237 58 64
+238 58 64
+239 58 64
+240 58 64
+241 58 64
+242 58 64
+243 58 64
+244 58 64
+245 58 64
+246 58 64
+247 58 64
+248 58 64
+249 58 64
+250 58 64
+251 58 64
+252 58 64
+253 58 64
+254 58 64
+255 58 64
+0 57 64
+1 57 64
+2 57 64
+3 57 64
+4 57 64
+5 57 64
+6 57 64
+7 57 64
+8 57 64
+9 57 64
+10 57 64
+11 57 64
+12 57 64
+13 57 64
+14 57 64
+15 57 64
+16 57 64
+17 57 64
+18 57 64
+19 57 64
+20 57 64
+21 57 64
+22 57 64
+23 57 64
+24 57 64
+25 57 64
+26 57 64
+27 57 64
+28 57 64
+29 57 64
+30 57 64
+31 57 64
+32 57 64
+33 57 64
+34 57 64
+35 57 64
+36 57 64
+37 57 64
+38 57 64
+39 57 64
+40 57 64
+41 57 64
+42 57 64
+43 57 64
+44 57 64
+45 57 64
+46 57 64
+47 57 64
+48 57 64
+49 57 64
+50 57 64
+51 57 64
+52 57 64
+53 57 64
+54 57 64
+55 57 64
+56 57 64
+57 57 64
+58 57 64
+59 57 64
+60 57 64
+61 57 64
+62 57 64
+63 57 64
+64 57 64
+65 57 64
+66 57 64
+67 57 64
+68 57 64
+69 57 64
+70 57 64
+71 57 64
+72 57 64
+73 57 64
+74 57 64
+75 57 64
+76 57 64
+77 57 64
+78 57 64
+79 57 64
+80 57 64
+81 57 64
+82 57 64
+83 57 64
+84 57 64
+85 57 64
+86 57 64
+87 57 64
+88 57 64
+89 57 64
+90 57 64
+91 57 64
+92 57 64
+93 57 64
+94 57 64
+95 57 64
+96 57 64
+97 57 64
+98 57 64
+99 57 64
+100 57 64
+101 57 64
+102 57 64
+103 57 64
+104 57 64
+105 57 64
+106 57 64
+107 57 64
+108 57 64
+109 57 64
+110 57 64
+111 57 64
+112 57 64
+113 57 64
+114 57 64
+115 57 64
+116 57 64
+117 57 64
+118 57 64
+119 57 64
+120 57 64
+121 57 64
+122 57 64
+123 57 64
+124 57 64
+125 57 64
+126 57 64
+127 57 64
+128 57 64
+129 57 64
+130 57 64
+131 57 64
+132 57 64
+133 57 64
+134 57 64
+135 57 64
+136 57 64
+137 57 64
+138 57 64
+139 57 64
+140 57 64
+141 57 64
+142 57 64
+143 57 64
+144 57 64
+145 57 64
+146 57 64
+147 57 64
+148 57 64
+149 57 64
+150 57 64
+151 57 64
+152 57 64
+153 57 64
+154 57 64
+155 57 64
+156 57 64
+157 57 64
+158 57 64
+159 57 64
+160 57 64
+161 57 64
+162 57 64
+163 57 64
+164 57 64
+165 57 64
+166 57 64
+167 57 64
+168 57 64
+169 57 64
+170 57 64
+171 57 64
+172 57 64
+173 57 64
+174 57 64
+175 57 64
+176 57 64
+177 57 64
+178 57 64
+179 57 64
+180 57 64
+181 57 64
+182 57 64
+183 57 64
+184 57 64
+185 57 64
+186 57 64
+187 57 64
+188 57 64
+189 57 64
+190 57 64
+191 57 64
+192 57 64
+193 57 64
+194 57 64
+195 57 64
+196 57 64
+197 57 64
+198 57 64
+199 57 64
+200 57 64
+201 57 64
+202 57 64
+203 57 64
+204 57 64
+205 57 64
+206 57 64
+207 57 64
+208 57 64
+209 57 64
+210 57 64
+211 57 64
+212 57 64
+213 57 64
+214 57 64
+215 57 64
+216 57 64
+217 57 64
+218 57 64
+219 57 64
+220 57 64
+221 57 64
+222 57 64
+223 57 64
+224 57 64
+225 57 64
+226 57 64
+227 57 64
+228 57 64
+229 57 64
+230 57 64
+231 57 64
+232 57 64
+233 57 64
+234 57 64
+235 57 64
+236 57 64
+237 57 64
+238 57 64
+239 57 64
+240 57 64
+241 57 64
+242 57 64
+243 57 64
+244 57 64
+245 57 64
+246 57 64
+247 57 64
+248 57 64
+249 57 64
+250 57 64
+251 57 64
+252 57 64
+253 57 64
+254 57 64
+255 57 64
+0 56 64
+1 56 64
+2 56 64
+3 56 64
+4 56 64
+5 56 64
+6 56 64
+7 56 64
+8 56 64
+9 56 64
+10 56 64
+11 56 64
+12 56 64
+13 56 64
+14 56 64
+15 56 64
+16 56 64
+17 56 64
+18 56 64
+19 56 64
+20 56 64
+21 56 64
+22 56 64
+23 56 64
+24 56 64
+25 56 64
+26 56 64
+27 56 64
+28 56 64
+29 56 64
+30 56 64
+31 56 64
+32 56 64
+33 56 64
+34 56 64
+35 56 64
+36 56 64
+37 56 64
+38 56 64
+39 56 64
+40 56 64
+41 56 64
+42 56 64
+43 56 64
+44 56 64
+45 56 64
+46 56 64
+47 56 64
+48 56 64
+49 56 64
+50 56 64
+51 56 64
+52 56 64
+53 56 64
+54 56 64
+55 56 64
+56 56 64
+57 56 64
+58 56 64
+59 56 64
+60 56 64
+61 56 64
+62 56 64
+63 56 64
+64 56 64
+65 56 64
+66 56 64
+67 56 64
+68 56 64
+69 56 64
+70 56 64
+71 56 64
+72 56 64
+73 56 64
+74 56 64
+75 56 64
+76 56 64
+77 56 64
+78 56 64
+79 56 64
+80 56 64
+81 56 64
+82 56 64
+83 56 64
+84 56 64
+85 56 64
+86 56 64
+87 56 64
+88 56 64
+89 56 64
+90 56 64
+91 56 64
+92 56 64
+93 56 64
+94 56 64
+95 56 64
+96 56 64
+97 56 64
+98 56 64
+99 56 64
+100 56 64
+101 56 64
+102 56 64
+103 56 64
+104 56 64
+105 56 64
+106 56 64
+107 56 64
+108 56 64
+109 56 64
+110 56 64
+111 56 64
+112 56 64
+113 56 64
+114 56 64
+115 56 64
+116 56 64
+117 56 64
+118 56 64
+119 56 64
+120 56 64
+121 56 64
+122 56 64
+123 56 64
+124 56 64
+125 56 64
+126 56 64
+127 56 64
+128 56 64
+129 56 64
+130 56 64
+131 56 64
+132 56 64
+133 56 64
+134 56 64
+135 56 64
+136 56 64
+137 56 64
+138 56 64
+139 56 64
+140 56 64
+141 56 64
+142 56 64
+143 56 64
+144 56 64
+145 56 64
+146 56 64
+147 56 64
+148 56 64
+149 56 64
+150 56 64
+151 56 64
+152 56 64
+153 56 64
+154 56 64
+155 56 64
+156 56 64
+157 56 64
+158 56 64
+159 56 64
+160 56 64
+161 56 64
+162 56 64
+163 56 64
+164 56 64
+165 56 64
+166 56 64
+167 56 64
+168 56 64
+169 56 64
+170 56 64
+171 56 64
+172 56 64
+173 56 64
+174 56 64
+175 56 64
+176 56 64
+177 56 64
+178 56 64
+179 56 64
+180 56 64
+181 56 64
+182 56 64
+183 56 64
+184 56 64
+185 56 64
+186 56 64
+187 56 64
+188 56 64
+189 56 64
+190 56 64
+191 56 64
+192 56 64
+193 56 64
+194 56 64
+195 56 64
+196 56 64
+197 56 64
+198 56 64
+199 56 64
+200 56 64
+201 56 64
+202 56 64
+203 56 64
+204 56 64
+205 56 64
+206 56 64
+207 56 64
+208 56 64
+209 56 64
+210 56 64
+211 56 64
+212 56 64
+213 56 64
+214 56 64
+215 56 64
+216 56 64
+217 56 64
+218 56 64
+219 56 64
+220 56 64
+221 56 64
+222 56 64
+223 56 64
+224 56 64
+225 56 64
+226 56 64
+227 56 64
+228 56 64
+229 56 64
+230 56 64
+231 56 64
+232 56 64
+233 56 64
+234 56 64
+235 56 64
+236 56 64
+237 56 64
+238 56 64
+239 56 64
+240 56 64
+241 56 64
+242 56 64
+243 56 64
+244 56 64
+245 56 64
+246 56 64
+247 56 64
+248 56 64
+249 56 64
+250 56 64
+251 56 64
+252 56 64
+253 56 64
+254 56 64
+255 56 64
+0 55 64
+1 55 64
+2 55 64
+3 55 64
+4 55 64
+5 55 64
+6 55 64
+7 55 64
+8 55 64
+9 55 64
+10 55 64
+11 55 64
+12 55 64
+13 55 64
+14 55 64
+15 55 64
+16 55 64
+17 55 64
+18 55 64
+19 55 64
+20 55 64
+21 55 64
+22 55 64
+23 55 64
+24 55 64
+25 55 64
+26 55 64
+27 55 64
+28 55 64
+29 55 64
+30 55 64
+31 55 64
+32 55 64
+33 55 64
+34 55 64
+35 55 64
+36 55 64
+37 55 64
+38 55 64
+39 55 64
+40 55 64
+41 55 64
+42 55 64
+43 55 64
+44 55 64
+45 55 64
+46 55 64
+47 55 64
+48 55 64
+49 55 64
+50 55 64
+51 55 64
+52 55 64
+53 55 64
+54 55 64
+55 55 64
+56 55 64
+57 55 64
+58 55 64
+59 55 64
+60 55 64
+61 55 64
+62 55 64
+63 55 64
+64 55 64
+65 55 64
+66 55 64
+67 55 64
+68 55 64
+69 55 64
+70 55 64
+71 55 64
+72 55 64
+73 55 64
+74 55 64
+75 55 64
+76 55 64
+77 55 64
+78 55 64
+79 55 64
+80 55 64
+81 55 64
+82 55 64
+83 55 64
+84 55 64
+85 55 64
+86 55 64
+87 55 64
+88 55 64
+89 55 64
+90 55 64
+91 55 64
+92 55 64
+93 55 64
+94 55 64
+95 55 64
+96 55 64
+97 55 64
+98 55 64
+99 55 64
+100 55 64
+101 55 64
+102 55 64
+103 55 64
+104 55 64
+105 55 64
+106 55 64
+107 55 64
+108 55 64
+109 55 64
+110 55 64
+111 55 64
+112 55 64
+113 55 64
+114 55 64
+115 55 64
+116 55 64
+117 55 64
+118 55 64
+119 55 64
+120 55 64
+121 55 64
+122 55 64
+123 55 64
+124 55 64
+125 55 64
+126 55 64
+127 55 64
+128 55 64
+129 55 64
+130 55 64
+131 55 64
+132 55 64
+133 55 64
+134 55 64
+135 55 64
+136 55 64
+137 55 64
+138 55 64
+139 55 64
+140 55 64
+141 55 64
+142 55 64
+143 55 64
+144 55 64
+145 55 64
+146 55 64
+147 55 64
+148 55 64
+149 55 64
+150 55 64
+151 55 64
+152 55 64
+153 55 64
+154 55 64
+155 55 64
+156 55 64
+157 55 64
+158 55 64
+159 55 64
+160 55 64
+161 55 64
+162 55 64
+163 55 64
+164 55 64
+165 55 64
+166 55 64
+167 55 64
+168 55 64
+169 55 64
+170 55 64
+171 55 64
+172 55 64
+173 55 64
+174 55 64
+175 55 64
+176 55 64
+177 55 64
+178 55 64
+179 55 64
+180 55 64
+181 55 64
+182 55 64
+183 55 64
+184 55 64
+185 55 64
+186 55 64
+187 55 64
+188 55 64
+189 55 64
+190 55 64
+191 55 64
+192 55 64
+193 55 64
+194 55 64
+195 55 64
+196 55 64
+197 55 64
+198 55 64
+199 55 64
+200 55 64
+201 55 64
+202 55 64
+203 55 64
+204 55 64
+205 55 64
+206 55 64
+207 55 64
+208 55 64
+209 55 64
+210 55 64
+211 55 64
+212 55 64
+213 55 64
+214 55 64
+215 55 64
+216 55 64
+217 55 64
+218 55 64
+219 55 64
+220 55 64
+221 55 64
+222 55 64
+223 55 64
+224 55 64
+225 55 64
+226 55 64
+227 55 64
+228 55 64
+229 55 64
+230 55 64
+231 55 64
+232 55 64
+233 55 64
+234 55 64
+235 55 64
+236 55 64
+237 55 64
+238 55 64
+239 55 64
+240 55 64
+241 55 64
+242 55 64
+243 55 64
+244 55 64
+245 55 64
+246 55 64
+247 55 64
+248 55 64
+249 55 64
+250 55 64
+251 55 64
+252 55 64
+253 55 64
+254 55 64
+255 55 64
+0 54 64
+1 54 64
+2 54 64
+3 54 64
+4 54 64
+5 54 64
+6 54 64
+7 54 64
+8 54 64
+9 54 64
+10 54 64
+11 54 64
+12 54 64
+13 54 64
+14 54 64
+15 54 64
+16 54 64
+17 54 64
+18 54 64
+19 54 64
+20 54 64
+21 54 64
+22 54 64
+23 54 64
+24 54 64
+25 54 64
+26 54 64
+27 54 64
+28 54 64
+29 54 64
+30 54 64
+31 54 64
+32 54 64
+33 54 64
+34 54 64
+35 54 64
+36 54 64
+37 54 64
+38 54 64
+39 54 64
+40 54 64
+41 54 64
+42 54 64
+43 54 64
+44 54 64
+45 54 64
+46 54 64
+47 54 64
+48 54 64
+49 54 64
+50 54 64
+51 54 64
+52 54 64
+53 54 64
+54 54 64
+55 54 64
+56 54 64
+57 54 64
+58 54 64
+59 54 64
+60 54 64
+61 54 64
+62 54 64
+63 54 64
+64 54 64
+65 54 64
+66 54 64
+67 54 64
+68 54 64
+69 54 64
+70 54 64
+71 54 64
+72 54 64
+73 54 64
+74 54 64
+75 54 64
+76 54 64
+77 54 64
+78 54 64
+79 54 64
+80 54 64
+81 54 64
+82 54 64
+83 54 64
+84 54 64
+85 54 64
+86 54 64
+87 54 64
+88 54 64
+89 54 64
+90 54 64
+91 54 64
+92 54 64
+93 54 64
+94 54 64
+95 54 64
+96 54 64
+97 54 64
+98 54 64
+99 54 64
+100 54 64
+101 54 64
+102 54 64
+103 54 64
+104 54 64
+105 54 64
+106 54 64
+107 54 64
+108 54 64
+109 54 64
+110 54 64
+111 54 64
+112 54 64
+113 54 64
+114 54 64
+115 54 64
+116 54 64
+117 54 64
+118 54 64
+119 54 64
+120 54 64
+121 54 64
+122 54 64
+123 54 64
+124 54 64
+125 54 64
+126 54 64
+127 54 64
+128 54 64
+129 54 64
+130 54 64
+131 54 64
+132 54 64
+133 54 64
+134 54 64
+135 54 64
+136 54 64
+137 54 64
+138 54 64
+139 54 64
+140 54 64
+141 54 64
+142 54 64
+143 54 64
+144 54 64
+145 54 64
+146 54 64
+147 54 64
+148 54 64
+149 54 64
+150 54 64
+151 54 64
+152 54 64
+153 54 64
+154 54 64
+155 54 64
+156 54 64
+157 54 64
+158 54 64
+159 54 64
+160 54 64
+161 54 64
+162 54 64
+163 54 64
+164 54 64
+165 54 64
+166 54 64
+167 54 64
+168 54 64
+169 54 64
+170 54 64
+171 54 64
+172 54 64
+173 54 64
+174 54 64
+175 54 64
+176 54 64
+177 54 64
+178 54 64
+179 54 64
+180 54 64
+181 54 64
+182 54 64
+183 54 64
+184 54 64
+185 54 64
+186 54 64
+187 54 64
+188 54 64
+189 54 64
+190 54 64
+191 54 64
+192 54 64
+193 54 64
+194 54 64
+195 54 64
+196 54 64
+197 54 64
+198 54 64
+199 54 64
+200 54 64
+201 54 64
+202 54 64
+203 54 64
+204 54 64
+205 54 64
+206 54 64
+207 54 64
+208 54 64
+209 54 64
+210 54 64
+211 54 64
+212 54 64
+213 54 64
+214 54 64
+215 54 64
+216 54 64
+217 54 64
+218 54 64
+219 54 64
+220 54 64
+221 54 64
+222 54 64
+223 54 64
+224 54 64
+225 54 64
+226 54 64
+227 54 64
+228 54 64
+229 54 64
+230 54 64
+231 54 64
+232 54 64
+233 54 64
+234 54 64
+235 54 64
+236 54 64
+237 54 64
+238 54 64
+239 54 64
+240 54 64
+241 54 64
+242 54 64
+243 54 64
+244 54 64
+245 54 64
+246 54 64
+247 54 64
+248 54 64
+249 54 64
+250 54 64
+251 54 64
+252 54 64
+253 54 64
+254 54 64
+255 54 64
+0 53 64
+1 53 64
+2 53 64
+3 53 64
+4 53 64
+5 53 64
+6 53 64
+7 53 64
+8 53 64
+9 53 64
+10 53 64
+11 53 64
+12 53 64
+13 53 64
+14 53 64
+15 53 64
+16 53 64
+17 53 64
+18 53 64
+19 53 64
+20 53 64
+21 53 64
+22 53 64
+23 53 64
+24 53 64
+25 53 64
+26 53 64
+27 53 64
+28 53 64
+29 53 64
+30 53 64
+31 53 64
+32 53 64
+33 53 64
+34 53 64
+35 53 64
+36 53 64
+37 53 64
+38 53 64
+39 53 64
+40 53 64
+41 53 64
+42 53 64
+43 53 64
+44 53 64
+45 53 64
+46 53 64
+47 53 64
+48 53 64
+49 53 64
+50 53 64
+51 53 64
+52 53 64
+53 53 64
+54 53 64
+55 53 64
+56 53 64
+57 53 64
+58 53 64
+59 53 64
+60 53 64
+61 53 64
+62 53 64
+63 53 64
+64 53 64
+65 53 64
+66 53 64
+67 53 64
+68 53 64
+69 53 64
+70 53 64
+71 53 64
+72 53 64
+73 53 64
+74 53 64
+75 53 64
+76 53 64
+77 53 64
+78 53 64
+79 53 64
+80 53 64
+81 53 64
+82 53 64
+83 53 64
+84 53 64
+85 53 64
+86 53 64
+87 53 64
+88 53 64
+89 53 64
+90 53 64
+91 53 64
+92 53 64
+93 53 64
+94 53 64
+95 53 64
+96 53 64
+97 53 64
+98 53 64
+99 53 64
+100 53 64
+101 53 64
+102 53 64
+103 53 64
+104 53 64
+105 53 64
+106 53 64
+107 53 64
+108 53 64
+109 53 64
+110 53 64
+111 53 64
+112 53 64
+113 53 64
+114 53 64
+115 53 64
+116 53 64
+117 53 64
+118 53 64
+119 53 64
+120 53 64
+121 53 64
+122 53 64
+123 53 64
+124 53 64
+125 53 64
+126 53 64
+127 53 64
+128 53 64
+129 53 64
+130 53 64
+131 53 64
+132 53 64
+133 53 64
+134 53 64
+135 53 64
+136 53 64
+137 53 64
+138 53 64
+139 53 64
+140 53 64
+141 53 64
+142 53 64
+143 53 64
+144 53 64
+145 53 64
+146 53 64
+147 53 64
+148 53 64
+149 53 64
+150 53 64
+151 53 64
+152 53 64
+153 53 64
+154 53 64
+155 53 64
+156 53 64
+157 53 64
+158 53 64
+159 53 64
+160 53 64
+161 53 64
+162 53 64
+163 53 64
+164 53 64
+165 53 64
+166 53 64
+167 53 64
+168 53 64
+169 53 64
+170 53 64
+171 53 64
+172 53 64
+173 53 64
+174 53 64
+175 53 64
+176 53 64
+177 53 64
+178 53 64
+179 53 64
+180 53 64
+181 53 64
+182 53 64
+183 53 64
+184 53 64
+185 53 64
+186 53 64
+187 53 64
+188 53 64
+189 53 64
+190 53 64
+191 53 64
+192 53 64
+193 53 64
+194 53 64
+195 53 64
+196 53 64
+197 53 64
+198 53 64
+199 53 64
+200 53 64
+201 53 64
+202 53 64
+203 53 64
+204 53 64
+205 53 64
+206 53 64
+207 53 64
+208 53 64
+209 53 64
+210 53 64
+211 53 64
+212 53 64
+213 53 64
+214 53 64
+215 53 64
+216 53 64
+217 53 64
+218 53 64
+219 53 64
+220 53 64
+221 53 64
+222 53 64
+223 53 64
+224 53 64
+225 53 64
+226 53 64
+227 53 64
+228 53 64
+229 53 64
+230 53 64
+231 53 64
+232 53 64
+233 53 64
+234 53 64
+235 53 64
+236 53 64
+237 53 64
+238 53 64
+239 53 64
+240 53 64
+241 53 64
+242 53 64
+243 53 64
+244 53 64
+245 53 64
+246 53 64
+247 53 64
+248 53 64
+249 53 64
+250 53 64
+251 53 64
+252 53 64
+253 53 64
+254 53 64
+255 53 64
+0 52 64
+1 52 64
+2 52 64
+3 52 64
+4 52 64
+5 52 64
+6 52 64
+7 52 64
+8 52 64
+9 52 64
+10 52 64
+11 52 64
+12 52 64
+13 52 64
+14 52 64
+15 52 64
+16 52 64
+17 52 64
+18 52 64
+19 52 64
+20 52 64
+21 52 64
+22 52 64
+23 52 64
+24 52 64
+25 52 64
+26 52 64
+27 52 64
+28 52 64
+29 52 64
+30 52 64
+31 52 64
+32 52 64
+33 52 64
+34 52 64
+35 52 64
+36 52 64
+37 52 64
+38 52 64
+39 52 64
+40 52 64
+41 52 64
+42 52 64
+43 52 64
+44 52 64
+45 52 64
+46 52 64
+47 52 64
+48 52 64
+49 52 64
+50 52 64
+51 52 64
+52 52 64
+53 52 64
+54 52 64
+55 52 64
+56 52 64
+57 52 64
+58 52 64
+59 52 64
+60 52 64
+61 52 64
+62 52 64
+63 52 64
+64 52 64
+65 52 64
+66 52 64
+67 52 64
+68 52 64
+69 52 64
+70 52 64
+71 52 64
+72 52 64
+73 52 64
+74 52 64
+75 52 64
+76 52 64
+77 52 64
+78 52 64
+79 52 64
+80 52 64
+81 52 64
+82 52 64
+83 52 64
+84 52 64
+85 52 64
+86 52 64
+87 52 64
+88 52 64
+89 52 64
+90 52 64
+91 52 64
+92 52 64
+93 52 64
+94 52 64
+95 52 64
+96 52 64
+97 52 64
+98 52 64
+99 52 64
+100 52 64
+101 52 64
+102 52 64
+103 52 64
+104 52 64
+105 52 64
+106 52 64
+107 52 64
+108 52 64
+109 52 64
+110 52 64
+111 52 64
+112 52 64
+113 52 64
+114 52 64
+115 52 64
+116 52 64
+117 52 64
+118 52 64
+119 52 64
+120 52 64
+121 52 64
+122 52 64
+123 52 64
+124 52 64
+125 52 64
+126 52 64
+127 52 64
+128 52 64
+129 52 64
+130 52 64
+131 52 64
+132 52 64
+133 52 64
+134 52 64
+135 52 64
+136 52 64
+137 52 64
+138 52 64
+139 52 64
+140 52 64
+141 52 64
+142 52 64
+143 52 64
+144 52 64
+145 52 64
+146 52 64
+147 52 64
+148 52 64
+149 52 64
+150 52 64
+151 52 64
+152 52 64
+153 52 64
+154 52 64
+155 52 64
+156 52 64
+157 52 64
+158 52 64
+159 52 64
+160 52 64
+161 52 64
+162 52 64
+163 52 64
+164 52 64
+165 52 64
+166 52 64
+167 52 64
+168 52 64
+169 52 64
+170 52 64
+171 52 64
+172 52 64
+173 52 64
+174 52 64
+175 52 64
+176 52 64
+177 52 64
+178 52 64
+179 52 64
+180 52 64
+181 52 64
+182 52 64
+183 52 64
+184 52 64
+185 52 64
+186 52 64
+187 52 64
+188 52 64
+189 52 64
+190 52 64
+191 52 64
+192 52 64
+193 52 64
+194 52 64
+195 52 64
+196 52 64
+197 52 64
+198 52 64
+199 52 64
+200 52 64
+201 52 64
+202 52 64
+203 52 64
+204 52 64
+205 52 64
+206 52 64
+207 52 64
+208 52 64
+209 52 64
+210 52 64
+211 52 64
+212 52 64
+213 52 64
+214 52 64
+215 52 64
+216 52 64
+217 52 64
+218 52 64
+219 52 64
+220 52 64
+221 52 64
+222 52 64
+223 52 64
+224 52 64
+225 52 64
+226 52 64
+227 52 64
+228 52 64
+229 52 64
+230 52 64
+231 52 64
+232 52 64
+233 52 64
+234 52 64
+235 52 64
+236 52 64
+237 52 64
+238 52 64
+239 52 64
+240 52 64
+241 52 64
+242 52 64
+243 52 64
+244 52 64
+245 52 64
+246 52 64
+247 52 64
+248 52 64
+249 52 64
+250 52 64
+251 52 64
+252 52 64
+253 52 64
+254 52 64
+255 52 64
+0 51 64
+1 51 64
+2 51 64
+3 51 64
+4 51 64
+5 51 64
+6 51 64
+7 51 64
+8 51 64
+9 51 64
+10 51 64
+11 51 64
+12 51 64
+13 51 64
+14 51 64
+15 51 64
+16 51 64
+17 51 64
+18 51 64
+19 51 64
+20 51 64
+21 51 64
+22 51 64
+23 51 64
+24 51 64
+25 51 64
+26 51 64
+27 51 64
+28 51 64
+29 51 64
+30 51 64
+31 51 64
+32 51 64
+33 51 64
+34 51 64
+35 51 64
+36 51 64
+37 51 64
+38 51 64
+39 51 64
+40 51 64
+41 51 64
+42 51 64
+43 51 64
+44 51 64
+45 51 64
+46 51 64
+47 51 64
+48 51 64
+49 51 64
+50 51 64
+51 51 64
+52 51 64
+53 51 64
+54 51 64
+55 51 64
+56 51 64
+57 51 64
+58 51 64
+59 51 64
+60 51 64
+61 51 64
+62 51 64
+63 51 64
+64 51 64
+65 51 64
+66 51 64
+67 51 64
+68 51 64
+69 51 64
+70 51 64
+71 51 64
+72 51 64
+73 51 64
+74 51 64
+75 51 64
+76 51 64
+77 51 64
+78 51 64
+79 51 64
+80 51 64
+81 51 64
+82 51 64
+83 51 64
+84 51 64
+85 51 64
+86 51 64
+87 51 64
+88 51 64
+89 51 64
+90 51 64
+91 51 64
+92 51 64
+93 51 64
+94 51 64
+95 51 64
+96 51 64
+97 51 64
+98 51 64
+99 51 64
+100 51 64
+101 51 64
+102 51 64
+103 51 64
+104 51 64
+105 51 64
+106 51 64
+107 51 64
+108 51 64
+109 51 64
+110 51 64
+111 51 64
+112 51 64
+113 51 64
+114 51 64
+115 51 64
+116 51 64
+117 51 64
+118 51 64
+119 51 64
+120 51 64
+121 51 64
+122 51 64
+123 51 64
+124 51 64
+125 51 64
+126 51 64
+127 51 64
+128 51 64
+129 51 64
+130 51 64
+131 51 64
+132 51 64
+133 51 64
+134 51 64
+135 51 64
+136 51 64
+137 51 64
+138 51 64
+139 51 64
+140 51 64
+141 51 64
+142 51 64
+143 51 64
+144 51 64
+145 51 64
+146 51 64
+147 51 64
+148 51 64
+149 51 64
+150 51 64
+151 51 64
+152 51 64
+153 51 64
+154 51 64
+155 51 64
+156 51 64
+157 51 64
+158 51 64
+159 51 64
+160 51 64
+161 51 64
+162 51 64
+163 51 64
+164 51 64
+165 51 64
+166 51 64
+167 51 64
+168 51 64
+169 51 64
+170 51 64
+171 51 64
+172 51 64
+173 51 64
+174 51 64
+175 51 64
+176 51 64
+177 51 64
+178 51 64
+179 51 64
+180 51 64
+181 51 64
+182 51 64
+183 51 64
+184 51 64
+185 51 64
+186 51 64
+187 51 64
+188 51 64
+189 51 64
+190 51 64
+191 51 64
+192 51 64
+193 51 64
+194 51 64
+195 51 64
+196 51 64
+197 51 64
+198 51 64
+199 51 64
+200 51 64
+201 51 64
+202 51 64
+203 51 64
+204 51 64
+205 51 64
+206 51 64
+207 51 64
+208 51 64
+209 51 64
+210 51 64
+211 51 64
+212 51 64
+213 51 64
+214 51 64
+215 51 64
+216 51 64
+217 51 64
+218 51 64
+219 51 64
+220 51 64
+221 51 64
+222 51 64
+223 51 64
+224 51 64
+225 51 64
+226 51 64
+227 51 64
+228 51 64
+229 51 64
+230 51 64
+231 51 64
+232 51 64
+233 51 64
+234 51 64
+235 51 64
+236 51 64
+237 51 64
+238 51 64
+239 51 64
+240 51 64
+241 51 64
+242 51 64
+243 51 64
+244 51 64
+245 51 64
+246 51 64
+247 51 64
+248 51 64
+249 51 64
+250 51 64
+251 51 64
+252 51 64
+253 51 64
+254 51 64
+255 51 64
+0 50 64
+1 50 64
+2 50 64
+3 50 64
+4 50 64
+5 50 64
+6 50 64
+7 50 64
+8 50 64
+9 50 64
+10 50 64
+11 50 64
+12 50 64
+13 50 64
+14 50 64
+15 50 64
+16 50 64
+17 50 64
+18 50 64
+19 50 64
+20 50 64
+21 50 64
+22 50 64
+23 50 64
+24 50 64
+25 50 64
+26 50 64
+27 50 64
+28 50 64
+29 50 64
+30 50 64
+31 50 64
+32 50 64
+33 50 64
+34 50 64
+35 50 64
+36 50 64
+37 50 64
+38 50 64
+39 50 64
+40 50 64
+41 50 64
+42 50 64
+43 50 64
+44 50 64
+45 50 64
+46 50 64
+47 50 64
+48 50 64
+49 50 64
+50 50 64
+51 50 64
+52 50 64
+53 50 64
+54 50 64
+55 50 64
+56 50 64
+57 50 64
+58 50 64
+59 50 64
+60 50 64
+61 50 64
+62 50 64
+63 50 64
+64 50 64
+65 50 64
+66 50 64
+67 50 64
+68 50 64
+69 50 64
+70 50 64
+71 50 64
+72 50 64
+73 50 64
+74 50 64
+75 50 64
+76 50 64
+77 50 64
+78 50 64
+79 50 64
+80 50 64
+81 50 64
+82 50 64
+83 50 64
+84 50 64
+85 50 64
+86 50 64
+87 50 64
+88 50 64
+89 50 64
+90 50 64
+91 50 64
+92 50 64
+93 50 64
+94 50 64
+95 50 64
+96 50 64
+97 50 64
+98 50 64
+99 50 64
+100 50 64
+101 50 64
+102 50 64
+103 50 64
+104 50 64
+105 50 64
+106 50 64
+107 50 64
+108 50 64
+109 50 64
+110 50 64
+111 50 64
+112 50 64
+113 50 64
+114 50 64
+115 50 64
+116 50 64
+117 50 64
+118 50 64
+119 50 64
+120 50 64
+121 50 64
+122 50 64
+123 50 64
+124 50 64
+125 50 64
+126 50 64
+127 50 64
+128 50 64
+129 50 64
+130 50 64
+131 50 64
+132 50 64
+133 50 64
+134 50 64
+135 50 64
+136 50 64
+137 50 64
+138 50 64
+139 50 64
+140 50 64
+141 50 64
+142 50 64
+143 50 64
+144 50 64
+145 50 64
+146 50 64
+147 50 64
+148 50 64
+149 50 64
+150 50 64
+151 50 64
+152 50 64
+153 50 64
+154 50 64
+155 50 64
+156 50 64
+157 50 64
+158 50 64
+159 50 64
+160 50 64
+161 50 64
+162 50 64
+163 50 64
+164 50 64
+165 50 64
+166 50 64
+167 50 64
+168 50 64
+169 50 64
+170 50 64
+171 50 64
+172 50 64
+173 50 64
+174 50 64
+175 50 64
+176 50 64
+177 50 64
+178 50 64
+179 50 64
+180 50 64
+181 50 64
+182 50 64
+183 50 64
+184 50 64
+185 50 64
+186 50 64
+187 50 64
+188 50 64
+189 50 64
+190 50 64
+191 50 64
+192 50 64
+193 50 64
+194 50 64
+195 50 64
+196 50 64
+197 50 64
+198 50 64
+199 50 64
+200 50 64
+201 50 64
+202 50 64
+203 50 64
+204 50 64
+205 50 64
+206 50 64
+207 50 64
+208 50 64
+209 50 64
+210 50 64
+211 50 64
+212 50 64
+213 50 64
+214 50 64
+215 50 64
+216 50 64
+217 50 64
+218 50 64
+219 50 64
+220 50 64
+221 50 64
+222 50 64
+223 50 64
+224 50 64
+225 50 64
+226 50 64
+227 50 64
+228 50 64
+229 50 64
+230 50 64
+231 50 64
+232 50 64
+233 50 64
+234 50 64
+235 50 64
+236 50 64
+237 50 64
+238 50 64
+239 50 64
+240 50 64
+241 50 64
+242 50 64
+243 50 64
+244 50 64
+245 50 64
+246 50 64
+247 50 64
+248 50 64
+249 50 64
+250 50 64
+251 50 64
+252 50 64
+253 50 64
+254 50 64
+255 50 64
+0 49 64
+1 49 64
+2 49 64
+3 49 64
+4 49 64
+5 49 64
+6 49 64
+7 49 64
+8 49 64
+9 49 64
+10 49 64
+11 49 64
+12 49 64
+13 49 64
+14 49 64
+15 49 64
+16 49 64
+17 49 64
+18 49 64
+19 49 64
+20 49 64
+21 49 64
+22 49 64
+23 49 64
+24 49 64
+25 49 64
+26 49 64
+27 49 64
+28 49 64
+29 49 64
+30 49 64
+31 49 64
+32 49 64
+33 49 64
+34 49 64
+35 49 64
+36 49 64
+37 49 64
+38 49 64
+39 49 64
+40 49 64
+41 49 64
+42 49 64
+43 49 64
+44 49 64
+45 49 64
+46 49 64
+47 49 64
+48 49 64
+49 49 64
+50 49 64
+51 49 64
+52 49 64
+53 49 64
+54 49 64
+55 49 64
+56 49 64
+57 49 64
+58 49 64
+59 49 64
+60 49 64
+61 49 64
+62 49 64
+63 49 64
+64 49 64
+65 49 64
+66 49 64
+67 49 64
+68 49 64
+69 49 64
+70 49 64
+71 49 64
+72 49 64
+73 49 64
+74 49 64
+75 49 64
+76 49 64
+77 49 64
+78 49 64
+79 49 64
+80 49 64
+81 49 64
+82 49 64
+83 49 64
+84 49 64
+85 49 64
+86 49 64
+87 49 64
+88 49 64
+89 49 64
+90 49 64
+91 49 64
+92 49 64
+93 49 64
+94 49 64
+95 49 64
+96 49 64
+97 49 64
+98 49 64
+99 49 64
+100 49 64
+101 49 64
+102 49 64
+103 49 64
+104 49 64
+105 49 64
+106 49 64
+107 49 64
+108 49 64
+109 49 64
+110 49 64
+111 49 64
+112 49 64
+113 49 64
+114 49 64
+115 49 64
+116 49 64
+117 49 64
+118 49 64
+119 49 64
+120 49 64
+121 49 64
+122 49 64
+123 49 64
+124 49 64
+125 49 64
+126 49 64
+127 49 64
+128 49 64
+129 49 64
+130 49 64
+131 49 64
+132 49 64
+133 49 64
+134 49 64
+135 49 64
+136 49 64
+137 49 64
+138 49 64
+139 49 64
+140 49 64
+141 49 64
+142 49 64
+143 49 64
+144 49 64
+145 49 64
+146 49 64
+147 49 64
+148 49 64
+149 49 64
+150 49 64
+151 49 64
+152 49 64
+153 49 64
+154 49 64
+155 49 64
+156 49 64
+157 49 64
+158 49 64
+159 49 64
+160 49 64
+161 49 64
+162 49 64
+163 49 64
+164 49 64
+165 49 64
+166 49 64
+167 49 64
+168 49 64
+169 49 64
+170 49 64
+171 49 64
+172 49 64
+173 49 64
+174 49 64
+175 49 64
+176 49 64
+177 49 64
+178 49 64
+179 49 64
+180 49 64
+181 49 64
+182 49 64
+183 49 64
+184 49 64
+185 49 64
+186 49 64
+187 49 64
+188 49 64
+189 49 64
+190 49 64
+191 49 64
+192 49 64
+193 49 64
+194 49 64
+195 49 64
+196 49 64
+197 49 64
+198 49 64
+199 49 64
+200 49 64
+201 49 64
+202 49 64
+203 49 64
+204 49 64
+205 49 64
+206 49 64
+207 49 64
+208 49 64
+209 49 64
+210 49 64
+211 49 64
+212 49 64
+213 49 64
+214 49 64
+215 49 64
+216 49 64
+217 49 64
+218 49 64
+219 49 64
+220 49 64
+221 49 64
+222 49 64
+223 49 64
+224 49 64
+225 49 64
+226 49 64
+227 49 64
+228 49 64
+229 49 64
+230 49 64
+231 49 64
+232 49 64
+233 49 64
+234 49 64
+235 49 64
+236 49 64
+237 49 64
+238 49 64
+239 49 64
+240 49 64
+241 49 64
+242 49 64
+243 49 64
+244 49 64
+245 49 64
+246 49 64
+247 49 64
+248 49 64
+249 49 64
+250 49 64
+251 49 64
+252 49 64
+253 49 64
+254 49 64
+255 49 64
+0 48 64
+1 48 64
+2 48 64
+3 48 64
+4 48 64
+5 48 64
+6 48 64
+7 48 64
+8 48 64
+9 48 64
+10 48 64
+11 48 64
+12 48 64
+13 48 64
+14 48 64
+15 48 64
+16 48 64
+17 48 64
+18 48 64
+19 48 64
+20 48 64
+21 48 64
+22 48 64
+23 48 64
+24 48 64
+25 48 64
+26 48 64
+27 48 64
+28 48 64
+29 48 64
+30 48 64
+31 48 64
+32 48 64
+33 48 64
+34 48 64
+35 48 64
+36 48 64
+37 48 64
+38 48 64
+39 48 64
+40 48 64
+41 48 64
+42 48 64
+43 48 64
+44 48 64
+45 48 64
+46 48 64
+47 48 64
+48 48 64
+49 48 64
+50 48 64
+51 48 64
+52 48 64
+53 48 64
+54 48 64
+55 48 64
+56 48 64
+57 48 64
+58 48 64
+59 48 64
+60 48 64
+61 48 64
+62 48 64
+63 48 64
+64 48 64
+65 48 64
+66 48 64
+67 48 64
+68 48 64
+69 48 64
+70 48 64
+71 48 64
+72 48 64
+73 48 64
+74 48 64
+75 48 64
+76 48 64
+77 48 64
+78 48 64
+79 48 64
+80 48 64
+81 48 64
+82 48 64
+83 48 64
+84 48 64
+85 48 64
+86 48 64
+87 48 64
+88 48 64
+89 48 64
+90 48 64
+91 48 64
+92 48 64
+93 48 64
+94 48 64
+95 48 64
+96 48 64
+97 48 64
+98 48 64
+99 48 64
+100 48 64
+101 48 64
+102 48 64
+103 48 64
+104 48 64
+105 48 64
+106 48 64
+107 48 64
+108 48 64
+109 48 64
+110 48 64
+111 48 64
+112 48 64
+113 48 64
+114 48 64
+115 48 64
+116 48 64
+117 48 64
+118 48 64
+119 48 64
+120 48 64
+121 48 64
+122 48 64
+123 48 64
+124 48 64
+125 48 64
+126 48 64
+127 48 64
+128 48 64
+129 48 64
+130 48 64
+131 48 64
+132 48 64
+133 48 64
+134 48 64
+135 48 64
+136 48 64
+137 48 64
+138 48 64
+139 48 64
+140 48 64
+141 48 64
+142 48 64
+143 48 64
+144 48 64
+145 48 64
+146 48 64
+147 48 64
+148 48 64
+149 48 64
+150 48 64
+151 48 64
+152 48 64
+153 48 64
+154 48 64
+155 48 64
+156 48 64
+157 48 64
+158 48 64
+159 48 64
+160 48 64
+161 48 64
+162 48 64
+163 48 64
+164 48 64
+165 48 64
+166 48 64
+167 48 64
+168 48 64
+169 48 64
+170 48 64
+171 48 64
+172 48 64
+173 48 64
+174 48 64
+175 48 64
+176 48 64
+177 48 64
+178 48 64
+179 48 64
+180 48 64
+181 48 64
+182 48 64
+183 48 64
+184 48 64
+185 48 64
+186 48 64
+187 48 64
+188 48 64
+189 48 64
+190 48 64
+191 48 64
+192 48 64
+193 48 64
+194 48 64
+195 48 64
+196 48 64
+197 48 64
+198 48 64
+199 48 64
+200 48 64
+201 48 64
+202 48 64
+203 48 64
+204 48 64
+205 48 64
+206 48 64
+207 48 64
+208 48 64
+209 48 64
+210 48 64
+211 48 64
+212 48 64
+213 48 64
+214 48 64
+215 48 64
+216 48 64
+217 48 64
+218 48 64
+219 48 64
+220 48 64
+221 48 64
+222 48 64
+223 48 64
+224 48 64
+225 48 64
+226 48 64
+227 48 64
+228 48 64
+229 48 64
+230 48 64
+231 48 64
+232 48 64
+233 48 64
+234 48 64
+235 48 64
+236 48 64
+237 48 64
+238 48 64
+239 48 64
+240 48 64
+241 48 64
+242 48 64
+243 48 64
+244 48 64
+245 48 64
+246 48 64
+247 48 64
+248 48 64
+249 48 64
+250 48 64
+251 48 64
+252 48 64
+253 48 64
+254 48 64
+255 48 64
+0 47 64
+1 47 64
+2 47 64
+3 47 64
+4 47 64
+5 47 64
+6 47 64
+7 47 64
+8 47 64
+9 47 64
+10 47 64
+11 47 64
+12 47 64
+13 47 64
+14 47 64
+15 47 64
+16 47 64
+17 47 64
+18 47 64
+19 47 64
+20 47 64
+21 47 64
+22 47 64
+23 47 64
+24 47 64
+25 47 64
+26 47 64
+27 47 64
+28 47 64
+29 47 64
+30 47 64
+31 47 64
+32 47 64
+33 47 64
+34 47 64
+35 47 64
+36 47 64
+37 47 64
+38 47 64
+39 47 64
+40 47 64
+41 47 64
+42 47 64
+43 47 64
+44 47 64
+45 47 64
+46 47 64
+47 47 64
+48 47 64
+49 47 64
+50 47 64
+51 47 64
+52 47 64
+53 47 64
+54 47 64
+55 47 64
+56 47 64
+57 47 64
+58 47 64
+59 47 64
+60 47 64
+61 47 64
+62 47 64
+63 47 64
+64 47 64
+65 47 64
+66 47 64
+67 47 64
+68 47 64
+69 47 64
+70 47 64
+71 47 64
+72 47 64
+73 47 64
+74 47 64
+75 47 64
+76 47 64
+77 47 64
+78 47 64
+79 47 64
+80 47 64
+81 47 64
+82 47 64
+83 47 64
+84 47 64
+85 47 64
+86 47 64
+87 47 64
+88 47 64
+89 47 64
+90 47 64
+91 47 64
+92 47 64
+93 47 64
+94 47 64
+95 47 64
+96 47 64
+97 47 64
+98 47 64
+99 47 64
+100 47 64
+101 47 64
+102 47 64
+103 47 64
+104 47 64
+105 47 64
+106 47 64
+107 47 64
+108 47 64
+109 47 64
+110 47 64
+111 47 64
+112 47 64
+113 47 64
+114 47 64
+115 47 64
+116 47 64
+117 47 64
+118 47 64
+119 47 64
+120 47 64
+121 47 64
+122 47 64
+123 47 64
+124 47 64
+125 47 64
+126 47 64
+127 47 64
+128 47 64
+129 47 64
+130 47 64
+131 47 64
+132 47 64
+133 47 64
+134 47 64
+135 47 64
+136 47 64
+137 47 64
+138 47 64
+139 47 64
+140 47 64
+141 47 64
+142 47 64
+143 47 64
+144 47 64
+145 47 64
+146 47 64
+147 47 64
+148 47 64
+149 47 64
+150 47 64
+151 47 64
+152 47 64
+153 47 64
+154 47 64
+155 47 64
+156 47 64
+157 47 64
+158 47 64
+159 47 64
+160 47 64
+161 47 64
+162 47 64
+163 47 64
+164 47 64
+165 47 64
+166 47 64
+167 47 64
+168 47 64
+169 47 64
+170 47 64
+171 47 64
+172 47 64
+173 47 64
+174 47 64
+175 47 64
+176 47 64
+177 47 64
+178 47 64
+179 47 64
+180 47 64
+181 47 64
+182 47 64
+183 47 64
+184 47 64
+185 47 64
+186 47 64
+187 47 64
+188 47 64
+189 47 64
+190 47 64
+191 47 64
+192 47 64
+193 47 64
+194 47 64
+195 47 64
+196 47 64
+197 47 64
+198 47 64
+199 47 64
+200 47 64
+201 47 64
+202 47 64
+203 47 64
+204 47 64
+205 47 64
+206 47 64
+207 47 64
+208 47 64
+209 47 64
+210 47 64
+211 47 64
+212 47 64
+213 47 64
+214 47 64
+215 47 64
+216 47 64
+217 47 64
+218 47 64
+219 47 64
+220 47 64
+221 47 64
+222 47 64
+223 47 64
+224 47 64
+225 47 64
+226 47 64
+227 47 64
+228 47 64
+229 47 64
+230 47 64
+231 47 64
+232 47 64
+233 47 64
+234 47 64
+235 47 64
+236 47 64
+237 47 64
+238 47 64
+239 47 64
+240 47 64
+241 47 64
+242 47 64
+243 47 64
+244 47 64
+245 47 64
+246 47 64
+247 47 64
+248 47 64
+249 47 64
+250 47 64
+251 47 64
+252 47 64
+253 47 64
+254 47 64
+255 47 64
+0 46 64
+1 46 64
+2 46 64
+3 46 64
+4 46 64
+5 46 64
+6 46 64
+7 46 64
+8 46 64
+9 46 64
+10 46 64
+11 46 64
+12 46 64
+13 46 64
+14 46 64
+15 46 64
+16 46 64
+17 46 64
+18 46 64
+19 46 64
+20 46 64
+21 46 64
+22 46 64
+23 46 64
+24 46 64
+25 46 64
+26 46 64
+27 46 64
+28 46 64
+29 46 64
+30 46 64
+31 46 64
+32 46 64
+33 46 64
+34 46 64
+35 46 64
+36 46 64
+37 46 64
+38 46 64
+39 46 64
+40 46 64
+41 46 64
+42 46 64
+43 46 64
+44 46 64
+45 46 64
+46 46 64
+47 46 64
+48 46 64
+49 46 64
+50 46 64
+51 46 64
+52 46 64
+53 46 64
+54 46 64
+55 46 64
+56 46 64
+57 46 64
+58 46 64
+59 46 64
+60 46 64
+61 46 64
+62 46 64
+63 46 64
+64 46 64
+65 46 64
+66 46 64
+67 46 64
+68 46 64
+69 46 64
+70 46 64
+71 46 64
+72 46 64
+73 46 64
+74 46 64
+75 46 64
+76 46 64
+77 46 64
+78 46 64
+79 46 64
+80 46 64
+81 46 64
+82 46 64
+83 46 64
+84 46 64
+85 46 64
+86 46 64
+87 46 64
+88 46 64
+89 46 64
+90 46 64
+91 46 64
+92 46 64
+93 46 64
+94 46 64
+95 46 64
+96 46 64
+97 46 64
+98 46 64
+99 46 64
+100 46 64
+101 46 64
+102 46 64
+103 46 64
+104 46 64
+105 46 64
+106 46 64
+107 46 64
+108 46 64
+109 46 64
+110 46 64
+111 46 64
+112 46 64
+113 46 64
+114 46 64
+115 46 64
+116 46 64
+117 46 64
+118 46 64
+119 46 64
+120 46 64
+121 46 64
+122 46 64
+123 46 64
+124 46 64
+125 46 64
+126 46 64
+127 46 64
+128 46 64
+129 46 64
+130 46 64
+131 46 64
+132 46 64
+133 46 64
+134 46 64
+135 46 64
+136 46 64
+137 46 64
+138 46 64
+139 46 64
+140 46 64
+141 46 64
+142 46 64
+143 46 64
+144 46 64
+145 46 64
+146 46 64
+147 46 64
+148 46 64
+149 46 64
+150 46 64
+151 46 64
+152 46 64
+153 46 64
+154 46 64
+155 46 64
+156 46 64
+157 46 64
+158 46 64
+159 46 64
+160 46 64
+161 46 64
+162 46 64
+163 46 64
+164 46 64
+165 46 64
+166 46 64
+167 46 64
+168 46 64
+169 46 64
+170 46 64
+171 46 64
+172 46 64
+173 46 64
+174 46 64
+175 46 64
+176 46 64
+177 46 64
+178 46 64
+179 46 64
+180 46 64
+181 46 64
+182 46 64
+183 46 64
+184 46 64
+185 46 64
+186 46 64
+187 46 64
+188 46 64
+189 46 64
+190 46 64
+191 46 64
+192 46 64
+193 46 64
+194 46 64
+195 46 64
+196 46 64
+197 46 64
+198 46 64
+199 46 64
+200 46 64
+201 46 64
+202 46 64
+203 46 64
+204 46 64
+205 46 64
+206 46 64
+207 46 64
+208 46 64
+209 46 64
+210 46 64
+211 46 64
+212 46 64
+213 46 64
+214 46 64
+215 46 64
+216 46 64
+217 46 64
+218 46 64
+219 46 64
+220 46 64
+221 46 64
+222 46 64
+223 46 64
+224 46 64
+225 46 64
+226 46 64
+227 46 64
+228 46 64
+229 46 64
+230 46 64
+231 46 64
+232 46 64
+233 46 64
+234 46 64
+235 46 64
+236 46 64
+237 46 64
+238 46 64
+239 46 64
+240 46 64
+241 46 64
+242 46 64
+243 46 64
+244 46 64
+245 46 64
+246 46 64
+247 46 64
+248 46 64
+249 46 64
+250 46 64
+251 46 64
+252 46 64
+253 46 64
+254 46 64
+255 46 64
+0 45 64
+1 45 64
+2 45 64
+3 45 64
+4 45 64
+5 45 64
+6 45 64
+7 45 64
+8 45 64
+9 45 64
+10 45 64
+11 45 64
+12 45 64
+13 45 64
+14 45 64
+15 45 64
+16 45 64
+17 45 64
+18 45 64
+19 45 64
+20 45 64
+21 45 64
+22 45 64
+23 45 64
+24 45 64
+25 45 64
+26 45 64
+27 45 64
+28 45 64
+29 45 64
+30 45 64
+31 45 64
+32 45 64
+33 45 64
+34 45 64
+35 45 64
+36 45 64
+37 45 64
+38 45 64
+39 45 64
+40 45 64
+41 45 64
+42 45 64
+43 45 64
+44 45 64
+45 45 64
+46 45 64
+47 45 64
+48 45 64
+49 45 64
+50 45 64
+51 45 64
+52 45 64
+53 45 64
+54 45 64
+55 45 64
+56 45 64
+57 45 64
+58 45 64
+59 45 64
+60 45 64
+61 45 64
+62 45 64
+63 45 64
+64 45 64
+65 45 64
+66 45 64
+67 45 64
+68 45 64
+69 45 64
+70 45 64
+71 45 64
+72 45 64
+73 45 64
+74 45 64
+75 45 64
+76 45 64
+77 45 64
+78 45 64
+79 45 64
+80 45 64
+81 45 64
+82 45 64
+83 45 64
+84 45 64
+85 45 64
+86 45 64
+87 45 64
+88 45 64
+89 45 64
+90 45 64
+91 45 64
+92 45 64
+93 45 64
+94 45 64
+95 45 64
+96 45 64
+97 45 64
+98 45 64
+99 45 64
+100 45 64
+101 45 64
+102 45 64
+103 45 64
+104 45 64
+105 45 64
+106 45 64
+107 45 64
+108 45 64
+109 45 64
+110 45 64
+111 45 64
+112 45 64
+113 45 64
+114 45 64
+115 45 64
+116 45 64
+117 45 64
+118 45 64
+119 45 64
+120 45 64
+121 45 64
+122 45 64
+123 45 64
+124 45 64
+125 45 64
+126 45 64
+127 45 64
+128 45 64
+129 45 64
+130 45 64
+131 45 64
+132 45 64
+133 45 64
+134 45 64
+135 45 64
+136 45 64
+137 45 64
+138 45 64
+139 45 64
+140 45 64
+141 45 64
+142 45 64
+143 45 64
+144 45 64
+145 45 64
+146 45 64
+147 45 64
+148 45 64
+149 45 64
+150 45 64
+151 45 64
+152 45 64
+153 45 64
+154 45 64
+155 45 64
+156 45 64
+157 45 64
+158 45 64
+159 45 64
+160 45 64
+161 45 64
+162 45 64
+163 45 64
+164 45 64
+165 45 64
+166 45 64
+167 45 64
+168 45 64
+169 45 64
+170 45 64
+171 45 64
+172 45 64
+173 45 64
+174 45 64
+175 45 64
+176 45 64
+177 45 64
+178 45 64
+179 45 64
+180 45 64
+181 45 64
+182 45 64
+183 45 64
+184 45 64
+185 45 64
+186 45 64
+187 45 64
+188 45 64
+189 45 64
+190 45 64
+191 45 64
+192 45 64
+193 45 64
+194 45 64
+195 45 64
+196 45 64
+197 45 64
+198 45 64
+199 45 64
+200 45 64
+201 45 64
+202 45 64
+203 45 64
+204 45 64
+205 45 64
+206 45 64
+207 45 64
+208 45 64
+209 45 64
+210 45 64
+211 45 64
+212 45 64
+213 45 64
+214 45 64
+215 45 64
+216 45 64
+217 45 64
+218 45 64
+219 45 64
+220 45 64
+221 45 64
+222 45 64
+223 45 64
+224 45 64
+225 45 64
+226 45 64
+227 45 64
+228 45 64
+229 45 64
+230 45 64
+231 45 64
+232 45 64
+233 45 64
+234 45 64
+235 45 64
+236 45 64
+237 45 64
+238 45 64
+239 45 64
+240 45 64
+241 45 64
+242 45 64
+243 45 64
+244 45 64
+245 45 64
+246 45 64
+247 45 64
+248 45 64
+249 45 64
+250 45 64
+251 45 64
+252 45 64
+253 45 64
+254 45 64
+255 45 64
+0 44 64
+1 44 64
+2 44 64
+3 44 64
+4 44 64
+5 44 64
+6 44 64
+7 44 64
+8 44 64
+9 44 64
+10 44 64
+11 44 64
+12 44 64
+13 44 64
+14 44 64
+15 44 64
+16 44 64
+17 44 64
+18 44 64
+19 44 64
+20 44 64
+21 44 64
+22 44 64
+23 44 64
+24 44 64
+25 44 64
+26 44 64
+27 44 64
+28 44 64
+29 44 64
+30 44 64
+31 44 64
+32 44 64
+33 44 64
+34 44 64
+35 44 64
+36 44 64
+37 44 64
+38 44 64
+39 44 64
+40 44 64
+41 44 64
+42 44 64
+43 44 64
+44 44 64
+45 44 64
+46 44 64
+47 44 64
+48 44 64
+49 44 64
+50 44 64
+51 44 64
+52 44 64
+53 44 64
+54 44 64
+55 44 64
+56 44 64
+57 44 64
+58 44 64
+59 44 64
+60 44 64
+61 44 64
+62 44 64
+63 44 64
+64 44 64
+65 44 64
+66 44 64
+67 44 64
+68 44 64
+69 44 64
+70 44 64
+71 44 64
+72 44 64
+73 44 64
+74 44 64
+75 44 64
+76 44 64
+77 44 64
+78 44 64
+79 44 64
+80 44 64
+81 44 64
+82 44 64
+83 44 64
+84 44 64
+85 44 64
+86 44 64
+87 44 64
+88 44 64
+89 44 64
+90 44 64
+91 44 64
+92 44 64
+93 44 64
+94 44 64
+95 44 64
+96 44 64
+97 44 64
+98 44 64
+99 44 64
+100 44 64
+101 44 64
+102 44 64
+103 44 64
+104 44 64
+105 44 64
+106 44 64
+107 44 64
+108 44 64
+109 44 64
+110 44 64
+111 44 64
+112 44 64
+113 44 64
+114 44 64
+115 44 64
+116 44 64
+117 44 64
+118 44 64
+119 44 64
+120 44 64
+121 44 64
+122 44 64
+123 44 64
+124 44 64
+125 44 64
+126 44 64
+127 44 64
+128 44 64
+129 44 64
+130 44 64
+131 44 64
+132 44 64
+133 44 64
+134 44 64
+135 44 64
+136 44 64
+137 44 64
+138 44 64
+139 44 64
+140 44 64
+141 44 64
+142 44 64
+143 44 64
+144 44 64
+145 44 64
+146 44 64
+147 44 64
+148 44 64
+149 44 64
+150 44 64
+151 44 64
+152 44 64
+153 44 64
+154 44 64
+155 44 64
+156 44 64
+157 44 64
+158 44 64
+159 44 64
+160 44 64
+161 44 64
+162 44 64
+163 44 64
+164 44 64
+165 44 64
+166 44 64
+167 44 64
+168 44 64
+169 44 64
+170 44 64
+171 44 64
+172 44 64
+173 44 64
+174 44 64
+175 44 64
+176 44 64
+177 44 64
+178 44 64
+179 44 64
+180 44 64
+181 44 64
+182 44 64
+183 44 64
+184 44 64
+185 44 64
+186 44 64
+187 44 64
+188 44 64
+189 44 64
+190 44 64
+191 44 64
+192 44 64
+193 44 64
+194 44 64
+195 44 64
+196 44 64
+197 44 64
+198 44 64
+199 44 64
+200 44 64
+201 44 64
+202 44 64
+203 44 64
+204 44 64
+205 44 64
+206 44 64
+207 44 64
+208 44 64
+209 44 64
+210 44 64
+211 44 64
+212 44 64
+213 44 64
+214 44 64
+215 44 64
+216 44 64
+217 44 64
+218 44 64
+219 44 64
+220 44 64
+221 44 64
+222 44 64
+223 44 64
+224 44 64
+225 44 64
+226 44 64
+227 44 64
+228 44 64
+229 44 64
+230 44 64
+231 44 64
+232 44 64
+233 44 64
+234 44 64
+235 44 64
+236 44 64
+237 44 64
+238 44 64
+239 44 64
+240 44 64
+241 44 64
+242 44 64
+243 44 64
+244 44 64
+245 44 64
+246 44 64
+247 44 64
+248 44 64
+249 44 64
+250 44 64
+251 44 64
+252 44 64
+253 44 64
+254 44 64
+255 44 64
+0 43 64
+1 43 64
+2 43 64
+3 43 64
+4 43 64
+5 43 64
+6 43 64
+7 43 64
+8 43 64
+9 43 64
+10 43 64
+11 43 64
+12 43 64
+13 43 64
+14 43 64
+15 43 64
+16 43 64
+17 43 64
+18 43 64
+19 43 64
+20 43 64
+21 43 64
+22 43 64
+23 43 64
+24 43 64
+25 43 64
+26 43 64
+27 43 64
+28 43 64
+29 43 64
+30 43 64
+31 43 64
+32 43 64
+33 43 64
+34 43 64
+35 43 64
+36 43 64
+37 43 64
+38 43 64
+39 43 64
+40 43 64
+41 43 64
+42 43 64
+43 43 64
+44 43 64
+45 43 64
+46 43 64
+47 43 64
+48 43 64
+49 43 64
+50 43 64
+51 43 64
+52 43 64
+53 43 64
+54 43 64
+55 43 64
+56 43 64
+57 43 64
+58 43 64
+59 43 64
+60 43 64
+61 43 64
+62 43 64
+63 43 64
+64 43 64
+65 43 64
+66 43 64
+67 43 64
+68 43 64
+69 43 64
+70 43 64
+71 43 64
+72 43 64
+73 43 64
+74 43 64
+75 43 64
+76 43 64
+77 43 64
+78 43 64
+79 43 64
+80 43 64
+81 43 64
+82 43 64
+83 43 64
+84 43 64
+85 43 64
+86 43 64
+87 43 64
+88 43 64
+89 43 64
+90 43 64
+91 43 64
+92 43 64
+93 43 64
+94 43 64
+95 43 64
+96 43 64
+97 43 64
+98 43 64
+99 43 64
+100 43 64
+101 43 64
+102 43 64
+103 43 64
+104 43 64
+105 43 64
+106 43 64
+107 43 64
+108 43 64
+109 43 64
+110 43 64
+111 43 64
+112 43 64
+113 43 64
+114 43 64
+115 43 64
+116 43 64
+117 43 64
+118 43 64
+119 43 64
+120 43 64
+121 43 64
+122 43 64
+123 43 64
+124 43 64
+125 43 64
+126 43 64
+127 43 64
+128 43 64
+129 43 64
+130 43 64
+131 43 64
+132 43 64
+133 43 64
+134 43 64
+135 43 64
+136 43 64
+137 43 64
+138 43 64
+139 43 64
+140 43 64
+141 43 64
+142 43 64
+143 43 64
+144 43 64
+145 43 64
+146 43 64
+147 43 64
+148 43 64
+149 43 64
+150 43 64
+151 43 64
+152 43 64
+153 43 64
+154 43 64
+155 43 64
+156 43 64
+157 43 64
+158 43 64
+159 43 64
+160 43 64
+161 43 64
+162 43 64
+163 43 64
+164 43 64
+165 43 64
+166 43 64
+167 43 64
+168 43 64
+169 43 64
+170 43 64
+171 43 64
+172 43 64
+173 43 64
+174 43 64
+175 43 64
+176 43 64
+177 43 64
+178 43 64
+179 43 64
+180 43 64
+181 43 64
+182 43 64
+183 43 64
+184 43 64
+185 43 64
+186 43 64
+187 43 64
+188 43 64
+189 43 64
+190 43 64
+191 43 64
+192 43 64
+193 43 64
+194 43 64
+195 43 64
+196 43 64
+197 43 64
+198 43 64
+199 43 64
+200 43 64
+201 43 64
+202 43 64
+203 43 64
+204 43 64
+205 43 64
+206 43 64
+207 43 64
+208 43 64
+209 43 64
+210 43 64
+211 43 64
+212 43 64
+213 43 64
+214 43 64
+215 43 64
+216 43 64
+217 43 64
+218 43 64
+219 43 64
+220 43 64
+221 43 64
+222 43 64
+223 43 64
+224 43 64
+225 43 64
+226 43 64
+227 43 64
+228 43 64
+229 43 64
+230 43 64
+231 43 64
+232 43 64
+233 43 64
+234 43 64
+235 43 64
+236 43 64
+237 43 64
+238 43 64
+239 43 64
+240 43 64
+241 43 64
+242 43 64
+243 43 64
+244 43 64
+245 43 64
+246 43 64
+247 43 64
+248 43 64
+249 43 64
+250 43 64
+251 43 64
+252 43 64
+253 43 64
+254 43 64
+255 43 64
+0 42 64
+1 42 64
+2 42 64
+3 42 64
+4 42 64
+5 42 64
+6 42 64
+7 42 64
+8 42 64
+9 42 64
+10 42 64
+11 42 64
+12 42 64
+13 42 64
+14 42 64
+15 42 64
+16 42 64
+17 42 64
+18 42 64
+19 42 64
+20 42 64
+21 42 64
+22 42 64
+23 42 64
+24 42 64
+25 42 64
+26 42 64
+27 42 64
+28 42 64
+29 42 64
+30 42 64
+31 42 64
+32 42 64
+33 42 64
+34 42 64
+35 42 64
+36 42 64
+37 42 64
+38 42 64
+39 42 64
+40 42 64
+41 42 64
+42 42 64
+43 42 64
+44 42 64
+45 42 64
+46 42 64
+47 42 64
+48 42 64
+49 42 64
+50 42 64
+51 42 64
+52 42 64
+53 42 64
+54 42 64
+55 42 64
+56 42 64
+57 42 64
+58 42 64
+59 42 64
+60 42 64
+61 42 64
+62 42 64
+63 42 64
+64 42 64
+65 42 64
+66 42 64
+67 42 64
+68 42 64
+69 42 64
+70 42 64
+71 42 64
+72 42 64
+73 42 64
+74 42 64
+75 42 64
+76 42 64
+77 42 64
+78 42 64
+79 42 64
+80 42 64
+81 42 64
+82 42 64
+83 42 64
+84 42 64
+85 42 64
+86 42 64
+87 42 64
+88 42 64
+89 42 64
+90 42 64
+91 42 64
+92 42 64
+93 42 64
+94 42 64
+95 42 64
+96 42 64
+97 42 64
+98 42 64
+99 42 64
+100 42 64
+101 42 64
+102 42 64
+103 42 64
+104 42 64
+105 42 64
+106 42 64
+107 42 64
+108 42 64
+109 42 64
+110 42 64
+111 42 64
+112 42 64
+113 42 64
+114 42 64
+115 42 64
+116 42 64
+117 42 64
+118 42 64
+119 42 64
+120 42 64
+121 42 64
+122 42 64
+123 42 64
+124 42 64
+125 42 64
+126 42 64
+127 42 64
+128 42 64
+129 42 64
+130 42 64
+131 42 64
+132 42 64
+133 42 64
+134 42 64
+135 42 64
+136 42 64
+137 42 64
+138 42 64
+139 42 64
+140 42 64
+141 42 64
+142 42 64
+143 42 64
+144 42 64
+145 42 64
+146 42 64
+147 42 64
+148 42 64
+149 42 64
+150 42 64
+151 42 64
+152 42 64
+153 42 64
+154 42 64
+155 42 64
+156 42 64
+157 42 64
+158 42 64
+159 42 64
+160 42 64
+161 42 64
+162 42 64
+163 42 64
+164 42 64
+165 42 64
+166 42 64
+167 42 64
+168 42 64
+169 42 64
+170 42 64
+171 42 64
+172 42 64
+173 42 64
+174 42 64
+175 42 64
+176 42 64
+177 42 64
+178 42 64
+179 42 64
+180 42 64
+181 42 64
+182 42 64
+183 42 64
+184 42 64
+185 42 64
+186 42 64
+187 42 64
+188 42 64
+189 42 64
+190 42 64
+191 42 64
+192 42 64
+193 42 64
+194 42 64
+195 42 64
+196 42 64
+197 42 64
+198 42 64
+199 42 64
+200 42 64
+201 42 64
+202 42 64
+203 42 64
+204 42 64
+205 42 64
+206 42 64
+207 42 64
+208 42 64
+209 42 64
+210 42 64
+211 42 64
+212 42 64
+213 42 64
+214 42 64
+215 42 64
+216 42 64
+217 42 64
+218 42 64
+219 42 64
+220 42 64
+221 42 64
+222 42 64
+223 42 64
+224 42 64
+225 42 64
+226 42 64
+227 42 64
+228 42 64
+229 42 64
+230 42 64
+231 42 64
+232 42 64
+233 42 64
+234 42 64
+235 42 64
+236 42 64
+237 42 64
+238 42 64
+239 42 64
+240 42 64
+241 42 64
+242 42 64
+243 42 64
+244 42 64
+245 42 64
+246 42 64
+247 42 64
+248 42 64
+249 42 64
+250 42 64
+251 42 64
+252 42 64
+253 42 64
+254 42 64
+255 42 64
+0 41 64
+1 41 64
+2 41 64
+3 41 64
+4 41 64
+5 41 64
+6 41 64
+7 41 64
+8 41 64
+9 41 64
+10 41 64
+11 41 64
+12 41 64
+13 41 64
+14 41 64
+15 41 64
+16 41 64
+17 41 64
+18 41 64
+19 41 64
+20 41 64
+21 41 64
+22 41 64
+23 41 64
+24 41 64
+25 41 64
+26 41 64
+27 41 64
+28 41 64
+29 41 64
+30 41 64
+31 41 64
+32 41 64
+33 41 64
+34 41 64
+35 41 64
+36 41 64
+37 41 64
+38 41 64
+39 41 64
+40 41 64
+41 41 64
+42 41 64
+43 41 64
+44 41 64
+45 41 64
+46 41 64
+47 41 64
+48 41 64
+49 41 64
+50 41 64
+51 41 64
+52 41 64
+53 41 64
+54 41 64
+55 41 64
+56 41 64
+57 41 64
+58 41 64
+59 41 64
+60 41 64
+61 41 64
+62 41 64
+63 41 64
+64 41 64
+65 41 64
+66 41 64
+67 41 64
+68 41 64
+69 41 64
+70 41 64
+71 41 64
+72 41 64
+73 41 64
+74 41 64
+75 41 64
+76 41 64
+77 41 64
+78 41 64
+79 41 64
+80 41 64
+81 41 64
+82 41 64
+83 41 64
+84 41 64
+85 41 64
+86 41 64
+87 41 64
+88 41 64
+89 41 64
+90 41 64
+91 41 64
+92 41 64
+93 41 64
+94 41 64
+95 41 64
+96 41 64
+97 41 64
+98 41 64
+99 41 64
+100 41 64
+101 41 64
+102 41 64
+103 41 64
+104 41 64
+105 41 64
+106 41 64
+107 41 64
+108 41 64
+109 41 64
+110 41 64
+111 41 64
+112 41 64
+113 41 64
+114 41 64
+115 41 64
+116 41 64
+117 41 64
+118 41 64
+119 41 64
+120 41 64
+121 41 64
+122 41 64
+123 41 64
+124 41 64
+125 41 64
+126 41 64
+127 41 64
+128 41 64
+129 41 64
+130 41 64
+131 41 64
+132 41 64
+133 41 64
+134 41 64
+135 41 64
+136 41 64
+137 41 64
+138 41 64
+139 41 64
+140 41 64
+141 41 64
+142 41 64
+143 41 64
+144 41 64
+145 41 64
+146 41 64
+147 41 64
+148 41 64
+149 41 64
+150 41 64
+151 41 64
+152 41 64
+153 41 64
+154 41 64
+155 41 64
+156 41 64
+157 41 64
+158 41 64
+159 41 64
+160 41 64
+161 41 64
+162 41 64
+163 41 64
+164 41 64
+165 41 64
+166 41 64
+167 41 64
+168 41 64
+169 41 64
+170 41 64
+171 41 64
+172 41 64
+173 41 64
+174 41 64
+175 41 64
+176 41 64
+177 41 64
+178 41 64
+179 41 64
+180 41 64
+181 41 64
+182 41 64
+183 41 64
+184 41 64
+185 41 64
+186 41 64
+187 41 64
+188 41 64
+189 41 64
+190 41 64
+191 41 64
+192 41 64
+193 41 64
+194 41 64
+195 41 64
+196 41 64
+197 41 64
+198 41 64
+199 41 64
+200 41 64
+201 41 64
+202 41 64
+203 41 64
+204 41 64
+205 41 64
+206 41 64
+207 41 64
+208 41 64
+209 41 64
+210 41 64
+211 41 64
+212 41 64
+213 41 64
+214 41 64
+215 41 64
+216 41 64
+217 41 64
+218 41 64
+219 41 64
+220 41 64
+221 41 64
+222 41 64
+223 41 64
+224 41 64
+225 41 64
+226 41 64
+227 41 64
+228 41 64
+229 41 64
+230 41 64
+231 41 64
+232 41 64
+233 41 64
+234 41 64
+235 41 64
+236 41 64
+237 41 64
+238 41 64
+239 41 64
+240 41 64
+241 41 64
+242 41 64
+243 41 64
+244 41 64
+245 41 64
+246 41 64
+247 41 64
+248 41 64
+249 41 64
+250 41 64
+251 41 64
+252 41 64
+253 41 64
+254 41 64
+255 41 64
+0 40 64
+1 40 64
+2 40 64
+3 40 64
+4 40 64
+5 40 64
+6 40 64
+7 40 64
+8 40 64
+9 40 64
+10 40 64
+11 40 64
+12 40 64
+13 40 64
+14 40 64
+15 40 64
+16 40 64
+17 40 64
+18 40 64
+19 40 64
+20 40 64
+21 40 64
+22 40 64
+23 40 64
+24 40 64
+25 40 64
+26 40 64
+27 40 64
+28 40 64
+29 40 64
+30 40 64
+31 40 64
+32 40 64
+33 40 64
+34 40 64
+35 40 64
+36 40 64
+37 40 64
+38 40 64
+39 40 64
+40 40 64
+41 40 64
+42 40 64
+43 40 64
+44 40 64
+45 40 64
+46 40 64
+47 40 64
+48 40 64
+49 40 64
+50 40 64
+51 40 64
+52 40 64
+53 40 64
+54 40 64
+55 40 64
+56 40 64
+57 40 64
+58 40 64
+59 40 64
+60 40 64
+61 40 64
+62 40 64
+63 40 64
+64 40 64
+65 40 64
+66 40 64
+67 40 64
+68 40 64
+69 40 64
+70 40 64
+71 40 64
+72 40 64
+73 40 64
+74 40 64
+75 40 64
+76 40 64
+77 40 64
+78 40 64
+79 40 64
+80 40 64
+81 40 64
+82 40 64
+83 40 64
+84 40 64
+85 40 64
+86 40 64
+87 40 64
+88 40 64
+89 40 64
+90 40 64
+91 40 64
+92 40 64
+93 40 64
+94 40 64
+95 40 64
+96 40 64
+97 40 64
+98 40 64
+99 40 64
+100 40 64
+101 40 64
+102 40 64
+103 40 64
+104 40 64
+105 40 64
+106 40 64
+107 40 64
+108 40 64
+109 40 64
+110 40 64
+111 40 64
+112 40 64
+113 40 64
+114 40 64
+115 40 64
+116 40 64
+117 40 64
+118 40 64
+119 40 64
+120 40 64
+121 40 64
+122 40 64
+123 40 64
+124 40 64
+125 40 64
+126 40 64
+127 40 64
+128 40 64
+129 40 64
+130 40 64
+131 40 64
+132 40 64
+133 40 64
+134 40 64
+135 40 64
+136 40 64
+137 40 64
+138 40 64
+139 40 64
+140 40 64
+141 40 64
+142 40 64
+143 40 64
+144 40 64
+145 40 64
+146 40 64
+147 40 64
+148 40 64
+149 40 64
+150 40 64
+151 40 64
+152 40 64
+153 40 64
+154 40 64
+155 40 64
+156 40 64
+157 40 64
+158 40 64
+159 40 64
+160 40 64
+161 40 64
+162 40 64
+163 40 64
+164 40 64
+165 40 64
+166 40 64
+167 40 64
+168 40 64
+169 40 64
+170 40 64
+171 40 64
+172 40 64
+173 40 64
+174 40 64
+175 40 64
+176 40 64
+177 40 64
+178 40 64
+179 40 64
+180 40 64
+181 40 64
+182 40 64
+183 40 64
+184 40 64
+185 40 64
+186 40 64
+187 40 64
+188 40 64
+189 40 64
+190 40 64
+191 40 64
+192 40 64
+193 40 64
+194 40 64
+195 40 64
+196 40 64
+197 40 64
+198 40 64
+199 40 64
+200 40 64
+201 40 64
+202 40 64
+203 40 64
+204 40 64
+205 40 64
+206 40 64
+207 40 64
+208 40 64
+209 40 64
+210 40 64
+211 40 64
+212 40 64
+213 40 64
+214 40 64
+215 40 64
+216 40 64
+217 40 64
+218 40 64
+219 40 64
+220 40 64
+221 40 64
+222 40 64
+223 40 64
+224 40 64
+225 40 64
+226 40 64
+227 40 64
+228 40 64
+229 40 64
+230 40 64
+231 40 64
+232 40 64
+233 40 64
+234 40 64
+235 40 64
+236 40 64
+237 40 64
+238 40 64
+239 40 64
+240 40 64
+241 40 64
+242 40 64
+243 40 64
+244 40 64
+245 40 64
+246 40 64
+247 40 64
+248 40 64
+249 40 64
+250 40 64
+251 40 64
+252 40 64
+253 40 64
+254 40 64
+255 40 64
+0 39 64
+1 39 64
+2 39 64
+3 39 64
+4 39 64
+5 39 64
+6 39 64
+7 39 64
+8 39 64
+9 39 64
+10 39 64
+11 39 64
+12 39 64
+13 39 64
+14 39 64
+15 39 64
+16 39 64
+17 39 64
+18 39 64
+19 39 64
+20 39 64
+21 39 64
+22 39 64
+23 39 64
+24 39 64
+25 39 64
+26 39 64
+27 39 64
+28 39 64
+29 39 64
+30 39 64
+31 39 64
+32 39 64
+33 39 64
+34 39 64
+35 39 64
+36 39 64
+37 39 64
+38 39 64
+39 39 64
+40 39 64
+41 39 64
+42 39 64
+43 39 64
+44 39 64
+45 39 64
+46 39 64
+47 39 64
+48 39 64
+49 39 64
+50 39 64
+51 39 64
+52 39 64
+53 39 64
+54 39 64
+55 39 64
+56 39 64
+57 39 64
+58 39 64
+59 39 64
+60 39 64
+61 39 64
+62 39 64
+63 39 64
+64 39 64
+65 39 64
+66 39 64
+67 39 64
+68 39 64
+69 39 64
+70 39 64
+71 39 64
+72 39 64
+73 39 64
+74 39 64
+75 39 64
+76 39 64
+77 39 64
+78 39 64
+79 39 64
+80 39 64
+81 39 64
+82 39 64
+83 39 64
+84 39 64
+85 39 64
+86 39 64
+87 39 64
+88 39 64
+89 39 64
+90 39 64
+91 39 64
+92 39 64
+93 39 64
+94 39 64
+95 39 64
+96 39 64
+97 39 64
+98 39 64
+99 39 64
+100 39 64
+101 39 64
+102 39 64
+103 39 64
+104 39 64
+105 39 64
+106 39 64
+107 39 64
+108 39 64
+109 39 64
+110 39 64
+111 39 64
+112 39 64
+113 39 64
+114 39 64
+115 39 64
+116 39 64
+117 39 64
+118 39 64
+119 39 64
+120 39 64
+121 39 64
+122 39 64
+123 39 64
+124 39 64
+125 39 64
+126 39 64
+127 39 64
+128 39 64
+129 39 64
+130 39 64
+131 39 64
+132 39 64
+133 39 64
+134 39 64
+135 39 64
+136 39 64
+137 39 64
+138 39 64
+139 39 64
+140 39 64
+141 39 64
+142 39 64
+143 39 64
+144 39 64
+145 39 64
+146 39 64
+147 39 64
+148 39 64
+149 39 64
+150 39 64
+151 39 64
+152 39 64
+153 39 64
+154 39 64
+155 39 64
+156 39 64
+157 39 64
+158 39 64
+159 39 64
+160 39 64
+161 39 64
+162 39 64
+163 39 64
+164 39 64
+165 39 64
+166 39 64
+167 39 64
+168 39 64
+169 39 64
+170 39 64
+171 39 64
+172 39 64
+173 39 64
+174 39 64
+175 39 64
+176 39 64
+177 39 64
+178 39 64
+179 39 64
+180 39 64
+181 39 64
+182 39 64
+183 39 64
+184 39 64
+185 39 64
+186 39 64
+187 39 64
+188 39 64
+189 39 64
+190 39 64
+191 39 64
+192 39 64
+193 39 64
+194 39 64
+195 39 64
+196 39 64
+197 39 64
+198 39 64
+199 39 64
+200 39 64
+201 39 64
+202 39 64
+203 39 64
+204 39 64
+205 39 64
+206 39 64
+207 39 64
+208 39 64
+209 39 64
+210 39 64
+211 39 64
+212 39 64
+213 39 64
+214 39 64
+215 39 64
+216 39 64
+217 39 64
+218 39 64
+219 39 64
+220 39 64
+221 39 64
+222 39 64
+223 39 64
+224 39 64
+225 39 64
+226 39 64
+227 39 64
+228 39 64
+229 39 64
+230 39 64
+231 39 64
+232 39 64
+233 39 64
+234 39 64
+235 39 64
+236 39 64
+237 39 64
+238 39 64
+239 39 64
+240 39 64
+241 39 64
+242 39 64
+243 39 64
+244 39 64
+245 39 64
+246 39 64
+247 39 64
+248 39 64
+249 39 64
+250 39 64
+251 39 64
+252 39 64
+253 39 64
+254 39 64
+255 39 64
+0 38 64
+1 38 64
+2 38 64
+3 38 64
+4 38 64
+5 38 64
+6 38 64
+7 38 64
+8 38 64
+9 38 64
+10 38 64
+11 38 64
+12 38 64
+13 38 64
+14 38 64
+15 38 64
+16 38 64
+17 38 64
+18 38 64
+19 38 64
+20 38 64
+21 38 64
+22 38 64
+23 38 64
+24 38 64
+25 38 64
+26 38 64
+27 38 64
+28 38 64
+29 38 64
+30 38 64
+31 38 64
+32 38 64
+33 38 64
+34 38 64
+35 38 64
+36 38 64
+37 38 64
+38 38 64
+39 38 64
+40 38 64
+41 38 64
+42 38 64
+43 38 64
+44 38 64
+45 38 64
+46 38 64
+47 38 64
+48 38 64
+49 38 64
+50 38 64
+51 38 64
+52 38 64
+53 38 64
+54 38 64
+55 38 64
+56 38 64
+57 38 64
+58 38 64
+59 38 64
+60 38 64
+61 38 64
+62 38 64
+63 38 64
+64 38 64
+65 38 64
+66 38 64
+67 38 64
+68 38 64
+69 38 64
+70 38 64
+71 38 64
+72 38 64
+73 38 64
+74 38 64
+75 38 64
+76 38 64
+77 38 64
+78 38 64
+79 38 64
+80 38 64
+81 38 64
+82 38 64
+83 38 64
+84 38 64
+85 38 64
+86 38 64
+87 38 64
+88 38 64
+89 38 64
+90 38 64
+91 38 64
+92 38 64
+93 38 64
+94 38 64
+95 38 64
+96 38 64
+97 38 64
+98 38 64
+99 38 64
+100 38 64
+101 38 64
+102 38 64
+103 38 64
+104 38 64
+105 38 64
+106 38 64
+107 38 64
+108 38 64
+109 38 64
+110 38 64
+111 38 64
+112 38 64
+113 38 64
+114 38 64
+115 38 64
+116 38 64
+117 38 64
+118 38 64
+119 38 64
+120 38 64
+121 38 64
+122 38 64
+123 38 64
+124 38 64
+125 38 64
+126 38 64
+127 38 64
+128 38 64
+129 38 64
+130 38 64
+131 38 64
+132 38 64
+133 38 64
+134 38 64
+135 38 64
+136 38 64
+137 38 64
+138 38 64
+139 38 64
+140 38 64
+141 38 64
+142 38 64
+143 38 64
+144 38 64
+145 38 64
+146 38 64
+147 38 64
+148 38 64
+149 38 64
+150 38 64
+151 38 64
+152 38 64
+153 38 64
+154 38 64
+155 38 64
+156 38 64
+157 38 64
+158 38 64
+159 38 64
+160 38 64
+161 38 64
+162 38 64
+163 38 64
+164 38 64
+165 38 64
+166 38 64
+167 38 64
+168 38 64
+169 38 64
+170 38 64
+171 38 64
+172 38 64
+173 38 64
+174 38 64
+175 38 64
+176 38 64
+177 38 64
+178 38 64
+179 38 64
+180 38 64
+181 38 64
+182 38 64
+183 38 64
+184 38 64
+185 38 64
+186 38 64
+187 38 64
+188 38 64
+189 38 64
+190 38 64
+191 38 64
+192 38 64
+193 38 64
+194 38 64
+195 38 64
+196 38 64
+197 38 64
+198 38 64
+199 38 64
+200 38 64
+201 38 64
+202 38 64
+203 38 64
+204 38 64
+205 38 64
+206 38 64
+207 38 64
+208 38 64
+209 38 64
+210 38 64
+211 38 64
+212 38 64
+213 38 64
+214 38 64
+215 38 64
+216 38 64
+217 38 64
+218 38 64
+219 38 64
+220 38 64
+221 38 64
+222 38 64
+223 38 64
+224 38 64
+225 38 64
+226 38 64
+227 38 64
+228 38 64
+229 38 64
+230 38 64
+231 38 64
+232 38 64
+233 38 64
+234 38 64
+235 38 64
+236 38 64
+237 38 64
+238 38 64
+239 38 64
+240 38 64
+241 38 64
+242 38 64
+243 38 64
+244 38 64
+245 38 64
+246 38 64
+247 38 64
+248 38 64
+249 38 64
+250 38 64
+251 38 64
+252 38 64
+253 38 64
+254 38 64
+255 38 64
+0 37 64
+1 37 64
+2 37 64
+3 37 64
+4 37 64
+5 37 64
+6 37 64
+7 37 64
+8 37 64
+9 37 64
+10 37 64
+11 37 64
+12 37 64
+13 37 64
+14 37 64
+15 37 64
+16 37 64
+17 37 64
+18 37 64
+19 37 64
+20 37 64
+21 37 64
+22 37 64
+23 37 64
+24 37 64
+25 37 64
+26 37 64
+27 37 64
+28 37 64
+29 37 64
+30 37 64
+31 37 64
+32 37 64
+33 37 64
+34 37 64
+35 37 64
+36 37 64
+37 37 64
+38 37 64
+39 37 64
+40 37 64
+41 37 64
+42 37 64
+43 37 64
+44 37 64
+45 37 64
+46 37 64
+47 37 64
+48 37 64
+49 37 64
+50 37 64
+51 37 64
+52 37 64
+53 37 64
+54 37 64
+55 37 64
+56 37 64
+57 37 64
+58 37 64
+59 37 64
+60 37 64
+61 37 64
+62 37 64
+63 37 64
+64 37 64
+65 37 64
+66 37 64
+67 37 64
+68 37 64
+69 37 64
+70 37 64
+71 37 64
+72 37 64
+73 37 64
+74 37 64
+75 37 64
+76 37 64
+77 37 64
+78 37 64
+79 37 64
+80 37 64
+81 37 64
+82 37 64
+83 37 64
+84 37 64
+85 37 64
+86 37 64
+87 37 64
+88 37 64
+89 37 64
+90 37 64
+91 37 64
+92 37 64
+93 37 64
+94 37 64
+95 37 64
+96 37 64
+97 37 64
+98 37 64
+99 37 64
+100 37 64
+101 37 64
+102 37 64
+103 37 64
+104 37 64
+105 37 64
+106 37 64
+107 37 64
+108 37 64
+109 37 64
+110 37 64
+111 37 64
+112 37 64
+113 37 64
+114 37 64
+115 37 64
+116 37 64
+117 37 64
+118 37 64
+119 37 64
+120 37 64
+121 37 64
+122 37 64
+123 37 64
+124 37 64
+125 37 64
+126 37 64
+127 37 64
+128 37 64
+129 37 64
+130 37 64
+131 37 64
+132 37 64
+133 37 64
+134 37 64
+135 37 64
+136 37 64
+137 37 64
+138 37 64
+139 37 64
+140 37 64
+141 37 64
+142 37 64
+143 37 64
+144 37 64
+145 37 64
+146 37 64
+147 37 64
+148 37 64
+149 37 64
+150 37 64
+151 37 64
+152 37 64
+153 37 64
+154 37 64
+155 37 64
+156 37 64
+157 37 64
+158 37 64
+159 37 64
+160 37 64
+161 37 64
+162 37 64
+163 37 64
+164 37 64
+165 37 64
+166 37 64
+167 37 64
+168 37 64
+169 37 64
+170 37 64
+171 37 64
+172 37 64
+173 37 64
+174 37 64
+175 37 64
+176 37 64
+177 37 64
+178 37 64
+179 37 64
+180 37 64
+181 37 64
+182 37 64
+183 37 64
+184 37 64
+185 37 64
+186 37 64
+187 37 64
+188 37 64
+189 37 64
+190 37 64
+191 37 64
+192 37 64
+193 37 64
+194 37 64
+195 37 64
+196 37 64
+197 37 64
+198 37 64
+199 37 64
+200 37 64
+201 37 64
+202 37 64
+203 37 64
+204 37 64
+205 37 64
+206 37 64
+207 37 64
+208 37 64
+209 37 64
+210 37 64
+211 37 64
+212 37 64
+213 37 64
+214 37 64
+215 37 64
+216 37 64
+217 37 64
+218 37 64
+219 37 64
+220 37 64
+221 37 64
+222 37 64
+223 37 64
+224 37 64
+225 37 64
+226 37 64
+227 37 64
+228 37 64
+229 37 64
+230 37 64
+231 37 64
+232 37 64
+233 37 64
+234 37 64
+235 37 64
+236 37 64
+237 37 64
+238 37 64
+239 37 64
+240 37 64
+241 37 64
+242 37 64
+243 37 64
+244 37 64
+245 37 64
+246 37 64
+247 37 64
+248 37 64
+249 37 64
+250 37 64
+251 37 64
+252 37 64
+253 37 64
+254 37 64
+255 37 64
+0 36 64
+1 36 64
+2 36 64
+3 36 64
+4 36 64
+5 36 64
+6 36 64
+7 36 64
+8 36 64
+9 36 64
+10 36 64
+11 36 64
+12 36 64
+13 36 64
+14 36 64
+15 36 64
+16 36 64
+17 36 64
+18 36 64
+19 36 64
+20 36 64
+21 36 64
+22 36 64
+23 36 64
+24 36 64
+25 36 64
+26 36 64
+27 36 64
+28 36 64
+29 36 64
+30 36 64
+31 36 64
+32 36 64
+33 36 64
+34 36 64
+35 36 64
+36 36 64
+37 36 64
+38 36 64
+39 36 64
+40 36 64
+41 36 64
+42 36 64
+43 36 64
+44 36 64
+45 36 64
+46 36 64
+47 36 64
+48 36 64
+49 36 64
+50 36 64
+51 36 64
+52 36 64
+53 36 64
+54 36 64
+55 36 64
+56 36 64
+57 36 64
+58 36 64
+59 36 64
+60 36 64
+61 36 64
+62 36 64
+63 36 64
+64 36 64
+65 36 64
+66 36 64
+67 36 64
+68 36 64
+69 36 64
+70 36 64
+71 36 64
+72 36 64
+73 36 64
+74 36 64
+75 36 64
+76 36 64
+77 36 64
+78 36 64
+79 36 64
+80 36 64
+81 36 64
+82 36 64
+83 36 64
+84 36 64
+85 36 64
+86 36 64
+87 36 64
+88 36 64
+89 36 64
+90 36 64
+91 36 64
+92 36 64
+93 36 64
+94 36 64
+95 36 64
+96 36 64
+97 36 64
+98 36 64
+99 36 64
+100 36 64
+101 36 64
+102 36 64
+103 36 64
+104 36 64
+105 36 64
+106 36 64
+107 36 64
+108 36 64
+109 36 64
+110 36 64
+111 36 64
+112 36 64
+113 36 64
+114 36 64
+115 36 64
+116 36 64
+117 36 64
+118 36 64
+119 36 64
+120 36 64
+121 36 64
+122 36 64
+123 36 64
+124 36 64
+125 36 64
+126 36 64
+127 36 64
+128 36 64
+129 36 64
+130 36 64
+131 36 64
+132 36 64
+133 36 64
+134 36 64
+135 36 64
+136 36 64
+137 36 64
+138 36 64
+139 36 64
+140 36 64
+141 36 64
+142 36 64
+143 36 64
+144 36 64
+145 36 64
+146 36 64
+147 36 64
+148 36 64
+149 36 64
+150 36 64
+151 36 64
+152 36 64
+153 36 64
+154 36 64
+155 36 64
+156 36 64
+157 36 64
+158 36 64
+159 36 64
+160 36 64
+161 36 64
+162 36 64
+163 36 64
+164 36 64
+165 36 64
+166 36 64
+167 36 64
+168 36 64
+169 36 64
+170 36 64
+171 36 64
+172 36 64
+173 36 64
+174 36 64
+175 36 64
+176 36 64
+177 36 64
+178 36 64
+179 36 64
+180 36 64
+181 36 64
+182 36 64
+183 36 64
+184 36 64
+185 36 64
+186 36 64
+187 36 64
+188 36 64
+189 36 64
+190 36 64
+191 36 64
+192 36 64
+193 36 64
+194 36 64
+195 36 64
+196 36 64
+197 36 64
+198 36 64
+199 36 64
+200 36 64
+201 36 64
+202 36 64
+203 36 64
+204 36 64
+205 36 64
+206 36 64
+207 36 64
+208 36 64
+209 36 64
+210 36 64
+211 36 64
+212 36 64
+213 36 64
+214 36 64
+215 36 64
+216 36 64
+217 36 64
+218 36 64
+219 36 64
+220 36 64
+221 36 64
+222 36 64
+223 36 64
+224 36 64
+225 36 64
+226 36 64
+227 36 64
+228 36 64
+229 36 64
+230 36 64
+231 36 64
+232 36 64
+233 36 64
+234 36 64
+235 36 64
+236 36 64
+237 36 64
+238 36 64
+239 36 64
+240 36 64
+241 36 64
+242 36 64
+243 36 64
+244 36 64
+245 36 64
+246 36 64
+247 36 64
+248 36 64
+249 36 64
+250 36 64
+251 36 64
+252 36 64
+253 36 64
+254 36 64
+255 36 64
+0 35 64
+1 35 64
+2 35 64
+3 35 64
+4 35 64
+5 35 64
+6 35 64
+7 35 64
+8 35 64
+9 35 64
+10 35 64
+11 35 64
+12 35 64
+13 35 64
+14 35 64
+15 35 64
+16 35 64
+17 35 64
+18 35 64
+19 35 64
+20 35 64
+21 35 64
+22 35 64
+23 35 64
+24 35 64
+25 35 64
+26 35 64
+27 35 64
+28 35 64
+29 35 64
+30 35 64
+31 35 64
+32 35 64
+33 35 64
+34 35 64
+35 35 64
+36 35 64
+37 35 64
+38 35 64
+39 35 64
+40 35 64
+41 35 64
+42 35 64
+43 35 64
+44 35 64
+45 35 64
+46 35 64
+47 35 64
+48 35 64
+49 35 64
+50 35 64
+51 35 64
+52 35 64
+53 35 64
+54 35 64
+55 35 64
+56 35 64
+57 35 64
+58 35 64
+59 35 64
+60 35 64
+61 35 64
+62 35 64
+63 35 64
+64 35 64
+65 35 64
+66 35 64
+67 35 64
+68 35 64
+69 35 64
+70 35 64
+71 35 64
+72 35 64
+73 35 64
+74 35 64
+75 35 64
+76 35 64
+77 35 64
+78 35 64
+79 35 64
+80 35 64
+81 35 64
+82 35 64
+83 35 64
+84 35 64
+85 35 64
+86 35 64
+87 35 64
+88 35 64
+89 35 64
+90 35 64
+91 35 64
+92 35 64
+93 35 64
+94 35 64
+95 35 64
+96 35 64
+97 35 64
+98 35 64
+99 35 64
+100 35 64
+101 35 64
+102 35 64
+103 35 64
+104 35 64
+105 35 64
+106 35 64
+107 35 64
+108 35 64
+109 35 64
+110 35 64
+111 35 64
+112 35 64
+113 35 64
+114 35 64
+115 35 64
+116 35 64
+117 35 64
+118 35 64
+119 35 64
+120 35 64
+121 35 64
+122 35 64
+123 35 64
+124 35 64
+125 35 64
+126 35 64
+127 35 64
+128 35 64
+129 35 64
+130 35 64
+131 35 64
+132 35 64
+133 35 64
+134 35 64
+135 35 64
+136 35 64
+137 35 64
+138 35 64
+139 35 64
+140 35 64
+141 35 64
+142 35 64
+143 35 64
+144 35 64
+145 35 64
+146 35 64
+147 35 64
+148 35 64
+149 35 64
+150 35 64
+151 35 64
+152 35 64
+153 35 64
+154 35 64
+155 35 64
+156 35 64
+157 35 64
+158 35 64
+159 35 64
+160 35 64
+161 35 64
+162 35 64
+163 35 64
+164 35 64
+165 35 64
+166 35 64
+167 35 64
+168 35 64
+169 35 64
+170 35 64
+171 35 64
+172 35 64
+173 35 64
+174 35 64
+175 35 64
+176 35 64
+177 35 64
+178 35 64
+179 35 64
+180 35 64
+181 35 64
+182 35 64
+183 35 64
+184 35 64
+185 35 64
+186 35 64
+187 35 64
+188 35 64
+189 35 64
+190 35 64
+191 35 64
+192 35 64
+193 35 64
+194 35 64
+195 35 64
+196 35 64
+197 35 64
+198 35 64
+199 35 64
+200 35 64
+201 35 64
+202 35 64
+203 35 64
+204 35 64
+205 35 64
+206 35 64
+207 35 64
+208 35 64
+209 35 64
+210 35 64
+211 35 64
+212 35 64
+213 35 64
+214 35 64
+215 35 64
+216 35 64
+217 35 64
+218 35 64
+219 35 64
+220 35 64
+221 35 64
+222 35 64
+223 35 64
+224 35 64
+225 35 64
+226 35 64
+227 35 64
+228 35 64
+229 35 64
+230 35 64
+231 35 64
+232 35 64
+233 35 64
+234 35 64
+235 35 64
+236 35 64
+237 35 64
+238 35 64
+239 35 64
+240 35 64
+241 35 64
+242 35 64
+243 35 64
+244 35 64
+245 35 64
+246 35 64
+247 35 64
+248 35 64
+249 35 64
+250 35 64
+251 35 64
+252 35 64
+253 35 64
+254 35 64
+255 35 64
+0 34 64
+1 34 64
+2 34 64
+3 34 64
+4 34 64
+5 34 64
+6 34 64
+7 34 64
+8 34 64
+9 34 64
+10 34 64
+11 34 64
+12 34 64
+13 34 64
+14 34 64
+15 34 64
+16 34 64
+17 34 64
+18 34 64
+19 34 64
+20 34 64
+21 34 64
+22 34 64
+23 34 64
+24 34 64
+25 34 64
+26 34 64
+27 34 64
+28 34 64
+29 34 64
+30 34 64
+31 34 64
+32 34 64
+33 34 64
+34 34 64
+35 34 64
+36 34 64
+37 34 64
+38 34 64
+39 34 64
+40 34 64
+41 34 64
+42 34 64
+43 34 64
+44 34 64
+45 34 64
+46 34 64
+47 34 64
+48 34 64
+49 34 64
+50 34 64
+51 34 64
+52 34 64
+53 34 64
+54 34 64
+55 34 64
+56 34 64
+57 34 64
+58 34 64
+59 34 64
+60 34 64
+61 34 64
+62 34 64
+63 34 64
+64 34 64
+65 34 64
+66 34 64
+67 34 64
+68 34 64
+69 34 64
+70 34 64
+71 34 64
+72 34 64
+73 34 64
+74 34 64
+75 34 64
+76 34 64
+77 34 64
+78 34 64
+79 34 64
+80 34 64
+81 34 64
+82 34 64
+83 34 64
+84 34 64
+85 34 64
+86 34 64
+87 34 64
+88 34 64
+89 34 64
+90 34 64
+91 34 64
+92 34 64
+93 34 64
+94 34 64
+95 34 64
+96 34 64
+97 34 64
+98 34 64
+99 34 64
+100 34 64
+101 34 64
+102 34 64
+103 34 64
+104 34 64
+105 34 64
+106 34 64
+107 34 64
+108 34 64
+109 34 64
+110 34 64
+111 34 64
+112 34 64
+113 34 64
+114 34 64
+115 34 64
+116 34 64
+117 34 64
+118 34 64
+119 34 64
+120 34 64
+121 34 64
+122 34 64
+123 34 64
+124 34 64
+125 34 64
+126 34 64
+127 34 64
+128 34 64
+129 34 64
+130 34 64
+131 34 64
+132 34 64
+133 34 64
+134 34 64
+135 34 64
+136 34 64
+137 34 64
+138 34 64
+139 34 64
+140 34 64
+141 34 64
+142 34 64
+143 34 64
+144 34 64
+145 34 64
+146 34 64
+147 34 64
+148 34 64
+149 34 64
+150 34 64
+151 34 64
+152 34 64
+153 34 64
+154 34 64
+155 34 64
+156 34 64
+157 34 64
+158 34 64
+159 34 64
+160 34 64
+161 34 64
+162 34 64
+163 34 64
+164 34 64
+165 34 64
+166 34 64
+167 34 64
+168 34 64
+169 34 64
+170 34 64
+171 34 64
+172 34 64
+173 34 64
+174 34 64
+175 34 64
+176 34 64
+177 34 64
+178 34 64
+179 34 64
+180 34 64
+181 34 64
+182 34 64
+183 34 64
+184 34 64
+185 34 64
+186 34 64
+187 34 64
+188 34 64
+189 34 64
+190 34 64
+191 34 64
+192 34 64
+193 34 64
+194 34 64
+195 34 64
+196 34 64
+197 34 64
+198 34 64
+199 34 64
+200 34 64
+201 34 64
+202 34 64
+203 34 64
+204 34 64
+205 34 64
+206 34 64
+207 34 64
+208 34 64
+209 34 64
+210 34 64
+211 34 64
+212 34 64
+213 34 64
+214 34 64
+215 34 64
+216 34 64
+217 34 64
+218 34 64
+219 34 64
+220 34 64
+221 34 64
+222 34 64
+223 34 64
+224 34 64
+225 34 64
+226 34 64
+227 34 64
+228 34 64
+229 34 64
+230 34 64
+231 34 64
+232 34 64
+233 34 64
+234 34 64
+235 34 64
+236 34 64
+237 34 64
+238 34 64
+239 34 64
+240 34 64
+241 34 64
+242 34 64
+243 34 64
+244 34 64
+245 34 64
+246 34 64
+247 34 64
+248 34 64
+249 34 64
+250 34 64
+251 34 64
+252 34 64
+253 34 64
+254 34 64
+255 34 64
+0 33 64
+1 33 64
+2 33 64
+3 33 64
+4 33 64
+5 33 64
+6 33 64
+7 33 64
+8 33 64
+9 33 64
+10 33 64
+11 33 64
+12 33 64
+13 33 64
+14 33 64
+15 33 64
+16 33 64
+17 33 64
+18 33 64
+19 33 64
+20 33 64
+21 33 64
+22 33 64
+23 33 64
+24 33 64
+25 33 64
+26 33 64
+27 33 64
+28 33 64
+29 33 64
+30 33 64
+31 33 64
+32 33 64
+33 33 64
+34 33 64
+35 33 64
+36 33 64
+37 33 64
+38 33 64
+39 33 64
+40 33 64
+41 33 64
+42 33 64
+43 33 64
+44 33 64
+45 33 64
+46 33 64
+47 33 64
+48 33 64
+49 33 64
+50 33 64
+51 33 64
+52 33 64
+53 33 64
+54 33 64
+55 33 64
+56 33 64
+57 33 64
+58 33 64
+59 33 64
+60 33 64
+61 33 64
+62 33 64
+63 33 64
+64 33 64
+65 33 64
+66 33 64
+67 33 64
+68 33 64
+69 33 64
+70 33 64
+71 33 64
+72 33 64
+73 33 64
+74 33 64
+75 33 64
+76 33 64
+77 33 64
+78 33 64
+79 33 64
+80 33 64
+81 33 64
+82 33 64
+83 33 64
+84 33 64
+85 33 64
+86 33 64
+87 33 64
+88 33 64
+89 33 64
+90 33 64
+91 33 64
+92 33 64
+93 33 64
+94 33 64
+95 33 64
+96 33 64
+97 33 64
+98 33 64
+99 33 64
+100 33 64
+101 33 64
+102 33 64
+103 33 64
+104 33 64
+105 33 64
+106 33 64
+107 33 64
+108 33 64
+109 33 64
+110 33 64
+111 33 64
+112 33 64
+113 33 64
+114 33 64
+115 33 64
+116 33 64
+117 33 64
+118 33 64
+119 33 64
+120 33 64
+121 33 64
+122 33 64
+123 33 64
+124 33 64
+125 33 64
+126 33 64
+127 33 64
+128 33 64
+129 33 64
+130 33 64
+131 33 64
+132 33 64
+133 33 64
+134 33 64
+135 33 64
+136 33 64
+137 33 64
+138 33 64
+139 33 64
+140 33 64
+141 33 64
+142 33 64
+143 33 64
+144 33 64
+145 33 64
+146 33 64
+147 33 64
+148 33 64
+149 33 64
+150 33 64
+151 33 64
+152 33 64
+153 33 64
+154 33 64
+155 33 64
+156 33 64
+157 33 64
+158 33 64
+159 33 64
+160 33 64
+161 33 64
+162 33 64
+163 33 64
+164 33 64
+165 33 64
+166 33 64
+167 33 64
+168 33 64
+169 33 64
+170 33 64
+171 33 64
+172 33 64
+173 33 64
+174 33 64
+175 33 64
+176 33 64
+177 33 64
+178 33 64
+179 33 64
+180 33 64
+181 33 64
+182 33 64
+183 33 64
+184 33 64
+185 33 64
+186 33 64
+187 33 64
+188 33 64
+189 33 64
+190 33 64
+191 33 64
+192 33 64
+193 33 64
+194 33 64
+195 33 64
+196 33 64
+197 33 64
+198 33 64
+199 33 64
+200 33 64
+201 33 64
+202 33 64
+203 33 64
+204 33 64
+205 33 64
+206 33 64
+207 33 64
+208 33 64
+209 33 64
+210 33 64
+211 33 64
+212 33 64
+213 33 64
+214 33 64
+215 33 64
+216 33 64
+217 33 64
+218 33 64
+219 33 64
+220 33 64
+221 33 64
+222 33 64
+223 33 64
+224 33 64
+225 33 64
+226 33 64
+227 33 64
+228 33 64
+229 33 64
+230 33 64
+231 33 64
+232 33 64
+233 33 64
+234 33 64
+235 33 64
+236 33 64
+237 33 64
+238 33 64
+239 33 64
+240 33 64
+241 33 64
+242 33 64
+243 33 64
+244 33 64
+245 33 64
+246 33 64
+247 33 64
+248 33 64
+249 33 64
+250 33 64
+251 33 64
+252 33 64
+253 33 64
+254 33 64
+255 33 64
+0 32 64
+1 32 64
+2 32 64
+3 32 64
+4 32 64
+5 32 64
+6 32 64
+7 32 64
+8 32 64
+9 32 64
+10 32 64
+11 32 64
+12 32 64
+13 32 64
+14 32 64
+15 32 64
+16 32 64
+17 32 64
+18 32 64
+19 32 64
+20 32 64
+21 32 64
+22 32 64
+23 32 64
+24 32 64
+25 32 64
+26 32 64
+27 32 64
+28 32 64
+29 32 64
+30 32 64
+31 32 64
+32 32 64
+33 32 64
+34 32 64
+35 32 64
+36 32 64
+37 32 64
+38 32 64
+39 32 64
+40 32 64
+41 32 64
+42 32 64
+43 32 64
+44 32 64
+45 32 64
+46 32 64
+47 32 64
+48 32 64
+49 32 64
+50 32 64
+51 32 64
+52 32 64
+53 32 64
+54 32 64
+55 32 64
+56 32 64
+57 32 64
+58 32 64
+59 32 64
+60 32 64
+61 32 64
+62 32 64
+63 32 64
+64 32 64
+65 32 64
+66 32 64
+67 32 64
+68 32 64
+69 32 64
+70 32 64
+71 32 64
+72 32 64
+73 32 64
+74 32 64
+75 32 64
+76 32 64
+77 32 64
+78 32 64
+79 32 64
+80 32 64
+81 32 64
+82 32 64
+83 32 64
+84 32 64
+85 32 64
+86 32 64
+87 32 64
+88 32 64
+89 32 64
+90 32 64
+91 32 64
+92 32 64
+93 32 64
+94 32 64
+95 32 64
+96 32 64
+97 32 64
+98 32 64
+99 32 64
+100 32 64
+101 32 64
+102 32 64
+103 32 64
+104 32 64
+105 32 64
+106 32 64
+107 32 64
+108 32 64
+109 32 64
+110 32 64
+111 32 64
+112 32 64
+113 32 64
+114 32 64
+115 32 64
+116 32 64
+117 32 64
+118 32 64
+119 32 64
+120 32 64
+121 32 64
+122 32 64
+123 32 64
+124 32 64
+125 32 64
+126 32 64
+127 32 64
+128 32 64
+129 32 64
+130 32 64
+131 32 64
+132 32 64
+133 32 64
+134 32 64
+135 32 64
+136 32 64
+137 32 64
+138 32 64
+139 32 64
+140 32 64
+141 32 64
+142 32 64
+143 32 64
+144 32 64
+145 32 64
+146 32 64
+147 32 64
+148 32 64
+149 32 64
+150 32 64
+151 32 64
+152 32 64
+153 32 64
+154 32 64
+155 32 64
+156 32 64
+157 32 64
+158 32 64
+159 32 64
+160 32 64
+161 32 64
+162 32 64
+163 32 64
+164 32 64
+165 32 64
+166 32 64
+167 32 64
+168 32 64
+169 32 64
+170 32 64
+171 32 64
+172 32 64
+173 32 64
+174 32 64
+175 32 64
+176 32 64
+177 32 64
+178 32 64
+179 32 64
+180 32 64
+181 32 64
+182 32 64
+183 32 64
+184 32 64
+185 32 64
+186 32 64
+187 32 64
+188 32 64
+189 32 64
+190 32 64
+191 32 64
+192 32 64
+193 32 64
+194 32 64
+195 32 64
+196 32 64
+197 32 64
+198 32 64
+199 32 64
+200 32 64
+201 32 64
+202 32 64
+203 32 64
+204 32 64
+205 32 64
+206 32 64
+207 32 64
+208 32 64
+209 32 64
+210 32 64
+211 32 64
+212 32 64
+213 32 64
+214 32 64
+215 32 64
+216 32 64
+217 32 64
+218 32 64
+219 32 64
+220 32 64
+221 32 64
+222 32 64
+223 32 64
+224 32 64
+225 32 64
+226 32 64
+227 32 64
+228 32 64
+229 32 64
+230 32 64
+231 32 64
+232 32 64
+233 32 64
+234 32 64
+235 32 64
+236 32 64
+237 32 64
+238 32 64
+239 32 64
+240 32 64
+241 32 64
+242 32 64
+243 32 64
+244 32 64
+245 32 64
+246 32 64
+247 32 64
+248 32 64
+249 32 64
+250 32 64
+251 32 64
+252 32 64
+253 32 64
+254 32 64
+255 32 64
+0 31 64
+1 31 64
+2 31 64
+3 31 64
+4 31 64
+5 31 64
+6 31 64
+7 31 64
+8 31 64
+9 31 64
+10 31 64
+11 31 64
+12 31 64
+13 31 64
+14 31 64
+15 31 64
+16 31 64
+17 31 64
+18 31 64
+19 31 64
+20 31 64
+21 31 64
+22 31 64
+23 31 64
+24 31 64
+25 31 64
+26 31 64
+27 31 64
+28 31 64
+29 31 64
+30 31 64
+31 31 64
+32 31 64
+33 31 64
+34 31 64
+35 31 64
+36 31 64
+37 31 64
+38 31 64
+39 31 64
+40 31 64
+41 31 64
+42 31 64
+43 31 64
+44 31 64
+45 31 64
+46 31 64
+47 31 64
+48 31 64
+49 31 64
+50 31 64
+51 31 64
+52 31 64
+53 31 64
+54 31 64
+55 31 64
+56 31 64
+57 31 64
+58 31 64
+59 31 64
+60 31 64
+61 31 64
+62 31 64
+63 31 64
+64 31 64
+65 31 64
+66 31 64
+67 31 64
+68 31 64
+69 31 64
+70 31 64
+71 31 64
+72 31 64
+73 31 64
+74 31 64
+75 31 64
+76 31 64
+77 31 64
+78 31 64
+79 31 64
+80 31 64
+81 31 64
+82 31 64
+83 31 64
+84 31 64
+85 31 64
+86 31 64
+87 31 64
+88 31 64
+89 31 64
+90 31 64
+91 31 64
+92 31 64
+93 31 64
+94 31 64
+95 31 64
+96 31 64
+97 31 64
+98 31 64
+99 31 64
+100 31 64
+101 31 64
+102 31 64
+103 31 64
+104 31 64
+105 31 64
+106 31 64
+107 31 64
+108 31 64
+109 31 64
+110 31 64
+111 31 64
+112 31 64
+113 31 64
+114 31 64
+115 31 64
+116 31 64
+117 31 64
+118 31 64
+119 31 64
+120 31 64
+121 31 64
+122 31 64
+123 31 64
+124 31 64
+125 31 64
+126 31 64
+127 31 64
+128 31 64
+129 31 64
+130 31 64
+131 31 64
+132 31 64
+133 31 64
+134 31 64
+135 31 64
+136 31 64
+137 31 64
+138 31 64
+139 31 64
+140 31 64
+141 31 64
+142 31 64
+143 31 64
+144 31 64
+145 31 64
+146 31 64
+147 31 64
+148 31 64
+149 31 64
+150 31 64
+151 31 64
+152 31 64
+153 31 64
+154 31 64
+155 31 64
+156 31 64
+157 31 64
+158 31 64
+159 31 64
+160 31 64
+161 31 64
+162 31 64
+163 31 64
+164 31 64
+165 31 64
+166 31 64
+167 31 64
+168 31 64
+169 31 64
+170 31 64
+171 31 64
+172 31 64
+173 31 64
+174 31 64
+175 31 64
+176 31 64
+177 31 64
+178 31 64
+179 31 64
+180 31 64
+181 31 64
+182 31 64
+183 31 64
+184 31 64
+185 31 64
+186 31 64
+187 31 64
+188 31 64
+189 31 64
+190 31 64
+191 31 64
+192 31 64
+193 31 64
+194 31 64
+195 31 64
+196 31 64
+197 31 64
+198 31 64
+199 31 64
+200 31 64
+201 31 64
+202 31 64
+203 31 64
+204 31 64
+205 31 64
+206 31 64
+207 31 64
+208 31 64
+209 31 64
+210 31 64
+211 31 64
+212 31 64
+213 31 64
+214 31 64
+215 31 64
+216 31 64
+217 31 64
+218 31 64
+219 31 64
+220 31 64
+221 31 64
+222 31 64
+223 31 64
+224 31 64
+225 31 64
+226 31 64
+227 31 64
+228 31 64
+229 31 64
+230 31 64
+231 31 64
+232 31 64
+233 31 64
+234 31 64
+235 31 64
+236 31 64
+237 31 64
+238 31 64
+239 31 64
+240 31 64
+241 31 64
+242 31 64
+243 31 64
+244 31 64
+245 31 64
+246 31 64
+247 31 64
+248 31 64
+249 31 64
+250 31 64
+251 31 64
+252 31 64
+253 31 64
+254 31 64
+255 31 64
+0 30 64
+1 30 64
+2 30 64
+3 30 64
+4 30 64
+5 30 64
+6 30 64
+7 30 64
+8 30 64
+9 30 64
+10 30 64
+11 30 64
+12 30 64
+13 30 64
+14 30 64
+15 30 64
+16 30 64
+17 30 64
+18 30 64
+19 30 64
+20 30 64
+21 30 64
+22 30 64
+23 30 64
+24 30 64
+25 30 64
+26 30 64
+27 30 64
+28 30 64
+29 30 64
+30 30 64
+31 30 64
+32 30 64
+33 30 64
+34 30 64
+35 30 64
+36 30 64
+37 30 64
+38 30 64
+39 30 64
+40 30 64
+41 30 64
+42 30 64
+43 30 64
+44 30 64
+45 30 64
+46 30 64
+47 30 64
+48 30 64
+49 30 64
+50 30 64
+51 30 64
+52 30 64
+53 30 64
+54 30 64
+55 30 64
+56 30 64
+57 30 64
+58 30 64
+59 30 64
+60 30 64
+61 30 64
+62 30 64
+63 30 64
+64 30 64
+65 30 64
+66 30 64
+67 30 64
+68 30 64
+69 30 64
+70 30 64
+71 30 64
+72 30 64
+73 30 64
+74 30 64
+75 30 64
+76 30 64
+77 30 64
+78 30 64
+79 30 64
+80 30 64
+81 30 64
+82 30 64
+83 30 64
+84 30 64
+85 30 64
+86 30 64
+87 30 64
+88 30 64
+89 30 64
+90 30 64
+91 30 64
+92 30 64
+93 30 64
+94 30 64
+95 30 64
+96 30 64
+97 30 64
+98 30 64
+99 30 64
+100 30 64
+101 30 64
+102 30 64
+103 30 64
+104 30 64
+105 30 64
+106 30 64
+107 30 64
+108 30 64
+109 30 64
+110 30 64
+111 30 64
+112 30 64
+113 30 64
+114 30 64
+115 30 64
+116 30 64
+117 30 64
+118 30 64
+119 30 64
+120 30 64
+121 30 64
+122 30 64
+123 30 64
+124 30 64
+125 30 64
+126 30 64
+127 30 64
+128 30 64
+129 30 64
+130 30 64
+131 30 64
+132 30 64
+133 30 64
+134 30 64
+135 30 64
+136 30 64
+137 30 64
+138 30 64
+139 30 64
+140 30 64
+141 30 64
+142 30 64
+143 30 64
+144 30 64
+145 30 64
+146 30 64
+147 30 64
+148 30 64
+149 30 64
+150 30 64
+151 30 64
+152 30 64
+153 30 64
+154 30 64
+155 30 64
+156 30 64
+157 30 64
+158 30 64
+159 30 64
+160 30 64
+161 30 64
+162 30 64
+163 30 64
+164 30 64
+165 30 64
+166 30 64
+167 30 64
+168 30 64
+169 30 64
+170 30 64
+171 30 64
+172 30 64
+173 30 64
+174 30 64
+175 30 64
+176 30 64
+177 30 64
+178 30 64
+179 30 64
+180 30 64
+181 30 64
+182 30 64
+183 30 64
+184 30 64
+185 30 64
+186 30 64
+187 30 64
+188 30 64
+189 30 64
+190 30 64
+191 30 64
+192 30 64
+193 30 64
+194 30 64
+195 30 64
+196 30 64
+197 30 64
+198 30 64
+199 30 64
+200 30 64
+201 30 64
+202 30 64
+203 30 64
+204 30 64
+205 30 64
+206 30 64
+207 30 64
+208 30 64
+209 30 64
+210 30 64
+211 30 64
+212 30 64
+213 30 64
+214 30 64
+215 30 64
+216 30 64
+217 30 64
+218 30 64
+219 30 64
+220 30 64
+221 30 64
+222 30 64
+223 30 64
+224 30 64
+225 30 64
+226 30 64
+227 30 64
+228 30 64
+229 30 64
+230 30 64
+231 30 64
+232 30 64
+233 30 64
+234 30 64
+235 30 64
+236 30 64
+237 30 64
+238 30 64
+239 30 64
+240 30 64
+241 30 64
+242 30 64
+243 30 64
+244 30 64
+245 30 64
+246 30 64
+247 30 64
+248 30 64
+249 30 64
+250 30 64
+251 30 64
+252 30 64
+253 30 64
+254 30 64
+255 30 64
+0 29 64
+1 29 64
+2 29 64
+3 29 64
+4 29 64
+5 29 64
+6 29 64
+7 29 64
+8 29 64
+9 29 64
+10 29 64
+11 29 64
+12 29 64
+13 29 64
+14 29 64
+15 29 64
+16 29 64
+17 29 64
+18 29 64
+19 29 64
+20 29 64
+21 29 64
+22 29 64
+23 29 64
+24 29 64
+25 29 64
+26 29 64
+27 29 64
+28 29 64
+29 29 64
+30 29 64
+31 29 64
+32 29 64
+33 29 64
+34 29 64
+35 29 64
+36 29 64
+37 29 64
+38 29 64
+39 29 64
+40 29 64
+41 29 64
+42 29 64
+43 29 64
+44 29 64
+45 29 64
+46 29 64
+47 29 64
+48 29 64
+49 29 64
+50 29 64
+51 29 64
+52 29 64
+53 29 64
+54 29 64
+55 29 64
+56 29 64
+57 29 64
+58 29 64
+59 29 64
+60 29 64
+61 29 64
+62 29 64
+63 29 64
+64 29 64
+65 29 64
+66 29 64
+67 29 64
+68 29 64
+69 29 64
+70 29 64
+71 29 64
+72 29 64
+73 29 64
+74 29 64
+75 29 64
+76 29 64
+77 29 64
+78 29 64
+79 29 64
+80 29 64
+81 29 64
+82 29 64
+83 29 64
+84 29 64
+85 29 64
+86 29 64
+87 29 64
+88 29 64
+89 29 64
+90 29 64
+91 29 64
+92 29 64
+93 29 64
+94 29 64
+95 29 64
+96 29 64
+97 29 64
+98 29 64
+99 29 64
+100 29 64
+101 29 64
+102 29 64
+103 29 64
+104 29 64
+105 29 64
+106 29 64
+107 29 64
+108 29 64
+109 29 64
+110 29 64
+111 29 64
+112 29 64
+113 29 64
+114 29 64
+115 29 64
+116 29 64
+117 29 64
+118 29 64
+119 29 64
+120 29 64
+121 29 64
+122 29 64
+123 29 64
+124 29 64
+125 29 64
+126 29 64
+127 29 64
+128 29 64
+129 29 64
+130 29 64
+131 29 64
+132 29 64
+133 29 64
+134 29 64
+135 29 64
+136 29 64
+137 29 64
+138 29 64
+139 29 64
+140 29 64
+141 29 64
+142 29 64
+143 29 64
+144 29 64
+145 29 64
+146 29 64
+147 29 64
+148 29 64
+149 29 64
+150 29 64
+151 29 64
+152 29 64
+153 29 64
+154 29 64
+155 29 64
+156 29 64
+157 29 64
+158 29 64
+159 29 64
+160 29 64
+161 29 64
+162 29 64
+163 29 64
+164 29 64
+165 29 64
+166 29 64
+167 29 64
+168 29 64
+169 29 64
+170 29 64
+171 29 64
+172 29 64
+173 29 64
+174 29 64
+175 29 64
+176 29 64
+177 29 64
+178 29 64
+179 29 64
+180 29 64
+181 29 64
+182 29 64
+183 29 64
+184 29 64
+185 29 64
+186 29 64
+187 29 64
+188 29 64
+189 29 64
+190 29 64
+191 29 64
+192 29 64
+193 29 64
+194 29 64
+195 29 64
+196 29 64
+197 29 64
+198 29 64
+199 29 64
+200 29 64
+201 29 64
+202 29 64
+203 29 64
+204 29 64
+205 29 64
+206 29 64
+207 29 64
+208 29 64
+209 29 64
+210 29 64
+211 29 64
+212 29 64
+213 29 64
+214 29 64
+215 29 64
+216 29 64
+217 29 64
+218 29 64
+219 29 64
+220 29 64
+221 29 64
+222 29 64
+223 29 64
+224 29 64
+225 29 64
+226 29 64
+227 29 64
+228 29 64
+229 29 64
+230 29 64
+231 29 64
+232 29 64
+233 29 64
+234 29 64
+235 29 64
+236 29 64
+237 29 64
+238 29 64
+239 29 64
+240 29 64
+241 29 64
+242 29 64
+243 29 64
+244 29 64
+245 29 64
+246 29 64
+247 29 64
+248 29 64
+249 29 64
+250 29 64
+251 29 64
+252 29 64
+253 29 64
+254 29 64
+255 29 64
+0 28 64
+1 28 64
+2 28 64
+3 28 64
+4 28 64
+5 28 64
+6 28 64
+7 28 64
+8 28 64
+9 28 64
+10 28 64
+11 28 64
+12 28 64
+13 28 64
+14 28 64
+15 28 64
+16 28 64
+17 28 64
+18 28 64
+19 28 64
+20 28 64
+21 28 64
+22 28 64
+23 28 64
+24 28 64
+25 28 64
+26 28 64
+27 28 64
+28 28 64
+29 28 64
+30 28 64
+31 28 64
+32 28 64
+33 28 64
+34 28 64
+35 28 64
+36 28 64
+37 28 64
+38 28 64
+39 28 64
+40 28 64
+41 28 64
+42 28 64
+43 28 64
+44 28 64
+45 28 64
+46 28 64
+47 28 64
+48 28 64
+49 28 64
+50 28 64
+51 28 64
+52 28 64
+53 28 64
+54 28 64
+55 28 64
+56 28 64
+57 28 64
+58 28 64
+59 28 64
+60 28 64
+61 28 64
+62 28 64
+63 28 64
+64 28 64
+65 28 64
+66 28 64
+67 28 64
+68 28 64
+69 28 64
+70 28 64
+71 28 64
+72 28 64
+73 28 64
+74 28 64
+75 28 64
+76 28 64
+77 28 64
+78 28 64
+79 28 64
+80 28 64
+81 28 64
+82 28 64
+83 28 64
+84 28 64
+85 28 64
+86 28 64
+87 28 64
+88 28 64
+89 28 64
+90 28 64
+91 28 64
+92 28 64
+93 28 64
+94 28 64
+95 28 64
+96 28 64
+97 28 64
+98 28 64
+99 28 64
+100 28 64
+101 28 64
+102 28 64
+103 28 64
+104 28 64
+105 28 64
+106 28 64
+107 28 64
+108 28 64
+109 28 64
+110 28 64
+111 28 64
+112 28 64
+113 28 64
+114 28 64
+115 28 64
+116 28 64
+117 28 64
+118 28 64
+119 28 64
+120 28 64
+121 28 64
+122 28 64
+123 28 64
+124 28 64
+125 28 64
+126 28 64
+127 28 64
+128 28 64
+129 28 64
+130 28 64
+131 28 64
+132 28 64
+133 28 64
+134 28 64
+135 28 64
+136 28 64
+137 28 64
+138 28 64
+139 28 64
+140 28 64
+141 28 64
+142 28 64
+143 28 64
+144 28 64
+145 28 64
+146 28 64
+147 28 64
+148 28 64
+149 28 64
+150 28 64
+151 28 64
+152 28 64
+153 28 64
+154 28 64
+155 28 64
+156 28 64
+157 28 64
+158 28 64
+159 28 64
+160 28 64
+161 28 64
+162 28 64
+163 28 64
+164 28 64
+165 28 64
+166 28 64
+167 28 64
+168 28 64
+169 28 64
+170 28 64
+171 28 64
+172 28 64
+173 28 64
+174 28 64
+175 28 64
+176 28 64
+177 28 64
+178 28 64
+179 28 64
+180 28 64
+181 28 64
+182 28 64
+183 28 64
+184 28 64
+185 28 64
+186 28 64
+187 28 64
+188 28 64
+189 28 64
+190 28 64
+191 28 64
+192 28 64
+193 28 64
+194 28 64
+195 28 64
+196 28 64
+197 28 64
+198 28 64
+199 28 64
+200 28 64
+201 28 64
+202 28 64
+203 28 64
+204 28 64
+205 28 64
+206 28 64
+207 28 64
+208 28 64
+209 28 64
+210 28 64
+211 28 64
+212 28 64
+213 28 64
+214 28 64
+215 28 64
+216 28 64
+217 28 64
+218 28 64
+219 28 64
+220 28 64
+221 28 64
+222 28 64
+223 28 64
+224 28 64
+225 28 64
+226 28 64
+227 28 64
+228 28 64
+229 28 64
+230 28 64
+231 28 64
+232 28 64
+233 28 64
+234 28 64
+235 28 64
+236 28 64
+237 28 64
+238 28 64
+239 28 64
+240 28 64
+241 28 64
+242 28 64
+243 28 64
+244 28 64
+245 28 64
+246 28 64
+247 28 64
+248 28 64
+249 28 64
+250 28 64
+251 28 64
+252 28 64
+253 28 64
+254 28 64
+255 28 64
+0 27 64
+1 27 64
+2 27 64
+3 27 64
+4 27 64
+5 27 64
+6 27 64
+7 27 64
+8 27 64
+9 27 64
+10 27 64
+11 27 64
+12 27 64
+13 27 64
+14 27 64
+15 27 64
+16 27 64
+17 27 64
+18 27 64
+19 27 64
+20 27 64
+21 27 64
+22 27 64
+23 27 64
+24 27 64
+25 27 64
+26 27 64
+27 27 64
+28 27 64
+29 27 64
+30 27 64
+31 27 64
+32 27 64
+33 27 64
+34 27 64
+35 27 64
+36 27 64
+37 27 64
+38 27 64
+39 27 64
+40 27 64
+41 27 64
+42 27 64
+43 27 64
+44 27 64
+45 27 64
+46 27 64
+47 27 64
+48 27 64
+49 27 64
+50 27 64
+51 27 64
+52 27 64
+53 27 64
+54 27 64
+55 27 64
+56 27 64
+57 27 64
+58 27 64
+59 27 64
+60 27 64
+61 27 64
+62 27 64
+63 27 64
+64 27 64
+65 27 64
+66 27 64
+67 27 64
+68 27 64
+69 27 64
+70 27 64
+71 27 64
+72 27 64
+73 27 64
+74 27 64
+75 27 64
+76 27 64
+77 27 64
+78 27 64
+79 27 64
+80 27 64
+81 27 64
+82 27 64
+83 27 64
+84 27 64
+85 27 64
+86 27 64
+87 27 64
+88 27 64
+89 27 64
+90 27 64
+91 27 64
+92 27 64
+93 27 64
+94 27 64
+95 27 64
+96 27 64
+97 27 64
+98 27 64
+99 27 64
+100 27 64
+101 27 64
+102 27 64
+103 27 64
+104 27 64
+105 27 64
+106 27 64
+107 27 64
+108 27 64
+109 27 64
+110 27 64
+111 27 64
+112 27 64
+113 27 64
+114 27 64
+115 27 64
+116 27 64
+117 27 64
+118 27 64
+119 27 64
+120 27 64
+121 27 64
+122 27 64
+123 27 64
+124 27 64
+125 27 64
+126 27 64
+127 27 64
+128 27 64
+129 27 64
+130 27 64
+131 27 64
+132 27 64
+133 27 64
+134 27 64
+135 27 64
+136 27 64
+137 27 64
+138 27 64
+139 27 64
+140 27 64
+141 27 64
+142 27 64
+143 27 64
+144 27 64
+145 27 64
+146 27 64
+147 27 64
+148 27 64
+149 27 64
+150 27 64
+151 27 64
+152 27 64
+153 27 64
+154 27 64
+155 27 64
+156 27 64
+157 27 64
+158 27 64
+159 27 64
+160 27 64
+161 27 64
+162 27 64
+163 27 64
+164 27 64
+165 27 64
+166 27 64
+167 27 64
+168 27 64
+169 27 64
+170 27 64
+171 27 64
+172 27 64
+173 27 64
+174 27 64
+175 27 64
+176 27 64
+177 27 64
+178 27 64
+179 27 64
+180 27 64
+181 27 64
+182 27 64
+183 27 64
+184 27 64
+185 27 64
+186 27 64
+187 27 64
+188 27 64
+189 27 64
+190 27 64
+191 27 64
+192 27 64
+193 27 64
+194 27 64
+195 27 64
+196 27 64
+197 27 64
+198 27 64
+199 27 64
+200 27 64
+201 27 64
+202 27 64
+203 27 64
+204 27 64
+205 27 64
+206 27 64
+207 27 64
+208 27 64
+209 27 64
+210 27 64
+211 27 64
+212 27 64
+213 27 64
+214 27 64
+215 27 64
+216 27 64
+217 27 64
+218 27 64
+219 27 64
+220 27 64
+221 27 64
+222 27 64
+223 27 64
+224 27 64
+225 27 64
+226 27 64
+227 27 64
+228 27 64
+229 27 64
+230 27 64
+231 27 64
+232 27 64
+233 27 64
+234 27 64
+235 27 64
+236 27 64
+237 27 64
+238 27 64
+239 27 64
+240 27 64
+241 27 64
+242 27 64
+243 27 64
+244 27 64
+245 27 64
+246 27 64
+247 27 64
+248 27 64
+249 27 64
+250 27 64
+251 27 64
+252 27 64
+253 27 64
+254 27 64
+255 27 64
+0 26 64
+1 26 64
+2 26 64
+3 26 64
+4 26 64
+5 26 64
+6 26 64
+7 26 64
+8 26 64
+9 26 64
+10 26 64
+11 26 64
+12 26 64
+13 26 64
+14 26 64
+15 26 64
+16 26 64
+17 26 64
+18 26 64
+19 26 64
+20 26 64
+21 26 64
+22 26 64
+23 26 64
+24 26 64
+25 26 64
+26 26 64
+27 26 64
+28 26 64
+29 26 64
+30 26 64
+31 26 64
+32 26 64
+33 26 64
+34 26 64
+35 26 64
+36 26 64
+37 26 64
+38 26 64
+39 26 64
+40 26 64
+41 26 64
+42 26 64
+43 26 64
+44 26 64
+45 26 64
+46 26 64
+47 26 64
+48 26 64
+49 26 64
+50 26 64
+51 26 64
+52 26 64
+53 26 64
+54 26 64
+55 26 64
+56 26 64
+57 26 64
+58 26 64
+59 26 64
+60 26 64
+61 26 64
+62 26 64
+63 26 64
+64 26 64
+65 26 64
+66 26 64
+67 26 64
+68 26 64
+69 26 64
+70 26 64
+71 26 64
+72 26 64
+73 26 64
+74 26 64
+75 26 64
+76 26 64
+77 26 64
+78 26 64
+79 26 64
+80 26 64
+81 26 64
+82 26 64
+83 26 64
+84 26 64
+85 26 64
+86 26 64
+87 26 64
+88 26 64
+89 26 64
+90 26 64
+91 26 64
+92 26 64
+93 26 64
+94 26 64
+95 26 64
+96 26 64
+97 26 64
+98 26 64
+99 26 64
+100 26 64
+101 26 64
+102 26 64
+103 26 64
+104 26 64
+105 26 64
+106 26 64
+107 26 64
+108 26 64
+109 26 64
+110 26 64
+111 26 64
+112 26 64
+113 26 64
+114 26 64
+115 26 64
+116 26 64
+117 26 64
+118 26 64
+119 26 64
+120 26 64
+121 26 64
+122 26 64
+123 26 64
+124 26 64
+125 26 64
+126 26 64
+127 26 64
+128 26 64
+129 26 64
+130 26 64
+131 26 64
+132 26 64
+133 26 64
+134 26 64
+135 26 64
+136 26 64
+137 26 64
+138 26 64
+139 26 64
+140 26 64
+141 26 64
+142 26 64
+143 26 64
+144 26 64
+145 26 64
+146 26 64
+147 26 64
+148 26 64
+149 26 64
+150 26 64
+151 26 64
+152 26 64
+153 26 64
+154 26 64
+155 26 64
+156 26 64
+157 26 64
+158 26 64
+159 26 64
+160 26 64
+161 26 64
+162 26 64
+163 26 64
+164 26 64
+165 26 64
+166 26 64
+167 26 64
+168 26 64
+169 26 64
+170 26 64
+171 26 64
+172 26 64
+173 26 64
+174 26 64
+175 26 64
+176 26 64
+177 26 64
+178 26 64
+179 26 64
+180 26 64
+181 26 64
+182 26 64
+183 26 64
+184 26 64
+185 26 64
+186 26 64
+187 26 64
+188 26 64
+189 26 64
+190 26 64
+191 26 64
+192 26 64
+193 26 64
+194 26 64
+195 26 64
+196 26 64
+197 26 64
+198 26 64
+199 26 64
+200 26 64
+201 26 64
+202 26 64
+203 26 64
+204 26 64
+205 26 64
+206 26 64
+207 26 64
+208 26 64
+209 26 64
+210 26 64
+211 26 64
+212 26 64
+213 26 64
+214 26 64
+215 26 64
+216 26 64
+217 26 64
+218 26 64
+219 26 64
+220 26 64
+221 26 64
+222 26 64
+223 26 64
+224 26 64
+225 26 64
+226 26 64
+227 26 64
+228 26 64
+229 26 64
+230 26 64
+231 26 64
+232 26 64
+233 26 64
+234 26 64
+235 26 64
+236 26 64
+237 26 64
+238 26 64
+239 26 64
+240 26 64
+241 26 64
+242 26 64
+243 26 64
+244 26 64
+245 26 64
+246 26 64
+247 26 64
+248 26 64
+249 26 64
+250 26 64
+251 26 64
+252 26 64
+253 26 64
+254 26 64
+255 26 64
+0 25 64
+1 25 64
+2 25 64
+3 25 64
+4 25 64
+5 25 64
+6 25 64
+7 25 64
+8 25 64
+9 25 64
+10 25 64
+11 25 64
+12 25 64
+13 25 64
+14 25 64
+15 25 64
+16 25 64
+17 25 64
+18 25 64
+19 25 64
+20 25 64
+21 25 64
+22 25 64
+23 25 64
+24 25 64
+25 25 64
+26 25 64
+27 25 64
+28 25 64
+29 25 64
+30 25 64
+31 25 64
+32 25 64
+33 25 64
+34 25 64
+35 25 64
+36 25 64
+37 25 64
+38 25 64
+39 25 64
+40 25 64
+41 25 64
+42 25 64
+43 25 64
+44 25 64
+45 25 64
+46 25 64
+47 25 64
+48 25 64
+49 25 64
+50 25 64
+51 25 64
+52 25 64
+53 25 64
+54 25 64
+55 25 64
+56 25 64
+57 25 64
+58 25 64
+59 25 64
+60 25 64
+61 25 64
+62 25 64
+63 25 64
+64 25 64
+65 25 64
+66 25 64
+67 25 64
+68 25 64
+69 25 64
+70 25 64
+71 25 64
+72 25 64
+73 25 64
+74 25 64
+75 25 64
+76 25 64
+77 25 64
+78 25 64
+79 25 64
+80 25 64
+81 25 64
+82 25 64
+83 25 64
+84 25 64
+85 25 64
+86 25 64
+87 25 64
+88 25 64
+89 25 64
+90 25 64
+91 25 64
+92 25 64
+93 25 64
+94 25 64
+95 25 64
+96 25 64
+97 25 64
+98 25 64
+99 25 64
+100 25 64
+101 25 64
+102 25 64
+103 25 64
+104 25 64
+105 25 64
+106 25 64
+107 25 64
+108 25 64
+109 25 64
+110 25 64
+111 25 64
+112 25 64
+113 25 64
+114 25 64
+115 25 64
+116 25 64
+117 25 64
+118 25 64
+119 25 64
+120 25 64
+121 25 64
+122 25 64
+123 25 64
+124 25 64
+125 25 64
+126 25 64
+127 25 64
+128 25 64
+129 25 64
+130 25 64
+131 25 64
+132 25 64
+133 25 64
+134 25 64
+135 25 64
+136 25 64
+137 25 64
+138 25 64
+139 25 64
+140 25 64
+141 25 64
+142 25 64
+143 25 64
+144 25 64
+145 25 64
+146 25 64
+147 25 64
+148 25 64
+149 25 64
+150 25 64
+151 25 64
+152 25 64
+153 25 64
+154 25 64
+155 25 64
+156 25 64
+157 25 64
+158 25 64
+159 25 64
+160 25 64
+161 25 64
+162 25 64
+163 25 64
+164 25 64
+165 25 64
+166 25 64
+167 25 64
+168 25 64
+169 25 64
+170 25 64
+171 25 64
+172 25 64
+173 25 64
+174 25 64
+175 25 64
+176 25 64
+177 25 64
+178 25 64
+179 25 64
+180 25 64
+181 25 64
+182 25 64
+183 25 64
+184 25 64
+185 25 64
+186 25 64
+187 25 64
+188 25 64
+189 25 64
+190 25 64
+191 25 64
+192 25 64
+193 25 64
+194 25 64
+195 25 64
+196 25 64
+197 25 64
+198 25 64
+199 25 64
+200 25 64
+201 25 64
+202 25 64
+203 25 64
+204 25 64
+205 25 64
+206 25 64
+207 25 64
+208 25 64
+209 25 64
+210 25 64
+211 25 64
+212 25 64
+213 25 64
+214 25 64
+215 25 64
+216 25 64
+217 25 64
+218 25 64
+219 25 64
+220 25 64
+221 25 64
+222 25 64
+223 25 64
+224 25 64
+225 25 64
+226 25 64
+227 25 64
+228 25 64
+229 25 64
+230 25 64
+231 25 64
+232 25 64
+233 25 64
+234 25 64
+235 25 64
+236 25 64
+237 25 64
+238 25 64
+239 25 64
+240 25 64
+241 25 64
+242 25 64
+243 25 64
+244 25 64
+245 25 64
+246 25 64
+247 25 64
+248 25 64
+249 25 64
+250 25 64
+251 25 64
+252 25 64
+253 25 64
+254 25 64
+255 25 64
+0 24 64
+1 24 64
+2 24 64
+3 24 64
+4 24 64
+5 24 64
+6 24 64
+7 24 64
+8 24 64
+9 24 64
+10 24 64
+11 24 64
+12 24 64
+13 24 64
+14 24 64
+15 24 64
+16 24 64
+17 24 64
+18 24 64
+19 24 64
+20 24 64
+21 24 64
+22 24 64
+23 24 64
+24 24 64
+25 24 64
+26 24 64
+27 24 64
+28 24 64
+29 24 64
+30 24 64
+31 24 64
+32 24 64
+33 24 64
+34 24 64
+35 24 64
+36 24 64
+37 24 64
+38 24 64
+39 24 64
+40 24 64
+41 24 64
+42 24 64
+43 24 64
+44 24 64
+45 24 64
+46 24 64
+47 24 64
+48 24 64
+49 24 64
+50 24 64
+51 24 64
+52 24 64
+53 24 64
+54 24 64
+55 24 64
+56 24 64
+57 24 64
+58 24 64
+59 24 64
+60 24 64
+61 24 64
+62 24 64
+63 24 64
+64 24 64
+65 24 64
+66 24 64
+67 24 64
+68 24 64
+69 24 64
+70 24 64
+71 24 64
+72 24 64
+73 24 64
+74 24 64
+75 24 64
+76 24 64
+77 24 64
+78 24 64
+79 24 64
+80 24 64
+81 24 64
+82 24 64
+83 24 64
+84 24 64
+85 24 64
+86 24 64
+87 24 64
+88 24 64
+89 24 64
+90 24 64
+91 24 64
+92 24 64
+93 24 64
+94 24 64
+95 24 64
+96 24 64
+97 24 64
+98 24 64
+99 24 64
+100 24 64
+101 24 64
+102 24 64
+103 24 64
+104 24 64
+105 24 64
+106 24 64
+107 24 64
+108 24 64
+109 24 64
+110 24 64
+111 24 64
+112 24 64
+113 24 64
+114 24 64
+115 24 64
+116 24 64
+117 24 64
+118 24 64
+119 24 64
+120 24 64
+121 24 64
+122 24 64
+123 24 64
+124 24 64
+125 24 64
+126 24 64
+127 24 64
+128 24 64
+129 24 64
+130 24 64
+131 24 64
+132 24 64
+133 24 64
+134 24 64
+135 24 64
+136 24 64
+137 24 64
+138 24 64
+139 24 64
+140 24 64
+141 24 64
+142 24 64
+143 24 64
+144 24 64
+145 24 64
+146 24 64
+147 24 64
+148 24 64
+149 24 64
+150 24 64
+151 24 64
+152 24 64
+153 24 64
+154 24 64
+155 24 64
+156 24 64
+157 24 64
+158 24 64
+159 24 64
+160 24 64
+161 24 64
+162 24 64
+163 24 64
+164 24 64
+165 24 64
+166 24 64
+167 24 64
+168 24 64
+169 24 64
+170 24 64
+171 24 64
+172 24 64
+173 24 64
+174 24 64
+175 24 64
+176 24 64
+177 24 64
+178 24 64
+179 24 64
+180 24 64
+181 24 64
+182 24 64
+183 24 64
+184 24 64
+185 24 64
+186 24 64
+187 24 64
+188 24 64
+189 24 64
+190 24 64
+191 24 64
+192 24 64
+193 24 64
+194 24 64
+195 24 64
+196 24 64
+197 24 64
+198 24 64
+199 24 64
+200 24 64
+201 24 64
+202 24 64
+203 24 64
+204 24 64
+205 24 64
+206 24 64
+207 24 64
+208 24 64
+209 24 64
+210 24 64
+211 24 64
+212 24 64
+213 24 64
+214 24 64
+215 24 64
+216 24 64
+217 24 64
+218 24 64
+219 24 64
+220 24 64
+221 24 64
+222 24 64
+223 24 64
+224 24 64
+225 24 64
+226 24 64
+227 24 64
+228 24 64
+229 24 64
+230 24 64
+231 24 64
+232 24 64
+233 24 64
+234 24 64
+235 24 64
+236 24 64
+237 24 64
+238 24 64
+239 24 64
+240 24 64
+241 24 64
+242 24 64
+243 24 64
+244 24 64
+245 24 64
+246 24 64
+247 24 64
+248 24 64
+249 24 64
+250 24 64
+251 24 64
+252 24 64
+253 24 64
+254 24 64
+255 24 64
+0 23 64
+1 23 64
+2 23 64
+3 23 64
+4 23 64
+5 23 64
+6 23 64
+7 23 64
+8 23 64
+9 23 64
+10 23 64
+11 23 64
+12 23 64
+13 23 64
+14 23 64
+15 23 64
+16 23 64
+17 23 64
+18 23 64
+19 23 64
+20 23 64
+21 23 64
+22 23 64
+23 23 64
+24 23 64
+25 23 64
+26 23 64
+27 23 64
+28 23 64
+29 23 64
+30 23 64
+31 23 64
+32 23 64
+33 23 64
+34 23 64
+35 23 64
+36 23 64
+37 23 64
+38 23 64
+39 23 64
+40 23 64
+41 23 64
+42 23 64
+43 23 64
+44 23 64
+45 23 64
+46 23 64
+47 23 64
+48 23 64
+49 23 64
+50 23 64
+51 23 64
+52 23 64
+53 23 64
+54 23 64
+55 23 64
+56 23 64
+57 23 64
+58 23 64
+59 23 64
+60 23 64
+61 23 64
+62 23 64
+63 23 64
+64 23 64
+65 23 64
+66 23 64
+67 23 64
+68 23 64
+69 23 64
+70 23 64
+71 23 64
+72 23 64
+73 23 64
+74 23 64
+75 23 64
+76 23 64
+77 23 64
+78 23 64
+79 23 64
+80 23 64
+81 23 64
+82 23 64
+83 23 64
+84 23 64
+85 23 64
+86 23 64
+87 23 64
+88 23 64
+89 23 64
+90 23 64
+91 23 64
+92 23 64
+93 23 64
+94 23 64
+95 23 64
+96 23 64
+97 23 64
+98 23 64
+99 23 64
+100 23 64
+101 23 64
+102 23 64
+103 23 64
+104 23 64
+105 23 64
+106 23 64
+107 23 64
+108 23 64
+109 23 64
+110 23 64
+111 23 64
+112 23 64
+113 23 64
+114 23 64
+115 23 64
+116 23 64
+117 23 64
+118 23 64
+119 23 64
+120 23 64
+121 23 64
+122 23 64
+123 23 64
+124 23 64
+125 23 64
+126 23 64
+127 23 64
+128 23 64
+129 23 64
+130 23 64
+131 23 64
+132 23 64
+133 23 64
+134 23 64
+135 23 64
+136 23 64
+137 23 64
+138 23 64
+139 23 64
+140 23 64
+141 23 64
+142 23 64
+143 23 64
+144 23 64
+145 23 64
+146 23 64
+147 23 64
+148 23 64
+149 23 64
+150 23 64
+151 23 64
+152 23 64
+153 23 64
+154 23 64
+155 23 64
+156 23 64
+157 23 64
+158 23 64
+159 23 64
+160 23 64
+161 23 64
+162 23 64
+163 23 64
+164 23 64
+165 23 64
+166 23 64
+167 23 64
+168 23 64
+169 23 64
+170 23 64
+171 23 64
+172 23 64
+173 23 64
+174 23 64
+175 23 64
+176 23 64
+177 23 64
+178 23 64
+179 23 64
+180 23 64
+181 23 64
+182 23 64
+183 23 64
+184 23 64
+185 23 64
+186 23 64
+187 23 64
+188 23 64
+189 23 64
+190 23 64
+191 23 64
+192 23 64
+193 23 64
+194 23 64
+195 23 64
+196 23 64
+197 23 64
+198 23 64
+199 23 64
+200 23 64
+201 23 64
+202 23 64
+203 23 64
+204 23 64
+205 23 64
+206 23 64
+207 23 64
+208 23 64
+209 23 64
+210 23 64
+211 23 64
+212 23 64
+213 23 64
+214 23 64
+215 23 64
+216 23 64
+217 23 64
+218 23 64
+219 23 64
+220 23 64
+221 23 64
+222 23 64
+223 23 64
+224 23 64
+225 23 64
+226 23 64
+227 23 64
+228 23 64
+229 23 64
+230 23 64
+231 23 64
+232 23 64
+233 23 64
+234 23 64
+235 23 64
+236 23 64
+237 23 64
+238 23 64
+239 23 64
+240 23 64
+241 23 64
+242 23 64
+243 23 64
+244 23 64
+245 23 64
+246 23 64
+247 23 64
+248 23 64
+249 23 64
+250 23 64
+251 23 64
+252 23 64
+253 23 64
+254 23 64
+255 23 64
+0 22 64
+1 22 64
+2 22 64
+3 22 64
+4 22 64
+5 22 64
+6 22 64
+7 22 64
+8 22 64
+9 22 64
+10 22 64
+11 22 64
+12 22 64
+13 22 64
+14 22 64
+15 22 64
+16 22 64
+17 22 64
+18 22 64
+19 22 64
+20 22 64
+21 22 64
+22 22 64
+23 22 64
+24 22 64
+25 22 64
+26 22 64
+27 22 64
+28 22 64
+29 22 64
+30 22 64
+31 22 64
+32 22 64
+33 22 64
+34 22 64
+35 22 64
+36 22 64
+37 22 64
+38 22 64
+39 22 64
+40 22 64
+41 22 64
+42 22 64
+43 22 64
+44 22 64
+45 22 64
+46 22 64
+47 22 64
+48 22 64
+49 22 64
+50 22 64
+51 22 64
+52 22 64
+53 22 64
+54 22 64
+55 22 64
+56 22 64
+57 22 64
+58 22 64
+59 22 64
+60 22 64
+61 22 64
+62 22 64
+63 22 64
+64 22 64
+65 22 64
+66 22 64
+67 22 64
+68 22 64
+69 22 64
+70 22 64
+71 22 64
+72 22 64
+73 22 64
+74 22 64
+75 22 64
+76 22 64
+77 22 64
+78 22 64
+79 22 64
+80 22 64
+81 22 64
+82 22 64
+83 22 64
+84 22 64
+85 22 64
+86 22 64
+87 22 64
+88 22 64
+89 22 64
+90 22 64
+91 22 64
+92 22 64
+93 22 64
+94 22 64
+95 22 64
+96 22 64
+97 22 64
+98 22 64
+99 22 64
+100 22 64
+101 22 64
+102 22 64
+103 22 64
+104 22 64
+105 22 64
+106 22 64
+107 22 64
+108 22 64
+109 22 64
+110 22 64
+111 22 64
+112 22 64
+113 22 64
+114 22 64
+115 22 64
+116 22 64
+117 22 64
+118 22 64
+119 22 64
+120 22 64
+121 22 64
+122 22 64
+123 22 64
+124 22 64
+125 22 64
+126 22 64
+127 22 64
+128 22 64
+129 22 64
+130 22 64
+131 22 64
+132 22 64
+133 22 64
+134 22 64
+135 22 64
+136 22 64
+137 22 64
+138 22 64
+139 22 64
+140 22 64
+141 22 64
+142 22 64
+143 22 64
+144 22 64
+145 22 64
+146 22 64
+147 22 64
+148 22 64
+149 22 64
+150 22 64
+151 22 64
+152 22 64
+153 22 64
+154 22 64
+155 22 64
+156 22 64
+157 22 64
+158 22 64
+159 22 64
+160 22 64
+161 22 64
+162 22 64
+163 22 64
+164 22 64
+165 22 64
+166 22 64
+167 22 64
+168 22 64
+169 22 64
+170 22 64
+171 22 64
+172 22 64
+173 22 64
+174 22 64
+175 22 64
+176 22 64
+177 22 64
+178 22 64
+179 22 64
+180 22 64
+181 22 64
+182 22 64
+183 22 64
+184 22 64
+185 22 64
+186 22 64
+187 22 64
+188 22 64
+189 22 64
+190 22 64
+191 22 64
+192 22 64
+193 22 64
+194 22 64
+195 22 64
+196 22 64
+197 22 64
+198 22 64
+199 22 64
+200 22 64
+201 22 64
+202 22 64
+203 22 64
+204 22 64
+205 22 64
+206 22 64
+207 22 64
+208 22 64
+209 22 64
+210 22 64
+211 22 64
+212 22 64
+213 22 64
+214 22 64
+215 22 64
+216 22 64
+217 22 64
+218 22 64
+219 22 64
+220 22 64
+221 22 64
+222 22 64
+223 22 64
+224 22 64
+225 22 64
+226 22 64
+227 22 64
+228 22 64
+229 22 64
+230 22 64
+231 22 64
+232 22 64
+233 22 64
+234 22 64
+235 22 64
+236 22 64
+237 22 64
+238 22 64
+239 22 64
+240 22 64
+241 22 64
+242 22 64
+243 22 64
+244 22 64
+245 22 64
+246 22 64
+247 22 64
+248 22 64
+249 22 64
+250 22 64
+251 22 64
+252 22 64
+253 22 64
+254 22 64
+255 22 64
+0 21 64
+1 21 64
+2 21 64
+3 21 64
+4 21 64
+5 21 64
+6 21 64
+7 21 64
+8 21 64
+9 21 64
+10 21 64
+11 21 64
+12 21 64
+13 21 64
+14 21 64
+15 21 64
+16 21 64
+17 21 64
+18 21 64
+19 21 64
+20 21 64
+21 21 64
+22 21 64
+23 21 64
+24 21 64
+25 21 64
+26 21 64
+27 21 64
+28 21 64
+29 21 64
+30 21 64
+31 21 64
+32 21 64
+33 21 64
+34 21 64
+35 21 64
+36 21 64
+37 21 64
+38 21 64
+39 21 64
+40 21 64
+41 21 64
+42 21 64
+43 21 64
+44 21 64
+45 21 64
+46 21 64
+47 21 64
+48 21 64
+49 21 64
+50 21 64
+51 21 64
+52 21 64
+53 21 64
+54 21 64
+55 21 64
+56 21 64
+57 21 64
+58 21 64
+59 21 64
+60 21 64
+61 21 64
+62 21 64
+63 21 64
+64 21 64
+65 21 64
+66 21 64
+67 21 64
+68 21 64
+69 21 64
+70 21 64
+71 21 64
+72 21 64
+73 21 64
+74 21 64
+75 21 64
+76 21 64
+77 21 64
+78 21 64
+79 21 64
+80 21 64
+81 21 64
+82 21 64
+83 21 64
+84 21 64
+85 21 64
+86 21 64
+87 21 64
+88 21 64
+89 21 64
+90 21 64
+91 21 64
+92 21 64
+93 21 64
+94 21 64
+95 21 64
+96 21 64
+97 21 64
+98 21 64
+99 21 64
+100 21 64
+101 21 64
+102 21 64
+103 21 64
+104 21 64
+105 21 64
+106 21 64
+107 21 64
+108 21 64
+109 21 64
+110 21 64
+111 21 64
+112 21 64
+113 21 64
+114 21 64
+115 21 64
+116 21 64
+117 21 64
+118 21 64
+119 21 64
+120 21 64
+121 21 64
+122 21 64
+123 21 64
+124 21 64
+125 21 64
+126 21 64
+127 21 64
+128 21 64
+129 21 64
+130 21 64
+131 21 64
+132 21 64
+133 21 64
+134 21 64
+135 21 64
+136 21 64
+137 21 64
+138 21 64
+139 21 64
+140 21 64
+141 21 64
+142 21 64
+143 21 64
+144 21 64
+145 21 64
+146 21 64
+147 21 64
+148 21 64
+149 21 64
+150 21 64
+151 21 64
+152 21 64
+153 21 64
+154 21 64
+155 21 64
+156 21 64
+157 21 64
+158 21 64
+159 21 64
+160 21 64
+161 21 64
+162 21 64
+163 21 64
+164 21 64
+165 21 64
+166 21 64
+167 21 64
+168 21 64
+169 21 64
+170 21 64
+171 21 64
+172 21 64
+173 21 64
+174 21 64
+175 21 64
+176 21 64
+177 21 64
+178 21 64
+179 21 64
+180 21 64
+181 21 64
+182 21 64
+183 21 64
+184 21 64
+185 21 64
+186 21 64
+187 21 64
+188 21 64
+189 21 64
+190 21 64
+191 21 64
+192 21 64
+193 21 64
+194 21 64
+195 21 64
+196 21 64
+197 21 64
+198 21 64
+199 21 64
+200 21 64
+201 21 64
+202 21 64
+203 21 64
+204 21 64
+205 21 64
+206 21 64
+207 21 64
+208 21 64
+209 21 64
+210 21 64
+211 21 64
+212 21 64
+213 21 64
+214 21 64
+215 21 64
+216 21 64
+217 21 64
+218 21 64
+219 21 64
+220 21 64
+221 21 64
+222 21 64
+223 21 64
+224 21 64
+225 21 64
+226 21 64
+227 21 64
+228 21 64
+229 21 64
+230 21 64
+231 21 64
+232 21 64
+233 21 64
+234 21 64
+235 21 64
+236 21 64
+237 21 64
+238 21 64
+239 21 64
+240 21 64
+241 21 64
+242 21 64
+243 21 64
+244 21 64
+245 21 64
+246 21 64
+247 21 64
+248 21 64
+249 21 64
+250 21 64
+251 21 64
+252 21 64
+253 21 64
+254 21 64
+255 21 64
+0 20 64
+1 20 64
+2 20 64
+3 20 64
+4 20 64
+5 20 64
+6 20 64
+7 20 64
+8 20 64
+9 20 64
+10 20 64
+11 20 64
+12 20 64
+13 20 64
+14 20 64
+15 20 64
+16 20 64
+17 20 64
+18 20 64
+19 20 64
+20 20 64
+21 20 64
+22 20 64
+23 20 64
+24 20 64
+25 20 64
+26 20 64
+27 20 64
+28 20 64
+29 20 64
+30 20 64
+31 20 64
+32 20 64
+33 20 64
+34 20 64
+35 20 64
+36 20 64
+37 20 64
+38 20 64
+39 20 64
+40 20 64
+41 20 64
+42 20 64
+43 20 64
+44 20 64
+45 20 64
+46 20 64
+47 20 64
+48 20 64
+49 20 64
+50 20 64
+51 20 64
+52 20 64
+53 20 64
+54 20 64
+55 20 64
+56 20 64
+57 20 64
+58 20 64
+59 20 64
+60 20 64
+61 20 64
+62 20 64
+63 20 64
+64 20 64
+65 20 64
+66 20 64
+67 20 64
+68 20 64
+69 20 64
+70 20 64
+71 20 64
+72 20 64
+73 20 64
+74 20 64
+75 20 64
+76 20 64
+77 20 64
+78 20 64
+79 20 64
+80 20 64
+81 20 64
+82 20 64
+83 20 64
+84 20 64
+85 20 64
+86 20 64
+87 20 64
+88 20 64
+89 20 64
+90 20 64
+91 20 64
+92 20 64
+93 20 64
+94 20 64
+95 20 64
+96 20 64
+97 20 64
+98 20 64
+99 20 64
+100 20 64
+101 20 64
+102 20 64
+103 20 64
+104 20 64
+105 20 64
+106 20 64
+107 20 64
+108 20 64
+109 20 64
+110 20 64
+111 20 64
+112 20 64
+113 20 64
+114 20 64
+115 20 64
+116 20 64
+117 20 64
+118 20 64
+119 20 64
+120 20 64
+121 20 64
+122 20 64
+123 20 64
+124 20 64
+125 20 64
+126 20 64
+127 20 64
+128 20 64
+129 20 64
+130 20 64
+131 20 64
+132 20 64
+133 20 64
+134 20 64
+135 20 64
+136 20 64
+137 20 64
+138 20 64
+139 20 64
+140 20 64
+141 20 64
+142 20 64
+143 20 64
+144 20 64
+145 20 64
+146 20 64
+147 20 64
+148 20 64
+149 20 64
+150 20 64
+151 20 64
+152 20 64
+153 20 64
+154 20 64
+155 20 64
+156 20 64
+157 20 64
+158 20 64
+159 20 64
+160 20 64
+161 20 64
+162 20 64
+163 20 64
+164 20 64
+165 20 64
+166 20 64
+167 20 64
+168 20 64
+169 20 64
+170 20 64
+171 20 64
+172 20 64
+173 20 64
+174 20 64
+175 20 64
+176 20 64
+177 20 64
+178 20 64
+179 20 64
+180 20 64
+181 20 64
+182 20 64
+183 20 64
+184 20 64
+185 20 64
+186 20 64
+187 20 64
+188 20 64
+189 20 64
+190 20 64
+191 20 64
+192 20 64
+193 20 64
+194 20 64
+195 20 64
+196 20 64
+197 20 64
+198 20 64
+199 20 64
+200 20 64
+201 20 64
+202 20 64
+203 20 64
+204 20 64
+205 20 64
+206 20 64
+207 20 64
+208 20 64
+209 20 64
+210 20 64
+211 20 64
+212 20 64
+213 20 64
+214 20 64
+215 20 64
+216 20 64
+217 20 64
+218 20 64
+219 20 64
+220 20 64
+221 20 64
+222 20 64
+223 20 64
+224 20 64
+225 20 64
+226 20 64
+227 20 64
+228 20 64
+229 20 64
+230 20 64
+231 20 64
+232 20 64
+233 20 64
+234 20 64
+235 20 64
+236 20 64
+237 20 64
+238 20 64
+239 20 64
+240 20 64
+241 20 64
+242 20 64
+243 20 64
+244 20 64
+245 20 64
+246 20 64
+247 20 64
+248 20 64
+249 20 64
+250 20 64
+251 20 64
+252 20 64
+253 20 64
+254 20 64
+255 20 64
+0 19 64
+1 19 64
+2 19 64
+3 19 64
+4 19 64
+5 19 64
+6 19 64
+7 19 64
+8 19 64
+9 19 64
+10 19 64
+11 19 64
+12 19 64
+13 19 64
+14 19 64
+15 19 64
+16 19 64
+17 19 64
+18 19 64
+19 19 64
+20 19 64
+21 19 64
+22 19 64
+23 19 64
+24 19 64
+25 19 64
+26 19 64
+27 19 64
+28 19 64
+29 19 64
+30 19 64
+31 19 64
+32 19 64
+33 19 64
+34 19 64
+35 19 64
+36 19 64
+37 19 64
+38 19 64
+39 19 64
+40 19 64
+41 19 64
+42 19 64
+43 19 64
+44 19 64
+45 19 64
+46 19 64
+47 19 64
+48 19 64
+49 19 64
+50 19 64
+51 19 64
+52 19 64
+53 19 64
+54 19 64
+55 19 64
+56 19 64
+57 19 64
+58 19 64
+59 19 64
+60 19 64
+61 19 64
+62 19 64
+63 19 64
+64 19 64
+65 19 64
+66 19 64
+67 19 64
+68 19 64
+69 19 64
+70 19 64
+71 19 64
+72 19 64
+73 19 64
+74 19 64
+75 19 64
+76 19 64
+77 19 64
+78 19 64
+79 19 64
+80 19 64
+81 19 64
+82 19 64
+83 19 64
+84 19 64
+85 19 64
+86 19 64
+87 19 64
+88 19 64
+89 19 64
+90 19 64
+91 19 64
+92 19 64
+93 19 64
+94 19 64
+95 19 64
+96 19 64
+97 19 64
+98 19 64
+99 19 64
+100 19 64
+101 19 64
+102 19 64
+103 19 64
+104 19 64
+105 19 64
+106 19 64
+107 19 64
+108 19 64
+109 19 64
+110 19 64
+111 19 64
+112 19 64
+113 19 64
+114 19 64
+115 19 64
+116 19 64
+117 19 64
+118 19 64
+119 19 64
+120 19 64
+121 19 64
+122 19 64
+123 19 64
+124 19 64
+125 19 64
+126 19 64
+127 19 64
+128 19 64
+129 19 64
+130 19 64
+131 19 64
+132 19 64
+133 19 64
+134 19 64
+135 19 64
+136 19 64
+137 19 64
+138 19 64
+139 19 64
+140 19 64
+141 19 64
+142 19 64
+143 19 64
+144 19 64
+145 19 64
+146 19 64
+147 19 64
+148 19 64
+149 19 64
+150 19 64
+151 19 64
+152 19 64
+153 19 64
+154 19 64
+155 19 64
+156 19 64
+157 19 64
+158 19 64
+159 19 64
+160 19 64
+161 19 64
+162 19 64
+163 19 64
+164 19 64
+165 19 64
+166 19 64
+167 19 64
+168 19 64
+169 19 64
+170 19 64
+171 19 64
+172 19 64
+173 19 64
+174 19 64
+175 19 64
+176 19 64
+177 19 64
+178 19 64
+179 19 64
+180 19 64
+181 19 64
+182 19 64
+183 19 64
+184 19 64
+185 19 64
+186 19 64
+187 19 64
+188 19 64
+189 19 64
+190 19 64
+191 19 64
+192 19 64
+193 19 64
+194 19 64
+195 19 64
+196 19 64
+197 19 64
+198 19 64
+199 19 64
+200 19 64
+201 19 64
+202 19 64
+203 19 64
+204 19 64
+205 19 64
+206 19 64
+207 19 64
+208 19 64
+209 19 64
+210 19 64
+211 19 64
+212 19 64
+213 19 64
+214 19 64
+215 19 64
+216 19 64
+217 19 64
+218 19 64
+219 19 64
+220 19 64
+221 19 64
+222 19 64
+223 19 64
+224 19 64
+225 19 64
+226 19 64
+227 19 64
+228 19 64
+229 19 64
+230 19 64
+231 19 64
+232 19 64
+233 19 64
+234 19 64
+235 19 64
+236 19 64
+237 19 64
+238 19 64
+239 19 64
+240 19 64
+241 19 64
+242 19 64
+243 19 64
+244 19 64
+245 19 64
+246 19 64
+247 19 64
+248 19 64
+249 19 64
+250 19 64
+251 19 64
+252 19 64
+253 19 64
+254 19 64
+255 19 64
+0 18 64
+1 18 64
+2 18 64
+3 18 64
+4 18 64
+5 18 64
+6 18 64
+7 18 64
+8 18 64
+9 18 64
+10 18 64
+11 18 64
+12 18 64
+13 18 64
+14 18 64
+15 18 64
+16 18 64
+17 18 64
+18 18 64
+19 18 64
+20 18 64
+21 18 64
+22 18 64
+23 18 64
+24 18 64
+25 18 64
+26 18 64
+27 18 64
+28 18 64
+29 18 64
+30 18 64
+31 18 64
+32 18 64
+33 18 64
+34 18 64
+35 18 64
+36 18 64
+37 18 64
+38 18 64
+39 18 64
+40 18 64
+41 18 64
+42 18 64
+43 18 64
+44 18 64
+45 18 64
+46 18 64
+47 18 64
+48 18 64
+49 18 64
+50 18 64
+51 18 64
+52 18 64
+53 18 64
+54 18 64
+55 18 64
+56 18 64
+57 18 64
+58 18 64
+59 18 64
+60 18 64
+61 18 64
+62 18 64
+63 18 64
+64 18 64
+65 18 64
+66 18 64
+67 18 64
+68 18 64
+69 18 64
+70 18 64
+71 18 64
+72 18 64
+73 18 64
+74 18 64
+75 18 64
+76 18 64
+77 18 64
+78 18 64
+79 18 64
+80 18 64
+81 18 64
+82 18 64
+83 18 64
+84 18 64
+85 18 64
+86 18 64
+87 18 64
+88 18 64
+89 18 64
+90 18 64
+91 18 64
+92 18 64
+93 18 64
+94 18 64
+95 18 64
+96 18 64
+97 18 64
+98 18 64
+99 18 64
+100 18 64
+101 18 64
+102 18 64
+103 18 64
+104 18 64
+105 18 64
+106 18 64
+107 18 64
+108 18 64
+109 18 64
+110 18 64
+111 18 64
+112 18 64
+113 18 64
+114 18 64
+115 18 64
+116 18 64
+117 18 64
+118 18 64
+119 18 64
+120 18 64
+121 18 64
+122 18 64
+123 18 64
+124 18 64
+125 18 64
+126 18 64
+127 18 64
+128 18 64
+129 18 64
+130 18 64
+131 18 64
+132 18 64
+133 18 64
+134 18 64
+135 18 64
+136 18 64
+137 18 64
+138 18 64
+139 18 64
+140 18 64
+141 18 64
+142 18 64
+143 18 64
+144 18 64
+145 18 64
+146 18 64
+147 18 64
+148 18 64
+149 18 64
+150 18 64
+151 18 64
+152 18 64
+153 18 64
+154 18 64
+155 18 64
+156 18 64
+157 18 64
+158 18 64
+159 18 64
+160 18 64
+161 18 64
+162 18 64
+163 18 64
+164 18 64
+165 18 64
+166 18 64
+167 18 64
+168 18 64
+169 18 64
+170 18 64
+171 18 64
+172 18 64
+173 18 64
+174 18 64
+175 18 64
+176 18 64
+177 18 64
+178 18 64
+179 18 64
+180 18 64
+181 18 64
+182 18 64
+183 18 64
+184 18 64
+185 18 64
+186 18 64
+187 18 64
+188 18 64
+189 18 64
+190 18 64
+191 18 64
+192 18 64
+193 18 64
+194 18 64
+195 18 64
+196 18 64
+197 18 64
+198 18 64
+199 18 64
+200 18 64
+201 18 64
+202 18 64
+203 18 64
+204 18 64
+205 18 64
+206 18 64
+207 18 64
+208 18 64
+209 18 64
+210 18 64
+211 18 64
+212 18 64
+213 18 64
+214 18 64
+215 18 64
+216 18 64
+217 18 64
+218 18 64
+219 18 64
+220 18 64
+221 18 64
+222 18 64
+223 18 64
+224 18 64
+225 18 64
+226 18 64
+227 18 64
+228 18 64
+229 18 64
+230 18 64
+231 18 64
+232 18 64
+233 18 64
+234 18 64
+235 18 64
+236 18 64
+237 18 64
+238 18 64
+239 18 64
+240 18 64
+241 18 64
+242 18 64
+243 18 64
+244 18 64
+245 18 64
+246 18 64
+247 18 64
+248 18 64
+249 18 64
+250 18 64
+251 18 64
+252 18 64
+253 18 64
+254 18 64
+255 18 64
+0 17 64
+1 17 64
+2 17 64
+3 17 64
+4 17 64
+5 17 64
+6 17 64
+7 17 64
+8 17 64
+9 17 64
+10 17 64
+11 17 64
+12 17 64
+13 17 64
+14 17 64
+15 17 64
+16 17 64
+17 17 64
+18 17 64
+19 17 64
+20 17 64
+21 17 64
+22 17 64
+23 17 64
+24 17 64
+25 17 64
+26 17 64
+27 17 64
+28 17 64
+29 17 64
+30 17 64
+31 17 64
+32 17 64
+33 17 64
+34 17 64
+35 17 64
+36 17 64
+37 17 64
+38 17 64
+39 17 64
+40 17 64
+41 17 64
+42 17 64
+43 17 64
+44 17 64
+45 17 64
+46 17 64
+47 17 64
+48 17 64
+49 17 64
+50 17 64
+51 17 64
+52 17 64
+53 17 64
+54 17 64
+55 17 64
+56 17 64
+57 17 64
+58 17 64
+59 17 64
+60 17 64
+61 17 64
+62 17 64
+63 17 64
+64 17 64
+65 17 64
+66 17 64
+67 17 64
+68 17 64
+69 17 64
+70 17 64
+71 17 64
+72 17 64
+73 17 64
+74 17 64
+75 17 64
+76 17 64
+77 17 64
+78 17 64
+79 17 64
+80 17 64
+81 17 64
+82 17 64
+83 17 64
+84 17 64
+85 17 64
+86 17 64
+87 17 64
+88 17 64
+89 17 64
+90 17 64
+91 17 64
+92 17 64
+93 17 64
+94 17 64
+95 17 64
+96 17 64
+97 17 64
+98 17 64
+99 17 64
+100 17 64
+101 17 64
+102 17 64
+103 17 64
+104 17 64
+105 17 64
+106 17 64
+107 17 64
+108 17 64
+109 17 64
+110 17 64
+111 17 64
+112 17 64
+113 17 64
+114 17 64
+115 17 64
+116 17 64
+117 17 64
+118 17 64
+119 17 64
+120 17 64
+121 17 64
+122 17 64
+123 17 64
+124 17 64
+125 17 64
+126 17 64
+127 17 64
+128 17 64
+129 17 64
+130 17 64
+131 17 64
+132 17 64
+133 17 64
+134 17 64
+135 17 64
+136 17 64
+137 17 64
+138 17 64
+139 17 64
+140 17 64
+141 17 64
+142 17 64
+143 17 64
+144 17 64
+145 17 64
+146 17 64
+147 17 64
+148 17 64
+149 17 64
+150 17 64
+151 17 64
+152 17 64
+153 17 64
+154 17 64
+155 17 64
+156 17 64
+157 17 64
+158 17 64
+159 17 64
+160 17 64
+161 17 64
+162 17 64
+163 17 64
+164 17 64
+165 17 64
+166 17 64
+167 17 64
+168 17 64
+169 17 64
+170 17 64
+171 17 64
+172 17 64
+173 17 64
+174 17 64
+175 17 64
+176 17 64
+177 17 64
+178 17 64
+179 17 64
+180 17 64
+181 17 64
+182 17 64
+183 17 64
+184 17 64
+185 17 64
+186 17 64
+187 17 64
+188 17 64
+189 17 64
+190 17 64
+191 17 64
+192 17 64
+193 17 64
+194 17 64
+195 17 64
+196 17 64
+197 17 64
+198 17 64
+199 17 64
+200 17 64
+201 17 64
+202 17 64
+203 17 64
+204 17 64
+205 17 64
+206 17 64
+207 17 64
+208 17 64
+209 17 64
+210 17 64
+211 17 64
+212 17 64
+213 17 64
+214 17 64
+215 17 64
+216 17 64
+217 17 64
+218 17 64
+219 17 64
+220 17 64
+221 17 64
+222 17 64
+223 17 64
+224 17 64
+225 17 64
+226 17 64
+227 17 64
+228 17 64
+229 17 64
+230 17 64
+231 17 64
+232 17 64
+233 17 64
+234 17 64
+235 17 64
+236 17 64
+237 17 64
+238 17 64
+239 17 64
+240 17 64
+241 17 64
+242 17 64
+243 17 64
+244 17 64
+245 17 64
+246 17 64
+247 17 64
+248 17 64
+249 17 64
+250 17 64
+251 17 64
+252 17 64
+253 17 64
+254 17 64
+255 17 64
+0 16 64
+1 16 64
+2 16 64
+3 16 64
+4 16 64
+5 16 64
+6 16 64
+7 16 64
+8 16 64
+9 16 64
+10 16 64
+11 16 64
+12 16 64
+13 16 64
+14 16 64
+15 16 64
+16 16 64
+17 16 64
+18 16 64
+19 16 64
+20 16 64
+21 16 64
+22 16 64
+23 16 64
+24 16 64
+25 16 64
+26 16 64
+27 16 64
+28 16 64
+29 16 64
+30 16 64
+31 16 64
+32 16 64
+33 16 64
+34 16 64
+35 16 64
+36 16 64
+37 16 64
+38 16 64
+39 16 64
+40 16 64
+41 16 64
+42 16 64
+43 16 64
+44 16 64
+45 16 64
+46 16 64
+47 16 64
+48 16 64
+49 16 64
+50 16 64
+51 16 64
+52 16 64
+53 16 64
+54 16 64
+55 16 64
+56 16 64
+57 16 64
+58 16 64
+59 16 64
+60 16 64
+61 16 64
+62 16 64
+63 16 64
+64 16 64
+65 16 64
+66 16 64
+67 16 64
+68 16 64
+69 16 64
+70 16 64
+71 16 64
+72 16 64
+73 16 64
+74 16 64
+75 16 64
+76 16 64
+77 16 64
+78 16 64
+79 16 64
+80 16 64
+81 16 64
+82 16 64
+83 16 64
+84 16 64
+85 16 64
+86 16 64
+87 16 64
+88 16 64
+89 16 64
+90 16 64
+91 16 64
+92 16 64
+93 16 64
+94 16 64
+95 16 64
+96 16 64
+97 16 64
+98 16 64
+99 16 64
+100 16 64
+101 16 64
+102 16 64
+103 16 64
+104 16 64
+105 16 64
+106 16 64
+107 16 64
+108 16 64
+109 16 64
+110 16 64
+111 16 64
+112 16 64
+113 16 64
+114 16 64
+115 16 64
+116 16 64
+117 16 64
+118 16 64
+119 16 64
+120 16 64
+121 16 64
+122 16 64
+123 16 64
+124 16 64
+125 16 64
+126 16 64
+127 16 64
+128 16 64
+129 16 64
+130 16 64
+131 16 64
+132 16 64
+133 16 64
+134 16 64
+135 16 64
+136 16 64
+137 16 64
+138 16 64
+139 16 64
+140 16 64
+141 16 64
+142 16 64
+143 16 64
+144 16 64
+145 16 64
+146 16 64
+147 16 64
+148 16 64
+149 16 64
+150 16 64
+151 16 64
+152 16 64
+153 16 64
+154 16 64
+155 16 64
+156 16 64
+157 16 64
+158 16 64
+159 16 64
+160 16 64
+161 16 64
+162 16 64
+163 16 64
+164 16 64
+165 16 64
+166 16 64
+167 16 64
+168 16 64
+169 16 64
+170 16 64
+171 16 64
+172 16 64
+173 16 64
+174 16 64
+175 16 64
+176 16 64
+177 16 64
+178 16 64
+179 16 64
+180 16 64
+181 16 64
+182 16 64
+183 16 64
+184 16 64
+185 16 64
+186 16 64
+187 16 64
+188 16 64
+189 16 64
+190 16 64
+191 16 64
+192 16 64
+193 16 64
+194 16 64
+195 16 64
+196 16 64
+197 16 64
+198 16 64
+199 16 64
+200 16 64
+201 16 64
+202 16 64
+203 16 64
+204 16 64
+205 16 64
+206 16 64
+207 16 64
+208 16 64
+209 16 64
+210 16 64
+211 16 64
+212 16 64
+213 16 64
+214 16 64
+215 16 64
+216 16 64
+217 16 64
+218 16 64
+219 16 64
+220 16 64
+221 16 64
+222 16 64
+223 16 64
+224 16 64
+225 16 64
+226 16 64
+227 16 64
+228 16 64
+229 16 64
+230 16 64
+231 16 64
+232 16 64
+233 16 64
+234 16 64
+235 16 64
+236 16 64
+237 16 64
+238 16 64
+239 16 64
+240 16 64
+241 16 64
+242 16 64
+243 16 64
+244 16 64
+245 16 64
+246 16 64
+247 16 64
+248 16 64
+249 16 64
+250 16 64
+251 16 64
+252 16 64
+253 16 64
+254 16 64
+255 16 64
+0 15 64
+1 15 64
+2 15 64
+3 15 64
+4 15 64
+5 15 64
+6 15 64
+7 15 64
+8 15 64
+9 15 64
+10 15 64
+11 15 64
+12 15 64
+13 15 64
+14 15 64
+15 15 64
+16 15 64
+17 15 64
+18 15 64
+19 15 64
+20 15 64
+21 15 64
+22 15 64
+23 15 64
+24 15 64
+25 15 64
+26 15 64
+27 15 64
+28 15 64
+29 15 64
+30 15 64
+31 15 64
+32 15 64
+33 15 64
+34 15 64
+35 15 64
+36 15 64
+37 15 64
+38 15 64
+39 15 64
+40 15 64
+41 15 64
+42 15 64
+43 15 64
+44 15 64
+45 15 64
+46 15 64
+47 15 64
+48 15 64
+49 15 64
+50 15 64
+51 15 64
+52 15 64
+53 15 64
+54 15 64
+55 15 64
+56 15 64
+57 15 64
+58 15 64
+59 15 64
+60 15 64
+61 15 64
+62 15 64
+63 15 64
+64 15 64
+65 15 64
+66 15 64
+67 15 64
+68 15 64
+69 15 64
+70 15 64
+71 15 64
+72 15 64
+73 15 64
+74 15 64
+75 15 64
+76 15 64
+77 15 64
+78 15 64
+79 15 64
+80 15 64
+81 15 64
+82 15 64
+83 15 64
+84 15 64
+85 15 64
+86 15 64
+87 15 64
+88 15 64
+89 15 64
+90 15 64
+91 15 64
+92 15 64
+93 15 64
+94 15 64
+95 15 64
+96 15 64
+97 15 64
+98 15 64
+99 15 64
+100 15 64
+101 15 64
+102 15 64
+103 15 64
+104 15 64
+105 15 64
+106 15 64
+107 15 64
+108 15 64
+109 15 64
+110 15 64
+111 15 64
+112 15 64
+113 15 64
+114 15 64
+115 15 64
+116 15 64
+117 15 64
+118 15 64
+119 15 64
+120 15 64
+121 15 64
+122 15 64
+123 15 64
+124 15 64
+125 15 64
+126 15 64
+127 15 64
+128 15 64
+129 15 64
+130 15 64
+131 15 64
+132 15 64
+133 15 64
+134 15 64
+135 15 64
+136 15 64
+137 15 64
+138 15 64
+139 15 64
+140 15 64
+141 15 64
+142 15 64
+143 15 64
+144 15 64
+145 15 64
+146 15 64
+147 15 64
+148 15 64
+149 15 64
+150 15 64
+151 15 64
+152 15 64
+153 15 64
+154 15 64
+155 15 64
+156 15 64
+157 15 64
+158 15 64
+159 15 64
+160 15 64
+161 15 64
+162 15 64
+163 15 64
+164 15 64
+165 15 64
+166 15 64
+167 15 64
+168 15 64
+169 15 64
+170 15 64
+171 15 64
+172 15 64
+173 15 64
+174 15 64
+175 15 64
+176 15 64
+177 15 64
+178 15 64
+179 15 64
+180 15 64
+181 15 64
+182 15 64
+183 15 64
+184 15 64
+185 15 64
+186 15 64
+187 15 64
+188 15 64
+189 15 64
+190 15 64
+191 15 64
+192 15 64
+193 15 64
+194 15 64
+195 15 64
+196 15 64
+197 15 64
+198 15 64
+199 15 64
+200 15 64
+201 15 64
+202 15 64
+203 15 64
+204 15 64
+205 15 64
+206 15 64
+207 15 64
+208 15 64
+209 15 64
+210 15 64
+211 15 64
+212 15 64
+213 15 64
+214 15 64
+215 15 64
+216 15 64
+217 15 64
+218 15 64
+219 15 64
+220 15 64
+221 15 64
+222 15 64
+223 15 64
+224 15 64
+225 15 64
+226 15 64
+227 15 64
+228 15 64
+229 15 64
+230 15 64
+231 15 64
+232 15 64
+233 15 64
+234 15 64
+235 15 64
+236 15 64
+237 15 64
+238 15 64
+239 15 64
+240 15 64
+241 15 64
+242 15 64
+243 15 64
+244 15 64
+245 15 64
+246 15 64
+247 15 64
+248 15 64
+249 15 64
+250 15 64
+251 15 64
+252 15 64
+253 15 64
+254 15 64
+255 15 64
+0 14 64
+1 14 64
+2 14 64
+3 14 64
+4 14 64
+5 14 64
+6 14 64
+7 14 64
+8 14 64
+9 14 64
+10 14 64
+11 14 64
+12 14 64
+13 14 64
+14 14 64
+15 14 64
+16 14 64
+17 14 64
+18 14 64
+19 14 64
+20 14 64
+21 14 64
+22 14 64
+23 14 64
+24 14 64
+25 14 64
+26 14 64
+27 14 64
+28 14 64
+29 14 64
+30 14 64
+31 14 64
+32 14 64
+33 14 64
+34 14 64
+35 14 64
+36 14 64
+37 14 64
+38 14 64
+39 14 64
+40 14 64
+41 14 64
+42 14 64
+43 14 64
+44 14 64
+45 14 64
+46 14 64
+47 14 64
+48 14 64
+49 14 64
+50 14 64
+51 14 64
+52 14 64
+53 14 64
+54 14 64
+55 14 64
+56 14 64
+57 14 64
+58 14 64
+59 14 64
+60 14 64
+61 14 64
+62 14 64
+63 14 64
+64 14 64
+65 14 64
+66 14 64
+67 14 64
+68 14 64
+69 14 64
+70 14 64
+71 14 64
+72 14 64
+73 14 64
+74 14 64
+75 14 64
+76 14 64
+77 14 64
+78 14 64
+79 14 64
+80 14 64
+81 14 64
+82 14 64
+83 14 64
+84 14 64
+85 14 64
+86 14 64
+87 14 64
+88 14 64
+89 14 64
+90 14 64
+91 14 64
+92 14 64
+93 14 64
+94 14 64
+95 14 64
+96 14 64
+97 14 64
+98 14 64
+99 14 64
+100 14 64
+101 14 64
+102 14 64
+103 14 64
+104 14 64
+105 14 64
+106 14 64
+107 14 64
+108 14 64
+109 14 64
+110 14 64
+111 14 64
+112 14 64
+113 14 64
+114 14 64
+115 14 64
+116 14 64
+117 14 64
+118 14 64
+119 14 64
+120 14 64
+121 14 64
+122 14 64
+123 14 64
+124 14 64
+125 14 64
+126 14 64
+127 14 64
+128 14 64
+129 14 64
+130 14 64
+131 14 64
+132 14 64
+133 14 64
+134 14 64
+135 14 64
+136 14 64
+137 14 64
+138 14 64
+139 14 64
+140 14 64
+141 14 64
+142 14 64
+143 14 64
+144 14 64
+145 14 64
+146 14 64
+147 14 64
+148 14 64
+149 14 64
+150 14 64
+151 14 64
+152 14 64
+153 14 64
+154 14 64
+155 14 64
+156 14 64
+157 14 64
+158 14 64
+159 14 64
+160 14 64
+161 14 64
+162 14 64
+163 14 64
+164 14 64
+165 14 64
+166 14 64
+167 14 64
+168 14 64
+169 14 64
+170 14 64
+171 14 64
+172 14 64
+173 14 64
+174 14 64
+175 14 64
+176 14 64
+177 14 64
+178 14 64
+179 14 64
+180 14 64
+181 14 64
+182 14 64
+183 14 64
+184 14 64
+185 14 64
+186 14 64
+187 14 64
+188 14 64
+189 14 64
+190 14 64
+191 14 64
+192 14 64
+193 14 64
+194 14 64
+195 14 64
+196 14 64
+197 14 64
+198 14 64
+199 14 64
+200 14 64
+201 14 64
+202 14 64
+203 14 64
+204 14 64
+205 14 64
+206 14 64
+207 14 64
+208 14 64
+209 14 64
+210 14 64
+211 14 64
+212 14 64
+213 14 64
+214 14 64
+215 14 64
+216 14 64
+217 14 64
+218 14 64
+219 14 64
+220 14 64
+221 14 64
+222 14 64
+223 14 64
+224 14 64
+225 14 64
+226 14 64
+227 14 64
+228 14 64
+229 14 64
+230 14 64
+231 14 64
+232 14 64
+233 14 64
+234 14 64
+235 14 64
+236 14 64
+237 14 64
+238 14 64
+239 14 64
+240 14 64
+241 14 64
+242 14 64
+243 14 64
+244 14 64
+245 14 64
+246 14 64
+247 14 64
+248 14 64
+249 14 64
+250 14 64
+251 14 64
+252 14 64
+253 14 64
+254 14 64
+255 14 64
+0 13 64
+1 13 64
+2 13 64
+3 13 64
+4 13 64
+5 13 64
+6 13 64
+7 13 64
+8 13 64
+9 13 64
+10 13 64
+11 13 64
+12 13 64
+13 13 64
+14 13 64
+15 13 64
+16 13 64
+17 13 64
+18 13 64
+19 13 64
+20 13 64
+21 13 64
+22 13 64
+23 13 64
+24 13 64
+25 13 64
+26 13 64
+27 13 64
+28 13 64
+29 13 64
+30 13 64
+31 13 64
+32 13 64
+33 13 64
+34 13 64
+35 13 64
+36 13 64
+37 13 64
+38 13 64
+39 13 64
+40 13 64
+41 13 64
+42 13 64
+43 13 64
+44 13 64
+45 13 64
+46 13 64
+47 13 64
+48 13 64
+49 13 64
+50 13 64
+51 13 64
+52 13 64
+53 13 64
+54 13 64
+55 13 64
+56 13 64
+57 13 64
+58 13 64
+59 13 64
+60 13 64
+61 13 64
+62 13 64
+63 13 64
+64 13 64
+65 13 64
+66 13 64
+67 13 64
+68 13 64
+69 13 64
+70 13 64
+71 13 64
+72 13 64
+73 13 64
+74 13 64
+75 13 64
+76 13 64
+77 13 64
+78 13 64
+79 13 64
+80 13 64
+81 13 64
+82 13 64
+83 13 64
+84 13 64
+85 13 64
+86 13 64
+87 13 64
+88 13 64
+89 13 64
+90 13 64
+91 13 64
+92 13 64
+93 13 64
+94 13 64
+95 13 64
+96 13 64
+97 13 64
+98 13 64
+99 13 64
+100 13 64
+101 13 64
+102 13 64
+103 13 64
+104 13 64
+105 13 64
+106 13 64
+107 13 64
+108 13 64
+109 13 64
+110 13 64
+111 13 64
+112 13 64
+113 13 64
+114 13 64
+115 13 64
+116 13 64
+117 13 64
+118 13 64
+119 13 64
+120 13 64
+121 13 64
+122 13 64
+123 13 64
+124 13 64
+125 13 64
+126 13 64
+127 13 64
+128 13 64
+129 13 64
+130 13 64
+131 13 64
+132 13 64
+133 13 64
+134 13 64
+135 13 64
+136 13 64
+137 13 64
+138 13 64
+139 13 64
+140 13 64
+141 13 64
+142 13 64
+143 13 64
+144 13 64
+145 13 64
+146 13 64
+147 13 64
+148 13 64
+149 13 64
+150 13 64
+151 13 64
+152 13 64
+153 13 64
+154 13 64
+155 13 64
+156 13 64
+157 13 64
+158 13 64
+159 13 64
+160 13 64
+161 13 64
+162 13 64
+163 13 64
+164 13 64
+165 13 64
+166 13 64
+167 13 64
+168 13 64
+169 13 64
+170 13 64
+171 13 64
+172 13 64
+173 13 64
+174 13 64
+175 13 64
+176 13 64
+177 13 64
+178 13 64
+179 13 64
+180 13 64
+181 13 64
+182 13 64
+183 13 64
+184 13 64
+185 13 64
+186 13 64
+187 13 64
+188 13 64
+189 13 64
+190 13 64
+191 13 64
+192 13 64
+193 13 64
+194 13 64
+195 13 64
+196 13 64
+197 13 64
+198 13 64
+199 13 64
+200 13 64
+201 13 64
+202 13 64
+203 13 64
+204 13 64
+205 13 64
+206 13 64
+207 13 64
+208 13 64
+209 13 64
+210 13 64
+211 13 64
+212 13 64
+213 13 64
+214 13 64
+215 13 64
+216 13 64
+217 13 64
+218 13 64
+219 13 64
+220 13 64
+221 13 64
+222 13 64
+223 13 64
+224 13 64
+225 13 64
+226 13 64
+227 13 64
+228 13 64
+229 13 64
+230 13 64
+231 13 64
+232 13 64
+233 13 64
+234 13 64
+235 13 64
+236 13 64
+237 13 64
+238 13 64
+239 13 64
+240 13 64
+241 13 64
+242 13 64
+243 13 64
+244 13 64
+245 13 64
+246 13 64
+247 13 64
+248 13 64
+249 13 64
+250 13 64
+251 13 64
+252 13 64
+253 13 64
+254 13 64
+255 13 64
+0 12 64
+1 12 64
+2 12 64
+3 12 64
+4 12 64
+5 12 64
+6 12 64
+7 12 64
+8 12 64
+9 12 64
+10 12 64
+11 12 64
+12 12 64
+13 12 64
+14 12 64
+15 12 64
+16 12 64
+17 12 64
+18 12 64
+19 12 64
+20 12 64
+21 12 64
+22 12 64
+23 12 64
+24 12 64
+25 12 64
+26 12 64
+27 12 64
+28 12 64
+29 12 64
+30 12 64
+31 12 64
+32 12 64
+33 12 64
+34 12 64
+35 12 64
+36 12 64
+37 12 64
+38 12 64
+39 12 64
+40 12 64
+41 12 64
+42 12 64
+43 12 64
+44 12 64
+45 12 64
+46 12 64
+47 12 64
+48 12 64
+49 12 64
+50 12 64
+51 12 64
+52 12 64
+53 12 64
+54 12 64
+55 12 64
+56 12 64
+57 12 64
+58 12 64
+59 12 64
+60 12 64
+61 12 64
+62 12 64
+63 12 64
+64 12 64
+65 12 64
+66 12 64
+67 12 64
+68 12 64
+69 12 64
+70 12 64
+71 12 64
+72 12 64
+73 12 64
+74 12 64
+75 12 64
+76 12 64
+77 12 64
+78 12 64
+79 12 64
+80 12 64
+81 12 64
+82 12 64
+83 12 64
+84 12 64
+85 12 64
+86 12 64
+87 12 64
+88 12 64
+89 12 64
+90 12 64
+91 12 64
+92 12 64
+93 12 64
+94 12 64
+95 12 64
+96 12 64
+97 12 64
+98 12 64
+99 12 64
+100 12 64
+101 12 64
+102 12 64
+103 12 64
+104 12 64
+105 12 64
+106 12 64
+107 12 64
+108 12 64
+109 12 64
+110 12 64
+111 12 64
+112 12 64
+113 12 64
+114 12 64
+115 12 64
+116 12 64
+117 12 64
+118 12 64
+119 12 64
+120 12 64
+121 12 64
+122 12 64
+123 12 64
+124 12 64
+125 12 64
+126 12 64
+127 12 64
+128 12 64
+129 12 64
+130 12 64
+131 12 64
+132 12 64
+133 12 64
+134 12 64
+135 12 64
+136 12 64
+137 12 64
+138 12 64
+139 12 64
+140 12 64
+141 12 64
+142 12 64
+143 12 64
+144 12 64
+145 12 64
+146 12 64
+147 12 64
+148 12 64
+149 12 64
+150 12 64
+151 12 64
+152 12 64
+153 12 64
+154 12 64
+155 12 64
+156 12 64
+157 12 64
+158 12 64
+159 12 64
+160 12 64
+161 12 64
+162 12 64
+163 12 64
+164 12 64
+165 12 64
+166 12 64
+167 12 64
+168 12 64
+169 12 64
+170 12 64
+171 12 64
+172 12 64
+173 12 64
+174 12 64
+175 12 64
+176 12 64
+177 12 64
+178 12 64
+179 12 64
+180 12 64
+181 12 64
+182 12 64
+183 12 64
+184 12 64
+185 12 64
+186 12 64
+187 12 64
+188 12 64
+189 12 64
+190 12 64
+191 12 64
+192 12 64
+193 12 64
+194 12 64
+195 12 64
+196 12 64
+197 12 64
+198 12 64
+199 12 64
+200 12 64
+201 12 64
+202 12 64
+203 12 64
+204 12 64
+205 12 64
+206 12 64
+207 12 64
+208 12 64
+209 12 64
+210 12 64
+211 12 64
+212 12 64
+213 12 64
+214 12 64
+215 12 64
+216 12 64
+217 12 64
+218 12 64
+219 12 64
+220 12 64
+221 12 64
+222 12 64
+223 12 64
+224 12 64
+225 12 64
+226 12 64
+227 12 64
+228 12 64
+229 12 64
+230 12 64
+231 12 64
+232 12 64
+233 12 64
+234 12 64
+235 12 64
+236 12 64
+237 12 64
+238 12 64
+239 12 64
+240 12 64
+241 12 64
+242 12 64
+243 12 64
+244 12 64
+245 12 64
+246 12 64
+247 12 64
+248 12 64
+249 12 64
+250 12 64
+251 12 64
+252 12 64
+253 12 64
+254 12 64
+255 12 64
+0 11 64
+1 11 64
+2 11 64
+3 11 64
+4 11 64
+5 11 64
+6 11 64
+7 11 64
+8 11 64
+9 11 64
+10 11 64
+11 11 64
+12 11 64
+13 11 64
+14 11 64
+15 11 64
+16 11 64
+17 11 64
+18 11 64
+19 11 64
+20 11 64
+21 11 64
+22 11 64
+23 11 64
+24 11 64
+25 11 64
+26 11 64
+27 11 64
+28 11 64
+29 11 64
+30 11 64
+31 11 64
+32 11 64
+33 11 64
+34 11 64
+35 11 64
+36 11 64
+37 11 64
+38 11 64
+39 11 64
+40 11 64
+41 11 64
+42 11 64
+43 11 64
+44 11 64
+45 11 64
+46 11 64
+47 11 64
+48 11 64
+49 11 64
+50 11 64
+51 11 64
+52 11 64
+53 11 64
+54 11 64
+55 11 64
+56 11 64
+57 11 64
+58 11 64
+59 11 64
+60 11 64
+61 11 64
+62 11 64
+63 11 64
+64 11 64
+65 11 64
+66 11 64
+67 11 64
+68 11 64
+69 11 64
+70 11 64
+71 11 64
+72 11 64
+73 11 64
+74 11 64
+75 11 64
+76 11 64
+77 11 64
+78 11 64
+79 11 64
+80 11 64
+81 11 64
+82 11 64
+83 11 64
+84 11 64
+85 11 64
+86 11 64
+87 11 64
+88 11 64
+89 11 64
+90 11 64
+91 11 64
+92 11 64
+93 11 64
+94 11 64
+95 11 64
+96 11 64
+97 11 64
+98 11 64
+99 11 64
+100 11 64
+101 11 64
+102 11 64
+103 11 64
+104 11 64
+105 11 64
+106 11 64
+107 11 64
+108 11 64
+109 11 64
+110 11 64
+111 11 64
+112 11 64
+113 11 64
+114 11 64
+115 11 64
+116 11 64
+117 11 64
+118 11 64
+119 11 64
+120 11 64
+121 11 64
+122 11 64
+123 11 64
+124 11 64
+125 11 64
+126 11 64
+127 11 64
+128 11 64
+129 11 64
+130 11 64
+131 11 64
+132 11 64
+133 11 64
+134 11 64
+135 11 64
+136 11 64
+137 11 64
+138 11 64
+139 11 64
+140 11 64
+141 11 64
+142 11 64
+143 11 64
+144 11 64
+145 11 64
+146 11 64
+147 11 64
+148 11 64
+149 11 64
+150 11 64
+151 11 64
+152 11 64
+153 11 64
+154 11 64
+155 11 64
+156 11 64
+157 11 64
+158 11 64
+159 11 64
+160 11 64
+161 11 64
+162 11 64
+163 11 64
+164 11 64
+165 11 64
+166 11 64
+167 11 64
+168 11 64
+169 11 64
+170 11 64
+171 11 64
+172 11 64
+173 11 64
+174 11 64
+175 11 64
+176 11 64
+177 11 64
+178 11 64
+179 11 64
+180 11 64
+181 11 64
+182 11 64
+183 11 64
+184 11 64
+185 11 64
+186 11 64
+187 11 64
+188 11 64
+189 11 64
+190 11 64
+191 11 64
+192 11 64
+193 11 64
+194 11 64
+195 11 64
+196 11 64
+197 11 64
+198 11 64
+199 11 64
+200 11 64
+201 11 64
+202 11 64
+203 11 64
+204 11 64
+205 11 64
+206 11 64
+207 11 64
+208 11 64
+209 11 64
+210 11 64
+211 11 64
+212 11 64
+213 11 64
+214 11 64
+215 11 64
+216 11 64
+217 11 64
+218 11 64
+219 11 64
+220 11 64
+221 11 64
+222 11 64
+223 11 64
+224 11 64
+225 11 64
+226 11 64
+227 11 64
+228 11 64
+229 11 64
+230 11 64
+231 11 64
+232 11 64
+233 11 64
+234 11 64
+235 11 64
+236 11 64
+237 11 64
+238 11 64
+239 11 64
+240 11 64
+241 11 64
+242 11 64
+243 11 64
+244 11 64
+245 11 64
+246 11 64
+247 11 64
+248 11 64
+249 11 64
+250 11 64
+251 11 64
+252 11 64
+253 11 64
+254 11 64
+255 11 64
+0 10 64
+1 10 64
+2 10 64
+3 10 64
+4 10 64
+5 10 64
+6 10 64
+7 10 64
+8 10 64
+9 10 64
+10 10 64
+11 10 64
+12 10 64
+13 10 64
+14 10 64
+15 10 64
+16 10 64
+17 10 64
+18 10 64
+19 10 64
+20 10 64
+21 10 64
+22 10 64
+23 10 64
+24 10 64
+25 10 64
+26 10 64
+27 10 64
+28 10 64
+29 10 64
+30 10 64
+31 10 64
+32 10 64
+33 10 64
+34 10 64
+35 10 64
+36 10 64
+37 10 64
+38 10 64
+39 10 64
+40 10 64
+41 10 64
+42 10 64
+43 10 64
+44 10 64
+45 10 64
+46 10 64
+47 10 64
+48 10 64
+49 10 64
+50 10 64
+51 10 64
+52 10 64
+53 10 64
+54 10 64
+55 10 64
+56 10 64
+57 10 64
+58 10 64
+59 10 64
+60 10 64
+61 10 64
+62 10 64
+63 10 64
+64 10 64
+65 10 64
+66 10 64
+67 10 64
+68 10 64
+69 10 64
+70 10 64
+71 10 64
+72 10 64
+73 10 64
+74 10 64
+75 10 64
+76 10 64
+77 10 64
+78 10 64
+79 10 64
+80 10 64
+81 10 64
+82 10 64
+83 10 64
+84 10 64
+85 10 64
+86 10 64
+87 10 64
+88 10 64
+89 10 64
+90 10 64
+91 10 64
+92 10 64
+93 10 64
+94 10 64
+95 10 64
+96 10 64
+97 10 64
+98 10 64
+99 10 64
+100 10 64
+101 10 64
+102 10 64
+103 10 64
+104 10 64
+105 10 64
+106 10 64
+107 10 64
+108 10 64
+109 10 64
+110 10 64
+111 10 64
+112 10 64
+113 10 64
+114 10 64
+115 10 64
+116 10 64
+117 10 64
+118 10 64
+119 10 64
+120 10 64
+121 10 64
+122 10 64
+123 10 64
+124 10 64
+125 10 64
+126 10 64
+127 10 64
+128 10 64
+129 10 64
+130 10 64
+131 10 64
+132 10 64
+133 10 64
+134 10 64
+135 10 64
+136 10 64
+137 10 64
+138 10 64
+139 10 64
+140 10 64
+141 10 64
+142 10 64
+143 10 64
+144 10 64
+145 10 64
+146 10 64
+147 10 64
+148 10 64
+149 10 64
+150 10 64
+151 10 64
+152 10 64
+153 10 64
+154 10 64
+155 10 64
+156 10 64
+157 10 64
+158 10 64
+159 10 64
+160 10 64
+161 10 64
+162 10 64
+163 10 64
+164 10 64
+165 10 64
+166 10 64
+167 10 64
+168 10 64
+169 10 64
+170 10 64
+171 10 64
+172 10 64
+173 10 64
+174 10 64
+175 10 64
+176 10 64
+177 10 64
+178 10 64
+179 10 64
+180 10 64
+181 10 64
+182 10 64
+183 10 64
+184 10 64
+185 10 64
+186 10 64
+187 10 64
+188 10 64
+189 10 64
+190 10 64
+191 10 64
+192 10 64
+193 10 64
+194 10 64
+195 10 64
+196 10 64
+197 10 64
+198 10 64
+199 10 64
+200 10 64
+201 10 64
+202 10 64
+203 10 64
+204 10 64
+205 10 64
+206 10 64
+207 10 64
+208 10 64
+209 10 64
+210 10 64
+211 10 64
+212 10 64
+213 10 64
+214 10 64
+215 10 64
+216 10 64
+217 10 64
+218 10 64
+219 10 64
+220 10 64
+221 10 64
+222 10 64
+223 10 64
+224 10 64
+225 10 64
+226 10 64
+227 10 64
+228 10 64
+229 10 64
+230 10 64
+231 10 64
+232 10 64
+233 10 64
+234 10 64
+235 10 64
+236 10 64
+237 10 64
+238 10 64
+239 10 64
+240 10 64
+241 10 64
+242 10 64
+243 10 64
+244 10 64
+245 10 64
+246 10 64
+247 10 64
+248 10 64
+249 10 64
+250 10 64
+251 10 64
+252 10 64
+253 10 64
+254 10 64
+255 10 64
+0 9 64
+1 9 64
+2 9 64
+3 9 64
+4 9 64
+5 9 64
+6 9 64
+7 9 64
+8 9 64
+9 9 64
+10 9 64
+11 9 64
+12 9 64
+13 9 64
+14 9 64
+15 9 64
+16 9 64
+17 9 64
+18 9 64
+19 9 64
+20 9 64
+21 9 64
+22 9 64
+23 9 64
+24 9 64
+25 9 64
+26 9 64
+27 9 64
+28 9 64
+29 9 64
+30 9 64
+31 9 64
+32 9 64
+33 9 64
+34 9 64
+35 9 64
+36 9 64
+37 9 64
+38 9 64
+39 9 64
+40 9 64
+41 9 64
+42 9 64
+43 9 64
+44 9 64
+45 9 64
+46 9 64
+47 9 64
+48 9 64
+49 9 64
+50 9 64
+51 9 64
+52 9 64
+53 9 64
+54 9 64
+55 9 64
+56 9 64
+57 9 64
+58 9 64
+59 9 64
+60 9 64
+61 9 64
+62 9 64
+63 9 64
+64 9 64
+65 9 64
+66 9 64
+67 9 64
+68 9 64
+69 9 64
+70 9 64
+71 9 64
+72 9 64
+73 9 64
+74 9 64
+75 9 64
+76 9 64
+77 9 64
+78 9 64
+79 9 64
+80 9 64
+81 9 64
+82 9 64
+83 9 64
+84 9 64
+85 9 64
+86 9 64
+87 9 64
+88 9 64
+89 9 64
+90 9 64
+91 9 64
+92 9 64
+93 9 64
+94 9 64
+95 9 64
+96 9 64
+97 9 64
+98 9 64
+99 9 64
+100 9 64
+101 9 64
+102 9 64
+103 9 64
+104 9 64
+105 9 64
+106 9 64
+107 9 64
+108 9 64
+109 9 64
+110 9 64
+111 9 64
+112 9 64
+113 9 64
+114 9 64
+115 9 64
+116 9 64
+117 9 64
+118 9 64
+119 9 64
+120 9 64
+121 9 64
+122 9 64
+123 9 64
+124 9 64
+125 9 64
+126 9 64
+127 9 64
+128 9 64
+129 9 64
+130 9 64
+131 9 64
+132 9 64
+133 9 64
+134 9 64
+135 9 64
+136 9 64
+137 9 64
+138 9 64
+139 9 64
+140 9 64
+141 9 64
+142 9 64
+143 9 64
+144 9 64
+145 9 64
+146 9 64
+147 9 64
+148 9 64
+149 9 64
+150 9 64
+151 9 64
+152 9 64
+153 9 64
+154 9 64
+155 9 64
+156 9 64
+157 9 64
+158 9 64
+159 9 64
+160 9 64
+161 9 64
+162 9 64
+163 9 64
+164 9 64
+165 9 64
+166 9 64
+167 9 64
+168 9 64
+169 9 64
+170 9 64
+171 9 64
+172 9 64
+173 9 64
+174 9 64
+175 9 64
+176 9 64
+177 9 64
+178 9 64
+179 9 64
+180 9 64
+181 9 64
+182 9 64
+183 9 64
+184 9 64
+185 9 64
+186 9 64
+187 9 64
+188 9 64
+189 9 64
+190 9 64
+191 9 64
+192 9 64
+193 9 64
+194 9 64
+195 9 64
+196 9 64
+197 9 64
+198 9 64
+199 9 64
+200 9 64
+201 9 64
+202 9 64
+203 9 64
+204 9 64
+205 9 64
+206 9 64
+207 9 64
+208 9 64
+209 9 64
+210 9 64
+211 9 64
+212 9 64
+213 9 64
+214 9 64
+215 9 64
+216 9 64
+217 9 64
+218 9 64
+219 9 64
+220 9 64
+221 9 64
+222 9 64
+223 9 64
+224 9 64
+225 9 64
+226 9 64
+227 9 64
+228 9 64
+229 9 64
+230 9 64
+231 9 64
+232 9 64
+233 9 64
+234 9 64
+235 9 64
+236 9 64
+237 9 64
+238 9 64
+239 9 64
+240 9 64
+241 9 64
+242 9 64
+243 9 64
+244 9 64
+245 9 64
+246 9 64
+247 9 64
+248 9 64
+249 9 64
+250 9 64
+251 9 64
+252 9 64
+253 9 64
+254 9 64
+255 9 64
+0 8 64
+1 8 64
+2 8 64
+3 8 64
+4 8 64
+5 8 64
+6 8 64
+7 8 64
+8 8 64
+9 8 64
+10 8 64
+11 8 64
+12 8 64
+13 8 64
+14 8 64
+15 8 64
+16 8 64
+17 8 64
+18 8 64
+19 8 64
+20 8 64
+21 8 64
+22 8 64
+23 8 64
+24 8 64
+25 8 64
+26 8 64
+27 8 64
+28 8 64
+29 8 64
+30 8 64
+31 8 64
+32 8 64
+33 8 64
+34 8 64
+35 8 64
+36 8 64
+37 8 64
+38 8 64
+39 8 64
+40 8 64
+41 8 64
+42 8 64
+43 8 64
+44 8 64
+45 8 64
+46 8 64
+47 8 64
+48 8 64
+49 8 64
+50 8 64
+51 8 64
+52 8 64
+53 8 64
+54 8 64
+55 8 64
+56 8 64
+57 8 64
+58 8 64
+59 8 64
+60 8 64
+61 8 64
+62 8 64
+63 8 64
+64 8 64
+65 8 64
+66 8 64
+67 8 64
+68 8 64
+69 8 64
+70 8 64
+71 8 64
+72 8 64
+73 8 64
+74 8 64
+75 8 64
+76 8 64
+77 8 64
+78 8 64
+79 8 64
+80 8 64
+81 8 64
+82 8 64
+83 8 64
+84 8 64
+85 8 64
+86 8 64
+87 8 64
+88 8 64
+89 8 64
+90 8 64
+91 8 64
+92 8 64
+93 8 64
+94 8 64
+95 8 64
+96 8 64
+97 8 64
+98 8 64
+99 8 64
+100 8 64
+101 8 64
+102 8 64
+103 8 64
+104 8 64
+105 8 64
+106 8 64
+107 8 64
+108 8 64
+109 8 64
+110 8 64
+111 8 64
+112 8 64
+113 8 64
+114 8 64
+115 8 64
+116 8 64
+117 8 64
+118 8 64
+119 8 64
+120 8 64
+121 8 64
+122 8 64
+123 8 64
+124 8 64
+125 8 64
+126 8 64
+127 8 64
+128 8 64
+129 8 64
+130 8 64
+131 8 64
+132 8 64
+133 8 64
+134 8 64
+135 8 64
+136 8 64
+137 8 64
+138 8 64
+139 8 64
+140 8 64
+141 8 64
+142 8 64
+143 8 64
+144 8 64
+145 8 64
+146 8 64
+147 8 64
+148 8 64
+149 8 64
+150 8 64
+151 8 64
+152 8 64
+153 8 64
+154 8 64
+155 8 64
+156 8 64
+157 8 64
+158 8 64
+159 8 64
+160 8 64
+161 8 64
+162 8 64
+163 8 64
+164 8 64
+165 8 64
+166 8 64
+167 8 64
+168 8 64
+169 8 64
+170 8 64
+171 8 64
+172 8 64
+173 8 64
+174 8 64
+175 8 64
+176 8 64
+177 8 64
+178 8 64
+179 8 64
+180 8 64
+181 8 64
+182 8 64
+183 8 64
+184 8 64
+185 8 64
+186 8 64
+187 8 64
+188 8 64
+189 8 64
+190 8 64
+191 8 64
+192 8 64
+193 8 64
+194 8 64
+195 8 64
+196 8 64
+197 8 64
+198 8 64
+199 8 64
+200 8 64
+201 8 64
+202 8 64
+203 8 64
+204 8 64
+205 8 64
+206 8 64
+207 8 64
+208 8 64
+209 8 64
+210 8 64
+211 8 64
+212 8 64
+213 8 64
+214 8 64
+215 8 64
+216 8 64
+217 8 64
+218 8 64
+219 8 64
+220 8 64
+221 8 64
+222 8 64
+223 8 64
+224 8 64
+225 8 64
+226 8 64
+227 8 64
+228 8 64
+229 8 64
+230 8 64
+231 8 64
+232 8 64
+233 8 64
+234 8 64
+235 8 64
+236 8 64
+237 8 64
+238 8 64
+239 8 64
+240 8 64
+241 8 64
+242 8 64
+243 8 64
+244 8 64
+245 8 64
+246 8 64
+247 8 64
+248 8 64
+249 8 64
+250 8 64
+251 8 64
+252 8 64
+253 8 64
+254 8 64
+255 8 64
+0 7 64
+1 7 64
+2 7 64
+3 7 64
+4 7 64
+5 7 64
+6 7 64
+7 7 64
+8 7 64
+9 7 64
+10 7 64
+11 7 64
+12 7 64
+13 7 64
+14 7 64
+15 7 64
+16 7 64
+17 7 64
+18 7 64
+19 7 64
+20 7 64
+21 7 64
+22 7 64
+23 7 64
+24 7 64
+25 7 64
+26 7 64
+27 7 64
+28 7 64
+29 7 64
+30 7 64
+31 7 64
+32 7 64
+33 7 64
+34 7 64
+35 7 64
+36 7 64
+37 7 64
+38 7 64
+39 7 64
+40 7 64
+41 7 64
+42 7 64
+43 7 64
+44 7 64
+45 7 64
+46 7 64
+47 7 64
+48 7 64
+49 7 64
+50 7 64
+51 7 64
+52 7 64
+53 7 64
+54 7 64
+55 7 64
+56 7 64
+57 7 64
+58 7 64
+59 7 64
+60 7 64
+61 7 64
+62 7 64
+63 7 64
+64 7 64
+65 7 64
+66 7 64
+67 7 64
+68 7 64
+69 7 64
+70 7 64
+71 7 64
+72 7 64
+73 7 64
+74 7 64
+75 7 64
+76 7 64
+77 7 64
+78 7 64
+79 7 64
+80 7 64
+81 7 64
+82 7 64
+83 7 64
+84 7 64
+85 7 64
+86 7 64
+87 7 64
+88 7 64
+89 7 64
+90 7 64
+91 7 64
+92 7 64
+93 7 64
+94 7 64
+95 7 64
+96 7 64
+97 7 64
+98 7 64
+99 7 64
+100 7 64
+101 7 64
+102 7 64
+103 7 64
+104 7 64
+105 7 64
+106 7 64
+107 7 64
+108 7 64
+109 7 64
+110 7 64
+111 7 64
+112 7 64
+113 7 64
+114 7 64
+115 7 64
+116 7 64
+117 7 64
+118 7 64
+119 7 64
+120 7 64
+121 7 64
+122 7 64
+123 7 64
+124 7 64
+125 7 64
+126 7 64
+127 7 64
+128 7 64
+129 7 64
+130 7 64
+131 7 64
+132 7 64
+133 7 64
+134 7 64
+135 7 64
+136 7 64
+137 7 64
+138 7 64
+139 7 64
+140 7 64
+141 7 64
+142 7 64
+143 7 64
+144 7 64
+145 7 64
+146 7 64
+147 7 64
+148 7 64
+149 7 64
+150 7 64
+151 7 64
+152 7 64
+153 7 64
+154 7 64
+155 7 64
+156 7 64
+157 7 64
+158 7 64
+159 7 64
+160 7 64
+161 7 64
+162 7 64
+163 7 64
+164 7 64
+165 7 64
+166 7 64
+167 7 64
+168 7 64
+169 7 64
+170 7 64
+171 7 64
+172 7 64
+173 7 64
+174 7 64
+175 7 64
+176 7 64
+177 7 64
+178 7 64
+179 7 64
+180 7 64
+181 7 64
+182 7 64
+183 7 64
+184 7 64
+185 7 64
+186 7 64
+187 7 64
+188 7 64
+189 7 64
+190 7 64
+191 7 64
+192 7 64
+193 7 64
+194 7 64
+195 7 64
+196 7 64
+197 7 64
+198 7 64
+199 7 64
+200 7 64
+201 7 64
+202 7 64
+203 7 64
+204 7 64
+205 7 64
+206 7 64
+207 7 64
+208 7 64
+209 7 64
+210 7 64
+211 7 64
+212 7 64
+213 7 64
+214 7 64
+215 7 64
+216 7 64
+217 7 64
+218 7 64
+219 7 64
+220 7 64
+221 7 64
+222 7 64
+223 7 64
+224 7 64
+225 7 64
+226 7 64
+227 7 64
+228 7 64
+229 7 64
+230 7 64
+231 7 64
+232 7 64
+233 7 64
+234 7 64
+235 7 64
+236 7 64
+237 7 64
+238 7 64
+239 7 64
+240 7 64
+241 7 64
+242 7 64
+243 7 64
+244 7 64
+245 7 64
+246 7 64
+247 7 64
+248 7 64
+249 7 64
+250 7 64
+251 7 64
+252 7 64
+253 7 64
+254 7 64
+255 7 64
+0 6 64
+1 6 64
+2 6 64
+3 6 64
+4 6 64
+5 6 64
+6 6 64
+7 6 64
+8 6 64
+9 6 64
+10 6 64
+11 6 64
+12 6 64
+13 6 64
+14 6 64
+15 6 64
+16 6 64
+17 6 64
+18 6 64
+19 6 64
+20 6 64
+21 6 64
+22 6 64
+23 6 64
+24 6 64
+25 6 64
+26 6 64
+27 6 64
+28 6 64
+29 6 64
+30 6 64
+31 6 64
+32 6 64
+33 6 64
+34 6 64
+35 6 64
+36 6 64
+37 6 64
+38 6 64
+39 6 64
+40 6 64
+41 6 64
+42 6 64
+43 6 64
+44 6 64
+45 6 64
+46 6 64
+47 6 64
+48 6 64
+49 6 64
+50 6 64
+51 6 64
+52 6 64
+53 6 64
+54 6 64
+55 6 64
+56 6 64
+57 6 64
+58 6 64
+59 6 64
+60 6 64
+61 6 64
+62 6 64
+63 6 64
+64 6 64
+65 6 64
+66 6 64
+67 6 64
+68 6 64
+69 6 64
+70 6 64
+71 6 64
+72 6 64
+73 6 64
+74 6 64
+75 6 64
+76 6 64
+77 6 64
+78 6 64
+79 6 64
+80 6 64
+81 6 64
+82 6 64
+83 6 64
+84 6 64
+85 6 64
+86 6 64
+87 6 64
+88 6 64
+89 6 64
+90 6 64
+91 6 64
+92 6 64
+93 6 64
+94 6 64
+95 6 64
+96 6 64
+97 6 64
+98 6 64
+99 6 64
+100 6 64
+101 6 64
+102 6 64
+103 6 64
+104 6 64
+105 6 64
+106 6 64
+107 6 64
+108 6 64
+109 6 64
+110 6 64
+111 6 64
+112 6 64
+113 6 64
+114 6 64
+115 6 64
+116 6 64
+117 6 64
+118 6 64
+119 6 64
+120 6 64
+121 6 64
+122 6 64
+123 6 64
+124 6 64
+125 6 64
+126 6 64
+127 6 64
+128 6 64
+129 6 64
+130 6 64
+131 6 64
+132 6 64
+133 6 64
+134 6 64
+135 6 64
+136 6 64
+137 6 64
+138 6 64
+139 6 64
+140 6 64
+141 6 64
+142 6 64
+143 6 64
+144 6 64
+145 6 64
+146 6 64
+147 6 64
+148 6 64
+149 6 64
+150 6 64
+151 6 64
+152 6 64
+153 6 64
+154 6 64
+155 6 64
+156 6 64
+157 6 64
+158 6 64
+159 6 64
+160 6 64
+161 6 64
+162 6 64
+163 6 64
+164 6 64
+165 6 64
+166 6 64
+167 6 64
+168 6 64
+169 6 64
+170 6 64
+171 6 64
+172 6 64
+173 6 64
+174 6 64
+175 6 64
+176 6 64
+177 6 64
+178 6 64
+179 6 64
+180 6 64
+181 6 64
+182 6 64
+183 6 64
+184 6 64
+185 6 64
+186 6 64
+187 6 64
+188 6 64
+189 6 64
+190 6 64
+191 6 64
+192 6 64
+193 6 64
+194 6 64
+195 6 64
+196 6 64
+197 6 64
+198 6 64
+199 6 64
+200 6 64
+201 6 64
+202 6 64
+203 6 64
+204 6 64
+205 6 64
+206 6 64
+207 6 64
+208 6 64
+209 6 64
+210 6 64
+211 6 64
+212 6 64
+213 6 64
+214 6 64
+215 6 64
+216 6 64
+217 6 64
+218 6 64
+219 6 64
+220 6 64
+221 6 64
+222 6 64
+223 6 64
+224 6 64
+225 6 64
+226 6 64
+227 6 64
+228 6 64
+229 6 64
+230 6 64
+231 6 64
+232 6 64
+233 6 64
+234 6 64
+235 6 64
+236 6 64
+237 6 64
+238 6 64
+239 6 64
+240 6 64
+241 6 64
+242 6 64
+243 6 64
+244 6 64
+245 6 64
+246 6 64
+247 6 64
+248 6 64
+249 6 64
+250 6 64
+251 6 64
+252 6 64
+253 6 64
+254 6 64
+255 6 64
+0 5 64
+1 5 64
+2 5 64
+3 5 64
+4 5 64
+5 5 64
+6 5 64
+7 5 64
+8 5 64
+9 5 64
+10 5 64
+11 5 64
+12 5 64
+13 5 64
+14 5 64
+15 5 64
+16 5 64
+17 5 64
+18 5 64
+19 5 64
+20 5 64
+21 5 64
+22 5 64
+23 5 64
+24 5 64
+25 5 64
+26 5 64
+27 5 64
+28 5 64
+29 5 64
+30 5 64
+31 5 64
+32 5 64
+33 5 64
+34 5 64
+35 5 64
+36 5 64
+37 5 64
+38 5 64
+39 5 64
+40 5 64
+41 5 64
+42 5 64
+43 5 64
+44 5 64
+45 5 64
+46 5 64
+47 5 64
+48 5 64
+49 5 64
+50 5 64
+51 5 64
+52 5 64
+53 5 64
+54 5 64
+55 5 64
+56 5 64
+57 5 64
+58 5 64
+59 5 64
+60 5 64
+61 5 64
+62 5 64
+63 5 64
+64 5 64
+65 5 64
+66 5 64
+67 5 64
+68 5 64
+69 5 64
+70 5 64
+71 5 64
+72 5 64
+73 5 64
+74 5 64
+75 5 64
+76 5 64
+77 5 64
+78 5 64
+79 5 64
+80 5 64
+81 5 64
+82 5 64
+83 5 64
+84 5 64
+85 5 64
+86 5 64
+87 5 64
+88 5 64
+89 5 64
+90 5 64
+91 5 64
+92 5 64
+93 5 64
+94 5 64
+95 5 64
+96 5 64
+97 5 64
+98 5 64
+99 5 64
+100 5 64
+101 5 64
+102 5 64
+103 5 64
+104 5 64
+105 5 64
+106 5 64
+107 5 64
+108 5 64
+109 5 64
+110 5 64
+111 5 64
+112 5 64
+113 5 64
+114 5 64
+115 5 64
+116 5 64
+117 5 64
+118 5 64
+119 5 64
+120 5 64
+121 5 64
+122 5 64
+123 5 64
+124 5 64
+125 5 64
+126 5 64
+127 5 64
+128 5 64
+129 5 64
+130 5 64
+131 5 64
+132 5 64
+133 5 64
+134 5 64
+135 5 64
+136 5 64
+137 5 64
+138 5 64
+139 5 64
+140 5 64
+141 5 64
+142 5 64
+143 5 64
+144 5 64
+145 5 64
+146 5 64
+147 5 64
+148 5 64
+149 5 64
+150 5 64
+151 5 64
+152 5 64
+153 5 64
+154 5 64
+155 5 64
+156 5 64
+157 5 64
+158 5 64
+159 5 64
+160 5 64
+161 5 64
+162 5 64
+163 5 64
+164 5 64
+165 5 64
+166 5 64
+167 5 64
+168 5 64
+169 5 64
+170 5 64
+171 5 64
+172 5 64
+173 5 64
+174 5 64
+175 5 64
+176 5 64
+177 5 64
+178 5 64
+179 5 64
+180 5 64
+181 5 64
+182 5 64
+183 5 64
+184 5 64
+185 5 64
+186 5 64
+187 5 64
+188 5 64
+189 5 64
+190 5 64
+191 5 64
+192 5 64
+193 5 64
+194 5 64
+195 5 64
+196 5 64
+197 5 64
+198 5 64
+199 5 64
+200 5 64
+201 5 64
+202 5 64
+203 5 64
+204 5 64
+205 5 64
+206 5 64
+207 5 64
+208 5 64
+209 5 64
+210 5 64
+211 5 64
+212 5 64
+213 5 64
+214 5 64
+215 5 64
+216 5 64
+217 5 64
+218 5 64
+219 5 64
+220 5 64
+221 5 64
+222 5 64
+223 5 64
+224 5 64
+225 5 64
+226 5 64
+227 5 64
+228 5 64
+229 5 64
+230 5 64
+231 5 64
+232 5 64
+233 5 64
+234 5 64
+235 5 64
+236 5 64
+237 5 64
+238 5 64
+239 5 64
+240 5 64
+241 5 64
+242 5 64
+243 5 64
+244 5 64
+245 5 64
+246 5 64
+247 5 64
+248 5 64
+249 5 64
+250 5 64
+251 5 64
+252 5 64
+253 5 64
+254 5 64
+255 5 64
+0 4 64
+1 4 64
+2 4 64
+3 4 64
+4 4 64
+5 4 64
+6 4 64
+7 4 64
+8 4 64
+9 4 64
+10 4 64
+11 4 64
+12 4 64
+13 4 64
+14 4 64
+15 4 64
+16 4 64
+17 4 64
+18 4 64
+19 4 64
+20 4 64
+21 4 64
+22 4 64
+23 4 64
+24 4 64
+25 4 64
+26 4 64
+27 4 64
+28 4 64
+29 4 64
+30 4 64
+31 4 64
+32 4 64
+33 4 64
+34 4 64
+35 4 64
+36 4 64
+37 4 64
+38 4 64
+39 4 64
+40 4 64
+41 4 64
+42 4 64
+43 4 64
+44 4 64
+45 4 64
+46 4 64
+47 4 64
+48 4 64
+49 4 64
+50 4 64
+51 4 64
+52 4 64
+53 4 64
+54 4 64
+55 4 64
+56 4 64
+57 4 64
+58 4 64
+59 4 64
+60 4 64
+61 4 64
+62 4 64
+63 4 64
+64 4 64
+65 4 64
+66 4 64
+67 4 64
+68 4 64
+69 4 64
+70 4 64
+71 4 64
+72 4 64
+73 4 64
+74 4 64
+75 4 64
+76 4 64
+77 4 64
+78 4 64
+79 4 64
+80 4 64
+81 4 64
+82 4 64
+83 4 64
+84 4 64
+85 4 64
+86 4 64
+87 4 64
+88 4 64
+89 4 64
+90 4 64
+91 4 64
+92 4 64
+93 4 64
+94 4 64
+95 4 64
+96 4 64
+97 4 64
+98 4 64
+99 4 64
+100 4 64
+101 4 64
+102 4 64
+103 4 64
+104 4 64
+105 4 64
+106 4 64
+107 4 64
+108 4 64
+109 4 64
+110 4 64
+111 4 64
+112 4 64
+113 4 64
+114 4 64
+115 4 64
+116 4 64
+117 4 64
+118 4 64
+119 4 64
+120 4 64
+121 4 64
+122 4 64
+123 4 64
+124 4 64
+125 4 64
+126 4 64
+127 4 64
+128 4 64
+129 4 64
+130 4 64
+131 4 64
+132 4 64
+133 4 64
+134 4 64
+135 4 64
+136 4 64
+137 4 64
+138 4 64
+139 4 64
+140 4 64
+141 4 64
+142 4 64
+143 4 64
+144 4 64
+145 4 64
+146 4 64
+147 4 64
+148 4 64
+149 4 64
+150 4 64
+151 4 64
+152 4 64
+153 4 64
+154 4 64
+155 4 64
+156 4 64
+157 4 64
+158 4 64
+159 4 64
+160 4 64
+161 4 64
+162 4 64
+163 4 64
+164 4 64
+165 4 64
+166 4 64
+167 4 64
+168 4 64
+169 4 64
+170 4 64
+171 4 64
+172 4 64
+173 4 64
+174 4 64
+175 4 64
+176 4 64
+177 4 64
+178 4 64
+179 4 64
+180 4 64
+181 4 64
+182 4 64
+183 4 64
+184 4 64
+185 4 64
+186 4 64
+187 4 64
+188 4 64
+189 4 64
+190 4 64
+191 4 64
+192 4 64
+193 4 64
+194 4 64
+195 4 64
+196 4 64
+197 4 64
+198 4 64
+199 4 64
+200 4 64
+201 4 64
+202 4 64
+203 4 64
+204 4 64
+205 4 64
+206 4 64
+207 4 64
+208 4 64
+209 4 64
+210 4 64
+211 4 64
+212 4 64
+213 4 64
+214 4 64
+215 4 64
+216 4 64
+217 4 64
+218 4 64
+219 4 64
+220 4 64
+221 4 64
+222 4 64
+223 4 64
+224 4 64
+225 4 64
+226 4 64
+227 4 64
+228 4 64
+229 4 64
+230 4 64
+231 4 64
+232 4 64
+233 4 64
+234 4 64
+235 4 64
+236 4 64
+237 4 64
+238 4 64
+239 4 64
+240 4 64
+241 4 64
+242 4 64
+243 4 64
+244 4 64
+245 4 64
+246 4 64
+247 4 64
+248 4 64
+249 4 64
+250 4 64
+251 4 64
+252 4 64
+253 4 64
+254 4 64
+255 4 64
+0 3 64
+1 3 64
+2 3 64
+3 3 64
+4 3 64
+5 3 64
+6 3 64
+7 3 64
+8 3 64
+9 3 64
+10 3 64
+11 3 64
+12 3 64
+13 3 64
+14 3 64
+15 3 64
+16 3 64
+17 3 64
+18 3 64
+19 3 64
+20 3 64
+21 3 64
+22 3 64
+23 3 64
+24 3 64
+25 3 64
+26 3 64
+27 3 64
+28 3 64
+29 3 64
+30 3 64
+31 3 64
+32 3 64
+33 3 64
+34 3 64
+35 3 64
+36 3 64
+37 3 64
+38 3 64
+39 3 64
+40 3 64
+41 3 64
+42 3 64
+43 3 64
+44 3 64
+45 3 64
+46 3 64
+47 3 64
+48 3 64
+49 3 64
+50 3 64
+51 3 64
+52 3 64
+53 3 64
+54 3 64
+55 3 64
+56 3 64
+57 3 64
+58 3 64
+59 3 64
+60 3 64
+61 3 64
+62 3 64
+63 3 64
+64 3 64
+65 3 64
+66 3 64
+67 3 64
+68 3 64
+69 3 64
+70 3 64
+71 3 64
+72 3 64
+73 3 64
+74 3 64
+75 3 64
+76 3 64
+77 3 64
+78 3 64
+79 3 64
+80 3 64
+81 3 64
+82 3 64
+83 3 64
+84 3 64
+85 3 64
+86 3 64
+87 3 64
+88 3 64
+89 3 64
+90 3 64
+91 3 64
+92 3 64
+93 3 64
+94 3 64
+95 3 64
+96 3 64
+97 3 64
+98 3 64
+99 3 64
+100 3 64
+101 3 64
+102 3 64
+103 3 64
+104 3 64
+105 3 64
+106 3 64
+107 3 64
+108 3 64
+109 3 64
+110 3 64
+111 3 64
+112 3 64
+113 3 64
+114 3 64
+115 3 64
+116 3 64
+117 3 64
+118 3 64
+119 3 64
+120 3 64
+121 3 64
+122 3 64
+123 3 64
+124 3 64
+125 3 64
+126 3 64
+127 3 64
+128 3 64
+129 3 64
+130 3 64
+131 3 64
+132 3 64
+133 3 64
+134 3 64
+135 3 64
+136 3 64
+137 3 64
+138 3 64
+139 3 64
+140 3 64
+141 3 64
+142 3 64
+143 3 64
+144 3 64
+145 3 64
+146 3 64
+147 3 64
+148 3 64
+149 3 64
+150 3 64
+151 3 64
+152 3 64
+153 3 64
+154 3 64
+155 3 64
+156 3 64
+157 3 64
+158 3 64
+159 3 64
+160 3 64
+161 3 64
+162 3 64
+163 3 64
+164 3 64
+165 3 64
+166 3 64
+167 3 64
+168 3 64
+169 3 64
+170 3 64
+171 3 64
+172 3 64
+173 3 64
+174 3 64
+175 3 64
+176 3 64
+177 3 64
+178 3 64
+179 3 64
+180 3 64
+181 3 64
+182 3 64
+183 3 64
+184 3 64
+185 3 64
+186 3 64
+187 3 64
+188 3 64
+189 3 64
+190 3 64
+191 3 64
+192 3 64
+193 3 64
+194 3 64
+195 3 64
+196 3 64
+197 3 64
+198 3 64
+199 3 64
+200 3 64
+201 3 64
+202 3 64
+203 3 64
+204 3 64
+205 3 64
+206 3 64
+207 3 64
+208 3 64
+209 3 64
+210 3 64
+211 3 64
+212 3 64
+213 3 64
+214 3 64
+215 3 64
+216 3 64
+217 3 64
+218 3 64
+219 3 64
+220 3 64
+221 3 64
+222 3 64
+223 3 64
+224 3 64
+225 3 64
+226 3 64
+227 3 64
+228 3 64
+229 3 64
+230 3 64
+231 3 64
+232 3 64
+233 3 64
+234 3 64
+235 3 64
+236 3 64
+237 3 64
+238 3 64
+239 3 64
+240 3 64
+241 3 64
+242 3 64
+243 3 64
+244 3 64
+245 3 64
+246 3 64
+247 3 64
+248 3 64
+249 3 64
+250 3 64
+251 3 64
+252 3 64
+253 3 64
+254 3 64
+255 3 64
+0 2 64
+1 2 64
+2 2 64
+3 2 64
+4 2 64
+5 2 64
+6 2 64
+7 2 64
+8 2 64
+9 2 64
+10 2 64
+11 2 64
+12 2 64
+13 2 64
+14 2 64
+15 2 64
+16 2 64
+17 2 64
+18 2 64
+19 2 64
+20 2 64
+21 2 64
+22 2 64
+23 2 64
+24 2 64
+25 2 64
+26 2 64
+27 2 64
+28 2 64
+29 2 64
+30 2 64
+31 2 64
+32 2 64
+33 2 64
+34 2 64
+35 2 64
+36 2 64
+37 2 64
+38 2 64
+39 2 64
+40 2 64
+41 2 64
+42 2 64
+43 2 64
+44 2 64
+45 2 64
+46 2 64
+47 2 64
+48 2 64
+49 2 64
+50 2 64
+51 2 64
+52 2 64
+53 2 64
+54 2 64
+55 2 64
+56 2 64
+57 2 64
+58 2 64
+59 2 64
+60 2 64
+61 2 64
+62 2 64
+63 2 64
+64 2 64
+65 2 64
+66 2 64
+67 2 64
+68 2 64
+69 2 64
+70 2 64
+71 2 64
+72 2 64
+73 2 64
+74 2 64
+75 2 64
+76 2 64
+77 2 64
+78 2 64
+79 2 64
+80 2 64
+81 2 64
+82 2 64
+83 2 64
+84 2 64
+85 2 64
+86 2 64
+87 2 64
+88 2 64
+89 2 64
+90 2 64
+91 2 64
+92 2 64
+93 2 64
+94 2 64
+95 2 64
+96 2 64
+97 2 64
+98 2 64
+99 2 64
+100 2 64
+101 2 64
+102 2 64
+103 2 64
+104 2 64
+105 2 64
+106 2 64
+107 2 64
+108 2 64
+109 2 64
+110 2 64
+111 2 64
+112 2 64
+113 2 64
+114 2 64
+115 2 64
+116 2 64
+117 2 64
+118 2 64
+119 2 64
+120 2 64
+121 2 64
+122 2 64
+123 2 64
+124 2 64
+125 2 64
+126 2 64
+127 2 64
+128 2 64
+129 2 64
+130 2 64
+131 2 64
+132 2 64
+133 2 64
+134 2 64
+135 2 64
+136 2 64
+137 2 64
+138 2 64
+139 2 64
+140 2 64
+141 2 64
+142 2 64
+143 2 64
+144 2 64
+145 2 64
+146 2 64
+147 2 64
+148 2 64
+149 2 64
+150 2 64
+151 2 64
+152 2 64
+153 2 64
+154 2 64
+155 2 64
+156 2 64
+157 2 64
+158 2 64
+159 2 64
+160 2 64
+161 2 64
+162 2 64
+163 2 64
+164 2 64
+165 2 64
+166 2 64
+167 2 64
+168 2 64
+169 2 64
+170 2 64
+171 2 64
+172 2 64
+173 2 64
+174 2 64
+175 2 64
+176 2 64
+177 2 64
+178 2 64
+179 2 64
+180 2 64
+181 2 64
+182 2 64
+183 2 64
+184 2 64
+185 2 64
+186 2 64
+187 2 64
+188 2 64
+189 2 64
+190 2 64
+191 2 64
+192 2 64
+193 2 64
+194 2 64
+195 2 64
+196 2 64
+197 2 64
+198 2 64
+199 2 64
+200 2 64
+201 2 64
+202 2 64
+203 2 64
+204 2 64
+205 2 64
+206 2 64
+207 2 64
+208 2 64
+209 2 64
+210 2 64
+211 2 64
+212 2 64
+213 2 64
+214 2 64
+215 2 64
+216 2 64
+217 2 64
+218 2 64
+219 2 64
+220 2 64
+221 2 64
+222 2 64
+223 2 64
+224 2 64
+225 2 64
+226 2 64
+227 2 64
+228 2 64
+229 2 64
+230 2 64
+231 2 64
+232 2 64
+233 2 64
+234 2 64
+235 2 64
+236 2 64
+237 2 64
+238 2 64
+239 2 64
+240 2 64
+241 2 64
+242 2 64
+243 2 64
+244 2 64
+245 2 64
+246 2 64
+247 2 64
+248 2 64
+249 2 64
+250 2 64
+251 2 64
+252 2 64
+253 2 64
+254 2 64
+255 2 64
+0 1 64
+1 1 64
+2 1 64
+3 1 64
+4 1 64
+5 1 64
+6 1 64
+7 1 64
+8 1 64
+9 1 64
+10 1 64
+11 1 64
+12 1 64
+13 1 64
+14 1 64
+15 1 64
+16 1 64
+17 1 64
+18 1 64
+19 1 64
+20 1 64
+21 1 64
+22 1 64
+23 1 64
+24 1 64
+25 1 64
+26 1 64
+27 1 64
+28 1 64
+29 1 64
+30 1 64
+31 1 64
+32 1 64
+33 1 64
+34 1 64
+35 1 64
+36 1 64
+37 1 64
+38 1 64
+39 1 64
+40 1 64
+41 1 64
+42 1 64
+43 1 64
+44 1 64
+45 1 64
+46 1 64
+47 1 64
+48 1 64
+49 1 64
+50 1 64
+51 1 64
+52 1 64
+53 1 64
+54 1 64
+55 1 64
+56 1 64
+57 1 64
+58 1 64
+59 1 64
+60 1 64
+61 1 64
+62 1 64
+63 1 64
+64 1 64
+65 1 64
+66 1 64
+67 1 64
+68 1 64
+69 1 64
+70 1 64
+71 1 64
+72 1 64
+73 1 64
+74 1 64
+75 1 64
+76 1 64
+77 1 64
+78 1 64
+79 1 64
+80 1 64
+81 1 64
+82 1 64
+83 1 64
+84 1 64
+85 1 64
+86 1 64
+87 1 64
+88 1 64
+89 1 64
+90 1 64
+91 1 64
+92 1 64
+93 1 64
+94 1 64
+95 1 64
+96 1 64
+97 1 64
+98 1 64
+99 1 64
+100 1 64
+101 1 64
+102 1 64
+103 1 64
+104 1 64
+105 1 64
+106 1 64
+107 1 64
+108 1 64
+109 1 64
+110 1 64
+111 1 64
+112 1 64
+113 1 64
+114 1 64
+115 1 64
+116 1 64
+117 1 64
+118 1 64
+119 1 64
+120 1 64
+121 1 64
+122 1 64
+123 1 64
+124 1 64
+125 1 64
+126 1 64
+127 1 64
+128 1 64
+129 1 64
+130 1 64
+131 1 64
+132 1 64
+133 1 64
+134 1 64
+135 1 64
+136 1 64
+137 1 64
+138 1 64
+139 1 64
+140 1 64
+141 1 64
+142 1 64
+143 1 64
+144 1 64
+145 1 64
+146 1 64
+147 1 64
+148 1 64
+149 1 64
+150 1 64
+151 1 64
+152 1 64
+153 1 64
+154 1 64
+155 1 64
+156 1 64
+157 1 64
+158 1 64
+159 1 64
+160 1 64
+161 1 64
+162 1 64
+163 1 64
+164 1 64
+165 1 64
+166 1 64
+167 1 64
+168 1 64
+169 1 64
+170 1 64
+171 1 64
+172 1 64
+173 1 64
+174 1 64
+175 1 64
+176 1 64
+177 1 64
+178 1 64
+179 1 64
+180 1 64
+181 1 64
+182 1 64
+183 1 64
+184 1 64
+185 1 64
+186 1 64
+187 1 64
+188 1 64
+189 1 64
+190 1 64
+191 1 64
+192 1 64
+193 1 64
+194 1 64
+195 1 64
+196 1 64
+197 1 64
+198 1 64
+199 1 64
+200 1 64
+201 1 64
+202 1 64
+203 1 64
+204 1 64
+205 1 64
+206 1 64
+207 1 64
+208 1 64
+209 1 64
+210 1 64
+211 1 64
+212 1 64
+213 1 64
+214 1 64
+215 1 64
+216 1 64
+217 1 64
+218 1 64
+219 1 64
+220 1 64
+221 1 64
+222 1 64
+223 1 64
+224 1 64
+225 1 64
+226 1 64
+227 1 64
+228 1 64
+229 1 64
+230 1 64
+231 1 64
+232 1 64
+233 1 64
+234 1 64
+235 1 64
+236 1 64
+237 1 64
+238 1 64
+239 1 64
+240 1 64
+241 1 64
+242 1 64
+243 1 64
+244 1 64
+245 1 64
+246 1 64
+247 1 64
+248 1 64
+249 1 64
+250 1 64
+251 1 64
+252 1 64
+253 1 64
+254 1 64
+255 1 64
+0 0 64
+1 0 64
+2 0 64
+3 0 64
+4 0 64
+5 0 64
+6 0 64
+7 0 64
+8 0 64
+9 0 64
+10 0 64
+11 0 64
+12 0 64
+13 0 64
+14 0 64
+15 0 64
+16 0 64
+17 0 64
+18 0 64
+19 0 64
+20 0 64
+21 0 64
+22 0 64
+23 0 64
+24 0 64
+25 0 64
+26 0 64
+27 0 64
+28 0 64
+29 0 64
+30 0 64
+31 0 64
+32 0 64
+33 0 64
+34 0 64
+35 0 64
+36 0 64
+37 0 64
+38 0 64
+39 0 64
+40 0 64
+41 0 64
+42 0 64
+43 0 64
+44 0 64
+45 0 64
+46 0 64
+47 0 64
+48 0 64
+49 0 64
+50 0 64
+51 0 64
+52 0 64
+53 0 64
+54 0 64
+55 0 64
+56 0 64
+57 0 64
+58 0 64
+59 0 64
+60 0 64
+61 0 64
+62 0 64
+63 0 64
+64 0 64
+65 0 64
+66 0 64
+67 0 64
+68 0 64
+69 0 64
+70 0 64
+71 0 64
+72 0 64
+73 0 64
+74 0 64
+75 0 64
+76 0 64
+77 0 64
+78 0 64
+79 0 64
+80 0 64
+81 0 64
+82 0 64
+83 0 64
+84 0 64
+85 0 64
+86 0 64
+87 0 64
+88 0 64
+89 0 64
+90 0 64
+91 0 64
+92 0 64
+93 0 64
+94 0 64
+95 0 64
+96 0 64
+97 0 64
+98 0 64
+99 0 64
+100 0 64
+101 0 64
+102 0 64
+103 0 64
+104 0 64
+105 0 64
+106 0 64
+107 0 64
+108 0 64
+109 0 64
+110 0 64
+111 0 64
+112 0 64
+113 0 64
+114 0 64
+115 0 64
+116 0 64
+117 0 64
+118 0 64
+119 0 64
+120 0 64
+121 0 64
+122 0 64
+123 0 64
+124 0 64
+125 0 64
+126 0 64
+127 0 64
+128 0 64
+129 0 64
+130 0 64
+131 0 64
+132 0 64
+133 0 64
+134 0 64
+135 0 64
+136 0 64
+137 0 64
+138 0 64
+139 0 64
+140 0 64
+141 0 64
+142 0 64
+143 0 64
+144 0 64
+145 0 64
+146 0 64
+147 0 64
+148 0 64
+149 0 64
+150 0 64
+151 0 64
+152 0 64
+153 0 64
+154 0 64
+155 0 64
+156 0 64
+157 0 64
+158 0 64
+159 0 64
+160 0 64
+161 0 64
+162 0 64
+163 0 64
+164 0 64
+165 0 64
+166 0 64
+167 0 64
+168 0 64
+169 0 64
+170 0 64
+171 0 64
+172 0 64
+173 0 64
+174 0 64
+175 0 64
+176 0 64
+177 0 64
+178 0 64
+179 0 64
+180 0 64
+181 0 64
+182 0 64
+183 0 64
+184 0 64
+185 0 64
+186 0 64
+187 0 64
+188 0 64
+189 0 64
+190 0 64
+191 0 64
+192 0 64
+193 0 64
+194 0 64
+195 0 64
+196 0 64
+197 0 64
+198 0 64
+199 0 64
+200 0 64
+201 0 64
+202 0 64
+203 0 64
+204 0 64
+205 0 64
+206 0 64
+207 0 64
+208 0 64
+209 0 64
+210 0 64
+211 0 64
+212 0 64
+213 0 64
+214 0 64
+215 0 64
+216 0 64
+217 0 64
+218 0 64
+219 0 64
+220 0 64
+221 0 64
+222 0 64
+223 0 64
+224 0 64
+225 0 64
+226 0 64
+227 0 64
+228 0 64
+229 0 64
+230 0 64
+231 0 64
+232 0 64
+233 0 64
+234 0 64
+235 0 64
+236 0 64
+237 0 64
+238 0 64
+239 0 64
+240 0 64
+241 0 64
+242 0 64
+243 0 64
+244 0 64
+245 0 64
+246 0 64
+247 0 64
+248 0 64
+249 0 64
+250 0 64
+251 0 64
+252 0 64
+253 0 64
+254 0 64
+255 0 64
diff --git a/linux/raytracing/3.expected.ppm b/linux/raytracing/3.expected.ppm
new file mode 100644
index 00000000..6d5b91ca
--- /dev/null
+++ b/linux/raytracing/3.expected.ppm
@@ -0,0 +1,90003 @@
+P3
+400 225
+255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+191 216 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
diff --git a/linux/raytracing/3.mu b/linux/raytracing/3.mu
new file mode 100644
index 00000000..e190222d
--- /dev/null
+++ b/linux/raytracing/3.mu
@@ -0,0 +1,484 @@
+# Listing 9 of https://raytracing.github.io/books/RayTracingInOneWeekend.html
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/raytracing/3.mu
+#   $ ./a.elf > 3.ppm
+
+fn ray-color _in: (addr ray), _out: (addr rgb) {
+  var in/esi: (addr ray) <- copy _in
+  var out/edi: (addr rgb) <- copy _out
+  var dir/eax: (addr vec3) <- get in, dir
+#?   print-string 0, "r.dir: "
+#?   print-vec3 0, dir
+#?   print-string 0, "\n"
+  var unit-storage: vec3
+  var unit/ecx: (addr vec3) <- address unit-storage
+  vec3-unit dir, unit
+#?   print-string 0, "r.dir normalized: "
+#?   print-vec3 0, unit
+#?   print-string 0, "\n"
+  var y-addr/eax: (addr float) <- get unit, y
+  # t = (dir.y + 1.0) / 2.0
+  var t/xmm0: float <- copy *y-addr
+  var one/eax: int <- copy 1
+  var one-f/xmm1: float <- convert one
+  t <- add one-f
+  var two/eax: int <- copy 2
+  var two-f/xmm2: float <- convert two
+  t <- divide two-f
+#?   print-string 0, "t: "
+#?   print-float-hex 0, t
+#?   print-string 0, "\n"
+  # whitening = (1.0 - t) * white
+  var whitening-storage: rgb
+  var whitening/ecx: (addr rgb) <- address whitening-storage
+  rgb-white whitening
+  var one-minus-t/xmm3: float <- copy one-f
+  one-minus-t <- subtract t
+  rgb-scale-up whitening, one-minus-t
+#?   print-string 0, "whitening: "
+#?   print-rgb-raw 0, whitening
+#?   print-string 0, "\n"
+  # out = t * (0.5, 0.7, 1.0)
+  var dest/eax: (addr float) <- get out, r
+  fill-in-rational dest, 5, 0xa
+  dest <- get out, g
+  fill-in-rational dest, 7, 0xa
+  dest <- get out, b
+  copy-to *dest, one-f
+  rgb-scale-up out, t
+#?   print-string 0, "base: "
+#?   print-rgb-raw 0, out
+#?   print-string 0, "\n"
+  # blend with whitening
+  rgb-add-to out, whitening
+#?   print-string 0, "result: "
+#?   print-rgb-raw 0, out
+#?   print-string 0, "\n"
+}
+
+fn main -> _/ebx: int {
+
+  # image
+  #   width = 400
+  #   height = 400 * 9/16 = 225
+  var aspect: float
+  var aspect-addr/eax: (addr float) <- address aspect
+  fill-in-rational aspect-addr, 0x10, 9  # 16/9
+#?   print-string 0, "aspect ratio: "
+#?   print-float-hex 0, aspect
+#?   print-string 0, " "
+#?   {
+#?     var foo2/ebx: int <- reinterpret aspect
+#?     print-int32-hex 0, foo2
+#?   }
+#?   print-string 0, "\n"
+
+  # camera
+
+  # viewport-height = 2.0
+  var tmp/eax: int <- copy 2
+  var two-f/xmm4: float <- convert tmp
+  var viewport-height/xmm7: float <- copy two-f
+#?   print-string 0, "viewport height: "
+#?   print-float-hex 0, viewport-height
+#?   print-string 0, " "
+#?   {
+#?     var foo: float
+#?     copy-to foo, viewport-height
+#?     var foo2/ebx: int <- reinterpret foo
+#?     print-int32-hex 0, foo2
+#?   }
+#?   print-string 0, "\n"
+  # viewport-width = aspect * viewport-height
+  var viewport-width/xmm6: float <- convert tmp
+  viewport-width <- multiply aspect
+#?   print-string 0, "viewport width: "
+#?   print-float-hex 0, viewport-width
+#?   print-string 0, " "
+#?   {
+#?     var foo: float
+#?     copy-to foo, viewport-width
+#?     var foo2/ebx: int <- reinterpret foo
+#?     print-int32-hex 0, foo2
+#?   }
+#?   print-string 0, "\n"
+  # focal-length = 1.0
+  tmp <- copy 1
+  var focal-length/xmm5: float <- convert tmp
+
+  # origin = point3(0, 0, 0)
+  var origin-storage: vec3
+  var origin/edi: (addr vec3) <- address origin-storage
+  # horizontal = vec3(viewport-width, 0, 0)
+  var horizontal-storage: vec3
+  var dest/eax: (addr float) <- get horizontal-storage, x
+  copy-to *dest, viewport-width
+  var horizontal/ebx: (addr vec3) <- address horizontal-storage
+  # vertical = vec3(0, viewport-height, 0)
+  var vertical-storage: vec3
+  dest <- get vertical-storage, y
+  copy-to *dest, viewport-height
+  var vertical/edx: (addr vec3) <- address vertical-storage
+  # lower-left-corner = origin - horizontal/2 - vertical/2 - vec3(0, 0, focal-length)
+  # . lower-left-corner = origin
+  var lower-left-corner-storage: vec3
+  var lower-left-corner/esi: (addr vec3) <- address lower-left-corner-storage
+  copy-object origin, lower-left-corner
+  # . lower-left-corner -= horizontal/2
+  var tmp2: vec3
+  var tmp2-addr/eax: (addr vec3) <- address tmp2
+  copy-object horizontal, tmp2-addr
+  vec3-scale-down tmp2-addr, two-f
+  vec3-subtract-from lower-left-corner, tmp2-addr
+  # . lower-left-corner -= vertical/2
+  copy-object vertical, tmp2-addr
+  vec3-scale-down tmp2-addr, two-f
+  vec3-subtract-from lower-left-corner, tmp2-addr
+  # . lower-left-corner -= vec3(0, 0, focal-length)
+  var dest2/ecx: (addr float) <- get lower-left-corner, z
+  var tmp3/xmm0: float <- copy *dest2
+  tmp3 <- subtract focal-length
+  copy-to *dest2, tmp3
+  # phew!
+
+  # render
+
+  # live variables at this point:
+  #   origin (edi)
+  #   lower-left-corner (esi)
+  #   horizontal (ebx)
+  #   vertical (edx)
+  # floating-point registers are all free
+  print-string 0, "P3\n400 225\n255\n"  # 225 = image height
+  var tmp/eax: int <- copy 0x18f # image width - 1
+  var image-width-1/xmm7: float <- convert tmp
+  tmp <- copy 0xe0  # image height - 1
+  var image-height-1/xmm6: float <- convert tmp
+  #
+  var j/ecx: int <- copy 0xe0  # 224
+  {
+    compare j, 0
+    break-if-<
+    var i/eax: int <- copy 0
+    {
+      compare i, 0x190  # 400 = image width
+      break-if->=
+      # u = i / (image-width - 1)
+      var u/xmm0: float <- convert i
+      u <- divide image-width-1
+#?       print-string 0, "u: "
+#?       print-float-hex 0, u
+#?       print-string 0, "\n"
+      # v = j / (image-height - 1)
+      var v/xmm1: float <- convert j
+      v <- divide image-height-1
+      # r = ray(origin, lower-left-corner + u*horizontal + v*vertical - origin)
+      var r-storage: ray
+      # . . we're running out of int registers now,
+      # . . but luckily we don't need i and j in the rest of this loop iteration,
+      # . . so we'll just spill them in a block
+      {
+        # . r.orig = origin
+        var r/eax: (addr ray) <- address r-storage
+        var dest/ecx: (addr vec3) <- get r, orig
+        copy-object origin, dest
+        # . r.dir = lower-left-corner
+        dest <- get r, dir
+        copy-object lower-left-corner, dest
+        # . r.dir += horizontal*u
+        var tmp-vec3: vec3
+        var tmp/eax: (addr vec3) <- address tmp-vec3
+        copy-object horizontal, tmp
+        vec3-scale-up tmp, u
+        vec3-add-to dest, tmp
+        # . r.dir += vertical*v
+        copy-object vertical, tmp
+        vec3-scale-up tmp, v
+        vec3-add-to dest, tmp
+        # . r.dir -= origin
+        vec3-subtract-from dest, origin
+#?         print-string 0, "ray direction: "
+#?         print-vec3 0, dest
+#?         print-string 0, "\n"
+      }
+      # pixel-color = ray-color(r)
+      var c-storage: rgb
+      var c/ecx: (addr rgb) <- address c-storage
+      {
+        var r/eax: (addr ray) <- address r-storage
+        ray-color r, c
+        # write color
+        print-rgb 0, c
+#?         print-rgb-raw 0, c
+#?         print-string 0, "\n"
+      }
+      i <- increment
+      loop
+    }
+    j <- decrement
+    loop
+  }
+  return 0
+}
+
+type ray {
+  orig: vec3  # point
+  dir: vec3
+}
+
+# A little different from the constructor at https://raytracing.github.io/books/RayTracingInOneWeekend.html
+# We immediately normalize the direction vector so we don't have to keep doing
+# so.
+fn initialize-ray _self: (addr ray), o: (addr vec3), d: (addr vec3) {
+  var self/esi: (addr ray) <- copy _self
+  var dest/eax: (addr vec3) <- get self, orig
+  copy-object o, dest
+  dest <- get self, dir
+  vec3-unit d, dest
+}
+
+fn ray-at _self: (addr ray), t: float, out: (addr vec3) {
+  var self/esi: (addr ray) <- copy _self
+  var src/eax: (addr vec3) <- get self, dir
+  copy-object src, out
+  vec3-scale-up out, t
+  src <- get self, orig
+  vec3-add-to out, src
+}
+
+type rgb {
+  # components normalized to within [0.0, 1.0]
+  r: float
+  g: float
+  b: float
+}
+
+# print translating to [0, 256)
+fn print-rgb screen: (addr screen), _c: (addr rgb) {
+  var c/esi: (addr rgb) <- copy _c
+  var xn: float
+  var xn-addr/ecx: (addr float) <- address xn
+  fill-in-rational xn-addr, 0x3e7ff, 0x3e8  # 255999 / 1000
+  # print 255.999 * c->r
+  var result/xmm0: float <- copy xn
+  var src-addr/eax: (addr float) <- get c, r
+  result <- multiply *src-addr
+  var result-int/edx: int <- truncate result
+  print-int32-decimal screen, result-int
+  print-string screen, " "
+  # print 255.999 * c->g
+  src-addr <- get c, g
+  result <- copy xn
+  result <- multiply *src-addr
+  result-int <- truncate result
+  print-int32-decimal screen, result-int
+  print-string screen, " "
+  # print 255.999 * c->b
+  src-addr <- get c, b
+  result <- copy xn
+  result <- multiply *src-addr
+  result-int <- truncate result
+  print-int32-decimal screen, result-int
+  print-string screen, "\n"
+}
+
+fn print-rgb-raw screen: (addr screen), _v: (addr rgb) {
+  var v/esi: (addr rgb) <- copy _v
+  print-string screen, "("
+  var tmp/eax: (addr float) <- get v, r
+  print-float-hex screen, *tmp
+  print-string screen, ", "
+  tmp <- get v, g
+  print-float-hex screen, *tmp
+  print-string screen, ", "
+  tmp <- get v, b
+  print-float-hex screen, *tmp
+  print-string screen, ")"
+}
+
+fn rgb-white _c: (addr rgb) {
+  var c/esi: (addr rgb) <- copy _c
+  var one/eax: int <- copy 1
+  var one-f/xmm0: float <- convert one
+  var dest/edi: (addr float) <- get c, r
+  copy-to *dest, one-f
+  dest <- get c, g
+  copy-to *dest, one-f
+  dest <- get c, b
+  copy-to *dest, one-f
+}
+
+fn rgb-add-to _c1: (addr rgb), _c2: (addr rgb) {
+  var c1/edi: (addr rgb) <- copy _c1
+  var c2/esi: (addr rgb) <- copy _c2
+  # c1.r += c2.r
+  var arg1/eax: (addr float) <- get c1, r
+  var arg2/ecx: (addr float) <- get c2, r
+  var result/xmm0: float <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+  # c1.g += c2.g
+  arg1 <- get c1, g
+  arg2 <- get c2, g
+  result <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+  # c1.b += c2.b
+  arg1 <- get c1, b
+  arg2 <- get c2, b
+  result <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+}
+
+fn rgb-scale-up _c1: (addr rgb), f: float {
+  var c1/edi: (addr rgb) <- copy _c1
+  # c1.r *= f
+  var dest/eax: (addr float) <- get c1, r
+  var result/xmm0: float <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+  # c1.g *= f
+  dest <- get c1, g
+  result <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+  # c1.b *= f
+  dest <- get c1, b
+  result <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+}
+
+type vec3 {
+  x: float
+  y: float
+  z: float
+}
+
+fn print-vec3 screen: (addr screen), _v: (addr vec3) {
+  var v/esi: (addr vec3) <- copy _v
+  print-string screen, "("
+  var tmp/eax: (addr float) <- get v, x
+  print-float-hex screen, *tmp
+  print-string screen, ", "
+  tmp <- get v, y
+  print-float-hex screen, *tmp
+  print-string screen, ", "
+  tmp <- get v, z
+  print-float-hex screen, *tmp
+  print-string screen, ")"
+}
+
+fn vec3-add-to _v1: (addr vec3), _v2: (addr vec3) {
+  var v1/edi: (addr vec3) <- copy _v1
+  var v2/esi: (addr vec3) <- copy _v2
+  # v1.x += v2.x
+  var arg1/eax: (addr float) <- get v1, x
+  var arg2/ecx: (addr float) <- get v2, x
+  var result/xmm0: float <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+  # v1.y += v2.y
+  arg1 <- get v1, y
+  arg2 <- get v2, y
+  result <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+  # v1.z += v2.z
+  arg1 <- get v1, z
+  arg2 <- get v2, z
+  result <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+}
+
+fn vec3-subtract-from v1: (addr vec3), v2: (addr vec3) {
+  var tmp-storage: vec3
+  var tmp/eax: (addr vec3) <- address tmp-storage
+  copy-object v2, tmp
+  vec3-negate tmp
+  vec3-add-to v1, tmp
+}
+
+fn vec3-negate v: (addr vec3) {
+  var negative-one/eax: int <- copy -1
+  var negative-one-f/xmm0: float <- convert negative-one
+  vec3-scale-up v, negative-one-f
+}
+
+fn vec3-scale-up _v: (addr vec3), f: float {
+  var v/edi: (addr vec3) <- copy _v
+  # v.x *= f
+  var dest/eax: (addr float) <- get v, x
+  var result/xmm0: float <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+  # v.y *= f
+  dest <- get v, y
+  result <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+  # v.z *= f
+  dest <- get v, z
+  result <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+}
+
+fn vec3-scale-down _v: (addr vec3), f: float {
+  var v/edi: (addr vec3) <- copy _v
+  # v.x /= f
+  var dest/eax: (addr float) <- get v, x
+  var result/xmm0: float <- copy *dest
+  result <- divide f
+  copy-to *dest, result
+  # v.y /= f
+  dest <- get v, y
+  result <- copy *dest
+  result <- divide f
+  copy-to *dest, result
+  # v.z /= f
+  dest <- get v, z
+  result <- copy *dest
+  result <- divide f
+  copy-to *dest, result
+}
+
+fn vec3-unit in: (addr vec3), out: (addr vec3) {
+  var len/xmm0: float <- vec3-length in
+#?   print-string 0, "len: "
+#?   print-float-hex 0, len
+#?   print-string 0, "\n"
+  copy-object in, out
+  vec3-scale-down out, len
+}
+
+fn vec3-length v: (addr vec3) -> _/xmm0: float {
+  var result/xmm0: float <- vec3-length-squared v
+  result <- square-root result
+  return result
+}
+
+fn vec3-length-squared _v: (addr vec3) -> _/xmm0: float {
+  var v/esi: (addr vec3) <- copy _v
+  # result = v.x * v.x
+  var src/eax: (addr float) <- get v, x
+  var tmp/xmm1: float <- copy *src
+  tmp <- multiply tmp
+  var result/xmm0: float <- copy tmp
+  # result += v.y * v.y
+  src <- get v, y
+  tmp <- copy *src
+  tmp <- multiply tmp
+  result <- add tmp
+  # result += v.z * v.z
+  src <- get v, z
+  tmp <- copy *src
+  tmp <- multiply tmp
+  result <- add tmp
+  return result
+}
diff --git a/linux/raytracing/3.ppm b/linux/raytracing/3.ppm
new file mode 100644
index 00000000..6d5b91ca
--- /dev/null
+++ b/linux/raytracing/3.ppm
@@ -0,0 +1,90003 @@
+P3
+400 225
+255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+146 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 190 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+147 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+148 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 191 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+149 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+150 192 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+151 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 193 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+152 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+153 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 194 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+154 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+155 195 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+156 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 196 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+157 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+158 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 197 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+159 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+160 198 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+161 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 199 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+162 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+163 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 200 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+164 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+165 201 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+166 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 202 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+167 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+168 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 203 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+169 204 255
+169 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+170 204 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+171 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 205 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+172 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+173 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 206 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+174 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+175 207 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+176 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 208 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+177 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+178 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 209 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+179 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+180 210 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+181 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 211 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+182 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+183 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 212 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+184 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+185 213 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+186 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 214 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+187 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+188 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 215 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+189 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+191 216 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+190 216 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+191 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 217 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+192 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+193 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 218 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+194 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+195 219 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+196 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 220 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+197 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+198 221 255
+198 221 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 221 255
+199 221 255
+199 221 255
+199 221 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+199 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+200 222 255
+200 222 255
+200 222 255
+200 222 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+201 223 255
+201 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 223 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+202 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+203 224 255
+203 224 255
+203 224 255
+203 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 224 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+204 225 255
+204 225 255
+204 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+205 225 255
+205 225 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+206 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 226 255
+207 226 255
+207 226 255
+207 226 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+207 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+208 227 255
+208 227 255
+208 227 255
+208 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 227 255
+209 227 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+209 228 255
+209 228 255
+209 228 255
+209 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+210 228 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+211 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 229 255
+212 229 255
+212 229 255
+212 229 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+212 230 255
+212 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+213 230 255
+213 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 230 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+214 231 255
+214 231 255
+214 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+215 231 255
+215 231 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+216 232 255
+216 232 255
+216 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 232 255
+217 232 255
+217 232 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+217 233 255
+217 233 255
+217 232 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+217 233 255
+217 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 233 255
+218 233 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 233 255
+219 233 255
+219 233 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+219 234 255
+219 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+219 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 236 255
+222 236 255
+222 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 239 255
+227 239 255
+227 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+229 239 255
+229 239 255
+229 239 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 242 255
+232 242 255
+232 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+237 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+236 244 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+235 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 243 255
+234 242 255
+234 242 255
+234 242 255
+234 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+233 242 255
+232 242 255
+232 242 255
+232 242 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+232 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+231 241 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+230 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 240 255
+229 239 255
+229 239 255
+229 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+228 239 255
+227 239 255
+227 239 255
+227 239 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+227 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+226 238 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+225 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 237 255
+224 236 255
+224 236 255
+224 236 255
+224 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+223 236 255
+222 236 255
+222 236 255
+222 236 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+222 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+221 235 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
+220 234 255
diff --git a/linux/raytracing/README.md b/linux/raytracing/README.md
new file mode 100644
index 00000000..cc31c1af
--- /dev/null
+++ b/linux/raytracing/README.md
@@ -0,0 +1 @@
+Exercises from https://raytracing.github.io/books/RayTracingInOneWeekend.html
diff --git a/linux/raytracing/color.h b/linux/raytracing/color.h
new file mode 100644
index 00000000..a8a34b26
--- /dev/null
+++ b/linux/raytracing/color.h
@@ -0,0 +1,15 @@
+#ifndef COLOR_H
+#define COLOR_H
+
+#include "vec3.h"
+
+#include <iostream>
+
+void write_color(std::ostream &out, color pixel_color) {
+    // Write the translated [0,255] value of each color component.
+    out << static_cast<int>(255.999 * pixel_color.x()) << ' '
+        << static_cast<int>(255.999 * pixel_color.y()) << ' '
+        << static_cast<int>(255.999 * pixel_color.z()) << '\n';
+}
+
+#endif
diff --git a/linux/raytracing/color.mu b/linux/raytracing/color.mu
new file mode 100644
index 00000000..86b3d0b6
--- /dev/null
+++ b/linux/raytracing/color.mu
@@ -0,0 +1,35 @@
+type rgb {
+  # components normalized to within [0.0, 1.0]
+  r: float
+  g: float
+  b: float
+}
+
+# print translating to [0, 256)
+fn print-rgb screen: (addr screen), _c: (addr rgb) {
+  var c/esi: (addr rgb) <- copy _c
+  var xn: float
+  var xn-addr/ecx: (addr float) <- address xn
+  fill-in-rational xn-addr, 0x3e7ff, 0x3e8  # 255999 / 1000
+  # print 255.999 * c->r
+  var result/xmm0: float <- copy xn
+  var src-addr/eax: (addr float) <- get c, r
+  result <- multiply *src-addr
+  var result-int/edx: int <- truncate result
+  print-int32-decimal screen, result-int
+  print-string screen, " "
+  # print 255.999 * c->g
+  src-addr <- get c, g
+  result <- copy xn
+  result <- multiply *src-addr
+  result-int <- truncate result
+  print-int32-decimal screen, result-int
+  print-string screen, " "
+  # print 255.999 * c->b
+  src-addr <- get c, b
+  result <- copy xn
+  result <- multiply *src-addr
+  result-int <- truncate result
+  print-int32-decimal screen, result-int
+  print-string screen, "\n"
+}
diff --git a/linux/raytracing/main.cc b/linux/raytracing/main.cc
new file mode 100644
index 00000000..35177279
--- /dev/null
+++ b/linux/raytracing/main.cc
@@ -0,0 +1,112 @@
+#include <iostream>
+
+// print float in some sort of intuitive hex that also helps visualize the underlying bits
+void p(std::ostream &out, float f) {
+    int bits = *(int*)&f;
+    // sign
+    if (bits & 0x80000000) {
+      out << '-';
+    }
+    // mantissa
+    int mantissa = bits & 0x007fffff;
+    int exponent = (bits & 0x7f800000) >> 23;
+    out << std::hex << mantissa << "P" << std::dec << (exponent-127);
+}
+
+#include "color.h"
+#include "ray.h"
+#include "vec3.h"
+
+color ray_color(const ray& r) {
+//?     std::cerr << "r.dir: " << r.direction() << '\n';
+//?     std::cerr << "r.dir length: ";
+//?       p(std::cerr, r.direction().length());
+//?       std::cerr << '\n';
+    vec3 unit_direction = unit_vector(r.direction());
+//?     std::cerr << "r.dir normalized: " << unit_direction << '\n';
+    float t = 0.5*(unit_direction.y() + 1.0);
+//?     std::cerr << "t: ";
+//?       p(std::cerr, t);
+//?       std::cerr << '\n';
+    vec3 whitening = (1.0-t)*color(1.0, 1.0, 1.0);
+//?     std::cerr << "whitening: ";
+//?       p(std::cerr, whitening.x());
+//?       std::cerr << " ";
+//?       p(std::cerr, whitening.y());
+//?       std::cerr << " ";
+//?       p(std::cerr, whitening.z());
+//?       std::cerr << "\n";
+    vec3 base = t*color(0.5, 0.7, 1.0);
+//?     std::cerr << "base: ";
+//?       p(std::cerr, base.x());
+//?       std::cerr << " ";
+//?       p(std::cerr, base.y());
+//?       std::cerr << " ";
+//?       p(std::cerr, base.z());
+//?       std::cerr << "\n";
+    vec3 result = base + whitening;
+//?     std::cerr << "result: ";
+//?       p(std::cerr, result.x());
+//?       std::cerr << " ";
+//?       p(std::cerr, result.y());
+//?       std::cerr << " ";
+//?       p(std::cerr, result.z());
+//?       std::cerr << "\n";
+    return result;
+}
+
+int main() {
+
+    // Image
+    const float aspect_ratio = 16.0 / 9.0;
+//?     std::cerr << "aspect ratio: " << aspect_ratio << ' ' << std::hex << *(int*)&aspect_ratio << '\n';
+    const int image_width = 400;
+    const int image_height = static_cast<int>(image_width / aspect_ratio);
+
+    // Camera
+
+    float viewport_height = 2.0;
+//?     std::cerr << "viewport height: " << viewport_height << ' ' << std::hex << *(int*)&viewport_height << '\n';
+    float viewport_width = aspect_ratio * viewport_height;
+//?     std::cerr << "viewport width: " << viewport_width << ' ' << std::hex << *(int*)&viewport_width << '\n';
+    float focal_length = 1.0;
+
+    auto origin = point3(0, 0, 0);
+    auto horizontal = vec3(viewport_width, 0, 0);
+    auto vertical = vec3(0, viewport_height, 0);
+    auto lower_left_corner = origin - horizontal/2 - vertical/2 - vec3(0, 0, focal_length);
+
+    // Render
+
+    std::cout << "P3\n" << image_width << " " << image_height << "\n255\n";
+
+    for (int j = image_height-1; j >= 0; --j) {
+//?         std::cerr << "\rScanlines remaining: " << j << ' ' << std::flush;
+        for (int i = 0; i < image_width; ++i) {
+            auto u = float(i) / (image_width-1);
+//?             std::cerr << "u: " << u << '\n';
+            auto v = float(j) / (image_height-1);
+            ray r(origin, lower_left_corner + u*horizontal + v*vertical - origin);
+//?             std::cerr << "ray origin: " << r.orig.x() << " " << r.orig.y() << " " << r.orig.z() << '\n';
+//?             std::cerr << "ray direction: " << r.dir.x() << " " << r.dir.y() << " " << r.dir.z() << '\n';
+//?             std::cerr << "ray dir.x: " << r.dir.x() << " ";
+//?               p(std::cerr, r.dir.x());
+//?               std::cerr << '\n';
+            color pixel_color = ray_color(r);
+//?             std::cerr << "pixel color: " << pixel_color.x() << " " << pixel_color.y() << " " << pixel_color.z() << '\n';
+
+//?             std::cout << "(";
+//?               p(std::cout, pixel_color.x());
+//?               std::cout << ", ";
+//?               p(std::cout, pixel_color.y());
+//?               std::cout << ", ";
+//?               p(std::cout, pixel_color.z());
+//?               std::cout << ")\n";
+            write_color(std::cout, pixel_color);
+//?             break;
+        }
+//?         break;
+    }
+
+//?     std::cerr << "\r";
+}
diff --git a/linux/raytracing/ray.h b/linux/raytracing/ray.h
new file mode 100644
index 00000000..ed65168a
--- /dev/null
+++ b/linux/raytracing/ray.h
@@ -0,0 +1,25 @@
+#ifndef RAY_H
+#define RAY_H
+
+#include "vec3.h"
+
+class ray {
+    public:
+        ray() {}
+        ray(const point3& origin, const vec3& direction)
+            : orig(origin), dir(direction)
+        {}
+
+        point3 origin() const  { return orig; }
+        vec3 direction() const { return dir; }
+
+        point3 at(float t) const {
+            return orig + t*dir;
+        }
+
+    public:
+        point3 orig;
+        vec3 dir;
+};
+
+#endif
diff --git a/linux/raytracing/ray.mu b/linux/raytracing/ray.mu
new file mode 100644
index 00000000..20cc42e9
--- /dev/null
+++ b/linux/raytracing/ray.mu
@@ -0,0 +1,24 @@
+type ray {
+  orig: vec3  # point
+  dir: vec3
+}
+
+# A little different from the constructor at https://raytracing.github.io/books/RayTracingInOneWeekend.html
+# We immediately normalize the direction vector so we don't have to keep doing
+# so.
+fn initialize-ray _self: (addr ray), o: (addr vec3), d: (addr vec3) {
+  var self/esi: (addr ray) <- copy _self
+  var dest/eax: (addr vec3) <- get self, orig
+  copy-object o, dest
+  dest <- get self, dir
+  vec3-unit d, dest
+}
+
+fn ray-at _self: (addr ray), t: float, out: (addr vec3) {
+  var self/esi: (addr ray) <- copy _self
+  var src/eax: (addr vec3) <- get self, dir
+  copy-object src, out
+  vec3-scale-up out, t
+  src <- get self, orig
+  vec3-add-to out, src
+}
diff --git a/linux/raytracing/vec.mu b/linux/raytracing/vec.mu
new file mode 100644
index 00000000..7caf7e88
--- /dev/null
+++ b/linux/raytracing/vec.mu
@@ -0,0 +1,135 @@
+type vec3 {
+  x: float
+  y: float
+  z: float
+}
+
+fn print-vec3 screen: (addr screen), _v: (addr vec3) {
+  var v/esi: (addr vec3) <- copy _v
+  print-string screen, "("
+  var tmp/eax: (addr float) <- get v, x
+  print-float-hex screen, *tmp
+  print-string screen, ", "
+  tmp <- get v, y
+  print-float-hex screen, *tmp
+  print-string screen, ", "
+  tmp <- get v, z
+  print-float-hex screen, *tmp
+  print-string screen, ")"
+}
+
+fn vec3-add-to _v1: (addr vec3), _v2: (addr vec3) {
+  var v1/edi: (addr vec3) <- copy _v1
+  var v2/esi: (addr vec3) <- copy _v2
+  # v1.x += v2.x
+  var arg1/eax: (addr float) <- get v1, x
+  var arg2/ecx: (addr float) <- get v2, x
+  var result/xmm0: float <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+  # v1.y += v2.y
+  arg1 <- get v1, y
+  arg2 <- get v2, y
+  result <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+  # v1.z += v2.z
+  arg1 <- get v1, z
+  arg2 <- get v2, z
+  result <- copy *arg1
+  result <- add *arg2
+  copy-to *arg1, result
+}
+
+fn vec3-subtract-from v1: (addr vec3), v2: (addr vec3) {
+  var tmp-storage: vec3
+  var tmp/eax: (addr vec3) <- address tmp-storage
+  copy-object v2, tmp
+  vec3-negate tmp
+  vec3-add-to v1, tmp
+}
+
+fn vec3-negate v: (addr vec3) {
+  var negative-one/eax: int <- copy -1
+  var negative-one-f/xmm0: float <- convert negative-one
+  vec3-scale-up v, negative-one-f
+}
+
+fn vec3-scale-up _v: (addr vec3), f: float {
+  var v/edi: (addr vec3) <- copy _v
+  # v.x *= f
+  var dest/eax: (addr float) <- get v, x
+  var result/xmm0: float <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+  # v.y *= f
+  dest <- get v, y
+  result <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+  # v.z *= f
+  dest <- get v, z
+  result <- copy *dest
+  result <- multiply f
+  copy-to *dest, result
+}
+
+fn vec3-scale-down _v: (addr vec3), f: float {
+  var v/edi: (addr vec3) <- copy _v
+  # v.x /= f
+  var dest/eax: (addr float) <- get v, x
+  var result/xmm0: float <- copy *dest
+  result <- divide f
+  copy-to *dest, result
+  # v.y /= f
+  dest <- get v, y
+  result <- copy *dest
+  result <- divide f
+  copy-to *dest, result
+  # v.z /= f
+  dest <- get v, z
+  result <- copy *dest
+  result <- divide f
+  copy-to *dest, result
+}
+
+fn vec3-unit in: (addr vec3), out: (addr vec3) {
+  var len/xmm0: float <- vec3-length in
+#?   print-string 0, "len: "
+#?   print-float-hex 0, len
+#?   print-string 0, "\n"
+  copy-object in, out
+  vec3-scale-down out, len
+}
+
+fn vec3-length v: (addr vec3) -> _/xmm0: float {
+  var result/xmm0: float <- vec3-length-squared v
+  result <- square-root result
+  return result
+}
+
+fn vec3-length-squared _v: (addr vec3) -> _/xmm0: float {
+  var v/esi: (addr vec3) <- copy _v
+  # result = v.x * v.x
+  var src/eax: (addr float) <- get v, x
+  var tmp/xmm1: float <- copy *src
+  tmp <- multiply tmp
+  var result/xmm0: float <- copy tmp
+  # result += v.y * v.y
+  src <- get v, y
+  tmp <- copy *src
+  tmp <- multiply tmp
+  result <- add tmp
+  # result += v.z * v.z
+  src <- get v, z
+  tmp <- copy *src
+  tmp <- multiply tmp
+  result <- add tmp
+  return result
+}
+
+fn vec3-dot _v1: (addr vec3), _v2: (addr vec3) -> _/xmm0: float {
+}
+
+fn vec3-cross _v1: (addr vec3), _v2: (addr vec3), out: (addr vec3) {
+}
diff --git a/linux/raytracing/vec3.h b/linux/raytracing/vec3.h
new file mode 100644
index 00000000..d8341d36
--- /dev/null
+++ b/linux/raytracing/vec3.h
@@ -0,0 +1,102 @@
+#ifndef VEC3_H
+#define VEC3_H
+
+#include <cmath>
+#include <iostream>
+
+using std::sqrt;
+
+class vec3 {
+    public:
+        vec3() : e{0,0,0} {}
+        vec3(float e0, float e1, float e2) : e{e0, e1, e2} {}
+
+        float x() const { return e[0]; }
+        float y() const { return e[1]; }
+        float z() const { return e[2]; }
+
+        vec3 operator-() const { return vec3(-e[0], -e[1], -e[2]); }
+        float operator[](int i) const { return e[i]; }
+        float& operator[](int i) { return e[i]; }
+
+        vec3& operator+=(const vec3 &v) {
+            e[0] += v.e[0];
+            e[1] += v.e[1];
+            e[2] += v.e[2];
+            return *this;
+        }
+
+        vec3& operator*=(const float t) {
+            e[0] *= t;
+            e[1] *= t;
+            e[2] *= t;
+            return *this;
+        }
+
+        vec3& operator/=(const float t) {
+            return *this *= 1/t;
+        }
+
+        float length() const {
+            return sqrt(length_squared());
+        }
+
+        float length_squared() const {
+            return e[0]*e[0] + e[1]*e[1] + e[2]*e[2];
+        }
+
+    public:
+        float e[3];
+};
+
+// Type aliases for vec3
+using point3 = vec3;   // 3D point
+using color = vec3;    // RGB color
+
+// vec3 Utility Functions
+
+inline std::ostream& operator<<(std::ostream &out, const vec3 &v) {
+    return out << v.e[0] << ' ' << v.e[1] << ' ' << v.e[2];
+}
+
+inline vec3 operator+(const vec3 &u, const vec3 &v) {
+    return vec3(u.e[0] + v.e[0], u.e[1] + v.e[1], u.e[2] + v.e[2]);
+}
+
+inline vec3 operator-(const vec3 &u, const vec3 &v) {
+    return vec3(u.e[0] - v.e[0], u.e[1] - v.e[1], u.e[2] - v.e[2]);
+}
+
+inline vec3 operator*(const vec3 &u, const vec3 &v) {
+    return vec3(u.e[0] * v.e[0], u.e[1] * v.e[1], u.e[2] * v.e[2]);
+}
+
+inline vec3 operator*(float t, const vec3 &v) {
+    return vec3(t*v.e[0], t*v.e[1], t*v.e[2]);
+}
+
+inline vec3 operator*(const vec3 &v, float t) {
+    return t * v;
+}
+
+inline vec3 operator/(vec3 v, float t) {
+    return (1/t) * v;
+}
+
+inline float dot(const vec3 &u, const vec3 &v) {
+    return u.e[0] * v.e[0]
+         + u.e[1] * v.e[1]
+         + u.e[2] * v.e[2];
+}
+
+inline vec3 cross(const vec3 &u, const vec3 &v) {
+    return vec3(u.e[1] * v.e[2] - u.e[2] * v.e[1],
+                u.e[2] * v.e[0] - u.e[0] * v.e[2],
+                u.e[0] * v.e[1] - u.e[1] * v.e[0]);
+}
+
+inline vec3 unit_vector(vec3 v) {
+    return v / v.length();
+}
+
+#endif
diff --git a/linux/raytracing/vimrc.vim b/linux/raytracing/vimrc.vim
new file mode 100644
index 00000000..348fe364
--- /dev/null
+++ b/linux/raytracing/vimrc.vim
@@ -0,0 +1,2 @@
+" when opening files in this directory, load vimrc from cwd (top-level)
+source vimrc.vim
diff --git a/linux/rpn.mu b/linux/rpn.mu
new file mode 100644
index 00000000..762d9605
--- /dev/null
+++ b/linux/rpn.mu
@@ -0,0 +1,148 @@
+# Integer arithmetic using postfix notation
+#
+# Limitations:
+#   No division yet.
+#
+# To build:
+#   $ ./translate_mu apps/rpn.mu
+#
+# Example session:
+#   $ ./a.elf
+#   press ctrl-c or ctrl-d to exit
+#   > 1
+#   1
+#   > 1 1 +
+#   2
+#   > 1 2 3 + +
+#   6
+#   > 1 2 3 * +
+#   7
+#   > 1 2 + 3 *
+#   9
+#   > 1 3 4 * +
+#   13
+#   > ^D
+#   $
+#
+# Error handling is non-existent. This is just a prototype.
+
+fn main -> _/ebx: int {
+  var in-storage: (stream byte 0x100)
+  var in/esi: (addr stream byte) <- address in-storage
+  print-string 0/screen, "press ctrl-c or ctrl-d to exit\n"
+  # read-eval-print loop
+  {
+    # print prompt
+    print-string 0/screen, "> "
+    # read line
+    clear-stream in
+    read-line-from-real-keyboard in
+    var done?/eax: boolean <- stream-empty? in
+    compare done?, 0
+    break-if-!=
+    # parse and eval
+    var out/eax: int <- simplify in
+    # print
+    print-int32-decimal 0/screen, out
+    print-string 0/screen, "\n"
+    #
+    loop
+  }
+  return 0
+}
+
+type int-stack {
+  data: (handle array int)
+  top: int
+}
+
+fn simplify in: (addr stream byte) -> _/eax: int {
+  var word-storage: slice
+  var word/ecx: (addr slice) <- address word-storage
+  var stack-storage: int-stack
+  var stack/esi: (addr int-stack) <- address stack-storage
+  initialize-int-stack stack, 0x10
+  $simplify:word-loop: {
+    next-word in, word
+    var done?/eax: boolean <- slice-empty? word
+    compare done?, 0
+    break-if-!=
+    # if word is an operator, perform it
+    {
+      var is-add?/eax: boolean <- slice-equal? word, "+"
+      compare is-add?, 0
+      break-if-=
+      var _b/eax: int <- pop-int-stack stack
+      var b/edx: int <- copy _b
+      var a/eax: int <- pop-int-stack stack
+      a <- add b
+      push-int-stack stack, a
+      loop $simplify:word-loop
+    }
+    {
+      var is-sub?/eax: boolean <- slice-equal? word, "-"
+      compare is-sub?, 0
+      break-if-=
+      var _b/eax: int <- pop-int-stack stack
+      var b/edx: int <- copy _b
+      var a/eax: int <- pop-int-stack stack
+      a <- subtract b
+      push-int-stack stack, a
+      loop $simplify:word-loop
+    }
+    {
+      var is-mul?/eax: boolean <- slice-equal? word, "*"
+      compare is-mul?, 0
+      break-if-=
+      var _b/eax: int <- pop-int-stack stack
+      var b/edx: int <- copy _b
+      var a/eax: int <- pop-int-stack stack
+      a <- multiply b
+      push-int-stack stack, a
+      loop $simplify:word-loop
+    }
+    # otherwise it's an int
+    var n/eax: int <- parse-decimal-int-from-slice word
+    push-int-stack stack, n
+    loop
+  }
+  var result/eax: int <- pop-int-stack stack
+  return result
+}
+
+fn initialize-int-stack _self: (addr int-stack), n: int {
+  var self/esi: (addr int-stack) <- copy _self
+  var d/edi: (addr handle array int) <- get self, data
+  populate d, n
+  var top/eax: (addr int) <- get self, top
+  copy-to *top, 0
+}
+
+fn push-int-stack _self: (addr int-stack), _val: int {
+  var self/esi: (addr int-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  var data-ah/edx: (addr handle array int) <- get self, data
+  var data/eax: (addr array int) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var dest-addr/edx: (addr int) <- index data, top
+  var val/eax: int <- copy _val
+  copy-to *dest-addr, val
+  add-to *top-addr, 1
+}
+
+fn pop-int-stack _self: (addr int-stack) -> _/eax: int {
+  var self/esi: (addr int-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  {
+    compare *top-addr, 0
+    break-if->
+    return 0
+  }
+  subtract-from *top-addr, 1
+  var data-ah/edx: (addr handle array int) <- get self, data
+  var data/eax: (addr array int) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var result-addr/eax: (addr int) <- index data, top
+  var val/eax: int <- copy *result-addr
+  return val
+}
diff --git a/linux/sigils b/linux/sigils
new file mode 100755
index 00000000..42bada3d
--- /dev/null
+++ b/linux/sigils
Binary files differdiff --git a/linux/sigils.subx b/linux/sigils.subx
new file mode 100644
index 00000000..31d074af
--- /dev/null
+++ b/linux/sigils.subx
@@ -0,0 +1,4661 @@
+# Syntax sugar for addressing modes that expand into /rm32 and other related
+# arguments.
+#
+# To run:
+#   $ ./bootstrap translate init.linux [012]*.subx apps/subx-params.subx apps/sigils.subx  -o apps/sigils
+#
+# We currently support the following notations:
+#
+# 1.
+#   $ echo '%eax'  |  ./bootstrap run apps/sigils
+#   3/mod 0/rm32
+#
+# 2.
+#   $ echo '*eax'  |  ./bootstrap run apps/sigils
+#   0/mod 0/rm32
+#
+# 3.
+#   $ echo '*(eax+4)'  |  ./bootstrap run apps/sigils
+#   2/mod 0/rm32 4/disp32
+#
+# 4.
+#   $ echo '*(eax+ecx)'  |  ./bootstrap run apps/sigils
+#   0/mod 4/rm32 0/base 1/index 0/scale
+#
+# 5.
+#   $ echo '*(eax+ecx+4)'  |  ./bootstrap run apps/sigils
+#   2/mod 4/rm32 0/base 1/index 0/scale 4/disp32
+#
+# 6.
+#   $ echo '*(eax+ecx<<2+4)'  |  ./bootstrap run apps/sigils
+#   2/mod 4/rm32 0/base 1/index 2/scale 4/disp32
+#
+# 7.
+#   $ echo '*Foo'  |  ./bootstrap run apps/sigils
+#   0/mod 5/rm32/.disp32 Foo/disp32
+#
+# TODO: *(Foo+ecx<<2)
+#
+# Addition isn't commutative here. Template must always be (base+index<<scale+disp),
+# though some components are optional as described above.
+# In particular, global variables like 'Foo' above don't support displacement
+# or index or scale.
+#
+# No metadata allowed inside '*(...)'.
+# Whitespace inside '*(...)' is ok. But not immediately after the '*' or '%'.
+# We don't support conversions to floating-point registers. In particular, so
+# far there's no %xmm1.
+#
+# The code generated is sub-optimal:
+#   - displacements are always disp32, even when disp8 will do
+#   - *(...esp...) always uses SIB arguments even when redundant
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto interactive
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $subx-sigils-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto interactive
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto interactive
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-sigils-main:interactive/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $subx-sigils-main:end/disp8
+$subx-sigils-main:interactive:
+    # - otherwise convert stdin
+    # subx-sigils(Stdin, Stdout)
+    # . . push args
+    68/push  Stdout/imm32
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$subx-sigils-main:end:
+    e8/call  syscall_exit/disp32
+
+# error messages considered:
+#   *x + 34                 -> error: base+disp addressing must be within '()'
+subx-sigils:  # in: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode:
+    #   var line: (stream byte 512)
+    #   while true
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break                     # end of file
+    #     while true
+    #       var word-slice = next-word-or-expression(line)
+    #       if slice-empty?(word-slice)                   # end of line
+    #         break
+    #       if slice-starts-with?(word-slice, "#")        # comment
+    #         continue
+    #       if slice-starts-with?(word-slice, '%')        # direct mode
+    #         emit-direct-mode(out, word-slice)
+    #       else if slice-starts-with?(word-slice, '*')   # indirect mode
+    #         if disp32-mode?(word-slice)
+    #           emit-indirect-disp32(out, word-slice)
+    #         else
+    #           base, index, scale, disp = parse-effective-address(word-slice)
+    #           emit-indirect-mode(out, base, index, scale, disp)
+    #       else if slice-starts-with?(word-slice, '+')
+    #         abort("'+' only permitted within '*(...)'")
+    #       else
+    #         write-slice-buffered(out, word-slice)
+    #       write(out, " ")
+    #     write(out, "\n")
+    #   flush(out)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/length
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+$subx-sigils:line-loop:
+    # clear-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line-buffered(in, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-line-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-sigils:check0:
+    # if (line->write == 0) break
+    81          7/subop/compare     0/mod/indirect  1/rm32/ecx    .           .             .           .           .               0/imm32           # compare *ecx
+    0f 84/jump-if-=  $subx-sigils:break/disp32
+$subx-sigils:word-loop:
+    # next-word-or-expression(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word-or-expression/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-sigils:check1:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $subx-sigils:next-line/disp32
+$subx-sigils:check-for-comment:
+    # if (slice-starts-with?(word-slice, "#")) continue
+    # . start/ebx = word-slice->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           3/r32/ebx   .               .                 # copy *edx to ebx
+    # . c/eax = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  3/rm32/ebx    .           .             .           0/r32/AL    .               .                 # copy byte at *ebx to AL
+    # . if (eax == '#') continue
+    3d/compare-eax-and  0x23/imm32/hash
+    74/jump-if-=  $subx-sigils:word-loop/disp8
+$subx-sigils:check-for-direct-mode:
+    # if (!slice-starts-with?(word-slice, "%")) goto next check
+    3d/compare-eax-and  0x25/imm32/percent
+    75/jump-if-!=  $subx-sigils:check-for-indirect-mode/disp8
+$subx-sigils:direct-mode:
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "w: ")
+#?     # . . push args
+#?     68/push  "w: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     52/push-edx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # emit-direct-mode(out, word-slice)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-direct-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # continue
+    e9/jump  $subx-sigils:next-word/disp32
+$subx-sigils:check-for-indirect-mode:
+    # if (!slice-starts-with?(word-slice, "*")) goto next check
+    3d/compare-eax-and  0x2a/imm32/asterisk
+    75/jump-if-!=  $subx-sigils:check-for-invalid-addition/disp8
+    # if (!disp32-mode?(word-slice)) goto indirect mode
+    # . eax = disp32-mode?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  disp32-mode?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false) goto indirect mode
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-sigils:indirect-mode/disp8
+$subx-sigils:disp32-mode:
+    # emit-indirect-mode(out, word-slice)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-indirect-disp32/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # continue
+    e9/jump  $subx-sigils:next-word/disp32
+$subx-sigils:indirect-mode:
+    # spill registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # base/eax, index/ecx, scale/edx, disp/ebx = parse-effective-address(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  parse-effective-address/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-indirect-mode(out, base, index, scale, disp)
+    # . . push args
+    53/push-ebx
+    52/push-edx
+    51/push-ecx
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-indirect-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # continue
+    e9/jump  $subx-sigils:next-word/disp32
+$subx-sigils:check-for-invalid-addition:
+    # if (slice-starts-with?(word-slice, "+")) goto error1
+    3d/compare-eax-and  0x2b/imm32/plus
+    74/jump-if-=  $subx-sigils:error1/disp8
+$subx-sigils:check-for-invalid-left-shift:
+    # if (slice-starts-with?(word-slice, "<")) goto error1
+    3d/compare-eax-and  0x3c/imm32/less-than
+    74/jump-if-=  $subx-sigils:error1/disp8
+$subx-sigils:regular-word:
+    # write-slice-buffered(out, word-slice)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # fall through
+$subx-sigils:next-word:
+    # write-buffered(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+    e9/jump  $subx-sigils:word-loop/disp32
+$subx-sigils:next-line:
+    # write-buffered(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+    e9/jump  $subx-sigils:line-loop/disp32
+$subx-sigils:break:
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$subx-sigils:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x214/imm32       # add to esp
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$subx-sigils:error1:
+    # print(stderr, "error: '" eax "' only permitted within '*(...)' in '" line "'")
+    # . write-buffered(Stderr, "error: '")
+    # . . push args
+    68/push  "error: '"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-byte-buffered(Stderr, eax)
+    # . . push args
+    50/push-eax
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-byte-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(Stderr, "' only permitted within '*(...)' in '")
+    # . . push args
+    68/push  "' only permitted within '*(...)' in '"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    51/push-ecx
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(Stderr, "'")
+    # . . push args
+    68/push  "'"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-subx-sigils-passes-most-words-through:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "== abcd 0x1")
+    # . . push args
+    68/push  "== abcd 0x1"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "== abcd 0x1 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-passes-most-words-through"/imm32
+    68/push  "== abcd 0x1 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-sigils-direct-mode:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab %ecx")
+    # . . push args
+    68/push  "ab %ecx"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab 3/mod/direct 0x00000001/rm32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-direct-mode"/imm32
+    68/push  "ab 3/mod/direct 0x00000001/rm32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-sigils-direct-mode-with-metadata:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab %ecx/foo")
+    # . . push args
+    68/push  "ab %ecx/foo"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "ab 3/mod/direct 0x00000001/rm32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-direct-mode-with-metadata"/imm32
+    68/push  "ab 3/mod/direct 0x00000001/rm32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-sigils-register-indirect-mode:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab *ecx")
+    # . . push args
+    68/push  "ab *ecx"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 0x00000001/rm32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-register-indirect-mode"/imm32
+    68/push  "ab 0/mod/indirect 0x00000001/rm32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-sigils-register-indirect-mode-with-metadata:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab *ecx/foo")
+    # . . push args
+    68/push  "ab *ecx/foo"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 0x00000001/rm32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-register-indirect-mode-with-metadata"/imm32
+    68/push  "ab 0/mod/indirect 0x00000001/rm32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-sigils-register-indirect-mode-without-displacement:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab *(ecx)")
+    # . . push args
+    68/push  "ab *(ecx)"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 1/rm32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-register-indirect-mode-without-displacement"/imm32
+    68/push  "ab 0/mod/indirect 0x00000001/rm32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-sigils-register-indirect-mode-with-displacement:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab *(ecx+4)")
+    # . . push args
+    68/push  "ab *(ecx+4)"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 1/rm32 4/disp32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-register-indirect-mode-with-displacement"/imm32
+    68/push  "ab 2/mod/*+disp32 0x00000001/rm32 0x00000004/disp32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# boss level
+test-subx-sigils-register-indirect-mode-with-sib-byte:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab *(ecx + edx<<3 + 4)")
+    # . . push args
+    68/push  "ab *(ecx + edx<<3 + 4)"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 4/rm32/sib 1/base 2/index 3/scale 4/disp32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-register-indirect-mode-with-sib-byte"/imm32
+    68/push  "ab 2/mod/*+disp32 4/rm32/sib 0x00000001/base 0x00000002/index 0x00000003/scale 0x00000004/disp32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-sigils-register-indirect-mode-with-sib-byte-negative-displacement:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab *(ecx + edx<<3 - 4)")
+    # . . push args
+    68/push  "ab *(ecx + edx<<3 - 4)"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab 2/mod/*+disp32 4/rm32/sib 1/base 2/index 3/scale -4/disp32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-register-indirect-mode-with-sib-byte-negative-displacement"/imm32
+    68/push  "ab 2/mod/*+disp32 4/rm32/sib 0x00000001/base 0x00000002/index 0x00000003/scale 0xfffffffc/disp32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-sigils-indirect-mode-without-register:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab *Foo")
+    # . . push args
+    68/push  "ab *Foo"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-sigils(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-sigils/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check that the line just passed through
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump _test-output-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-stream-equal(_test-output-stream, "ab 0/mod/indirect 5/rm32/.disp32 Foo/disp32 \n", msg)
+    # . . push args
+    68/push  "F - test-subx-sigils-indirect-mode-without-register"/imm32
+    68/push  "ab 0/mod/indirect 5/rm32/.disp32 Foo/disp32 \n"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-direct-mode:  # out: (addr buffered-file), word-slice: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    # var local-slice/eax: slice = {word-slice->start, word-slice->end}
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    ff          6/subop/push        0/mod/indirect  0/rm32/eax    .           .             .           .           .               .                 # push *eax
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           4/r32/esp   .               .                 # copy esp to eax
+    # ++local-slice->start to skip '%'
+    # . ++(*eax)
+    ff          0/subop/increment   0/mod/indirect  0/rm32/eax    .           .             .           .           .               .                 # increment *eax
+#?     # write-slice-buffered(Stderr, word-slice) {{{
+#?     # . . push args
+#?     50/push-eax
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # local-slice = next-token-from-slice(local-slice->start, local-slice->end, "/")
+    # . . push args
+    50/push-eax
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    ff          6/subop/push        0/mod/indirect  0/rm32/eax    .           .             .           .           .               .                 # push *eax
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # reg-num/eax = get-slice(Registers, local-slice, row-size=12)
+    # . . push args
+    68/push  "Registers"/imm32
+    68/push  0xc/imm32/row-size
+    50/push-eax
+    68/push  Registers/imm32
+    # . . call
+    e8/call  get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # write-buffered(out, "3/mod/direct ")
+    # . . push args
+    68/push  "3/mod/direct "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-int32-hex-buffered(out, *reg-num)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  0/rm32/eax    .           .             .           .           .               .                 # push *eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, "/rm32")
+    # . . push args
+    68/push  "/rm32"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-direct-mode:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-direct-mode:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = "%eax"
+    b8/copy-to-eax  "%eax"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-direct-mode(_test-output-buffered-file, str)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-direct-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32         # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "3/mod/direct 0/rm32", msg)
+    # . . push args
+    68/push  "F - test-emit-direct-mode/0"/imm32
+    68/push  "3/mod/direct 0x00000000/rm32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-direct-mode-2:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx = "%edi"
+    b8/copy-to-eax  "%edi"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # emit-direct-mode(_test-output-buffered-file, str/ecx)
+    # . . push args
+    51/push-ecx
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-direct-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32         # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "3/mod/direct 7/rm32", msg)
+    # . . push args
+    68/push  "F - test-emit-direct-mode/1"/imm32
+    68/push  "3/mod/direct 0x00000007/rm32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# (re)compute the bounds of the next word or parenthetical expression in the line
+# return empty string on reaching end of file
+#
+# error messages considered:
+#   * ...                   -> error: no space after '*'
+#   *(...                   -> error: *(...) expression must be all on a single line
+next-word-or-expression:  # line: (addr stream byte), out: (addr slice)
+    # pseudocode:
+    #   skip-chars-matching(line, ' ')
+    #   if line->read >= line->write              # end of line
+    #     out = {0, 0}
+    #     return
+    #   out->start = &line->data[line->read]
+    #   if line->data[line->read] == '#'          # comment
+    #     out.end = &line->data[line->write]
+    #     return
+    #   if line->data[line->read] == '"'          # string literal
+    #     skip-string(line)
+    #   else if line->data[line->read] == '*'     # expression
+    #     if line->data[line->read + 1] == ' '
+    #       abort
+    #     if line->data[line->read + 1] == '('
+    #       skip-until-close-paren(line)
+    #       if (line->data[line->read] != ')'
+    #         abort
+    #       ++line->data[line->read] to skip ')'
+    #   skip-chars-not-matching-whitespace(line)
+    #   out->end = &line->data[line->read]
+    #
+    # registers:
+    #   ecx: often line->read
+    #   eax: often line->data[line->read]
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    56/push-esi
+    57/push-edi
+    # esi = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edi = out
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   0xc/disp8       .                 # copy *(ebp+12) to edi
+    # skip-chars-matching(line, ' ')
+    # . . push args
+    68/push  0x20/imm32/space
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-matching/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$next-word-or-expression:check0:
+    # if (line->read >= line->write) clear out and return
+    # . ecx = line->read
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    # . if (ecx < line->write) goto next check
+    3b/compare                      0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare ecx with *esi
+    7c/jump-if-<  $next-word-or-expression:check-for-comment/disp8
+    # . return out = {0, 0}
+    c7          0/subop/copy        0/mod/direct    7/rm32/edi    .           .             .           .           .               0/imm32           # copy to *edi
+    c7          0/subop/copy        1/mod/*+disp8   7/rm32/edi    .           .             .           .           4/disp8         0/imm32           # copy to *(edi+4)
+    e9/jump  $next-word-or-expression:end/disp32
+$next-word-or-expression:check-for-comment:
+    # out->start = &line->data[line->read]
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to *edi
+    # if (line->data[line->read] != '#') goto next check
+    # . eax = line->data[line->read]
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # . if (eax != '#') goto next check
+    3d/compare-eax-and  0x23/imm32/pound
+    75/jump-if-!=  $next-word-or-expression:check-for-string-literal/disp8
+$next-word-or-expression:comment:
+    # out->end = &line->data[line->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+    # line->read = line->write  # skip rest of line
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(esi+4)
+    # return
+    eb/jump  $next-word-or-expression:end/disp8
+$next-word-or-expression:check-for-string-literal:
+    # if (line->data[line->read] != '"') goto next check
+    3d/compare-eax-and  0x22/imm32/dquote
+    75/jump-if-!=  $next-word-or-expression:check-for-expression/disp8
+$next-word-or-expression:string-literal:
+    # skip-string(line)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  skip-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # skip rest of word
+    eb/jump  $next-word-or-expression:regular-word/disp8
+$next-word-or-expression:check-for-expression:
+    # if (line->data[line->read] != '*') goto next check
+    3d/compare-eax-and  0x2a/imm32/asterisk
+    75/jump-if-!=  $next-word-or-expression:regular-word/disp8
+    # if (line->data[line->read + 1] == ' ') goto error1
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xd/disp8       .                 # copy byte at *(esi+ecx+12+1) to AL
+    3d/compare-eax-and  0x20/imm32/space
+    74/jump-if-=  $next-word-or-expression:error1/disp8
+    # if (line->data[line->read + 1] != '(') goto regular word
+    3d/compare-eax-and  0x28/imm32/open-paren
+    75/jump-if-!=  $next-word-or-expression:regular-word/disp8
+$next-word-or-expression:paren:
+    # skip-until-close-paren(line)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  skip-until-close-paren/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # if (line->data[line->read] != ')') goto error2
+    # . eax = line->data[line->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/AL    0xc/disp8       .                 # copy byte at *(esi+ecx+12) to AL
+    # . if (eax != ')') goto error2
+    3d/compare-eax-and  0x29/imm32/close-paren
+    75/jump-if-!=  $next-word-or-expression:error2/disp8
+    # skip ')'
+    ff          0/subop/increment   1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # increment *(esi+4)
+    # fall through
+$next-word-or-expression:regular-word:
+    # skip-chars-not-matching-whitespace(line)  # including trailing newline
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  skip-chars-not-matching-whitespace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # out->end = &line->data[line->read]
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(esi+4) to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           0/r32/eax   0xc/disp8       .                 # copy esi+ecx+12 to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+$next-word-or-expression:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$next-word-or-expression:error1:
+    # print(stderr, "error: no space allowed after '*' in '" line "'")
+    # . write-buffered(Stderr, "error: no space allowed after '*' in '")
+    # . . push args
+    68/push  "error: no space allowed after '*' in '"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(Stderr, "'")
+    # . . push args
+    68/push  "'"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$next-word-or-expression:error2:
+    # print(stderr, "error: *(...) expression must be all on a single line in '" line "'")
+    # . write-buffered(Stderr, "error: *(...) expression must be all on a single line in '")
+    # . . push args
+    68/push  "error: *(...) expression must be all on a single line in '"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-stream-data(Stderr, line)
+    # . . push args
+    56/push-esi
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(Stderr, "'")
+    # . . push args
+    68/push  "'"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-next-word-or-expression:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, "  ab")
+    # . . push args
+    68/push  "  ab"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-expression(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-expression/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-input-stream->read, 4, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression/updates-stream-read-correctly"/imm32
+    68/push  4/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 14, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression: start"/imm32
+    68/push  0xe/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 4, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 16, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression: end"/imm32
+    68/push  0x10/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-expression-returns-whole-comment:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, "  # a")
+    # . . push args
+    68/push  "  # a"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-expression(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-expression/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(_test-input-stream->read, 5, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-whole-comment/updates-stream-read-correctly"/imm32
+    68/push  5/imm32
+    b8/copy-to-eax  _test-input-stream/imm32
+    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax    .           .             .           .           4/disp8         .                 # push *(eax+4)
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 2, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 14, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-whole-comment: start"/imm32
+    68/push  0xe/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 5, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 17, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-whole-comment: end"/imm32
+    68/push  0x11/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-expression-returns-empty-slice-on-eof:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write nothing to _test-input-stream
+    # next-word-or-expression(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-expression/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->end - slice->start, 0, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-empty-expression-on-eof"/imm32
+    68/push  0/imm32
+    # . . push slice->end - slice->start
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    2b/subtract                     0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # subtract *ecx from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-expression-returns-string-literal:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, " \"a b\"/imm32 ")
+    # . . push args
+    68/push  " \"a b\"/imm32 "/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-expression(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-expression/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-string-literal: start"/imm32
+    68/push  0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 12, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 24, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-string-literal: end"/imm32
+    68/push  0x18/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-expression-returns-string-with-escapes:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, " \"a\\\"b\"/x")
+    # . . push args
+    68/push  " \"a\\\"b\"/x"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-expression(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-expression/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-string-with-escapes: start"/imm32
+    68/push  0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 9, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 21, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-string-with-escapes: end"/imm32
+    68/push  0x15/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-word-or-expression-returns-whole-expression:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # write(_test-input-stream, " *(a b)/imm32 ")
+    # . . push args
+    68/push  " *(a b)/imm32 "/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # next-word-or-expression(_test-input-stream, slice)
+    # . . push args
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  next-word-or-expression/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check-ints-equal(slice->start - _test-input-stream->data, 1, msg)
+    # . check-ints-equal(slice->start - _test-input-stream, 13, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-whole-expression: start"/imm32
+    68/push  0xd/imm32
+    # . . push slice->start - _test-input-stream
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(slice->end - _test-input-stream->data, 13, msg)
+    # . check-ints-equal(slice->end - _test-input-stream, 25, msg)
+    # . . push args
+    68/push  "F - test-next-word-or-expression-returns-whole-expression: end"/imm32
+    68/push  0x19/imm32
+    # . . push slice->end - _test-input-stream
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(ecx+4) to eax
+    81          5/subop/subtract    3/mod/direct    0/rm32/eax    .           .             .           .           .               _test-input-stream/imm32 # subtract from eax
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Grammar:
+#   *reg                    -> 0/mod reg/rm32
+#   *(reg)                  -> 0/mod reg/rm32
+#   *(reg+disp)             -> 2/mod reg/rm32 disp/disp32
+#   *(reg1+reg2<<s)         -> 2/mod 4/rm32 reg1/base reg2/index s/scale 0/disp32
+#   *(reg1+reg2<<s+disp)    -> 2/mod 4/rm32 reg1/base reg2/index s/scale disp/disp32
+# Intermediate structure: base, index, scale, disp
+# Default values: base: 0, index: 4 (none), scale: 0, disp: 0
+parse-effective-address:  # word-slice: (addr slice) -> base/eax, index/ecx, scale/edx, disp/ebx
+    # pseudocode:
+    #   var local-slice = {word-slice->start, word-slice->end}
+    #   ++local-slice->start to skip '*'
+    #   initialize defaults: base=0, index=4, scale=0, disp=0
+    #   if (*local-slice->start != '(') {
+    #     local-slice = next-token-from-slice(local-slice->start, local-slice->end, "/")
+    #     base = get-slice(Registers, local-slice, row-size=12)
+    #     return
+    #   }
+    #   # compound expressions
+    #   skip whitespace
+    #   read register into base
+    #   skip whitespace
+    #   if (*local-slice->start == ')') goto end
+    #   if (*local-slice->start == '-') goto displacement
+    #   if (*local-slice->start != '+') goto error1
+    #   ++local-slice->start to skip '+'
+    #   skip whitespace
+    #   if next 3 characters don't make a register, goto displacement
+    #   read register into index
+    #   skip whitespace
+    #   if (*local-slice->start == ')') goto end
+    #   if (*local-slice->start == '<') {
+    #     ++local-slice->start to skip '<'
+    #     if (*local-slice->start != '<') goto error2
+    #     ++local-slice->start to skip '<'
+    #     skip whitespace
+    #     read integer into scale
+    #     skip whitespace
+    #     if (*local-slice->start == ')') goto end
+    #   }
+    #   if (*local-slice->start not in '+' '-') goto error3
+    # displacement:
+    #   read integer into disp
+    #   skip whitespace
+    #   if (*local-slice->start != ')') goto error4
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    56/push-esi
+    57/push-edi
+    # var local-slice/esi: slice = {word-slice->start, word-slice->end}
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # ++local-slice->start to skip '*'
+    ff          0/subop/increment   0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # increment *esi
+    # initialize defaults
+    # base is in edi; we'll move it to eax just before we return
+    bf/copy-to-edi  0/imm32
+    b9/copy-to-ecx  4/imm32/no-index
+    ba/copy-to-edx  0/imm32/.scale
+    bb/copy-to-ebx  0/imm32/disp
+$parse-effective-address:check-for-simple-register:
+    # if (*local-slice->start == '(') goto compound expression
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    3d/compare-eax-and  0x28/imm32/open-paren
+    74/jump-if-=  $parse-effective-address:compound-expression/disp8
+$parse-effective-address:simple-register:
+    # local-slice = next-token-from-slice(local-slice->start, local-slice->end, "/")
+    # . . push args
+    56/push-esi
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # base = get-slice(Registers, local-slice, row-size=12)
+    # . eax = get-slice(Registers, local-slice, row-size=12)
+    # . . push args
+    68/push  "Registers"/imm32
+    68/push  0xc/imm32/row-size
+    56/push-esi
+    68/push  Registers/imm32
+    # . . call
+    e8/call  get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . base = *eax
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           7/r32/edi   .               .                 # copy *eax to edi
+    # return
+    e9/jump  $parse-effective-address:end/disp32
+$parse-effective-address:compound-expression:
+    # ++local-slice->start to skip '('
+    ff          0/subop/increment   0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # increment *esi
+    # skip whitespace
+    # . eax = skip-chars-matching-whitespace-in-slice(local-slice->start, local-slice->end)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . local-slice->start = eax
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to *esi
+    # read register into base
+    # . eax = next-register(local-slice)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  next-register/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . edi = *eax
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           7/r32/edi   .               .                 # copy *eax to edi
+    # skip whitespace
+    # . eax = skip-chars-matching-whitespace-in-slice(local-slice->start, local-slice->end)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . local-slice->start = eax
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to *esi
+    # if (*local-slice->start == ')') goto end
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    3d/compare-eax-and  0x29/imm32/close-paren
+    0f 84/jump-if-=  $parse-effective-address:end/disp32
+    # if (*local-slice->start == '-') goto displacement
+    3d/compare-eax-and  0x2d/imm32/minus
+    0f 84/jump-if-=  $parse-effective-address:displacement/disp32
+    # if (*local-slice->start != '+') goto error1
+    3d/compare-eax-and  0x2b/imm32/plus
+    0f 85/jump-if-!=  $parse-effective-address:error1/disp32
+$parse-effective-address:check-for-index:
+    # ++local-slice->start to skip '+'
+    ff          0/subop/increment   0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # increment *esi
+    # skip whitespace
+    # . eax = skip-chars-matching-whitespace-in-slice(local-slice->start, local-slice->end)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . local-slice->start = eax
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to *esi
+$parse-effective-address:resolve-ambiguity:
+    # if next 3 characters don't make a register, goto displacement
+    # . spill ecx
+    51/push-ecx
+    # . var tmp/ecx = {local-slice->start, local-slice->start+3}
+    # . . ecx = local-slice->start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to ecx
+    # . . eax = local-slice->start+3
+    05/add-to-eax  3/imm32
+    # . . push
+    50/push-eax
+    51/push-ecx
+    # . . copy esp to ecx
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . eax = maybe-get-slice(Register, tmp, row-size=12)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    51/push-ecx
+    68/push  Registers/imm32
+    # . . call
+    e8/call  maybe-get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim tmp
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore ecx
+    59/pop-to-ecx
+    # . if (eax == 0) goto displacement
+    3d/compare-eax-and  0/imm32
+    0f 84/jump-if-=  $parse-effective-address:displacement/disp32
+$parse-effective-address:index:
+    # read register into index
+    # . eax = next-register(local-slice)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  next-register/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . ecx = *eax
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    # skip whitespace
+    # . eax = skip-chars-matching-whitespace-in-slice(local-slice->start, local-slice->end)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . local-slice->start = eax
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to *esi
+    # if (*local-slice->start == ')') goto end
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    3d/compare-eax-and  0x29/imm32/close-paren
+    0f 84/jump-if-=  $parse-effective-address:end/disp32
+$parse-effective-address:check-for-scale:
+    # if (*local-slice->start != '<') goto next check
+    3d/compare-eax-and  0x3c/imm32/less-than
+    75/jump-if-!=  $parse-effective-address:check-for-displacement/disp8
+    # ++local-slice->start to skip '<'
+    ff          0/subop/increment   0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # increment *esi
+    # if (*local-slice->start != '<') goto error2
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    3d/compare-eax-and  0x3c/imm32/less-than
+    0f 85/jump-if-!=  $parse-effective-address:error2/disp32
+    # ++local-slice->start to skip '<'
+    ff          0/subop/increment   0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # increment *esi
+    # skip whitespace
+    # . eax = skip-chars-matching-whitespace-in-slice(local-slice->start, local-slice->end)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . local-slice->start = eax
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to *esi
+$parse-effective-address:scale:
+    # read positive integer into scale
+    # . eax = next-positive-hex-int(local-slice)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  next-positive-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . edx = eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to edx
+    # skip whitespace
+    # . eax = skip-chars-matching-whitespace-in-slice(local-slice->start, local-slice->end)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . local-slice->start = eax
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to *esi
+    # if (*local-slice->start == ')') goto end
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    3d/compare-eax-and  0x29/imm32/close-paren
+    74/jump-if-=  $parse-effective-address:end/disp8
+$parse-effective-address:check-for-displacement:
+    # if (*local-slice->start not in '+' '-') goto error3
+    3d/compare-eax-and  0x2b/imm32/plus
+    74/jump-if-=  $parse-effective-address:displacement/disp8
+    3d/compare-eax-and  0x2d/imm32/minus
+    74/jump-if-=  $parse-effective-address:displacement/disp8
+    e9/jump  $parse-effective-address:error3/disp32
+$parse-effective-address:displacement:
+    # read integer into disp
+    # . eax = next-hex-int(local-slice)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  next-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . ebx = eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # copy eax to ebx
+    # skip whitespace
+    # . eax = skip-chars-matching-whitespace-in-slice(local-slice->start, local-slice->end)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . local-slice->start = eax
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to *esi
+    # if (*local-slice->start != ')') goto error4
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    3d/compare-eax-and  0x29/imm32/close-paren
+    0f 85/jump-if-!=  $parse-effective-address:error4/disp32
+$parse-effective-address:end:
+    # return base in eax
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           7/r32/edi   .               .                 # copy edi to eax
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$parse-effective-address:error1:
+    # print(stderr, "error: unexpected character: " eax "\n")
+    # . write-buffered(Stderr, "error: unexpected character: ")
+    # . . push args
+    68/push  "error: unexpected character: "/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, eax)
+    # . . push args
+    50/push-eax
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(Stderr, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$parse-effective-address:error2:
+    # print(stderr, "error: '<' can only be followed by '<' but got: " eax "\n")
+    # . write-buffered(Stderr, "error: '<' can only be followed by '<' but got: ")
+    # . . push args
+    68/push  "error: '<' can only be followed by '<' but got: "/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, eax)
+    # . . push args
+    50/push-eax
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(Stderr, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$parse-effective-address:error3:
+    # print(stderr, "error: unexpected character before displacement: " eax "\n")
+    # . write-buffered(Stderr, "error: unexpected character before displacement: ")
+    # . . push args
+    68/push  "error: unexpected character before displacement: "/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, eax)
+    # . . push args
+    50/push-eax
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(Stderr, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$parse-effective-address:error4:
+    # print(stderr, "error: unexpected character after displacement: " eax "; expected ')' to wrap up\n")
+    # . write-buffered(Stderr, "error: unexpected character after displacement: ")
+    # . . push args
+    68/push  "error: unexpected character after displacement: "/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, eax)
+    # . . push args
+    50/push-eax
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(Stderr, "; expected ')' to wrap up\n")
+    # . . push args
+    68/push  "; expected ')' to wrap up\n"/imm32
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+# assumes 'in' starts with a register name, and returns pointer to its code
+# side-effect: modifies 'in' to scan past the initial register name
+next-register:  # in: (addr slice) -> reg/eax: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var reg-slice/ecx: slice = {in->start, in->start + 3}
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    05/add-to-eax  3/imm32
+    50/push-eax
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # in->start += 3
+    81          0/subop/add         0/mod/indirect  6/rm32/esi    .           .             .           .           .               3/imm32           # add to *esi
+    # eax = get-slice(Registers, reg-slice, row-size=12)
+    # . . push args
+    68/push  "next-register"/imm32
+    68/push  0xc/imm32/row-size
+    51/push-ecx
+    68/push  Registers/imm32
+    # . . call
+    e8/call  get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+$next-register:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5e/pop-to-esi
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-effective-address-simple:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx = "*esi"
+    b8/copy-to-eax  "*esi"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax, ecx, edx, ebx = parse-effective-address(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-effective-address/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # slice clobbered beyond this point
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-simple/base"/imm32
+    68/push  6/imm32/esi
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx, 4, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-simple/index"/imm32
+    68/push  4/imm32/none
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(edx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-simple/scale"/imm32
+    68/push  0/imm32/none
+    52/push-edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ebx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-simple/displacement"/imm32
+    68/push  0/imm32/none
+    53/push-ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-effective-address-base:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx = "*(esi  )"
+    b8/copy-to-eax  "*(esi  )"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax, ecx, edx, ebx = parse-effective-address(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-effective-address/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # slice clobbered beyond this point
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base/base"/imm32
+    68/push  6/imm32/esi
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx, 4, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base/index"/imm32
+    68/push  4/imm32/none
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(edx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base/scale"/imm32
+    68/push  0/imm32/none
+    52/push-edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ebx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base/displacement"/imm32
+    68/push  0/imm32/none
+    53/push-ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-effective-address-base-displacement:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx = "*(esi+3)"
+    b8/copy-to-eax  "*(esi+3)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax, ecx, edx, ebx = parse-effective-address(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-effective-address/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # slice clobbered beyond this point
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-displacement/base"/imm32
+    68/push  6/imm32/esi
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx, 4, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-displacement/index"/imm32
+    68/push  4/imm32/none
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(edx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-displacement/scale"/imm32
+    68/push  0/imm32/none
+    52/push-edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ebx, 3, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-displacement/displacement"/imm32
+    68/push  3/imm32
+    53/push-ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-effective-address-base-negative-displacement:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx = "*(esi-3)"
+    b8/copy-to-eax  "*(esi-3)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax, ecx, edx, ebx = parse-effective-address(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-effective-address/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # slice clobbered beyond this point
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-negative-displacement/base"/imm32
+    68/push  6/imm32/esi
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx, 4, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-negative-displacement/index"/imm32
+    68/push  4/imm32/none
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(edx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-negative-displacement/scale"/imm32
+    68/push  0/imm32/none
+    52/push-edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ebx, -3, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-negative-displacement/displacement"/imm32
+    68/push  -3/imm32
+    53/push-ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-effective-address-base-index:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx = "*(esi+ecx)"
+    b8/copy-to-eax  "*(esi+ecx)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax, ecx, edx, ebx = parse-effective-address(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-effective-address/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # slice clobbered beyond this point
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index/base"/imm32
+    68/push  6/imm32/esi
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx, 1, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index/index"/imm32
+    68/push  1/imm32/none
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(edx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index/scale"/imm32
+    68/push  0/imm32/none
+    52/push-edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ebx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index/displacement"/imm32
+    68/push  0/imm32
+    53/push-ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-effective-address-base-index-scale:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx = "*(esi+ecx<<2)"
+    b8/copy-to-eax  "*(esi+ecx<<2)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax, ecx, edx, ebx = parse-effective-address(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-effective-address/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # slice clobbered beyond this point
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index-scale/base"/imm32
+    68/push  6/imm32/esi
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx, 1, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index-scale/index"/imm32
+    68/push  1/imm32/none
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(edx, 2, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index-scale/scale"/imm32
+    68/push  2/imm32
+    52/push-edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ebx, 0, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index-scale/displacement"/imm32
+    68/push  0/imm32
+    53/push-ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-parse-effective-address-base-index-scale-displacement:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # var slice/ecx = "*(esi + ecx<<2 - 0x34)"
+    b8/copy-to-eax  "*(esi + ecx<<2 - 0x34)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # . ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax, ecx, edx, ebx = parse-effective-address(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  parse-effective-address/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # slice clobbered beyond this point
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index-scale/base"/imm32
+    68/push  6/imm32/esi
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ecx, 1, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index-scale/index"/imm32
+    68/push  1/imm32/none
+    51/push-ecx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(edx, 2, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index-scale/scale"/imm32
+    68/push  2/imm32
+    52/push-edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # check-ints-equal(ebx, -0x34, msg)
+    # . . push args
+    68/push  "F - test-parse-effective-address-base-index-scale/displacement"/imm32
+    68/push  -0x34/imm32
+    53/push-ebx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# Code generation:
+#   if base is esp, then goto emit-sib
+#   if base is ebp, then goto emit-sib
+#   if index is none and disp is 0, then mod = 0 and rm32 = base
+#   if index is none, then mod = 2 and rm32 = base and disp32 = disp
+# emit-sib:
+#   if index is not none, then mod = 2 and rm32 = 4 and base = base and index = index and disp32 = disp
+emit-indirect-mode:  # out: (addr buffered-file), base: int, index: int, scale: int, disp: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+$emit-indirect-mode:check-for-ebp:
+    # if (base == 5) goto emit-sib
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       5/imm32           # compare *(ebp+12)
+    74/jump-if-=  $emit-indirect-mode:emit-sib/disp8
+$emit-indirect-mode:check-for-esp:
+    # if (base == 4) goto emit-sib
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       4/imm32           # compare *(ebp+12)
+    74/jump-if-=  $emit-indirect-mode:emit-sib/disp8
+$emit-indirect-mode:check-for-sib:
+    # if (index == 4/none) goto next check
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      4/imm32           # compare *(ebp+16)
+    0f 84/jump-if-=  $emit-indirect-mode:check-for-disp/disp32
+$emit-indirect-mode:emit-sib:
+    # emit(out, "2/mod/indirect 4/rm32/sib " base "/base " index "/index " scale "/scale " disp "/disp32")
+    # . write-buffered(out, "2/mod/*+disp32 4/rm32/sib ")
+    # . . push args
+    68/push  "2/mod/*+disp32 4/rm32/sib "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, base)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(out, "/base ")
+    # . . push args
+    68/push  "/base "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, index)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(out, "/index ")
+    # . . push args
+    68/push  "/index "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, scale)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(out, "/scale ")
+    # . . push args
+    68/push  "/scale "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, disp)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(out, "/disp32")
+    # . . push args
+    68/push  "/disp32"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    e9/jump  $emit-indirect-mode:end/disp32
+$emit-indirect-mode:check-for-disp:
+    # if (disp == 0) goto next check
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      0/imm32           # compare *(ebp+24)
+    74/jump-if-=  $emit-indirect-mode:emit-indirect/disp8
+$emit-indirect-mode:emit-disp:
+    # emit(out, "2/mod/*+disp32 " base "/rm32 " disp "/disp32")
+    # . write-buffered(out, "2/mod/*+disp32 ")
+    # . . push args
+    68/push  "2/mod/*+disp32 "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, base)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(out, "/rm32 ")
+    # . . push args
+    68/push  "/rm32 "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, disp)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(out, "/disp32")
+    # . . push args
+    68/push  "/disp32"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    eb/jump  $emit-indirect-mode:end/disp8
+$emit-indirect-mode:emit-indirect:
+    # emit(out, "0/mod/indirect " base "/rm32")
+    # . write-buffered(out, "0/mod/indirect ")
+    # . . push args
+    68/push  "0/mod/indirect "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-int32-hex-buffered(out, base)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-buffered(out, "/rm32")
+    # . . push args
+    68/push  "/rm32"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-indirect-mode:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-indirect-mode:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-indirect-mode(_test-output-buffered-file, 0, 4/none, 0, 0)
+    # . . write args
+    68/push  0/imm32/.disp
+    68/push  0/imm32/.scale
+    68/push  4/imm32/.index/none
+    68/push  0/imm32/.base
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-indirect-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "0/mod/indirect 0/rm32", msg)
+    # . . push args
+    68/push  "F - test-emit-indirect-mode"/imm32
+    68/push  "0/mod/indirect 0x00000000/rm32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-indirect-mode-2:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-indirect-mode(_test-output-buffered-file, 6, 4/none, 0, 0)
+    # . . write args
+    68/push  0/imm32/.disp
+    68/push  0/imm32/.scale
+    68/push  4/imm32/.index/none
+    68/push  7/imm32/.base
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-indirect-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "0/mod/indirect 7/rm32", msg)
+    # . . push args
+    68/push  "F - test-emit-indirect-mode-2"/imm32
+    68/push  "0/mod/indirect 0x00000007/rm32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-indirect-mode-with-disp:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-indirect-mode(_test-output-buffered-file, 6, 4/none, 0, 4)
+    # . . write args
+    68/push  4/imm32/.disp
+    68/push  0/imm32/.scale
+    68/push  4/imm32/.index/none
+    68/push  6/imm32/.base
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-indirect-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "2/mod/*+disp32 6/rm32 4/disp32", msg)
+    # . . push args
+    68/push  "F - test-emit-indirect-mode-with-disp"/imm32
+    68/push  "2/mod/*+disp32 0x00000006/rm32 0x00000004/disp32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-indirect-mode-with-disp-negative:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-indirect-mode(_test-output-buffered-file, 6, 4/none, 0, -4)
+    # . . write args
+    68/push  -4/imm32/.disp
+    68/push  0/imm32/.scale
+    68/push  4/imm32/.index/none
+    68/push  6/imm32/.base
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-indirect-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "2/mod/*+disp32 6/rm32 -4/disp32", msg)
+    # . . push args
+    68/push  "F - test-emit-indirect-mode-with-disp"/imm32
+    68/push  "2/mod/*+disp32 0x00000006/rm32 0xfffffffc/disp32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-indirect-mode-with-sib:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-indirect-mode(_test-output-buffered-file, 6/base, 1/index, 2/scale, 4/disp)
+    # . . write args
+    68/push  4/imm32/.disp
+    68/push  2/imm32/.scale
+    68/push  1/imm32/.index
+    68/push  6/imm32/.base
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-indirect-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "2/mod/indirect 4/rm32/sib 6/base 1/index 2/scale 4/disp", msg)
+    # . . push args
+    68/push  "F - test-emit-indirect-mode-with-sib"/imm32
+    68/push  "2/mod/*+disp32 4/rm32/sib 0x00000006/base 0x00000001/index 0x00000002/scale 0x00000004/disp32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-indirect-mode-ebp:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-indirect-mode(_test-output-buffered-file, 5/base, 0/index, 0/scale, 0/disp)
+    # . . write args
+    68/push  0/imm32/.disp
+    68/push  0/imm32/.scale
+    68/push  0/imm32/.index
+    68/push  5/imm32/.base/ebp
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-indirect-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "2/mod/*+disp32 4/rm32/sib 5/base/ebp 0/index 0/scale 0/disp32", msg)
+    # . . push args
+    68/push  "F - test-emit-indirect-mode-ebp"/imm32
+    68/push  "2/mod/*+disp32 4/rm32/sib 0x00000005/base 0x00000000/index 0x00000000/scale 0x00000000/disp32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-indirect-mode-esp:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-indirect-mode(_test-output-buffered-file, 4/base, 0/index, 0/scale, 0/disp)
+    # . . write args
+    68/push  0/imm32/.disp
+    68/push  0/imm32/.scale
+    68/push  0/imm32/.index
+    68/push  4/imm32/.base/esp
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  emit-indirect-mode/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-stream-equal(_test-output-stream, "2/mod/*+disp32 4/rm32/sib 4/base/ebp 0/index 0/scale 0/disp32", msg)
+    # . . push args
+    68/push  "F - test-emit-indirect-mode-esp"/imm32
+    68/push  "2/mod/*+disp32 4/rm32/sib 0x00000004/base 0x00000000/index 0x00000000/scale 0x00000000/disp32"/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-stream-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+disp32-mode?:  # in: (addr slice) -> reg/eax: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    56/push-esi
+    57/push-edi
+    # var local-slice/esi: slice = {in->start, in->end}
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # ++local-slice->start to skip '*'
+    ff          0/subop/increment   0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # increment *esi
+    # if (*local-slice->start == '(') return false
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    3d/compare-eax-and  0x28/imm32/open-paren
+    74/jump-if-=  $disp32-mode?:false/disp8
+$disp32-mode?:check-for-register:
+    # local-slice = next-token-from-slice(local-slice->start, local-slice->end, "/")
+    # . . push args
+    56/push-esi
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # reg-num/eax = maybe-get-slice(Registers, local-slice, row-size=12)
+    # . . push args
+    68/push  0xc/imm32/row-size
+    56/push-esi
+    68/push  Registers/imm32
+    # . . cal
+    e8/call  maybe-get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # if (eax != 0) return false
+    3d/compare-eax-and  0/imm32
+    75/jump-if-!=  $disp32-mode?:false/disp8
+    # return true
+    b8/copy-to-eax  1/imm32/true
+    eb/jump  $disp32-mode?:end/disp8
+$disp32-mode?:false:
+    b8/copy-to-eax  0/imm32/false
+$disp32-mode?:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-indirect-disp32:  # out: (addr buffered-file), word-slice: (addr slice)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    56/push-esi
+    # var local-slice/esi: slice = {in->start, in->end}
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # ++local-slice->start to skip '*'
+    ff          0/subop/increment   0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # increment *esi
+    # write-buffered(out, "0/mod/indirect 5/rm32/.disp32 ")
+    # . . push args
+    68/push  "0/mod/indirect 5/rm32/.disp32 "/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-slice-buffered(out, local-slice)
+    # . . push args
+    56/push-esi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, "/disp32")
+    # . . push args
+    68/push  "/disp32"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-indirect-disp32:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5e/pop-to-esi
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# assumes 'in' starts with optional '+' or '-', optional whitespace, and an unsigned integer
+# returns the value of the integer
+# side-effect: modifies 'in' to skip past the integer
+next-hex-int:  # in: (addr slice) -> result/eax
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # result/edi = 0
+    31/xor                          3/mod/direct    7/rm32/edi    .           .             .           7/r32/edi   .               .                 # clear edi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edx = in->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   4/disp8         .                 # copy *(esi+4) to edx
+    # curr/ecx = in->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    # negate?/ebx = false
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # eax = *curr
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+$next-hex-int:positive:
+    # if (*curr == '+') ++curr
+    3d/compare-eax-and  0x2b/imm32/+
+    75/jump-if-!=  $next-hex-int:negative/disp8
+    # . ++curr
+    41/increment-ecx
+    eb/jump  $next-hex-int:skip-whitespace/disp8
+$next-hex-int:negative:
+    # else if (*curr == '-') ++curr, negate = true
+    3d/compare-eax-and  0x2d/imm32/-
+    75/jump-if-!=  $next-hex-int:skip-whitespace/disp8
+$next-hex-int:need-to-negate:
+    # . ++curr
+    41/increment-ecx
+    # . negate = true
+    bb/copy-to-ebx  1/imm32/true
+    # fall through
+$next-hex-int:skip-whitespace:
+    # spill eax
+    50/push-eax
+    # eax = skip-chars-matching-whitespace-in-slice(word-slice->start, word-slice->end)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  skip-chars-matching-whitespace-in-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # ecx = eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy eax to ecx
+    # restore eax
+    58/pop-to-eax
+$next-hex-int:initial-0:
+    # skip past leading '0x'
+    # . if (*curr != '0') jump to loop
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x30/imm32/0
+    75/jump-if-!=  $next-hex-int:loop/disp8
+    # . ++curr
+    41/increment-ecx
+$next-hex-int:initial-0x:
+    # . if (curr >= in->end) return result
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $next-hex-int:end/disp8
+    # . if (*curr != 'x') jump to loop  # the previous '0' is still valid so doesn't need to be checked again
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x78/imm32/x
+    75/jump-if-!=  $next-hex-int:loop/disp8
+    # . ++curr
+    41/increment-ecx
+$next-hex-int:loop:
+    # if (curr >= in->end) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $next-hex-int:break/disp8
+    # if (!is-hex-digit?(*curr)) break
+    # . eax = *curr
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    # . eax = is-hex-digit?(*curr)
+    # . . push args
+    50/push-eax
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false) break
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $next-hex-int:break/disp8
+    # eax = from-hex-char(*curr)
+    # . . copy arg to eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    # . . call
+    e8/call  from-hex-char/disp32
+    # result = result * 16 + eax
+    c1/shift    4/subop/left        3/mod/direct    7/rm32/edi    .           .             .           .           .               4/imm8            # shift edi left by 4 bits
+    01/add                          3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # add eax to edi
+    # ++curr
+    41/increment-ecx
+    # loop
+    eb/jump  $next-hex-int:loop/disp8
+$next-hex-int:break:
+    # if (negate?) result = -result
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0/imm32/false     # compare ebx
+    74/jump-if-=  $next-hex-int:end/disp8
+$next-hex-int:negate:
+    f7          3/subop/negate      3/mod/direct    7/rm32/edi    .           .             .           .           .               .                 # negate edi
+$next-hex-int:end:
+    # word-slice->start = curr
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy ecx to *esi
+    # return edi
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           7/r32/edi   .               .                 # copy edi to eax
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$next-hex-int:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "next-hex-int: invalid hex char: "/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . clear-stream($Stderr->buffer)
+    # . . save eax
+    50/push-eax
+    # . . push args
+    68/push  $Stderr->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . . restore eax
+    58/pop-to-eax
+    # . write-int32-hex-buffered(Stderr, eax)
+    # . . push args
+    50/push-eax
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-int32-hex-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . _write(2/stderr, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-next-hex-int-single-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "+a)"
+    b8/copy-to-eax  "+a)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0xa, msg)
+    # . . push args
+    68/push  "F - test-next-hex-int-single-digit"/imm32
+    68/push  0xa/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-hex-int-multi-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "+ 34a)"
+    b8/copy-to-eax  "+ 34a)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0x34a, msg)
+    # . . push args
+    68/push  "F - test-next-hex-int-multi-digit"/imm32
+    68/push  0x34a/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-hex-int-0x-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "+0x34)"
+    b8/copy-to-eax  "+0x34)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0x34, msg)
+    # . . push args
+    68/push  "F - test-next-hex-int-0x-prefix"/imm32
+    68/push  0x34/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-hex-int-zero:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "+0)"
+    b8/copy-to-eax  "+0)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-next-hex-int-zero"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-hex-int-0-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "+ 03)"
+    b8/copy-to-eax  "+ 03)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 3, msg)
+    # . . push args
+    68/push  "F - test-next-hex-int-0-prefix"/imm32
+    68/push  3/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-hex-int-negative:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "-03)"
+    b8/copy-to-eax  "-03)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, -3, msg)
+    # . . push args
+    68/push  "F - test-next-hex-int-negative"/imm32
+    68/push  -3/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-hex-int-negative-with-space:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "- 03)"
+    b8/copy-to-eax  "- 03)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, -3, msg)
+    # . . push args
+    68/push  "F - test-next-hex-int-negative-with-space"/imm32
+    68/push  -3/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# assumes 'in' starts a positive unsigned integer
+# returns the value of the integer
+# side-effect: modifies 'in' to skip past the integer
+next-positive-hex-int:  # in: (addr slice) -> result/eax
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # result/edi = 0
+    31/xor                          3/mod/direct    7/rm32/edi    .           .             .           7/r32/edi   .               .                 # clear edi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # edx = in->end
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   4/disp8         .                 # copy *(esi+4) to edx
+    # curr/ecx = in->start
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    # negate?/ebx = false
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # eax = *curr
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+$next-positive-hex-int:initial-0:
+    # skip past leading '0x'
+    # . if (*curr != '0') jump to loop
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x30/imm32/0
+    75/jump-if-!=  $next-positive-hex-int:loop/disp8
+    # . ++curr
+    41/increment-ecx
+$next-positive-hex-int:initial-0x:
+    # . if (curr >= in->end) return result
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $next-positive-hex-int:end/disp8
+    # . if (*curr != 'x') jump to loop  # the previous '0' is still valid so doesn't need to be checked again
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    3d/compare-eax-and  0x78/imm32/x
+    75/jump-if-!=  $next-positive-hex-int:loop/disp8
+    # . ++curr
+    41/increment-ecx
+$next-positive-hex-int:loop:
+    # if (curr >= in->end) break
+    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
+    73/jump-if-addr>=  $next-positive-hex-int:end/disp8
+    # if (!is-hex-digit?(*curr)) break
+    # . eax = *curr
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    # . eax = is-hex-digit?(*curr)
+    # . . push args
+    50/push-eax
+    # . . call
+    e8/call  is-hex-digit?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false) break
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $next-positive-hex-int:end/disp8
+    # eax = from-hex-char(*curr)
+    # . . copy arg to eax
+    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
+    # . . call
+    e8/call  from-hex-char/disp32
+    # result = result * 16 + eax
+    c1/shift    4/subop/left        3/mod/direct    7/rm32/edi    .           .             .           .           .               4/imm8            # shift edi left by 4 bits
+    01/add                          3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # add eax to edi
+    # ++curr
+    41/increment-ecx
+    # loop
+    eb/jump  $next-positive-hex-int:loop/disp8
+$next-positive-hex-int:end:
+    # word-slice->start = curr
+    89/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy ecx to *esi
+    # return edi
+    89/copy                         3/mod/direct    0/rm32/eax    .           .             .           7/r32/edi   .               .                 # copy edi to eax
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-positive-hex-int-single-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "a)"
+    b8/copy-to-eax  "a)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-positive-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-positive-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0xa, msg)
+    # . . push args
+    68/push  "F - test-next-positive-hex-int-single-digit"/imm32
+    68/push  0xa/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-positive-hex-int-multi-digit:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "34a)"
+    b8/copy-to-eax  "34a)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-positive-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-positive-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0x34a, msg)
+    # . . push args
+    68/push  "F - test-next-positive-hex-int-multi-digit"/imm32
+    68/push  0x34a/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-positive-hex-int-0x-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "0x34)"
+    b8/copy-to-eax  "0x34)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-positive-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-positive-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0x34, msg)
+    # . . push args
+    68/push  "F - test-next-positive-hex-int-0x-prefix"/imm32
+    68/push  0x34/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-positive-hex-int-zero:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "0"
+    b8/copy-to-eax  "0"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-positive-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-positive-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-next-positive-hex-int-zero"/imm32
+    68/push  0/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-next-positive-hex-int-0-prefix:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # (eax..ecx) = "03)"
+    b8/copy-to-eax  "03)"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var slice/ecx = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # eax = next-positive-hex-int(slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  next-positive-hex-int/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 3, msg)
+    # . . push args
+    68/push  "F - test-next-positive-hex-int-0-prefix"/imm32
+    68/push  3/imm32
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/stats.txt b/linux/stats.txt
new file mode 100644
index 00000000..4d229e3a
--- /dev/null
+++ b/linux/stats.txt
@@ -0,0 +1,73 @@
+## Lines in source files
+                          Initial   -whitespace/comments/tests
+apps/factorial.subx         120       44
+apps/crenshaw2-1.subx       561      180
+apps/crenshaw2-1b.subx      757      186
+apps/hex.subx              1442      149
+apps/survey_elf.subx       4733      905
+apps/pack.subx             5881      840
+apps/dquotes.subx          1925      383
+apps/assort.subx            905      183
+apps/tests.subx             284      137
+apps/sigils.subx           4641      896
+apps/calls.subx            1785      448
+apps/braces.subx            360      121
+apps/mu.subx              36692    12858
+
+## Total source lines needed including libraries
+                          Initial   -whitespace/comments/tests/dead code
+apps/factorial.subx        8436     1700
+apps/crenshaw2-1.subx      8644     1925
+apps/crenshaw2-1b.subx     8736     1931
+apps/hex.subx              9065     1908
+apps/survey_elf.subx      10217     3248
+apps/pack.subx            10589     2727
+apps/dquotes.subx          9262     2468
+apps/assort.subx           8686     2425
+apps/tests.subx            8519     2214
+apps/sigils.subx          10578     3043
+apps/calls.subx            9242     2388
+apps/braces.subx           8545     2111
+apps/mu.subx              35438    15820
+
+## executable size in KB
+                          Initial   -tests/dead code
+apps/crenshaw2-1            41        4.3
+apps/crenshaw2-1b           42        5.2
+apps/factorial              42        5.2
+apps/hex                    45        5.0
+apps/survey_elf             51        9.6
+apps/pack                   54        7.6
+apps/dquotes                46        6.5
+apps/assort                 42        6.4
+apps/tests                  41        5.8
+apps/sigils                 54        9.1
+apps/calls                  47        7.1
+apps/braces                 42        5.9
+apps/mu                    563      131.0
+
+## history of apps/mu.subx
+                                                        date    commit  mu.subx   -tests/cmts  binary (KB excl. dead code)
+parsing function headers                           2019 Oct 30  5725      621         277         6.9
+function calls                                          Nov 10  5739     1202         346         7.2
+code-generating primitive instructions                  Nov 17  5750     1923         363         7.3
+arguments                                               Nov 30  5785     4038        1330        13
+return values                                      2020 Jan 1   5878     5432        1457        15
+compound types: `addr` and `array`                      Jan 20  5911     6023        1697        16
+local variables and their reclamation                   Jan 27  5934     6340        1900        18
+register locals and shadowing                           Jan 27  5940     6498        1940        18
+blocks                                                  Jan 29  5948     7455        2534        22
+break/continue instructions                             Jan 30  5964     7871        2558        22
+cleaning up locals in the presence of early exits       Feb 9   6000     8554        2918        26
+pointer dereferencing                                   Feb 20  6040     9053        3075        27
+arrays, and indexing them with a non-literal
+user-defined types, and getting fields in them          Mar 11  6135    11592        4165        33
+-- cleanup: switch to handles everywhere                May 22  6382    15014        5064        39
+first round of prototyping and static checks            Jun 21  6572    18722        6044        49
+more checks                                             Jul 25  6674    22067        7153        61
+more checks                                             Aug 22  6723    23934        7851        69
+floating point                                          Sep 30  6917    26067        8595        74
+more checks                                             Nov 5   7187    34150       11953       119
+== mostly done                                          Nov 20  7267    36692       12858       131
+
+vim:nowrap:tw&
diff --git a/linux/subx-params.subx b/linux/subx-params.subx
new file mode 100644
index 00000000..553b372f
--- /dev/null
+++ b/linux/subx-params.subx
@@ -0,0 +1,19 @@
+# Various knobs for translating SubX programs using SubX.
+
+== data
+
+# largest segment that can be translated
+Segment-size:
+  0x300000/imm32/3MB
+
+# maximum size of input textual stream (spanning all segments)
+Input-size:
+  0x600000/imm32/6MB
+
+# number of labels we can translate to addresses
+Max-labels:
+  0x60000/imm32/16K-labels/384KB
+
+# capacity of trace-stream
+Trace-size:
+  0x200000/imm32/2MB
diff --git a/linux/survey_baremetal b/linux/survey_baremetal
new file mode 100755
index 00000000..c11a0169
--- /dev/null
+++ b/linux/survey_baremetal
Binary files differdiff --git a/linux/survey_baremetal.subx b/linux/survey_baremetal.subx
new file mode 100644
index 00000000..c42cd900
--- /dev/null
+++ b/linux/survey_baremetal.subx
@@ -0,0 +1,2720 @@
+# Assign addresses (co-ordinates) to instructions (landmarks) in a program
+# (landscape).
+# Use the addresses assigned to replace labels.
+#
+# To build:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/subx-params.subx apps/survey_baremetal.subx  -o apps/survey_baremetal
+#
+# The expected input is a stream of bytes and some interspersed labels.
+# Comments and '==' segment headers are allowed, but ignored. The emitted code
+# will all lie in a single header, and start at address 0x9400.
+#   $ cat x
+#   == code
+#   l1:
+#   aa bb l1/imm8
+#   cc dd l2/disp32
+#   l2:
+#   ee foo/imm32
+#   == data
+#   foo:
+#     00
+#
+# The output is the stream of bytes without segment headers or label definitions,
+# and with label references replaced with numeric values/displacements.
+#
+#   $ cat x  |./bootstrap run apps/survey_baremetal
+#   aa bb nn  # some computed address
+#   cc dd nn nn nn nn  # some computed displacement
+#   ee nn nn nn nn  # address right after this instruction
+#   # data segment interleaved with code
+#   00
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize-trace-stream(Trace-size)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-size/disp32                 # push *Heap-size
+    # . . call
+    e8/call  initialize-trace-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto interactive
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $subx-survey-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto interactive
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto interactive
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-survey-main:interactive/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $subx-survey-main:end/disp8
+$subx-survey-main:interactive:
+    # - otherwise convert stdin
+    # subx-survey(Stdin, Stdout)
+    # . . push args
+    68/push  Stdout/imm32
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  subx-survey/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$subx-survey-main:end:
+    e8/call  syscall_exit/disp32
+
+subx-survey:  # infile: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode
+    #   var in: (stream byte Input-size)
+    #   slurp(infile, in)
+    #   var labels: (stream {label-name, address} Max-labels)
+    #   compute-offsets(in, labels)
+    #   rewind-stream(in)
+    #   emit-output(in, out, labels)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # var labels/edx: (stream {label-name, address} Max-labels)
+    # (we get more rows than Max-labels advertises because row size is smaller than in survey_elf)
+    # . data
+    2b/subtract                     0/mod/indirect  5/rm32/.disp32            .             .           4/r32/esp   Max-labels/disp32                 # subtract *Max-labels from esp
+    # . size
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Max-labels/disp32                 # push *Max-labels
+    # . read
+    68/push  0/imm32/read
+    # . write
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # var in/esi: (stream byte Input-size)
+    # . data
+    2b/subtract                     0/mod/indirect  5/rm32/.disp32            .             .           4/r32/esp   Input-size/disp32                 # subtract *Input-size from esp
+    # . size
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Input-size/disp32                 # push *Input-size
+    # . read
+    68/push  0/imm32/read
+    # . write
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # slurp(infile, in)
+    # . . push args
+    56/push-esi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  slurp/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # compute-offsets(in, labels)
+    # . . push args
+    52/push-edx
+    56/push-esi
+    # . . call
+    e8/call  compute-offsets/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # rewind-stream(in)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-output(in, out, labels)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    56/push-esi
+    # . . call
+    e8/call  emit-output/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$subx-survey:end:
+    # . reclaim locals
+    03/add                          0/mod/indirect  5/rm32/.disp32            .             .           4/r32/esp   Max-labels/disp32                 # add *Max-labels to esp
+    03/add                          0/mod/indirect  5/rm32/.disp32            .             .           4/r32/esp   Input-size/disp32                 # add *Input-size to esp
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-survey-computes-addresses:
+    # input:
+    #   == code
+    #   Entry:
+    #   ab x/imm32
+    #   == data
+    #   x:
+    #     01
+    #
+    # trace contains (in any order):
+    #   label x is at address 0x9405
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "== code\n")
+    # . . push args
+    68/push  "== code\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "Entry:\n")
+    # . . push args
+    68/push  "Entry:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab x/imm32\n")
+    # . . push args
+    68/push  "ab x/imm32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data\n")
+    # . . push args
+    68/push  "== data\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "x:\n")
+    # . . push args
+    68/push  "x:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "01\n")
+    # . . push args
+    68/push  "01\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-survey(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-survey/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check trace
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-trace-contains("label 'x' is at address 0x00009405.", msg)
+    # . . push args
+    68/push  "F - test-subx-survey-computes-addresses/0"/imm32
+    68/push  "label 'x' is at address 0x00009405."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+compute-offsets:  # in: (addr stream byte), labels: (addr stream {(handle array byte), address})
+    # pseudocode:
+    #   var current-address = 0x9400
+    #   var line: (stream byte 512)
+    #   while true                                  # line loop
+    #     clear-stream(line)
+    #     read-line(in, line)
+    #     if (line->write == 0) break               # end of file
+    #     while true                                # word loop
+    #       word-slice = next-word(line)
+    #       if slice-empty?(word-slice)             # end of line
+    #         break
+    #       else if slice-starts-with?(word-slice, "#")  # comment
+    #         break                                 # end of line
+    #       else if slice-equal?(word-slice, "==")  # no need for segment header
+    #         break
+    #       else if is-label?(word-slice)
+    #         strip trailing ':' from word-slice
+    #         trace("label '" word-slice "' is at address " current-address ".")
+    #         # labels occupy no space, so no need to increment offsets
+    #       else
+    #         width = compute-width-of-slice(word-slice)
+    #         current-address += width
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var current-address/esi: int = 0x9400
+    be/copy-to-esi  0x9400/imm32
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: (addr slice)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+$compute-offsets:line-loop:
+    # clear-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line(in, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (line->write == 0) break
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    3d/compare-eax-and  0/imm32
+    0f 84/jump-if-=  $compute-offsets:end/disp32
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # write-stream(2/stderr, line)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(line)
+#?     # . . push args
+#?     51/push-ecx
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+$compute-offsets:word-loop:
+    # next-word(line, word-slice)
+    52/push-edx
+    51/push-ecx
+    e8/call  next-word/disp32
+    # . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$compute-offsets:case-empty:
+    # if slice-empty?(word-slice) break
+    # . eax = slice-empty?(word-slice)
+    52/push-edx
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $compute-offsets:line-loop/disp32
+$compute-offsets:case-comment:
+    # if slice-starts-with?(word-slice, "#") break
+    68/push  "#"/imm32
+    52/push-edx
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $compute-offsets:line-loop/disp32
+$compute-offsets:case-segment-header:
+    # if slice-equal?(word-slice, "==") break
+    # . eax = slice-equal?(word-slice, "==")
+    68/push  "=="/imm32
+    52/push-edx
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $compute-offsets:line-loop/disp32
+$compute-offsets:case-label:
+    # if (!is-label?(word-slice)) goto next case
+    # . eax = is-label?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  is-label?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false) goto next case
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $compute-offsets:case-default/disp32
+    # strip trailing ':' from word-slice
+    ff          1/subop/decrement   1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # decrement *(edx+4)
+    # var tmp/eax: (addr int) = get-or-insert-slice(labels, word-slice, row-size=12)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0xc/imm32/row-size
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  get-or-insert-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # *tmp = current-address
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           6/r32/esi   .               .                 # copy esi to *eax
+    # trace-slsns("label '" word-slice "' is at address " current-address ".")
+    # . . push args
+    68/push  "."/imm32
+    56/push-esi
+    68/push  "' is at address "/imm32
+    52/push-edx
+    68/push  "label '"/imm32
+    # . . call
+    e8/call  trace-slsns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # continue
+    e9/jump  $compute-offsets:word-loop/disp32
+$compute-offsets:case-default:
+    # width/eax = compute-width-of-slice(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call compute-width-of-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # current-address += width
+    01/add                          3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # add eax to *esi
+#?     # dump segment-offset {{{
+#?     # . write(2/stderr, "segment-offset: ")
+#?     # . . push args
+#?     68/push  "segment-offset: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, segment-offset)
+#?     # . . push args
+#?     52/push-edx
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           compute-offsets:segment-offset/disp32  # push *segment-offset
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "\n")
+#?     # . . push args
+#?     68/push  Newline/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    e9/jump $compute-offsets:word-loop/disp32
+$compute-offsets:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x214/imm32       # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$compute-offsets:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "'==' must be followed by segment name and segment-start\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-compute-offsets:
+    # input:
+    #   == code
+    #   ab x/imm32  # skip comment
+    #   == data
+    #   00
+    #   x:
+    #     34
+    #
+    # trace contains (in any order):
+    #   label 'x' is at address 0x9406.
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var labels/edx: (stream byte 2*12)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # subtract from esp
+    68/push  0x18/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # initialize input
+    # . write(_test-input-stream, "== code\n")
+    # . . push args
+    68/push  "== code\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab x/imm32  # skip comment\n")
+    # . . push args
+    68/push  "ab x/imm32  # skip comment\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data\n")
+    # . . push args
+    68/push  "== data\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "00\n")
+    # . . push args
+    68/push  "00\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "x:\n")
+    # . . push args
+    68/push  "x:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "34\n")
+    # . . push args
+    68/push  "34\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # compute-offsets(_test-input-stream, labels)
+    # . . push args
+    52/push-edx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  compute-offsets/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32          # add to esp
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-trace-contains("label 'x' is at address 0x00009406.", msg)
+    # . . push args
+    68/push  "F - test-compute-offsets"/imm32
+    68/push  "label 'x' is at address 0x00009406."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-ints-equal(labels->write, 0xc, msg)
+    # . . push args
+    68/push  "F - test-compute-offsets-maintains-labels-write-index"/imm32
+    68/push  0xc/imm32/1-entry
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x24/imm32        # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# global scratch space for emit-output
+== data
+
+emit-output:datum:  # slice
+  0/imm32/start
+  0/imm32/end
+
+== code
+
+emit-output:  # in: (addr stream byte), out: (addr buffered-file), labels: (addr stream {(handle array byte), address})
+    # pseudocode:
+    #   var address-of-next-instruction = 0x9400
+    #   var line: (stream byte 512)
+    #   line-loop:
+    #   while true
+    #     clear-stream(line)
+    #     read-line(in, line)
+    #     if (line->write == 0) break               # end of file
+    #     address-of-next-instruction += num-bytes(line)
+    #     var is-far-jump-or-call? = is-far-jump-or-call?(line)
+    #     rewind-stream(line)
+    #     while true
+    #       var word-slice = next-word(line)
+    #       if slice-empty?(word-slice)             # end of line
+    #         break
+    #       if slice-starts-with?(word-slice, "#")  # comment
+    #         break
+    #       if is-label?(word-slice)                # no need for label declarations anymore
+    #         goto line-loop                        # don't insert empty lines
+    #       if slice-equal?(word-slice, "==")       # no need for segment header lines
+    #         goto line-loop                        # don't insert empty lines
+    #       if length(word-slice) == 2
+    #         write-slice-buffered(out, word-slice)
+    #         write-buffered(out, " ")
+    #         continue
+    #       var datum: (addr slice) = next-token-from-slice(word-slice->start, word-slice->end, "/")
+    #       var address: (addr int) = get-slice(labels, datum)
+    #       if has-metadata?(word-slice, "imm8")
+    #         abort
+    #       else if has-metadata?(word-slice, "imm32")
+    #         emit(out, *address, 4)
+    #       else if has-metadata?(word-slice, "disp8")
+    #         value = *address - address-of-next-instruction
+    #         emit(out, value, 1)
+    #       else if has-metadata?(word-slice, "disp32")
+    #         if is-far-jump-or-call?
+    #           value = *address - address-of-next-instruction
+    #         else
+    #           value = *address
+    #         emit(out, value, 4)
+    #       else
+    #         abort
+    #     write-buffered(out, "\n")
+    #
+    # registers:
+    #   line: ecx
+    #   word-slice: edx
+    #   address-of-next-instruction: ebx
+    #   is-far-jump-or-call?: edi
+    #   address: esi (inner loop only)
+    #   temporaries: eax, esi (outer loop)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # var address-of-next-instruction/ebx = 0x9400
+    bb/copy-to-ebx  0x9400/imm32
+$emit-output:line-loop:
+    # clear-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line(in, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # write-stream(2/stderr, line)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(line)
+#?     # . . push args
+#?     51/push-ecx
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+$emit-output:check-for-end-of-input:
+    # if (line->write == 0) break
+    81          7/subop/compare     0/mod/indirect  1/rm32/ecx    .           .             .           .           .               0/imm32           # compare *ecx
+    0f 84/jump-if-=  $emit-output:end/disp32
+    # address-of-next-instruction += num-bytes(line)
+    # . eax = num-bytes(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . ebx += eax
+    01/add                          3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # add eax to ebx
+    # var is-far-jump-or-call?/edi: boolean = is-far-jump-or-call?(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-far-jump-or-call?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # rewind-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$emit-output:word-loop:
+    # next-word(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "w: ")
+#?     # . . push args
+#?     68/push  "w: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     52/push-edx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-output:check-for-end-of-line:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != 0) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-output:next-line/disp32
+$emit-output:check-for-comment:
+    # if (slice-starts-with?(word-slice, "#")) break
+    # . start/esi = word-slice->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           6/r32/esi   .               .                 # copy *edx to esi
+    # . c/eax = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           0/r32/AL    .               .                 # copy byte at *esi to AL
+    # . if (eax == '#') break
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-output:next-line/disp32
+$emit-output:check-for-label:
+    # if is-label?(word-slice) break
+    # . eax = is-label?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  is-label?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-output:line-loop/disp32
+$emit-output:check-for-segment-header:
+    # if (slice-equal?(word-slice, "==")) break
+    # . eax = slice-equal?(word-slice, "==")
+    # . . push args
+    68/push  "=="/imm32
+    52/push-edx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-output:line-loop/disp32
+$emit-output:2-character:
+    # if (size(word-slice) != 2) goto next check
+    # . eax = size(word-slice)
+    8b/copy                         1/mod/*+disp8   2/rm32/edx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(edx+4) to eax
+    2b/subtract                     0/mod/indirect  2/rm32/edx    .           .             .           0/r32/eax   .               .                 # subtract *edx from eax
+    # . if (eax != 2) goto next check
+    3d/compare-eax-and  2/imm32
+    75/jump-if-!=  $emit-output:check-metadata/disp8
+    # write-slice-buffered(out, word-slice)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # continue
+    e9/jump  $emit-output:word-loop/disp32
+$emit-output:check-metadata:
+    # - if we get here, 'word-slice' must be a label to be looked up
+    # datum = next-token-from-slice(word-slice->start, word-slice->end, "/")
+    # . . push args
+    68/push  emit-output:datum/imm32
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+#?     # dump datum {{{
+#?     # . write(2/stderr, "datum: ")
+#?     # . . push args
+#?     68/push  "datum: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, datum)
+#?     # . . push args
+#?     68/push  emit-output:datum/imm32
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # address/esi: (addr int) = get-slice(labels, datum, row-size=12, "label table")
+    # . eax = get-slice(labels, datum, row-size=24, "label table")
+    # . . push args
+    68/push  "label table"/imm32
+    68/push  0xc/imm32/row-size
+    68/push  emit-output:datum/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . esi = eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
+$emit-output:check-imm8:
+    # if (has-metadata?(word-slice, "imm8")) abort
+    # . eax = has-metadata?(edx, "imm8")
+    # . . push args
+    68/push  "imm8"/imm32
+    52/push-edx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) abort
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-output:imm8-abort/disp32
+$emit-output:check-imm32:
+    # if (!has-metadata?(word-slice, "imm32")) goto next check
+    # . eax = has-metadata?(edx, "imm32")
+    # . . push args
+    68/push  "imm32"/imm32
+    52/push-edx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-output:check-disp8/disp8
+#?     # dump *address {{{
+#?     # . write(2/stderr, "*address: ")
+#?     # . . push args
+#?     68/push  "*address: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, *address)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-output:emit-imm32:
+    # emit-hex(out, *address, 4)
+    # . . push args
+    68/push  4/imm32
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # continue
+    e9/jump  $emit-output:word-loop/disp32
+$emit-output:check-disp8:
+    # if (!has-metadata?(word-slice, "disp8")) goto next check
+    # . eax = has-metadata?(edx, "disp8")
+    # . . push args
+    68/push  "disp8"/imm32
+    52/push-edx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-output:check-disp32/disp8
+$emit-output:emit-disp8:
+    # emit-hex(out, *address - address-of-next-instruction, 1)
+    # . . push args
+    68/push  1/imm32
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # subtract ebx from eax
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # continue
+    e9/jump  $emit-output:word-loop/disp32
+$emit-output:check-disp32:
+    # if (!has-metadata?(word-slice, "disp32")) abort
+    # . eax = has-metadata?(edx, "disp32")
+    # . . push args
+    68/push  "disp32"/imm32
+    52/push-edx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) abort
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $emit-output:abort/disp32
+$emit-output:emit-disp32:
+    # var value/eax = *address
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    # if (is-far-jump-or-call?) value -= address-of-next-instruction
+    81          7/subop/compare     3/mod/direct    7/rm32/edi    .           .             .           .           .               0/imm32/false     # compare edi
+    74/jump-if-=  $emit-output:really-emit-disp32/disp8
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # subtract ebx from eax
+$emit-output:really-emit-disp32:
+    # emit-hex(out, value, 4)
+    # . . push args
+    68/push  4/imm32
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # continue
+    e9/jump  $emit-output:word-loop/disp32
+$emit-output:next-line:
+    # write-buffered(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+    e9/jump  $emit-output:line-loop/disp32
+$emit-output:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x214/imm32       # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$emit-output:global-variable-abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "emit-output: must refer to global variables with /disp32 or /imm32"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$emit-output:imm8-abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "emit-output: cannot refer to code labels with /imm8"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$emit-output:abort:
+    # print(stderr, "missing metadata in " word-slice)
+    # . _write(2/stderr, "missing metadata in word ")
+    # . . push args
+    68/push  "emit-output: missing metadata in "/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-slice-buffered(Stderr, word-slice)
+    # . . push args
+    52/push-edx
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-emit-output-non-far-control-flow:
+    # labels turn into absolute addresses if opcodes are not far jumps or calls
+    #
+    # input:
+    #   in:
+    #     == code
+    #     ab cd ef gh
+    #     ij x/disp32
+    #     == data
+    #     00
+    #     34
+    #   labels:
+    #     - 'x': 0x11223344
+    #
+    # output:
+    #   ab cd ef gh
+    #   ij 44 33 22 11
+    #   00
+    #   34
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . var labels/edx: (stream byte 8*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc0/imm32        # subtract from esp
+    68/push  0xc0/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # initialize input
+    # . write(_test-input-stream, "== code\n")
+    # . . push args
+    68/push  "== code\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab cd ef gh\n")
+    # . . push args
+    68/push  "ab cd ef gh\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ij x/disp32\n")
+    # . . push args
+    68/push  "ij x/disp32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data\n")
+    # . . push args
+    68/push  "== data\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "00\n")
+    # . . push args
+    68/push  "00\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "34\n")
+    # . . push args
+    68/push  "34\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . stream-add2(labels, "x", 0x11223344)
+    68/push  0x11223344/imm32/label-address
+    # . . push handle for "x"
+    53/push-ebx
+    68/push  "x"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add2/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # component under test
+    # . emit-output(_test-input-stream, _test-output-buffered-file, labels)
+    # . . push args
+    52/push-edx
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  emit-output/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # checks
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "ab cd ef gh ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-non-far-control-flow/0"/imm32
+    68/push  "ab cd ef gh "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "ij 44 33 22 11 ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-non-far-control-flow/1"/imm32
+    68/push  "ij 44 33 22 11 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "00 ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-non-far-control-flow/2"/imm32
+    68/push  "00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "34 ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-non-far-control-flow/3"/imm32
+    68/push  "34 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-output-code-label:
+    # labels turn into PC-relative addresses if opcodes are far jumps or calls
+    #
+    # input:
+    #   in:
+    #     == code
+    #     ab cd
+    #     ef gh
+    #     e8 l1/disp32
+    #   labels:
+    #     - 'l1': 0x9410
+    #
+    # output:
+    #   ab cd
+    #   ef gh
+    #   e8 07 00 00 00  # 0x9410 - 0x9409 = 7
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . var labels/edx: (stream byte 8*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc0/imm32        # subtract from esp
+    68/push  0xc0/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # initialize input
+    # . write(_test-input-stream, "== code\n")
+    # . . push args
+    68/push  "== code\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab cd\n")
+    # . . push args
+    68/push  "ab cd\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ef gh\n")
+    # . . push args
+    68/push  "ef gh\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "e8 l1/disp32\n")
+    # . . push args
+    68/push  "e8 l1/disp32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . stream-add2(labels, "l1", 0x9410)
+    68/push  0x9410/imm32/label-address
+    # . . push handle for "l1"
+    53/push-ebx
+    68/push  "l1"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add2/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # component under test
+    # . emit-output(_test-input-stream, _test-output-buffered-file, labels)
+    # . . push args
+    52/push-edx
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  emit-output/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # checks
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "ab cd ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-code-label/0"/imm32
+    68/push  "ab cd "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "ef gh ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-code-label/1"/imm32
+    68/push  "ef gh "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "e8 07 00 00 00 ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-code-label/2"/imm32
+    68/push  "e8 07 00 00 00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-output-code-label-absolute:
+    # labels can also convert to absolute addresses
+    #
+    # input:
+    #   in:
+    #     == code
+    #     ab cd
+    #     ef gh
+    #     ij l1/imm32
+    #   labels:
+    #     - 'l1': 0x1056
+    #
+    # output:
+    #   ab cd
+    #   ef gh
+    #   ij 56 10 00 00
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . var labels/edx: (stream byte 8*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc0/imm32        # subtract from esp
+    68/push  0xc0/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # initialize input
+    # . write(_test-input-stream, "== code 0x1000\n")
+    # . . push args
+    68/push  "== code\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab cd\n")
+    # . . push args
+    68/push  "ab cd\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ef gh\n")
+    # . . push args
+    68/push  "ef gh\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ij l1/imm32\n")
+    # . . push args
+    68/push  "ij l1/imm32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . stream-add2(labels, "l1", 0x1056)
+    68/push  0x1056/imm32/label-address
+    # . . push handle for "l1"
+    53/push-ebx
+    68/push  "l1"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add2/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # component under test
+    # . emit-output(_test-input-stream, _test-output-buffered-file, labels)
+    # . . push args
+    52/push-edx
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  emit-output/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # checks
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "ab cd ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-code-label-absolute/0"/imm32
+    68/push  "ab cd "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "ef gh ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-code-label-absolute/1"/imm32
+    68/push  "ef gh "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "ij f9 ff ff ff ", msg)
+    # . . push args
+    68/push  "F - test-emit-output-code-label-absolute/2"/imm32
+    68/push  "ij 56 10 00 00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# reads line to make some checks
+# don't assume the read state of line after calling this function
+is-far-jump-or-call?:  # line: (addr stream byte) -> result/edi: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # var datum-slice/ebx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # result = false
+    bf/copy-to-edi  0/imm32/false
+$is-far-jump-or-call?:check-first-word:
+    # next-word(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-empty?(word-slice)) return false
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != 0) return
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $is-far-jump-or-call?:end/disp32
+    # datum = next-token-from-slice(word-slice->start, word-slice->end, "/")
+    # . . push args
+    53/push-ebx
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # if (datum-slice == "e8") return true
+    # . eax = slice-equal?(datum-slice, "e8")
+    # . . push args
+    68/push  "e8"/imm32
+    53/push-ebx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return true
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $is-far-jump-or-call?:return-true/disp8
+    # if (datum-slice == "e9") return true
+    # . eax = slice-equal?(datum-slice, "e9")
+    # . . push args
+    68/push  "e9"/imm32
+    53/push-ebx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return true
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $is-far-jump-or-call?:return-true/disp8
+    # if (datum-slice != "0f") return false
+    # . eax = slice-equal?(datum-slice, "0f")
+    # . . push args
+    68/push  "0f"/imm32
+    53/push-ebx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) return
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $is-far-jump-or-call?:end/disp8
+$is-far-jump-or-call?:check-second-word:
+    # next-word(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-empty?(word-slice)) return false
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != 0) return
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $is-far-jump-or-call?:end/disp8
+    # if datum of word-slice does not start with "8", return false
+    # . start/eax = word-slice->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy *edx to eax
+    # . c/eax = *start
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    # . if (eax != '8') return
+    3d/compare-eax-and  0x38/imm32/8
+    75/jump-if-!=  $is-far-jump-or-call?:end/disp8
+    # otherwise return true
+$is-far-jump-or-call?:return-true:
+    bf/copy-to-edi  1/imm32/true
+$is-far-jump-or-call?:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# - some helpers for tests
+
+stream-add2:  # in: (addr stream byte), key: handle, val: int
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # curr/eax = &in->data[in->write]
+    # . eax = in->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    # . eax = esi+eax+12
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    # max/edx = &in->data[in->size]
+    # . edx = in->size
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(esi+8) to edx
+    # . edx = esi+edx+12
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  2/index/edx   .           2/r32/edx   0xc/disp8       .                 # copy esi+edx+12 to edx
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add2:abort/disp8
+    # *curr = key->alloc-id
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add2:abort/disp8
+    # *curr = key->payload
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x10/disp8      .                 # copy *(ebp+16) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add2:abort/disp8
+    # *curr = val
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x14/disp8      .                 # copy *(ebp+20) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # in->write += 0xc
+    81          0/subop/add         0/mod/indirect  6/rm32/esi    .           .             .           .           .               0xc/imm32         # add to *esi
+$stream-add2:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$stream-add2:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "overflow in stream-add2\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+# some variants of 'trace' that take multiple arguments in different combinations of types:
+#   n: int
+#   c: character [4-bytes, will eventually be UTF-8]
+#   s: (addr array byte)
+#   l: (addr slice)
+# one gotcha: 's5' must not be empty
+
+trace-slsns:  # s1: (addr array byte), l2: (addr slice), s3: (addr array byte), n4: int, s5: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write(*Trace-stream, s1)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-slice(*Trace-stream, l2)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(*Trace-stream, s3)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-int32-hex(*Trace-stream, n4)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write-int32-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # trace(s5)  # implicitly adds a newline and finalizes the trace line
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$trace-slsns:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-trace-slsns:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . *Trace-stream->write = 0
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy *Trace-stream to eax
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # clear *eax
+    # (eax..ecx) = "b"
+    b8/copy-to-eax  "b"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var b/ebx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # trace-slsls("A" b "c " 3 " e")
+    # . . push args
+    68/push  " e"/imm32
+    68/push  3/imm32
+    68/push  "c "/imm32
+    53/push-ebx
+    68/push  "A"/imm32
+    # . . call
+    e8/call  trace-slsns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-trace-contains("Abc 0x00000003 e")
+    # . . push args
+    68/push  "F - test-trace-slsls"/imm32
+    68/push  "Abc 0x00000003 e"/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+num-bytes:  # line: (addr stream byte) -> eax: int
+    # pseudocode:
+    #   result = 0
+    #   while true
+    #     var word-slice = next-word(line)
+    #     if slice-empty?(word-slice)             # end of line
+    #       break
+    #     if slice-starts-with?(word-slice, "#")  # comment
+    #       break
+    #     if is-label?(word-slice)                # no need for label declarations anymore
+    #       break
+    #     if slice-equal?(word-slice, "==")
+    #       break                                 # no need for segment header lines
+    #     result += compute-width(word-slice)
+    #   return result
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # var result/eax = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # var word-slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # write-stream(2/stderr, line)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$num-bytes:loop:
+    # next-word(line, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$num-bytes:check0:
+    # if (slice-empty?(word-slice)) break
+    # . save result
+    50/push-eax
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    # . restore result now that ZF is set
+    58/pop-to-eax
+    75/jump-if-!=  $num-bytes:end/disp8
+$num-bytes:check-for-comment:
+    # if (slice-starts-with?(word-slice, "#")) break
+    # . start/edx = word-slice->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # . c/ebx = *start
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           3/r32/BL    .               .                 # copy byte at *edx to BL
+    # . if (ebx == '#') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x23/imm32/hash   # compare ebx
+    74/jump-if-=  $num-bytes:end/disp8
+$num-bytes:check-for-label:
+    # if (slice-ends-with?(word-slice, ":")) break
+    # . end/edx = word-slice->end
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
+    # . c/ebx = *(end-1)
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    8a/copy-byte                    1/mod/*+disp8   2/rm32/edx    .           .             .           3/r32/BL    -1/disp8        .                 # copy byte at *ecx to BL
+    # . if (ebx == ':') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x3a/imm32/colon  # compare ebx
+    74/jump-if-=  $num-bytes:end/disp8
+$num-bytes:check-for-segment-header:
+    # if (slice-equal?(word-slice, "==")) break
+    # . push result
+    50/push-eax
+    # . eax = slice-equal?(word-slice, "==")
+    # . . push args
+    68/push  "=="/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    # . restore result now that ZF is set
+    58/pop-to-eax
+    75/jump-if-!=  $num-bytes:end/disp8
+$num-bytes:loop-body:
+    # result += compute-width-of-slice(word-slice)
+    # . copy result to edx
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to edx
+    # . eax = compute-width-of-slice(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call compute-width-of-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . eax += result
+    01/add                          3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # add edx to eax
+    e9/jump  $num-bytes:loop/disp32
+$num-bytes:end:
+    # . rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-handles-empty-string:
+    # if a line starts with '#', return 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # no contents in input
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-handles-empty-string"/imm32
+    68/push  0/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-ignores-comments:
+    # if a line starts with '#', return 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "# abcd")
+    # . . push args
+    68/push  "# abcd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-ignores-comments"/imm32
+    68/push  0/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-ignores-labels:
+    # if the first word ends with ':', return 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab: # cd")
+    # . . push args
+    68/push  "ab: # cd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-ignores-labels"/imm32
+    68/push  0/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-ignores-segment-headers:
+    # if the first word is '==', return 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "== ab cd")
+    # . . push args
+    68/push  "== ab cd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-ignores-segment-headers"/imm32
+    68/push  0/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-counts-words-by-default:
+    # without metadata, count words
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab cd ef")
+    # . . push args
+    68/push  "ab cd ef"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 3, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-counts-words-by-default"/imm32
+    68/push  3/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-ignores-trailing-comment:
+    # trailing comments appropriately ignored
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab cd # ef")
+    # . . push args
+    68/push  "ab cd # ef"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 2, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-ignores-trailing-comment"/imm32
+    68/push  2/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-handles-imm32:
+    # if a word has the /imm32 metadata, count it as 4 bytes
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab cd/imm32 ef")
+    # . . push args
+    68/push  "ab cd/imm32 ef"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-handles-imm32"/imm32
+    68/push  6/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/survey_elf b/linux/survey_elf
new file mode 100755
index 00000000..1a80def5
--- /dev/null
+++ b/linux/survey_elf
Binary files differdiff --git a/linux/survey_elf.subx b/linux/survey_elf.subx
new file mode 100644
index 00000000..ac2f05b4
--- /dev/null
+++ b/linux/survey_elf.subx
@@ -0,0 +1,4691 @@
+# Assign addresses (co-ordinates) to instructions (landmarks) in a program
+# (landscape).
+# Use the addresses assigned to:
+#   a) replace labels
+#   b) add an ELF header and segment headers with addresses and offsets correctly filled in
+#
+# To build:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/subx-params.subx apps/survey_elf.subx  -o apps/survey_elf
+#
+# The expected input is a stream of bytes with '==' segment headers, comments
+# and some interspersed labels.
+#   $ cat x
+#   == code 0x1
+#   l1:
+#   aa bb l1/imm8
+#   cc dd l2/disp32
+#   l2:
+#   ee foo/imm32
+#   == data 0x10
+#   foo:
+#     00
+#
+# The output is the stream of bytes without segment headers or label definitions,
+# and with label references replaced with numeric values/displacements.
+#
+#   $ cat x  |./bootstrap run apps/survey_elf
+#   ...ELF header bytes...
+#   # ELF header above will specify that code segment begins at this offset
+#   aa bb nn  # some computed address
+#   cc dd nn nn nn nn  # some computed displacement
+#   ee nn nn nn nn  # some computed address
+#   # ELF header above will specify that data segment begins at this offset
+#   00
+#
+# The ELF format has some persnickety constraints on the starting addresses of
+# segments, so input headers are treated as guidelines and adjusted in the
+# output.
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize-trace-stream(Trace-size)
+    # . . push args
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-size/disp32                 # push *Heap-size
+    # . . call
+    e8/call  initialize-trace-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto interactive
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $subx-survey-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto interactive
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto interactive
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-survey-main:interactive/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $subx-survey-main:end/disp8
+$subx-survey-main:interactive:
+    # - otherwise convert stdin
+    # subx-survey(Stdin, Stdout)
+    # . . push args
+    68/push  Stdout/imm32
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  subx-survey/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$subx-survey-main:end:
+    e8/call  syscall_exit/disp32
+
+# data structures:
+#   segment-info: {address, file-offset, size}                                  (12 bytes)
+#   segments: (addr stream {(handle array byte), segment-info})                 (20 bytes per row)
+#   label-info: {segment-name: (handle array byte), segment-offset, address}    (16 bytes)
+#   labels: (addr stream {(handle array byte), label-info})                     (24 bytes per row)
+# these are all inefficient, using sequential scans for lookups
+
+subx-survey:  # infile: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode
+    #   var in: (stream byte Input-size)
+    #   slurp(infile, in)
+    #   var segments: (stream {segment-name, segment-info})
+    #   var labels: (stream {label-name, label-info} Max-labels)
+    #   compute-offsets(in, segments, labels)
+    #   compute-addresses(segments, labels)
+    #   rewind-stream(in)
+    #   emit-output(in, out, segments, labels)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # var segments/ecx: (stream {string, segment-info} 200)   # 10 rows * 20 bytes/row
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc8/imm32        # subtract from esp
+    68/push  0xc8/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var labels/edx: (stream label-info Max-labels)
+    # . data
+    2b/subtract                     0/mod/indirect  5/rm32/.disp32            .             .           4/r32/esp   Max-labels/disp32                 # subtract *Max-labels from esp
+    # . size
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Max-labels/disp32                 # push *Max-labels
+    # . read
+    68/push  0/imm32/read
+    # . write
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # var in/esi: (stream byte Input-size)
+    # . data
+    2b/subtract                     0/mod/indirect  5/rm32/.disp32            .             .           4/r32/esp   Input-size/disp32                 # subtract *Input-size from esp
+    # . size
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Input-size/disp32                 # push *Input-size
+    # . read
+    68/push  0/imm32/read
+    # . write
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # slurp(infile, in)
+    # . . push args
+    56/push-esi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  slurp/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # compute-offsets(in, segments, labels)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    56/push-esi
+    # . . call
+    e8/call  compute-offsets/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # compute-addresses(segments, labels)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  compute-addresses/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # rewind-stream(in)
+    # . . push args
+    56/push-esi
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # emit-output(in, out, segments, labels)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    56/push-esi
+    # . . call
+    e8/call  emit-output/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$subx-survey:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xec/imm32        # add to esp
+    03/add                          0/mod/indirect  5/rm32/.disp32            .             .           4/r32/esp   Max-labels/disp32                 # add *Max-labels to esp
+    03/add                          0/mod/indirect  5/rm32/.disp32            .             .           4/r32/esp   Input-size/disp32                 # add *Input-size to esp
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-subx-survey-computes-addresses:
+    # input:
+    #   == code 0x1
+    #   Entry:
+    #   ab x/imm32
+    #   == data 0x1000
+    #   x:
+    #     01
+    #
+    # trace contains (in any order):
+    #   label x is at address 0x1079
+    #   segment code starts at address 0x74
+    #   segment code has size 5
+    #   segment data starts at address 0x1079
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-input-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-input-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "== code 0x1\n")
+    # . . push args
+    68/push  "== code 0x1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "Entry:\n")
+    # . . push args
+    68/push  "Entry:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab x/imm32\n")
+    # . . push args
+    68/push  "ab x/imm32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data 0x1000\n")
+    # . . push args
+    68/push  "== data 0x1000\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "x:\n")
+    # . . push args
+    68/push  "x:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "01\n")
+    # . . push args
+    68/push  "01\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # subx-survey(_test-input-buffered-file, _test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-buffered-file/imm32
+    # . . call
+    e8/call  subx-survey/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # check trace
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-trace-contains("label 'x' is at address 0x00001079.", msg)
+    # . . push args
+    68/push  "F - test-subx-survey-computes-addresses/0"/imm32
+    68/push  "label 'x' is at address 0x00001079."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'code' starts at address 0x00000074.", msg)
+    # . . push args
+    68/push  "F - test-subx-survey-computes-addresses/1"/imm32
+    68/push  "segment 'code' starts at address 0x00000074."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'code' has size 0x00000005.", msg)
+    # . . push args
+    68/push  "F - test-subx-survey-computes-addresses/2"/imm32
+    68/push  "segment 'code' has size 0x00000005."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'data' starts at address 0x00001079.", msg)
+    # . . push args
+    68/push  "F - test-subx-survey-computes-addresses/3"/imm32
+    68/push  "segment 'data' starts at address 0x00001079."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# global scratch space for compute-offsets
+== data
+
+compute-offsets:file-offset:  # int
+  0/imm32
+compute-offsets:segment-offset:  # int
+  0/imm32
+compute-offsets:segment-tmp:  # slice
+  0/imm32/start
+  0/imm32/end
+
+== code
+
+# write segments->file-offset,
+#       segments->size,
+#       labels->segment-name, and
+#       labels->segment-offset
+compute-offsets:  # in: (addr stream byte), segments: (addr stream {(handle array byte), segment-info}), labels: (addr stream {(handle array byte), label-info})
+    # skeleton:
+    #   for lines in 'in'
+    #     for words in line
+    #       switch word
+    #         case 1
+    #         case 2
+    #         ...
+    #         default
+    #
+    # pseudocode:
+    #   var curr-segment-name: (handle array byte)
+    #   var file-offset = 0
+    #   var segment-offset = 0
+    #   var line: (stream byte 512)
+    #   var sinfo: (addr segment-info)
+    #   var linfo: (addr label-info)
+    #   while true                                  # line loop
+    #     clear-stream(line)
+    #     read-line(in, line)
+    #     if (line->write == 0) break               # end of file
+    #     while true                                # word loop
+    #       word-slice = next-word(line)
+    #       if slice-empty?(word-slice)             # end of line
+    #         break
+    #       else if slice-starts-with?(word-slice, "#")  # comment
+    #         break                                 # end of line
+    #       else if slice-equal?(word-slice, "==")
+    #         if *curr-segment-name != 0
+    #           sinfo = get-or-insert-handle(segments, curr-segment-name)
+    #           sinfo->size = file-offset - sinfo->file-offset
+    #           trace("segment '", curr-segment-name, "' has size ", sinfo->size)
+    #         segment-tmp = next-word(line)
+    #         if slice-empty?(segment-tmp)
+    #           abort
+    #         curr-segment-name = slice-to-string(segment-tmp)
+    #         segment-tmp = next-word(line)
+    #         if slice-empty?(segment-tmp)
+    #           abort
+    #         sinfo = get-or-insert-handle(segments, curr-segment-name)
+    #         sinfo->starting-address = parse-hex-int-from-slice(segment-tmp)
+    #         sinfo->file-offset = file-offset
+    #         trace("segment '", curr-segment-name, "' is at file offset ", sinfo->file-offset)
+    #         segment-offset = 0
+    #         break  (next line)
+    #       else if is-label?(word-slice)
+    #         strip trailing ':' from word-slice
+    #         linfo: (addr label-info) = get-or-insert-slice(labels, word-slice)
+    #         linfo->segment-name = curr-segment-name
+    #         trace("label '", word-slice, "' is in segment '", curr-segment-name, "'.")
+    #         linfo->segment-offset = segment-offset
+    #         trace("label '", word-slice, "' is at segment offset ", segment-offset, ".")
+    #         # labels occupy no space, so no need to increment offsets
+    #       else
+    #         width = compute-width-of-slice(word-slice)
+    #         segment-offset += width
+    #         file-offset += width
+    #   sinfo = get-or-insert-handle(segments, curr-segment-name)
+    #   sinfo->size = file-offset - sinfo->file-offset
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var curr-segment-name/esi: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # file-offset = 0
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           compute-offsets:file-offset/disp32  0/imm32  # copy to *compute-offsets:file-offset
+    # segment-offset = 0
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           compute-offsets:segment-offset/disp32  0/imm32  # copy to *compute-offsets:segment-offset
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: (addr slice)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+$compute-offsets:line-loop:
+    # clear-stream(line)
+    51/push-ecx
+    e8/call  clear-stream/disp32
+    # . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line(in, line)
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    e8/call  read-line/disp32
+    # . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (line->write == 0) break
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # copy *ecx to eax
+    3d/compare-eax-and  0/imm32
+    0f 84/jump-if-=  $compute-offsets:break-line-loop/disp32
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # write-stream(2/stderr, line)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(line)
+#?     # . . push args
+#?     51/push-ecx
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+$compute-offsets:word-loop:
+    # next-word(line, word-slice)
+    52/push-edx
+    51/push-ecx
+    e8/call  next-word/disp32
+    # . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$compute-offsets:case-empty:
+    # if slice-empty?(word-slice) break
+    # . eax = slice-empty?(word-slice)
+    52/push-edx
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $compute-offsets:line-loop/disp32
+$compute-offsets:case-comment:
+    # if slice-starts-with?(word-slice, "#") continue
+    68/push  "#"/imm32
+    52/push-edx
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $compute-offsets:line-loop/disp32
+$compute-offsets:case-segment-header:
+    # if (!slice-equal?(word-slice, "==")) goto next case
+    # . eax = slice-equal?(word-slice, "==")
+    68/push  "=="/imm32
+    52/push-edx
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next case
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $compute-offsets:case-label/disp32
+    # if (*curr-segment-name == 0) goto construct-next-segment
+    81          7/subop/compare     0/mod/indirect  6/rm32/esi    .           .             .           .           .               0/imm32           # compare *esi
+    74/jump-if-=  $compute-offsets:construct-next-segment/disp8
+    # sinfo/edi = get-or-insert-handle(segments, curr-segment-name, row-size=16)
+    # . eax = get-or-insert-handle(segments, curr-segment-name, row-size=16)
+    # . . push args
+    68/push  0x14/imm32/row-size
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  get-or-insert-handle/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . edi = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # sinfo->size = file-offset - sinfo->file-offset
+    # . save ecx
+    51/push-ecx
+    # . ebx = *file-offset
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   compute-offsets:file-offset/disp32  # copy *file-offset to ebx
+    # . ecx = sinfo->file-offset
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(edi+4) to ecx
+    # . ebx -= ecx
+    29/subtract                     3/mod/direct    3/rm32/ebx    .           .             .           1/r32/ecx   .               .                 # subtract ecx from ebx
+    # . sinfo->size = ebx
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   8/disp8         .                 # copy ebx to *(edi+8)
+    # . restore ecx
+    59/pop-to-ecx
+    # trace-sssns("segment '", curr-segment-name, "' has size ", sinfo->size, ".")
+    # . eax = lookup(curr-segment-name)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . trace-sssns("segment '", eax, "' has size ", sinfo->size, ".")
+    # . . push args
+    68/push  "."/imm32
+    53/push-ebx
+    68/push  "' has size "/imm32
+    50/push-eax
+    68/push  "segment '"/imm32
+    # . . call
+    e8/call  trace-sssns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+$compute-offsets:construct-next-segment:
+    # next-word(line, segment-tmp)
+    68/push  compute-offsets:segment-tmp/imm32
+    51/push-ecx
+    e8/call  next-word/disp32
+    # . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if slice-empty?(segment-tmp) abort
+    # . eax = slice-empty?(segment-tmp)
+    # . . push args
+    68/push  compute-offsets:segment-tmp/imm32
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) abort
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $compute-offsets:abort/disp32
+$compute-offsets:update-curr-segment-name:
+    # slice-to-string(Heap, segment-tmp, curr-segment-name)
+    # . . push args
+    56/push-esi
+    68/push  compute-offsets:segment-tmp/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  slice-to-string/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # next-word(line, segment-tmp)
+    68/push  compute-offsets:segment-tmp/imm32
+    51/push-ecx
+    e8/call  next-word/disp32
+    # . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if slice-empty?(segment-tmp) abort
+    # . eax = slice-empty?(segment-tmp)
+    # . . push args
+    68/push  compute-offsets:segment-tmp/imm32
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) abort
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $compute-offsets:abort/disp32
+    # sinfo/edi = get-or-insert-handle(segments, curr-segment-name, row-size=16)
+    # . eax = get-or-insert-handle(segments, curr-segment-name, row-size=16)
+    # . . push args
+    68/push  0x14/imm32/row-size
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  get-or-insert-handle/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . edi = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # sinfo->address = parse-hex-int-from-slice(segment-tmp)
+    # . eax = parse-hex-int-from-slice(segment-tmp)
+    # . . push args
+    68/push  compute-offsets:segment-tmp/imm32
+    # . . call
+    e8/call  parse-hex-int-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . sinfo->address = eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to *edi
+    # sinfo->file-offset = *file-offset
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   compute-offsets:file-offset/disp32  # copy *file-offset to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+    # trace-sssns("segment '", curr-segment-name, "' is at file offset ", sinfo->file-offset, "")
+    # . eax = lookup(curr-segment-name)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . trace-sssns("segment '", eax, "' is at file offset ", file-offset, ".")
+    # . . push args
+    68/push  "."/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           compute-offsets:file-offset/disp32  # push *file-offset
+    68/push  "' is at file offset "/imm32
+    50/push-eax
+    68/push  "segment '"/imm32
+    # . . call
+    e8/call  trace-sssns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # segment-offset = 0
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .     compute-offsets:segment-offset/disp32  0/imm32  # copy to *segment-offset
+    # break
+    e9/jump $compute-offsets:line-loop/disp32
+$compute-offsets:case-label:
+    # if (!is-label?(word-slice)) goto next case
+    # . eax = is-label?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  is-label?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false) goto next case
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $compute-offsets:case-default/disp32
+    # strip trailing ':' from word-slice
+    ff          1/subop/decrement   1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # decrement *(edx+4)
+    # linfo/edi = get-or-insert-slice(labels, word-slice, row-size=24)
+    # . eax = get-or-insert-slice(labels, word-slice, row-size=24)
+    # . . push args
+    68/push  Heap/imm32
+    68/push  0x18/imm32/row-size
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  get-or-insert-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . edi = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+$compute-offsets:save-label-offset:
+    # linfo->segment-name = curr-segment-name
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    89/copy                         0/mod/indirect  7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to *edi
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   4/disp8         .                 # copy *(esi+4) to eax
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           0/r32/eax   4/disp8         .                 # copy eax to *(edi+4)
+    # trace-slsss("label '" word-slice "' is in segment '" current-segment-name "'.")
+    # . eax = lookup(curr-segment-name)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . trace-slsss("label '" word-slice "' is in segment '" eax "'.")
+    # . . push args
+    68/push  "'."/imm32
+    50/push-eax
+    68/push  "' is in segment '"/imm32
+    52/push-edx
+    68/push  "label '"/imm32
+    # . . call
+    e8/call  trace-slsss/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # linfo->segment-offset = segment-offset
+    # . ebx = segment-offset
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   compute-offsets:segment-offset/disp32  # copy *segment-offset to ebx
+    # . linfo->segment-offset = ebx
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   8/disp8         .                 # copy ebx to *(edi+8)
+    # trace-slsns("label '" word-slice "' is at segment offset " *segment-offset/eax ".")
+    # . . push args
+    68/push  "."/imm32
+    53/push-ebx
+    68/push  "' is at segment offset "/imm32
+    52/push-edx
+    68/push  "label '"/imm32
+    # . . call
+    e8/call  trace-slsns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # continue
+    e9/jump  $compute-offsets:word-loop/disp32
+$compute-offsets:case-default:
+    # width/eax = compute-width-of-slice(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call compute-width-of-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # segment-offset += width
+    01/add                          0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   compute-offsets:segment-offset/disp32  # add eax to *segment-offset
+    # file-offset += width
+    01/add                          0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   compute-offsets:file-offset/disp32  # add eax to *file-offset
+#?     # dump segment-offset {{{
+#?     # . write(2/stderr, "segment-offset: ")
+#?     # . . push args
+#?     68/push  "segment-offset: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, segment-offset)
+#?     # . . push args
+#?     52/push-edx
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           compute-offsets:segment-offset/disp32  # push *segment-offset
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "\n")
+#?     # . . push args
+#?     68/push  Newline/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    e9/jump $compute-offsets:word-loop/disp32
+$compute-offsets:break-line-loop:
+    # sinfo/edi = get-or-insert-handle(segments, curr-segment-name, row-size=16)
+    # . eax = get-or-insert-handle(segments, curr-segment-name, row-size=16)
+    # . . push args
+    68/push  0x14/imm32/row-size
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  get-or-insert-handle/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . edi = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # sinfo->size = file-offset - sinfo->file-offset
+    # . save ecx
+    51/push-ecx
+    # . ebx = *file-offset
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   compute-offsets:file-offset/disp32  # copy *file-offset to ebx
+    # . ecx = sinfo->file-offset
+    8b/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           1/r32/ecx   4/disp8         .                 # copy *(edi+4) to ecx
+    # . ebx -= ecx
+    29/subtract                     3/mod/direct    3/rm32/ebx    .           .             .           1/r32/ecx   .               .                 # subtract ecx from ebx
+    # . sinfo->size = ebx
+    89/copy                         1/mod/*+disp8   7/rm32/edi    .           .             .           3/r32/ebx   8/disp8         .                 # copy ebx to *(edi+8)
+    # . restore ecx
+    59/pop-to-ecx
+    # trace-sssns("segment '", curr-segment-name, "' has size ", sinfo->size, ".")
+    # . eax = lookup(curr-segment-name)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . trace-sssns("segment '", eax, "' has size ", ebx, ".")
+    # . . push args
+    68/push  "."/imm32
+    53/push-ebx
+    68/push  "' has size "/imm32
+    50/push-eax
+    68/push  "segment '"/imm32
+    # . . call
+    e8/call  trace-sssns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+$compute-offsets:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x21c/imm32       # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$compute-offsets:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "'==' must be followed by segment name and segment-start\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-compute-offsets:
+    # input:
+    #   == code 0x1
+    #   ab x/imm32  # skip comment
+    #   == data 0x1000
+    #   00
+    #   x:
+    #     34
+    #
+    # trace contains (in any order):
+    #   segment 'code' is at file offset 0x0.
+    #   segment 'code' has size 0x5.
+    #   segment 'data' is at file offset 0x5.
+    #   segment 'data' has size 0x2.
+    #   label 'x' is in segment 'data'.
+    #   label 'x' is at segment offset 0x1.
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # var segments/ecx: (stream byte 2*20)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x28/imm32        # subtract from esp
+    68/push  0x28/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var labels/edx: (stream byte 2*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x30/imm32        # subtract from esp
+    68/push  0x30/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # initialize input
+    # . write(_test-input-stream, "== code 0x1\n")
+    # . . push args
+    68/push  "== code 0x1\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab x/imm32  # skip comment\n")
+    # . . push args
+    68/push  "ab x/imm32  # skip comment\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data 0x1000\n")
+    # . . push args
+    68/push  "== data 0x1000\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "00\n")
+    # . . push args
+    68/push  "00\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "x:\n")
+    # . . push args
+    68/push  "x:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "34\n")
+    # . . push args
+    68/push  "34\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # compute-offsets(_test-input-stream, segments, labels)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  compute-offsets/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32        # add to esp
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check trace
+    # . check-trace-contains("segment 'code' is at file offset 0x00000000.", msg)
+    # . . push args
+    68/push  "F - test-compute-offsets/0"/imm32
+    68/push  "segment 'code' is at file offset 0x00000000."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'code' has size 0x00000005", msg)
+    # . . push args
+    68/push  "F - test-compute-offsets/1"/imm32
+    68/push  "segment 'code' has size 0x00000005."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'data' is at file offset 0x00000005.", msg)
+    # . . push args
+    68/push  "F - test-compute-offsets/2"/imm32
+    68/push  "segment 'data' is at file offset 0x00000005."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'data' has size 0x00000002.", msg)
+    # . . push args
+    68/push  "F - test-compute-offsets/3"/imm32
+    68/push  "segment 'data' has size 0x00000002."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("label 'x' is in segment 'data'.", msg)
+    # . . push args
+    68/push  "F - test-compute-offsets/4"/imm32
+    68/push  "label 'x' is in segment 'data'."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("label 'x' is at segment offset 0x00000001.", msg)
+    # . . push args
+    68/push  "F - test-compute-offsets/5"/imm32
+    68/push  "label 'x' is at segment offset 0x00000001."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-ints-equal(labels->write, 0x18, msg)
+    # . . push args
+    68/push  "F - test-compute-offsets-maintains-labels-write-index"/imm32
+    68/push  0x18/imm32/1-entry
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# write segments->file-offset,
+#       segments->address, and
+#       labels->address
+compute-addresses:  # segments: (addr stream {(handle array byte), segment-info}), labels: (addr stream {(handle array byte), label-info})
+    # pseudocode:
+    #   var srow: (addr segment-row) = segments->data
+    #   var max: (addr byte) = &segments->data[segments->write]
+    #   var num-segments: int = segments->write / 20
+    #   var starting-offset: int = 0x34 + (num-segments * 0x20)
+    #   while true
+    #     if (srow >= max) break
+    #     srow->file-offset += starting-offset
+    #     srow->address &= 0xfffff000  # clear last 12 bits for p_align
+    #     srow->address += (srow->file-offset & 0x00000fff)
+    #     trace-sssns("segment " srow->key " starts at address " srow->address)
+    #     srow += 20  # row-size
+    #   var lrow: (addr label-row) = labels->data
+    #   max = &labels->data[labels->write]
+    #   while true
+    #     if (lrow >= max) break
+    #     var seg-name: (addr array byte) = lookup(lrow->segment-name)
+    #     var label-seg: (addr segment-info) = get(segments, seg-name)
+    #     lrow->address = label-seg->address + lrow->segment-offset
+    #     trace-sssns("label " lrow->key " is at address " lrow->address)
+    #     lrow += 24  # row-size
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # esi = segments
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # var num-segments/edi: int = segments->write / 20 (row-size)
+    # . eax = segments->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    # . edx = 0
+    ba/copy-to-edx  0/imm32
+    # . ecx = 20 (row-size)
+    b9/copy-to-ecx  0x14/imm32/row-size
+    # . eax /= ecx (clobbering edx)
+    f7          7/subop/divide      3/mod/direct    1/rm32/ecx    .           .             .           .           .               .                 # divide eax by ecx
+    # . edi = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # var starting-offset/edi: int = 0x34 + (num-segments * 0x20)  # make room for ELF headers
+    c1/shift    4/subop/left        3/mod/direct    7/rm32/edi    .           .             .           .           .               5/imm8            # shift edi left by 5 bits
+    81          0/subop/add         3/mod/direct    7/rm32/edi    .           .             .           .           .               0x34/imm32        # add to edi
+    # var max/ecx: (addr byte) = &segments->data[segments->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           1/r32/ecx   0xc/disp8       .                 # copy esi+ecx+12 to ecx
+    # var srow/esi: (addr segment-row) = segments->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           6/r32/esi   0xc/disp8       .                 # copy esi+12 to esi
+$compute-addresses:segment-loop:
+    # if (srow >= max) break
+    39/compare                      3/mod/direct    6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare esi with ecx
+    73/jump-if-addr>=  $compute-addresses:segment-break/disp8
+    # srow->file-offset += starting-offset
+    01/add                          1/mod/*+disp8   6/rm32/esi    .           .             .           7/r32/edi   0xc/disp8       .                 # add edi to *(esi+12)
+    # clear last 12 bits of srow->address for p_align=0x1000
+    # . edx = srow->address
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(esi+8) to edx
+    # . edx &= 0xfffff000
+    81          4/subop/and         3/mod/direct    2/rm32/edx    .           .             .           .           .               0xfffff000/imm32  # bitwise and of edx
+    # update last 12 bits from srow->file-offset
+    # . ebx = srow->file-offset
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           3/r32/ebx   0xc/disp8       .                 # copy *(esi+12) to ebx
+    # . ebx &= 0xfff
+    81          4/subop/and         3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x00000fff/imm32  # bitwise and of ebx
+    # . srow->address = edx | ebx
+    09/or                           3/mod/direct    2/rm32/edx    .           .             .           3/r32/ebx   .               .                 # edx = bitwise OR with ebx
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   8/disp8         .                 # copy edx to *(esi+8)
+    # trace-sssns("segment " srow " starts at address " srow->address ".")
+    # . eax = lookup(*srow)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . trace-sssns("segment " eax " starts at address " srow->address ".")
+    # . . push args
+    68/push  "."/imm32
+    52/push-edx
+    68/push  "' starts at address "/imm32
+    50/push-eax
+    68/push  "segment '"/imm32
+    # . . call
+    e8/call  trace-sssns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # srow += 20  # size of row
+    81          0/subop/add         3/mod/direct    6/rm32/esi    .           .             .           .           .               0x14/imm32        # add to esi
+    eb/jump  $compute-addresses:segment-loop/disp8
+$compute-addresses:segment-break:
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # esi = labels
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # var max/ecx: (addr byte) = &labels->data[labels->write]
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # copy *esi to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx   .           1/r32/ecx   0xc/disp8       .                 # copy esi+ecx+12 to ecx
+    # var lrow/esi: (addr label-row) = labels->data
+    8d/copy-address                 1/mod/*+disp8   6/rm32/esi    .           .             .           6/r32/esi   0xc/disp8       .                 # copy esi+12 to esi
+$compute-addresses:label-loop:
+    # if (lrow >= max) break
+    39/compare                      3/mod/direct    6/rm32/esi    .           .             .           1/r32/ecx   .               .                 # compare esi with ecx
+    0f 83/jump-if-addr>=  $compute-addresses:end/disp32
+#?     # dump lrow->key {{{
+#?     # . write(2/stderr, "label: ")
+#?     # . . push args
+#?     68/push  "label: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, lrow->key)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # var seg-name/edx: (addr array byte) = lookup(lrow->segment-name)
+    # . eax = lookup(lrow->segment-name)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           0xc/disp8       .                 # push *(esi+12)
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           8/disp8         .                 # push *(esi+8)
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . edx = eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to edx
+#?     # dump seg-name {{{
+#?     # . write(2/stderr, "compute-addresses: seg-name: ")
+#?     # . . push args
+#?     68/push  "seg-name: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, seg-name)
+#?     # . . push args
+#?     52/push-edx
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # var label-seg/edx: (addr segment-info) = get(segments, seg-name, row-size=20, "segment table")
+    # . eax = get(segments, seg-name, row-size=20)
+    # . . push args
+    68/push  "segment table"/imm32
+    68/push  0x14/imm32/row-size
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  get/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . edx = eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to edx
+    # ebx = label-seg->address
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           3/r32/ebx   .               .                 # copy *edx to ebx
+    # ebx += lrow->segment-offset
+    03/add                          1/mod/*+disp8   6/rm32/esi    .           .             .           3/r32/ebx   0x10/disp8      .                 # add *(esi+16) to ebx
+    # lrow->address = ebx
+    89/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           3/r32/ebx   0x14/disp8      .                 # copy ebx to *(esi+20)
+    # trace-sssns("label " lrow->key " is at address " lrow->address ".")
+    # . eax = lookup(lrow->key)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . trace-sssns("label " eax " is at address " lrow->address ".")
+    # . . push args
+    68/push  "."/imm32
+    53/push-ebx
+    68/push  "' is at address "/imm32
+    50/push-eax
+    68/push  "label '"/imm32
+    # . . call
+    e8/call  trace-sssns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+    # lrow += 24  # size of row
+    81          0/subop/add         3/mod/direct    6/rm32/esi    .           .             .           .           .               0x18/imm32        # add to esi
+    e9/jump  $compute-addresses:label-loop/disp32
+$compute-addresses:end:
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-addresses:
+    # input:
+    #   segments:
+    #     - 'a': {0x1000, 0, 5}
+    #     - 'b': {0x2018, 5, 1}
+    #     - 'c': {0x5444, 6, 12}
+    #   labels:
+    #     - 'l1': {'a', 3, 0}
+    #     - 'l2': {'b', 0, 0}
+    #
+    # trace contains in any order (comments in parens):
+    #   segment 'a' starts at address 0x00001094.  (0x34 + 0x20 for each segment)
+    #   segment 'b' starts at address 0x00002099.  (0x018 discarded)
+    #   segment 'c' starts at address 0x0000509a.  (0x444 discarded)
+    #   label 'l1' is at address 0x00001097.       (0x1094 + segment-offset 3)
+    #   label 'l2' is at address 0x00002099.       (0x2099 + segment-offset 0)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . var segments/ecx: (stream byte 10*20)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc8/imm32        # subtract from esp
+    68/push  0xc8/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . var labels/edx: (stream byte 8*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc0/imm32        # subtract from esp
+    68/push  0xc0/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # . h = copy-array(Heap, "a")
+    # . . push args
+    53/push-ebx
+    68/push  "a"/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . stream-add5(segments, "a", 0x1000, 0, 5)
+    # . . push args
+    68/push  5/imm32/segment-size
+    68/push  0/imm32/file-offset
+    68/push  0x1000/imm32/start-address
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    51/push-ecx
+    # . . call
+    e8/call  stream-add5/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # add to esp
+    # . h = copy-array(Heap, "b")
+    # . . push args
+    53/push-ebx
+    68/push  "b"/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . stream-add5(segments, "b", 0x2018, 5, 1)
+    # . . push args
+    68/push  1/imm32/segment-size
+    68/push  5/imm32/file-offset
+    68/push  0x2018/imm32/start-address
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    51/push-ecx
+    # . . call
+    e8/call  stream-add5/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # add to esp
+    # . h = copy-array(Heap, "c")
+    # . . push args
+    53/push-ebx
+    68/push  "c"/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . stream-add5(segments, "c", 0x5444, 6, 12)
+    68/push  0xc/imm32/segment-size
+    68/push  6/imm32/file-offset
+    68/push  0x5444/imm32/start-address
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    51/push-ecx
+    # . . call
+    e8/call  stream-add5/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # add to esp
+    # . stream-add6(labels, "l1", "a", 3, 0)
+    # . . push args
+    68/push  0/imm32/label-address
+    68/push  3/imm32/segment-offset
+    # . . push "a"
+    53/push-ebx
+    68/push  "a"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push "l1"
+    53/push-ebx
+    68/push  "l1"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add6/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x1c/imm32        # add to esp
+    # . stream-add6(labels, "l2", "b", 0, 0)
+    # . . push args
+    68/push  0/imm32/label-address
+    68/push  0/imm32/segment-offset
+    # . . push "b"
+    53/push-ebx
+    68/push  "b"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push "l2"
+    53/push-ebx
+    68/push  "l2"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add6/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x1c/imm32        # add to esp
+    # component under test
+    # . compute-addresses(segments, labels)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  compute-addresses/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # checks
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-trace-contains("segment 'a' starts at address 0x00001094.", msg)
+    # . . push args
+    68/push  "F - test-compute-addresses/0"/imm32
+    68/push  "segment 'a' starts at address 0x00001094."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'b' starts at address 0x00002099.", msg)
+    # . . push args
+    68/push  "F - test-compute-addresses/1"/imm32
+    68/push  "segment 'b' starts at address 0x00002099."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'c' starts at address 0x0000509a.", msg)
+    # . . push args
+    68/push  "F - test-compute-addresses/2"/imm32
+    68/push  "segment 'c' starts at address 0x0000509a."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("label 'l1' is at address 0x00001097.", msg)
+    # . . push args
+    68/push  "F - test-compute-addresses/3"/imm32
+    68/push  "label 'l1' is at address 0x00001097."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("label 'l2' is at address 0x00002099.", msg)
+    # . . push args
+    68/push  "F - test-compute-addresses/4"/imm32
+    68/push  "label 'l2' is at address 0x00002099."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-ints-equal(labels->write, 0x30, msg)
+    # . . push args
+    68/push  "F - test-compute-addresses/maintains-labels-write-index"/imm32
+    68/push  0x30/imm32/2-entries
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-compute-addresses-large-segments:
+    # input:
+    #   segments:
+    #     - 'a': {0x1000, 0, 0x5604}
+    #     - 'b': {0x2018, 0x5604, 1}
+    #   labels:
+    #     - 'l1': {'a', 3, 0}
+    #
+    # trace contains in any order (comments in parens):
+    #   segment 'a' starts at address 0x00001074.  (0x34 + 0x20 for each segment)
+    #   segment 'b' starts at address 0x00002678.  (0x018 discarded; last 3 nibbles from 0x1074 + 0x5604)
+    #   label 'l1' is at address 0x00001077.       (0x1074 + segment-offset 3)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . var segments/ecx: (stream byte 10*20)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc8/imm32        # subtract from esp
+    68/push  0xc8/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # . var labels/edx: (stream byte 8*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc0/imm32        # subtract from esp
+    68/push  0xc0/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # . h = copy-array(Heap, "a")
+    # . . push args
+    53/push-ebx
+    68/push  "a"/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . stream-add5(segments, "a", 0x1000, 0, 0x5604)
+    68/push  0x5604/imm32/segment-size
+    68/push  0/imm32/file-offset
+    68/push  0x1000/imm32/start-address
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    51/push-ecx
+    # . . call
+    e8/call  stream-add5/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # add to esp
+    # . h = copy-array(Heap, "b")
+    # . . push args
+    53/push-ebx
+    68/push  "b"/imm32
+    68/push  Heap/imm32
+    # . . call
+    e8/call  copy-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . stream-add5(segments, "b", 0x2018, 0x5604, 1)
+    68/push  1/imm32/segment-size
+    68/push  0x5604/imm32/file-offset
+    68/push  0x2018/imm32/start-address
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    51/push-ecx
+    # . . call
+    e8/call  stream-add5/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x18/imm32        # add to esp
+    # . stream-add6(labels, "l1", "a", 3, 0)
+    68/push  0/imm32/label-address
+    68/push  3/imm32/segment-offset
+    # . . push "a"
+    53/push-ebx
+    68/push  "a"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push "l1"
+    53/push-ebx
+    68/push  "l1"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add6/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x1c/imm32        # add to esp
+    # component under test
+    # . compute-addresses(segments, labels)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  compute-addresses/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # checks
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . check-trace-contains("segment 'a' starts at address 0x00001074.", msg)
+    # . . push args
+    68/push  "F - test-compute-addresses-large-segments/0"/imm32
+    68/push  "segment 'a' starts at address 0x00001074."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("segment 'b' starts at address 0x00002678.", msg)
+    # . . push args
+    68/push  "F - test-compute-addresses-large-segments/1"/imm32
+    68/push  "segment 'b' starts at address 0x00002678."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . check-trace-contains("label 'l1' is at address 0x00001077.", msg)
+    # . . push args
+    68/push  "F - test-compute-addresses-large-segments/3"/imm32
+    68/push  "label 'l1' is at address 0x00001077."/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-output:  # in: (addr stream byte), out: (addr buffered-file), segments: (addr stream {(handle array byte), segment-info}), labels: (addr stream {(handle array byte), label-info})
+    # pseudocode:
+    #   emit-headers(out, segments, labels)
+    #   emit-segments(in, out, labels)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+#?     # write(2/stderr, "emit-headers\n") {{{
+#?     # . . push args
+#?     68/push  "emit-headers\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # emit-headers(out, segments, labels)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8       .                # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8       .                # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8        .                # push *(ebp+12)
+    # . . call
+    e8/call  emit-headers/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+#?     # write(2/stderr, "emit-segments\n") {{{
+#?     # . . push args
+#?     68/push  "emit-segments\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # emit-segments(in, out, labels)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-segments/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+$emit-output:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# global scratch space for emit-segments
+== data
+
+emit-segments:datum:  # slice
+  0/imm32/start
+  0/imm32/end
+
+== code
+
+emit-segments:  # in: (addr stream byte), out: (addr buffered-file), labels: (addr stream {(handle array byte), label-info})
+    # pseudocode:
+    #   var offset-of-next-instruction = 0
+    #   var line: (stream byte 512)
+    #   line-loop:
+    #   while true
+    #     clear-stream(line)
+    #     read-line(in, line)
+    #     if (line->write == 0) break               # end of file
+    #     offset-of-next-instruction += num-bytes(line)
+    #     var is-far-jump-or-call? = is-far-jump-or-call?(line)
+    #     rewind-stream(line)
+    #     while true
+    #       var word-slice = next-word(line)
+    #       if slice-empty?(word-slice)             # end of line
+    #         break
+    #       if slice-starts-with?(word-slice, "#")  # comment
+    #         break
+    #       if is-label?(word-slice)                # no need for label declarations anymore
+    #         goto line-loop                        # don't insert empty lines
+    #       if slice-equal?(word-slice, "==")       # no need for segment header lines
+    #         goto line-loop                        # don't insert empty lines
+    #       if length(word-slice) == 2
+    #         write-slice-buffered(out, word-slice)
+    #         write-buffered(out, " ")
+    #         continue
+    #       var datum: (addr slice) = next-token-from-slice(word-slice->start, word-slice->end, "/")
+    #       var info: (addr label-info) = get-slice(labels, datum)
+    #       if has-metadata?(word-slice, "imm8")
+    #         abort
+    #       else if has-metadata?(word-slice, "imm32")
+    #         emit(out, info->address, 4)
+    #       else if has-metadata?(word-slice, "disp8")
+    #         value = info->offset - offset-of-next-instruction
+    #         emit(out, value, 1)
+    #       else if has-metadata?(word-slice, "disp32")
+    #         if is-far-jump-or-call?
+    #           value = info->offset - offset-of-next-instruction
+    #         else
+    #           value = info->address
+    #         emit(out, value, 4)
+    #       else
+    #         abort
+    #     write-buffered(out, "\n")
+    #
+    # registers:
+    #   line: ecx
+    #   word-slice: edx
+    #   offset-of-next-instruction: ebx
+    #   is-far-jump-or-call?: edi
+    #   info: esi (inner loop only)
+    #   temporaries: eax, esi (outer loop)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # offset-of-next-instruction/ebx = 0
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+$emit-segments:line-loop:
+    # clear-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line(in, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-line/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # write-stream(2/stderr, line)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(line)
+#?     # . . push args
+#?     51/push-ecx
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+$emit-segments:check-for-end-of-input:
+    # if (line->write == 0) break
+    81          7/subop/compare     0/mod/indirect  1/rm32/ecx    .           .             .           .           .               0/imm32           # compare *ecx
+    0f 84/jump-if-=  $emit-segments:end/disp32
+    # offset-of-next-instruction += num-bytes(line)
+    # . eax = num-bytes(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . ebx += eax
+    01/add                          3/mod/direct    3/rm32/ebx    .           .             .           0/r32/eax   .               .                 # add eax to ebx
+    # var is-far-jump-or-call?/edi: boolean = is-far-jump-or-call?(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  is-far-jump-or-call?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # rewind-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$emit-segments:word-loop:
+    # next-word(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "w: ")
+#?     # . . push args
+#?     68/push  "w: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     52/push-edx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-segments:check-for-end-of-line:
+    # if (slice-empty?(word-slice)) break
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != 0) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-segments:next-line/disp32
+$emit-segments:check-for-comment:
+    # if (slice-starts-with?(word-slice, "#")) break
+    # . start/esi = word-slice->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           6/r32/esi   .               .                 # copy *edx to esi
+    # . c/eax = *start
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    8a/copy-byte                    0/mod/indirect  6/rm32/esi    .           .             .           0/r32/AL    .               .                 # copy byte at *esi to AL
+    # . if (eax == '#') break
+    3d/compare-eax-and  0x23/imm32/hash
+    0f 84/jump-if-=  $emit-segments:next-line/disp32
+$emit-segments:check-for-label:
+    # if is-label?(word-slice) break
+    # . eax = is-label?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  is-label?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-segments:line-loop/disp32
+$emit-segments:check-for-segment-header:
+    # if (slice-equal?(word-slice, "==")) break
+    # . eax = slice-equal?(word-slice, "==")
+    # . . push args
+    68/push  "=="/imm32
+    52/push-edx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-segments:line-loop/disp32
+$emit-segments:2-character:
+    # if (size(word-slice) != 2) goto next check
+    # . eax = size(word-slice)
+    8b/copy                         1/mod/*+disp8   2/rm32/edx    .           .             .           0/r32/eax   4/disp8         .                 # copy *(edx+4) to eax
+    2b/subtract                     0/mod/indirect  2/rm32/edx    .           .             .           0/r32/eax   .               .                 # subtract *edx from eax
+    # . if (eax != 2) goto next check
+    3d/compare-eax-and  2/imm32
+    75/jump-if-!=  $emit-segments:check-metadata/disp8
+    # write-slice-buffered(out, word-slice)
+    # . . push args
+    52/push-edx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, " ")
+    # . . push args
+    68/push  Space/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # continue
+    e9/jump  $emit-segments:word-loop/disp32
+$emit-segments:check-metadata:
+    # - if we get here, 'word-slice' must be a label to be looked up
+    # datum = next-token-from-slice(word-slice->start, word-slice->end, "/")
+    # . . push args
+    68/push  emit-segments:datum/imm32
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+#?     # dump datum {{{
+#?     # . write(2/stderr, "datum: ")
+#?     # . . push args
+#?     68/push  "datum: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, datum)
+#?     # . . push args
+#?     68/push  emit-segments:datum/imm32
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # info/esi = get-slice(labels, datum, row-size=24, "label table")
+    # . eax = get-slice(labels, datum, row-size=24, "label table")
+    # . . push args
+    68/push  "label table"/imm32
+    68/push  0x18/imm32/row-size
+    68/push  emit-segments:datum/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    # . . call
+    e8/call  get-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . esi = eax
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy eax to esi
+$emit-segments:check-imm8:
+    # if (has-metadata?(word-slice, "imm8")) abort
+    # . eax = has-metadata?(edx, "imm8")
+    # . . push args
+    68/push  "imm8"/imm32
+    52/push-edx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) abort
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $emit-segments:imm8-abort/disp32
+$emit-segments:check-imm32:
+    # if (!has-metadata?(word-slice, "imm32")) goto next check
+    # . eax = has-metadata?(edx, "imm32")
+    # . . push args
+    68/push  "imm32"/imm32
+    52/push-edx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-segments:check-disp8/disp8
+#?     # dump info->address {{{
+#?     # . write(2/stderr, "info->address: ")
+#?     # . . push args
+#?     68/push  "info->address: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, info->address)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           0xc/disp8       .                 # push *(esi+12)
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$emit-segments:emit-imm32:
+    # emit-hex(out, info->address, 4)
+    # . . push args
+    68/push  4/imm32
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           0xc/disp8       .                 # push *(esi+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # continue
+    e9/jump  $emit-segments:word-loop/disp32
+$emit-segments:check-disp8:
+    # if (!has-metadata?(word-slice, "disp8")) goto next check
+    # . eax = has-metadata?(edx, "disp8")
+    # . . push args
+    68/push  "disp8"/imm32
+    52/push-edx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-segments:check-disp32/disp8
+$emit-segments:emit-disp8:
+    # emit-hex(out, info->offset - offset-of-next-instruction, 1)
+    # . . push args
+    68/push  1/imm32
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   8/disp8         .                 # copy *(esi+8) to eax
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # subtract ebx from eax
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # continue
+    e9/jump  $emit-segments:word-loop/disp32
+$emit-segments:check-disp32:
+    # if (!has-metadata?(word-slice, "disp32")) abort
+    # . eax = has-metadata?(edx, "disp32")
+    # . . push args
+    68/push  "disp32"/imm32
+    52/push-edx
+    # . . call
+    e8/call  has-metadata?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) abort
+    3d/compare-eax-and  0/imm32/false
+    0f 84/jump-if-=  $emit-segments:abort/disp32
+$emit-segments:emit-disp32:
+    # var value/eax = info->address
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(esi+12) to eax
+    # if (is-far-jump-or-call?) value = info->offset - offset-of-next-instruction
+    81          7/subop/compare     3/mod/direct    7/rm32/edi    .           .             .           .           .               0/imm32/false     # compare edi
+    74/jump-if-=  $emit-segments:really-emit-disp32/disp8
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   8/disp8         .                 # copy *(esi+8) to eax
+    29/subtract                     3/mod/direct    0/rm32/eax    .           .             .           3/r32/ebx   .               .                 # subtract ebx from eax
+$emit-segments:really-emit-disp32:
+    # emit-hex(out, value, 4)
+    # . . push args
+    68/push  4/imm32
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  emit-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # continue
+    e9/jump  $emit-segments:word-loop/disp32
+$emit-segments:next-line:
+    # write-buffered(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+    e9/jump  $emit-segments:line-loop/disp32
+$emit-segments:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x214/imm32       # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$emit-segments:global-variable-abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "emit-segments: must refer to global variables with /disp32 or /imm32"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$emit-segments:imm8-abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "emit-segments: cannot refer to code labels with /imm8"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+$emit-segments:abort:
+    # print(stderr, "missing metadata in " word-slice)
+    # . _write(2/stderr, "missing metadata in word ")
+    # . . push args
+    68/push  "emit-segments: missing metadata in "/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write-slice-buffered(Stderr, word-slice)
+    # . . push args
+    52/push-edx
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  write-slice-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . flush(Stderr)
+    # . . push args
+    68/push  Stderr/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+test-emit-segments-non-far-control-flow:
+    # labels turn into absolute addresses if opcodes are not far jumps or calls
+    #
+    # input:
+    #   in:
+    #     == code 0x1000
+    #     ab cd ef gh
+    #     ij x/disp32
+    #     == data 0x2000
+    #     00
+    #     x:
+    #       34
+    #   labels:
+    #     - 'x': {'data', 1, 0x207a}
+    #
+    # output:
+    #   ab cd ef gh
+    #   ij 7a 20 00 00
+    #   00
+    #   34
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . var labels/edx: (stream byte 8*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc0/imm32        # subtract from esp
+    68/push  0xc0/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # initialize input
+    # . write(_test-input-stream, "== code 0x1000\n")
+    # . . push args
+    68/push  "== code 0x1000\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab cd ef gh\n")
+    # . . push args
+    68/push  "ab cd ef gh\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ij x/disp32\n")
+    # . . push args
+    68/push  "ij x/disp32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "== data 0x2000\n")
+    # . . push args
+    68/push  "== data 0x2000\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "00\n")
+    # . . push args
+    68/push  "00\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "x:\n")
+    # . . push args
+    68/push  "x:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "34\n")
+    # . . push args
+    68/push  "34\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . stream-add6(labels, "x", "data", 1, 0x207a)
+    68/push  0x207a/imm32/label-address
+    68/push  1/imm32/segment-offset
+    # . . push "data"
+    53/push-ebx
+    68/push  "data"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push "l1"
+    53/push-ebx
+    68/push  "x"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add6/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x1c/imm32        # add to esp
+    # component under test
+    # . emit-segments(_test-input-stream, _test-output-buffered-file, labels)
+    # . . push args
+    52/push-edx
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  emit-segments/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # checks
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "ab cd ef gh ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-global-variable/0"/imm32
+    68/push  "ab cd ef gh "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "ij 7a 20 00 00 ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-global-variable/1"/imm32
+    68/push  "ij 7a 20 00 00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "00 ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-global-variable/2"/imm32
+    68/push  "00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "34 ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-global-variable/3"/imm32
+    68/push  "34 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-segments-code-label:
+    # labels turn into PC-relative addresses if opcodes are far jumps or calls
+    #
+    # input:
+    #   in:
+    #     == code 0x1000
+    #     ab cd
+    #     l1:
+    #       ef gh
+    #       e8 l1/disp32
+    #   labels:
+    #     - 'l1': {'code', 2, 0x1056}
+    #
+    # output:
+    #   ab cd
+    #   ef gh
+    #   e8 f9 ff ff ff  # -7
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . var labels/edx: (stream byte 8*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc0/imm32        # subtract from esp
+    68/push  0xc0/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # initialize input
+    # . write(_test-input-stream, "== code 0x1000\n")
+    # . . push args
+    68/push  "== code 0x1000\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab cd\n")
+    # . . push args
+    68/push  "ab cd\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "l1:\n")
+    # . . push args
+    68/push  "l1:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "  ef gh\n")
+    # . . push args
+    68/push  "  ef gh\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "  e8 l1/disp32\n")
+    # . . push args
+    68/push  "  e8 l1/disp32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . stream-add6(labels, "l1", "code", 2, 0x1056)
+    68/push  0x1056/imm32/label-address
+    68/push  2/imm32/segment-offset
+    # . . push "data"
+    53/push-ebx
+    68/push  "code"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push "l1"
+    53/push-ebx
+    68/push  "l1"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add6/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x1c/imm32        # add to esp
+    # component under test
+    # . emit-segments(_test-input-stream, _test-output-buffered-file, labels)
+    # . . push args
+    52/push-edx
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  emit-segments/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # checks
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "ab cd ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-code-label/0"/imm32
+    68/push  "ab cd "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "ef gh ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-code-label/1"/imm32
+    68/push  "ef gh "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "e8 f9 ff ff ff ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-code-label/2"/imm32
+    68/push  "e8 f9 ff ff ff "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-emit-segments-code-label-absolute:
+    # labels can also convert to absolute addresses
+    #
+    # input:
+    #   in:
+    #     == code 0x1000
+    #     ab cd
+    #     l1:
+    #       ef gh
+    #       ij l1/imm32
+    #   labels:
+    #     - 'l1': {'code', 2, 0x1056}
+    #
+    # output:
+    #   ab cd
+    #   ef gh
+    #   ij 56 10 00 00
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream($_test-output-buffered-file->buffer)
+    # . . push args
+    68/push  $_test-output-buffered-file->buffer/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . var labels/edx: (stream byte 8*24)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc0/imm32        # subtract from esp
+    68/push  0xc0/imm32/size
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # . var h/ebx: (handle array byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # initialize input
+    # . write(_test-input-stream, "== code 0x1000\n")
+    # . . push args
+    68/push  "== code 0x1000\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "ab cd\n")
+    # . . push args
+    68/push  "ab cd\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "l1:\n")
+    # . . push args
+    68/push  "l1:\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "  ef gh\n")
+    # . . push args
+    68/push  "  ef gh\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . write(_test-input-stream, "  ij l1/imm32\n")
+    # . . push args
+    68/push  "  ij l1/imm32\n"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . stream-add6(labels, "l1", "code", 2, 0x1056)
+    68/push  0x1056/imm32/label-address
+    68/push  2/imm32/segment-offset
+    # . . push "data"
+    53/push-ebx
+    68/push  "code"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push "l1"
+    53/push-ebx
+    68/push  "l1"/imm32
+    68/push  Heap/imm32
+    e8/call  copy-array/disp32
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    ff          6/subop/push        1/mod/*+disp8   3/rm32/ebx    .           .             .           .           4/disp8         .                 # push *(ebx+4)
+    ff          6/subop/push        0/mod/indirect  3/rm32/ebx    .           .             .           .           .               .                 # push *ebx
+    # . . push labels
+    52/push-edx
+    # . . call
+    e8/call  stream-add6/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x1c/imm32        # add to esp
+    # component under test
+    # . emit-segments(_test-input-stream, _test-output-buffered-file, labels)
+    # . . push args
+    52/push-edx
+    68/push  _test-output-buffered-file/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  emit-segments/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # checks
+    # . flush(_test-output-buffered-file)
+    # . . push args
+    68/push  _test-output-buffered-file/imm32
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # dump output {{{
+#?     # . write(2/stderr, "result: ^")
+#?     # . . push args
+#?     68/push  "result: ^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, _test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . rewind-stream(_test-output-stream)
+#?     # . . push args
+#?     68/push  _test-output-stream/imm32
+#?     # . . call
+#?     e8/call  rewind-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # }}}
+    # . check-next-stream-line-equal(_test-output-stream, "ab cd ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-code-label-absolute/0"/imm32
+    68/push  "ab cd "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "ef gh ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-code-label-absolute/1"/imm32
+    68/push  "ef gh "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . check-next-stream-line-equal(_test-output-stream, "ij f9 ff ff ff ", msg)
+    # . . push args
+    68/push  "F - test-emit-segments-code-label-absolute/2"/imm32
+    68/push  "ij 56 10 00 00 "/imm32
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  check-next-stream-line-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# reads line to make some checks
+# don't assume the read state of line after calling this function
+is-far-jump-or-call?:  # line: (addr stream byte) -> result/edi: boolean
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # ecx = line
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           1/r32/ecx   8/disp8         .                 # copy *(ebp+8) to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # var datum-slice/ebx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # result = false
+    bf/copy-to-edi  0/imm32/false
+$is-far-jump-or-call?:check-first-word:
+    # next-word(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-empty?(word-slice)) return false
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != 0) return
+    3d/compare-eax-and  0/imm32/false
+    0f 85/jump-if-!=  $is-far-jump-or-call?:end/disp32
+    # datum = next-token-from-slice(word-slice->start, word-slice->end, "/")
+    # . . push args
+    53/push-ebx
+    68/push  0x2f/imm32/slash
+    ff          6/subop/push        1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # push *(edx+4)
+    ff          6/subop/push        0/mod/indirect  2/rm32/edx    .           .             .           .           .               .                 # push *edx
+    # . . call
+    e8/call  next-token-from-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # if (datum-slice == "e8") return true
+    # . eax = slice-equal?(datum-slice, "e8")
+    # . . push args
+    68/push  "e8"/imm32
+    53/push-ebx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return true
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $is-far-jump-or-call?:return-true/disp8
+    # if (datum-slice == "e9") return true
+    # . eax = slice-equal?(datum-slice, "e9")
+    # . . push args
+    68/push  "e9"/imm32
+    53/push-ebx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) return true
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $is-far-jump-or-call?:return-true/disp8
+    # if (datum-slice != "0f") return false
+    # . eax = slice-equal?(datum-slice, "0f")
+    # . . push args
+    68/push  "0f"/imm32
+    53/push-ebx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) return
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $is-far-jump-or-call?:end/disp8
+$is-far-jump-or-call?:check-second-word:
+    # next-word(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # if (slice-empty?(word-slice)) return false
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != 0) return
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $is-far-jump-or-call?:end/disp8
+    # if datum of word-slice does not start with "8", return false
+    # . start/eax = word-slice->start
+    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy *edx to eax
+    # . c/eax = *start
+    8a/copy-byte                    0/mod/indirect  0/rm32/eax    .           .             .           0/r32/AL    .               .                 # copy byte at *eax to AL
+    81          4/subop/and         3/mod/direct    0/rm32/eax    .           .             .           .           .               0xff/imm32        # bitwise and of eax
+    # . if (eax != '8') return
+    3d/compare-eax-and  0x38/imm32/8
+    75/jump-if-!=  $is-far-jump-or-call?:end/disp8
+    # otherwise return true
+$is-far-jump-or-call?:return-true:
+    bf/copy-to-edi  1/imm32/true
+$is-far-jump-or-call?:end:
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-headers:  # out: (addr buffered-file), segments: (addr stream {(handle array byte), segment-info}), labels: (addr stream {(handle array byte), label-info})
+    # pseudocode:
+    #   emit-elf-header(out, segments, labels)
+    #   var curr-segment-row: (addr handle array byte) = segments->data
+    #   max = &segments->data[segments->write]
+    #   while true
+    #     if (curr-segment >= max) break
+    #     emit-elf-program-header-entry(out, curr-segment-row)
+    #     curr-segment-row += 20                        # size of a row
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    # emit-elf-header(out, segments, labels)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-elf-header/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # eax = segments
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    # ecx = segments->write
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    # curr-segment/eax = segments->data
+    8d/copy-address                 1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   0xc/disp8       .                 # copy eax+12 to eax
+    # max/ecx = &segments->data[segments->write]
+    01/add                          3/mod/direct    1/rm32/ecx    .           .             .           0/r32/eax   .               .                 # add eax to ecx
+$emit-headers:loop:
+    # if (curr-segment >= max) break
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # compare eax with ecx
+    0f 83/jump-if-addr>=  $emit-headers:end/disp32
+#?     # dump curr-segment->name {{{
+#?     # . write(2/stderr, "about to emit ph entry: segment->name: ")
+#?     # . . push args
+#?     68/push  "about to emit ph entry: segment->name: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, &curr-segment)
+#?     # . . push args
+#?     50/push-eax
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, " -> ")
+#?     # . . push args
+#?     68/push  " -> "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-int32-hex-buffered(Stderr, curr-segment->name)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  0/rm32/eax    .           .             .           .           .               .                 # push *eax
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-int32-hex-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "\n")
+#?     # . . push args
+#?     68/push  Newline/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+#?     # write(2/stderr, "emit-segment-header\n") {{{
+#?     # . . push args
+#?     68/push  "emit-segment-header\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # emit-elf-program-header-entry(out, curr-segment)
+    # . . push args
+    50/push-eax
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-elf-program-header-entry/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # curr-segment += 20                        # size of a row
+    81          0/subop/add         3/mod/direct    0/rm32/eax    .           .             .           .           .               0x14/imm32        # add to eax
+    e9/jump  $emit-headers:loop/disp32
+$emit-headers:end:
+    # . restore registers
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+emit-elf-header:  # out: (addr buffered-file), segments: (addr stream {(handle array byte), segment-info}), labels: (addr stream {(handle array byte), label-info})
+    # pseudocode
+    #   *$Elf_e_entry = get(labels, "Entry")->address
+    #   *$Elf_e_phnum = segments->write / 20         # size of a row
+    #   emit-hex-array(out, Elf_header)
+    #   write-buffered(out, "\n")
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx  # just because we need to call idiv
+    # *$Elf_e_entry = get(labels, "Entry")->address
+    # . eax = labels
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0x10/disp8      .                 # copy *(ebp+16) to eax
+    # . label-info/eax = get(labels, "Entry", row-size=24, "label table")
+    # . . push args
+    68/push  "label table"/imm32
+    68/push  0x18/imm32/row-size
+    68/push  "Entry"/imm32
+    50/push-eax
+    # . . call
+    e8/call  get/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # . eax = label-info->address
+    8b/copy                         1/mod/*+disp8   0/rm32/eax    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(eax+12) to eax
+    # . *$Elf_e_entry = eax
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   $Elf_e_entry/disp32               # copy eax to *$Elf_e_entry
+    # *$Elf_e_phnum = segments->write / 20
+    # . eax = segments
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(ebp+12) to eax
+    # . len/eax = segments->write
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           0/r32/eax   .               .                 # copy *eax to eax
+    # . eax = len / 20  (clobbering ecx and edx)
+    b9/copy-to-ecx  0x14/imm32
+    31/xor                          3/mod/direct    2/rm32/edx    .           .             .           2/r32/edx   .               .                 # clear edx
+    f7          7/subop/idiv        3/mod/direct    1/rm32/ecx    .           .             .           .           .               .                 # divide edx:eax by ecx, storing quotient in eax and remainder in edx
+    # . *$Elf_e_phnum = eax
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   $Elf_e_phnum/disp32               # copy eax to *$Elf_e_phnum
+    # emit-hex-array(out, Elf_header)
+    # . . push args
+    68/push  Elf_header/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-hex-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-elf-header:end:
+    # . restore registers
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# segment-info: {address, file-offset, size}                                  (12 bytes)
+# segments: (addr stream {(handle array byte), segment-info})                 (20 bytes per row)
+emit-elf-program-header-entry:  # out: (addr buffered-file), curr-segment: (addr {(handle array byte), segment-info})
+    # pseudocode:
+    #   *$Elf_p_offset = curr-segment->file-offset
+    #   *$Elf_p_vaddr = curr-segment->address
+    #   *$Elf_p_paddr = curr-segment->address
+    #   *$Elf_p_filesz = curr-segment->size
+    #   *$Elf_p_memsz = curr-segment->size
+    #   if curr-segment->name == "code"
+    #     *$Elf_p_flags = 5  # r-x
+    #   else
+    #     *$Elf_p_flags = 6  # rw-
+    #   emit-hex-array(out, Elf_program_header_entry)
+    #   write-buffered(out, "\n")
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    56/push-esi
+    # esi = curr-segment
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   0xc/disp8       .                 # copy *(ebp+12) to esi
+    # *$Elf_p_offset = curr-segment->file-offset
+    # . eax = curr-segment->file-offset
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   0xc/disp8       .                 # copy *(esi+12) to eax
+    # . *$Elf_p_offset = eax
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   $Elf_p_offset/disp32              # copy eax to *$Elf_p_offset
+    # *$Elf_p_vaddr = curr-segment->address
+    # . eax = curr-segment->address
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   8/disp8         .                 # copy *(esi+8) to eax
+    # . *$Elf_p_vaddr = eax
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   $Elf_p_vaddr/disp32               # copy eax to *$Elf_p_vaddr
+    # *$Elf_p_paddr = curr-segment->address
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   $Elf_p_paddr/disp32               # copy eax to *$Elf_p_paddr
+    # *$Elf_p_filesz = curr-segment->size
+    # . eax = curr-segment->size
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           0/r32/eax   0x10/disp8       .                # copy *(esi+16) to eax
+    # . *$Elf_p_filesz = eax
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   $Elf_p_filesz/disp32              # copy eax to *$Elf_p_filesz
+    # *$Elf_p_memsz = curr-segment->size
+    89/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   $Elf_p_memsz/disp32               # copy eax to *$Elf_p_memsz
+    # if (!string-equal?(name, "code") goto next check
+    # . var name/eax: (addr array byte) = lookup(curr-segment->name)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . eax = string-equal?(name, "code")
+    # . . push args
+    68/push  "code"/imm32
+    50/push-eax
+    # . . call
+    e8/call  string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto next check
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $emit-elf-program-header-entry:data/disp8
+    # *$Elf_p_flags = r-x
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           $Elf_p_flags/disp32  5/imm32      # copy to *$Elf_p_flags
+    eb/jump  $emit-elf-program-header-entry:really-emit/disp8
+$emit-elf-program-header-entry:data:
+    # otherwise *$Elf_p_flags = rw-
+    c7          0/subop/copy        0/mod/indirect  5/rm32/.disp32            .             .           .           $Elf_p_flags/disp32  6/imm32      # copy to *$Elf_p_flags
+$emit-elf-program-header-entry:really-emit:
+    # emit-hex-array(out, Elf_program_header_entry)
+    # . . push args
+    68/push  Elf_program_header_entry/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  emit-hex-array/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-buffered(out, "\n")
+    # . . push args
+    68/push  Newline/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  write-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$emit-elf-program-header-entry:end:
+    # . restore registers
+    5e/pop-to-esi
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# - some helpers for tests
+
+stream-add5:  # in: (addr stream byte), key: handle, val1: addr, val2: addr, val3: addr
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # curr/eax = &in->data[in->write]
+    # . eax = in->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    # . eax = esi+eax+12
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    # max/edx = &in->data[in->size]
+    # . edx = in->size
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(esi+8) to edx
+    # . edx = esi+edx+12
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  2/index/edx   .           2/r32/edx   0xc/disp8       .                 # copy esi+edx+12 to edx
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add5:abort/disp8
+    # *curr = key->alloc-id
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add5:abort/disp8
+    # *curr = key->payload
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x10/disp8      .                 # copy *(ebp+16) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add5:abort/disp8
+    # *curr = val1
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x14/disp8      .                 # copy *(ebp+20) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add5:abort/disp8
+    # *curr = val2
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x18/disp8      .                 # copy *(ebp+24) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add5:abort/disp8
+    # *curr = val3
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x1c/disp8      .                 # copy *(ebp+28) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # in->write += 20
+    81          0/subop/add         0/mod/indirect  6/rm32/esi    .           .             .           .           .               0x14/imm32        # add to *esi
+$stream-add5:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$stream-add5:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "overflow in stream-add5\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+stream-add6:  # in: (addr stream byte), key: handle, val1: addr, val2: addr, val3: addr, val4: addr
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    56/push-esi
+    # esi = in
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           6/r32/esi   8/disp8         .                 # copy *(ebp+8) to esi
+    # curr/eax = &in->data[in->write]
+    # . eax = in->write
+    8b/copy                         0/mod/indirect  6/rm32/esi    .           .             .           0/r32/eax   .               .                 # copy *esi to eax
+    # . eax = esi+eax+12
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax   .           0/r32/eax   0xc/disp8       .                 # copy esi+eax+12 to eax
+    # max/edx = &in->data[in->size]
+    # . edx = in->size
+    8b/copy                         1/mod/*+disp8   6/rm32/esi    .           .             .           2/r32/edx   8/disp8         .                 # copy *(esi+8) to edx
+    # . edx = esi+edx+12
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  2/index/edx   .           2/r32/edx   0xc/disp8       .                 # copy esi+edx+12 to edx
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add6:abort/disp8
+    # *curr = key->alloc-id
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0xc/disp8       .                 # copy *(ebp+12) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add6:abort/disp8
+    # *curr = key->payload
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x10/disp8      .                 # copy *(ebp+16) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add6:abort/disp8
+    # *curr = val1
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x14/disp8      .                 # copy *(ebp+20) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add6:abort/disp8
+    # *curr = val2
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x18/disp8      .                 # copy *(ebp+24) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add6:abort/disp8
+$aa-write-segment-offset:
+    # *curr = val3
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x1c/disp8      .                 # copy *(ebp+28) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # curr += 4
+    05/add-to-eax  4/imm32
+    # if (curr >= max) abort
+    39/compare                      3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # compare eax with edx
+    73/jump-if-addr>=  $stream-add6:abort/disp8
+    # *curr = val4
+    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .                         1/r32/ecx   0x20/disp8      .                 # copy *(ebp+32) to ecx
+    89/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy ecx to *eax
+    # in->write += 24
+    81          0/subop/add         0/mod/indirect  6/rm32/esi    .           .             .           .           .               0x18/imm32        # add to *esi
+$stream-add6:end:
+    # . restore registers
+    5e/pop-to-esi
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+$stream-add6:abort:
+    # . _write(2/stderr, error)
+    # . . push args
+    68/push  "overflow in stream-add6\n"/imm32
+    68/push  2/imm32/stderr
+    # . . call
+    e8/call  _write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . syscall(exit, 1)
+    bb/copy-to-ebx  1/imm32
+    e8/call  syscall_exit/disp32
+    # never gets here
+
+# some variants of 'trace' that take multiple arguments in different combinations of types:
+#   n: int
+#   c: character [4-bytes, will eventually be UTF-8]
+#   s: (addr array byte)
+#   l: (addr slice)
+# one gotcha: 's5' must not be empty
+
+trace-sssns:  # s1: (addr array byte), s2: (addr array byte), s3: (addr array byte), n4: int, s5: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write(*Trace-stream, s1)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(*Trace-stream, s2)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(*Trace-stream, s3)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-int32-hex(*Trace-stream, n4)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write-int32-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # trace(s5)  # implicitly adds a newline and finalizes the trace line
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$trace-sssns:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-trace-sssns:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . *Trace-stream->write = 0
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy *Trace-stream to eax
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # clear *eax
+    # trace-sssns("A" "b" "c " 3 " e")
+    # . . push args
+    68/push  " e"/imm32
+    68/push  3/imm32
+    68/push  "c "/imm32
+    68/push  "b"/imm32
+    68/push  "A"/imm32
+    # . . call
+    e8/call  trace-sssns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-trace-contains("Abc 0x00000003 e")
+    # . . push args
+    68/push  "F - test-trace-sssns"/imm32
+    68/push  "Abc 0x00000003 e"/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+trace-slsls:  # s1: (addr array byte), l2: (addr slice), s3: (addr array byte), l4: (addr slice), s5: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write(*Trace-stream, s1)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-slice(*Trace-stream, l2)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(*Trace-stream, s3)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-slice(*Trace-stream, l4)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # trace(s5)  # implicitly adds a newline and finalizes the trace line
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$trace-slsls:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-trace-slsls:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . *Trace-stream->write = 0
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy *Trace-stream to eax
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # clear *eax
+    # (eax..ecx) = "b"
+    b8/copy-to-eax  "b"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var b/ebx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # (eax..ecx) = "d"
+    b8/copy-to-eax  "d"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var d/edx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # trace-slsls("A" b "c" d "e")
+    # . . push args
+    68/push  "e"/imm32
+    52/push-edx
+    68/push  "c"/imm32
+    53/push-ebx
+    68/push  "A"/imm32
+    # . . call
+    e8/call  trace-slsls/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-trace-contains("Abcde")
+    # . . push args
+    68/push  "F - test-trace-slsls"/imm32
+    68/push  "Abcde"/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+trace-slsns:  # s1: (addr array byte), l2: (addr slice), s3: (addr array byte), n4: int, s5: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write(*Trace-stream, s1)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-slice(*Trace-stream, l2)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(*Trace-stream, s3)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-int32-hex(*Trace-stream, n4)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write-int32-hex/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # trace(s5)  # implicitly adds a newline and finalizes the trace line
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$trace-slsns:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-trace-slsns:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . *Trace-stream->write = 0
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy *Trace-stream to eax
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # clear *eax
+    # (eax..ecx) = "b"
+    b8/copy-to-eax  "b"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var b/ebx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # trace-slsls("A" b "c " 3 " e")
+    # . . push args
+    68/push  " e"/imm32
+    68/push  3/imm32
+    68/push  "c "/imm32
+    53/push-ebx
+    68/push  "A"/imm32
+    # . . call
+    e8/call  trace-slsns/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-trace-contains("Abc 0x00000003 e")
+    # . . push args
+    68/push  "F - test-trace-slsls"/imm32
+    68/push  "Abc 0x00000003 e"/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+trace-slsss:  # s1: (addr array byte), l2: (addr slice), s3: (addr array byte), s4: (addr array byte), s5: (addr array byte)
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # write(*Trace-stream, s1)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-slice(*Trace-stream, l2)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(*Trace-stream, s3)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x10/disp8      .                 # push *(ebp+16)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(*Trace-stream, s4)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x14/disp8      .                 # push *(ebp+20)
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # trace(s5)  # implicitly adds a newline and finalizes the trace line
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0x18/disp8      .                 # push *(ebp+24)
+    # . . call
+    e8/call  trace/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$trace-slsss:end:
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-trace-slsss:
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . *Trace-stream->write = 0
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           0/r32/eax   Trace-stream/disp32               # copy *Trace-stream to eax
+    c7          0/subop/copy        0/mod/direct    0/rm32/eax    .           .             .           .           .               0/imm32           # clear *eax
+    # (eax..ecx) = "b"
+    b8/copy-to-eax  "b"/imm32
+    8b/copy                         0/mod/indirect  0/rm32/eax    .           .             .           1/r32/ecx   .               .                 # copy *eax to ecx
+    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx   .           1/r32/ecx   4/disp8         .                 # copy eax+ecx+4 to ecx
+    05/add-to-eax  4/imm32
+    # var b/ebx: slice = {eax, ecx}
+    51/push-ecx
+    50/push-eax
+    89/copy                         3/mod/direct    3/rm32/ebx    .           .             .           4/r32/esp   .               .                 # copy esp to ebx
+    # trace-slsss("A" b "c" "d" "e")
+    # . . push args
+    68/push  "e"/imm32
+    68/push  "d"/imm32
+    68/push  "c"/imm32
+    53/push-ebx
+    68/push  "A"/imm32
+    # . . call
+    e8/call  trace-slsss/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x14/imm32        # add to esp
+#?     # dump *Trace-stream {{{
+#?     # . write(2/stderr, "^")
+#?     # . . push args
+#?     68/push  "^"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write-stream(2/stderr, *Trace-stream)
+#?     # . . push args
+#?     ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Trace-stream/disp32               # push *Trace-stream
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # check-trace-contains("Abcde")
+    # . . push args
+    68/push  "F - test-trace-slsss"/imm32
+    68/push  "Abcde"/imm32
+    # . . call
+    e8/call  check-trace-contains/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+num-bytes:  # line: (addr stream byte) -> eax: int
+    # pseudocode:
+    #   result = 0
+    #   while true
+    #     var word-slice = next-word(line)
+    #     if slice-empty?(word-slice)             # end of line
+    #       break
+    #     if slice-starts-with?(word-slice, "#")  # comment
+    #       break
+    #     if is-label?(word-slice)                # no need for label declarations anymore
+    #       break
+    #     if slice-equal?(word-slice, "==")
+    #       break                                 # no need for segment header lines
+    #     result += compute-width(word-slice)
+    #   return result
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    # var result/eax = 0
+    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
+    # var word-slice/ecx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+#?     # dump line {{{
+#?     # . write(2/stderr, "LL: ")
+#?     # . . push args
+#?     68/push  "LL: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # write-stream(2/stderr, line)
+#?     # . . push args
+#?     ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+    # . rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+$num-bytes:loop:
+    # next-word(line, word-slice)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # dump word-slice {{{
+#?     # . write(2/stderr, "AA: ")
+#?     # . . push args
+#?     68/push  "AA: "/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . clear-stream($Stderr->buffer)
+#?     # . . push args
+#?     68/push  $Stderr->buffer/imm32
+#?     # . . call
+#?     e8/call  clear-stream/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write-slice-buffered(Stderr, word-slice)
+#?     # . . push args
+#?     51/push-ecx
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  write-slice-buffered/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # . flush(Stderr)
+#?     # . . push args
+#?     68/push  Stderr/imm32
+#?     # . . call
+#?     e8/call  flush/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+#?     # . write(2/stderr, "$\n")
+#?     # . . push args
+#?     68/push  "$\n"/imm32
+#?     68/push  2/imm32/stderr
+#?     # . . call
+#?     e8/call  write/disp32
+#?     # . . discard args
+#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+#?     # }}}
+$num-bytes:check0:
+    # if (slice-empty?(word-slice)) break
+    # . save result
+    50/push-eax
+    # . eax = slice-empty?(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    # . restore result now that ZF is set
+    58/pop-to-eax
+    75/jump-if-!=  $num-bytes:end/disp8
+$num-bytes:check-for-comment:
+    # if (slice-starts-with?(word-slice, "#")) break
+    # . start/edx = word-slice->start
+    8b/copy                         0/mod/indirect  1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # copy *ecx to edx
+    # . c/ebx = *start
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    8a/copy-byte                    0/mod/indirect  2/rm32/edx    .           .             .           3/r32/BL    .               .                 # copy byte at *edx to BL
+    # . if (ebx == '#') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x23/imm32/hash   # compare ebx
+    74/jump-if-=  $num-bytes:end/disp8
+$num-bytes:check-for-label:
+    # if (slice-ends-with?(word-slice, ":")) break
+    # . end/edx = word-slice->end
+    8b/copy                         1/mod/*+disp8   1/rm32/ecx    .           .             .           2/r32/edx   4/disp8         .                 # copy *(ecx+4) to edx
+    # . c/ebx = *(end-1)
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    8a/copy-byte                    1/mod/*+disp8   2/rm32/edx    .           .             .           3/r32/BL    -1/disp8        .                 # copy byte at *ecx to BL
+    # . if (ebx == ':') break
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0x3a/imm32/colon  # compare ebx
+    74/jump-if-=  $num-bytes:end/disp8
+$num-bytes:check-for-segment-header:
+    # if (slice-equal?(word-slice, "==")) break
+    # . push result
+    50/push-eax
+    # . eax = slice-equal?(word-slice, "==")
+    # . . push args
+    68/push  "=="/imm32
+    51/push-ecx
+    # . . call
+    e8/call  slice-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    # . restore result now that ZF is set
+    58/pop-to-eax
+    75/jump-if-!=  $num-bytes:end/disp8
+$num-bytes:loop-body:
+    # result += compute-width-of-slice(word-slice)
+    # . copy result to edx
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           0/r32/eax   .               .                 # copy eax to edx
+    # . eax = compute-width-of-slice(word-slice)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call compute-width-of-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . eax += result
+    01/add                          3/mod/direct    0/rm32/eax    .           .             .           2/r32/edx   .               .                 # add edx to eax
+    e9/jump  $num-bytes:loop/disp32
+$num-bytes:end:
+    # . rewind-stream(line)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . restore registers
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-handles-empty-string:
+    # if a line starts with '#', return 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # no contents in input
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-handles-empty-string"/imm32
+    68/push  0/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-ignores-comments:
+    # if a line starts with '#', return 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "# abcd")
+    # . . push args
+    68/push  "# abcd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-ignores-comments"/imm32
+    68/push  0/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-ignores-labels:
+    # if the first word ends with ':', return 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab: # cd")
+    # . . push args
+    68/push  "ab: # cd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-ignores-labels"/imm32
+    68/push  0/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-ignores-segment-headers:
+    # if the first word is '==', return 0
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "== ab cd")
+    # . . push args
+    68/push  "== ab cd"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 0, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-ignores-segment-headers"/imm32
+    68/push  0/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-counts-words-by-default:
+    # without metadata, count words
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab cd ef")
+    # . . push args
+    68/push  "ab cd ef"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 3, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-counts-words-by-default"/imm32
+    68/push  3/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-ignores-trailing-comment:
+    # trailing comments appropriately ignored
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab cd # ef")
+    # . . push args
+    68/push  "ab cd # ef"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 2, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-ignores-trailing-comment"/imm32
+    68/push  2/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+test-num-bytes-handles-imm32:
+    # if a word has the /imm32 metadata, count it as 4 bytes
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # setup
+    # . clear-stream(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . clear-stream(_test-output-stream)
+    # . . push args
+    68/push  _test-output-stream/imm32
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # initialize input
+    # . write(_test-input-stream, "ab cd/imm32 ef")
+    # . . push args
+    68/push  "ab cd/imm32 ef"/imm32
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # eax = num-bytes(_test-input-stream)
+    # . . push args
+    68/push  _test-input-stream/imm32
+    # . . call
+    e8/call  num-bytes/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # check-ints-equal(eax, 6, msg)
+    # . . push args
+    68/push  "F - test-num-bytes-handles-imm32"/imm32
+    68/push  6/imm32/true
+    50/push-eax
+    # . . call
+    e8/call  check-ints-equal/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+== data
+
+# This block of bytes gets copied to the start of the output ELF file, with
+# some fields (the ones with labels capitalized) filled in.
+# http://www.sco.com/developers/gabi/latest/ch4.eheader.html
+Elf_header:
+  # - size
+  0x34/imm32
+  # - data
+$e_ident:
+  7f 45/E 4c/L 46/F
+  01/32-bit  01/little-endian  01/file-version  00/no-os-extensions
+  00 00 00 00 00 00 00 00  # 8 bytes of padding
+$e_type:
+  02 00
+$e_machine:
+  03 00
+$e_version:
+  1/imm32
+$Elf_e_entry:
+  0x09000000/imm32  # approximate default; must be updated
+$e_phoff:
+  0x34/imm32  # offset for the 'program header table' containing segment headers
+$e_shoff:
+  0/imm32  # no sections
+$e_flags:
+  0/imm32  # unused
+$e_ehsize:
+  0x34 00
+$e_phentsize:
+  0x20 00
+$Elf_e_phnum:
+  00 00  # number of segments; must be updated
+$e_shentsize:
+  00 00  # no sections
+$e_shnum:
+  00 00
+$e_shstrndx:
+  00 00
+
+# This block of bytes gets copied after the Elf_header once for each segment.
+# Some fields need filling in each time.
+# https://docs.oracle.com/cd/E19683-01/816-1386/chapter6-83432/index.html
+Elf_program_header_entry:
+  # - size
+  0x20/imm32
+  # - data
+$p_type:
+  1/imm32/PT_LOAD
+$Elf_p_offset:
+  0/imm32  # byte offset in the file at which a segment begins; must be updated
+$Elf_p_vaddr:
+  0/imm32  # starting address to store the segment at before running the program
+$Elf_p_paddr:
+  0/imm32  # should have same value as $Elf_p_vaddr
+$Elf_p_filesz:
+  0/imm32
+$Elf_p_memsz:
+  0/imm32  # should have same value as $Elf_p_filesz
+$Elf_p_flags:
+  6/imm32/rw-  # read/write/execute permissions for the segment; must be updated for the code segment
+$p_align:
+  # we hold this constant; changing it will require adjusting the way we
+  # compute the starting address for each segment
+  0x1000/imm32
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/test_apps b/linux/test_apps
new file mode 100755
index 00000000..e72975d4
--- /dev/null
+++ b/linux/test_apps
@@ -0,0 +1,424 @@
+#!/bin/sh
+# Build and test all included SubX programs on Linux:
+#   translate them into ELF binaries
+#   if possible, compare the generated binaries with what's already in git
+#   run/test the ELF binaries in emulated mode
+#   run/test the ELF binaries in native mode
+#
+# Example usage:
+#   test_apps
+#   test_apps record  # don't compare with what's in git
+
+set -e
+cd `dirname $0`
+
+echo "== translating using the bootstrap C++ translator"
+
+# example programs
+
+echo ex1
+bootstrap/bootstrap translate 000init.subx ex1.subx  -o ex1
+{
+  bootstrap/bootstrap run ex1  ||  ret=$?
+  test $ret -eq 42  # life, the universe and everything
+}
+{
+  chmod +x ex1
+  ./ex1  ||  ret=$?
+  test $ret -eq 42  # life, the universe and everything
+}
+
+echo ex2
+bootstrap/bootstrap translate 000init.subx ex2.subx  -o ex2
+{
+  bootstrap/bootstrap run ex2  ||  ret=$?
+  test $ret -eq 7  # 3 + 4
+}
+{
+  chmod +x ex2
+  ./ex2  ||  ret=$?
+  test $ret -eq 7  # 3 + 4
+}
+
+echo ex3
+bootstrap/bootstrap translate 000init.subx ex3.subx  -o ex3
+{
+  bootstrap/bootstrap run ex3  ||  ret=$?
+  test $ret -eq 55  # 1 + 2 + ... + 10
+}
+{
+  chmod +x ex3
+  ./ex3  ||  ret=$?
+  test $ret -eq 55  # 1 + 2 + ... + 10
+}
+
+echo ex4
+bootstrap/bootstrap translate 000init.subx ex4.subx  -o ex4
+{
+  echo a | bootstrap/bootstrap run ex4 >ex4.out  ||  true
+  test `cat ex4.out` = 'a'
+}
+{
+  chmod +x ex4
+  echo a | ./ex4 >ex4.out  ||  true
+  test `cat ex4.out` = 'a'
+}
+
+echo ex5
+bootstrap/bootstrap translate 000init.subx ex5.subx  -o ex5
+{
+  echo a | bootstrap/bootstrap run ex5 >ex5.out  ||  true
+  test `cat ex5.out` = 'a'
+}
+{
+  chmod +x ex5
+  echo a | ./ex5 >ex5.out  ||  true
+  test `cat ex5.out` = 'a'
+}
+
+echo ex6
+bootstrap/bootstrap translate 000init.subx ex6.subx  -o ex6
+{
+  bootstrap/bootstrap run ex6 >ex6.out  ||  true
+  test "`cat ex6.out`" = 'Hello, world!'
+}
+{
+  chmod +x ex6
+  ./ex6 >ex6.out  ||  true
+  test "`cat ex6.out`" = 'Hello, world!'
+}
+
+echo ex7
+bootstrap/bootstrap translate 000init.subx ex7.subx  -o ex7
+{
+  bootstrap/bootstrap run ex7  ||  ret=$?
+  test $ret -eq 97  # 'a'
+}
+{
+  chmod +x ex7
+  ./ex7  ||  ret=$?
+  test $ret -eq 97  # 'a'
+}
+
+echo ex8
+bootstrap/bootstrap translate 000init.subx ex8.subx  -o ex8
+{
+  bootstrap/bootstrap run ex8 abcd  ||  ret=$?
+  test $ret -eq 4  # length('abcd')
+}
+{
+  chmod +x ex8
+  ./ex8 abcd  ||  ret=$?
+  test $ret -eq 4  # length('abcd')
+}
+
+echo ex9
+bootstrap/bootstrap translate 000init.subx ex9.subx  -o ex9
+{
+  bootstrap/bootstrap run ex9 z x  ||  ret=$?
+  test $ret -eq 2  # 'z' - 'x'
+}
+{
+  chmod +x ex9
+  ./ex9 z x  ||  ret=$?
+  test $ret -eq 2  # 'z' - 'x'
+}
+
+echo ex10
+bootstrap/bootstrap translate 000init.subx ex10.subx  -o ex10
+{
+  bootstrap/bootstrap run ex10 abc abc  ||  ret=$?
+  test $ret -eq 1  # equal
+  bootstrap/bootstrap run ex10 abc abcd  # 0; not equal
+}
+{
+  chmod +x ex10
+  ./ex10 abc abc  ||  ret=$?
+  test $ret -eq 1  # equal
+  ./ex10 abc abcd  # 0; not equal
+}
+
+echo ex11
+bootstrap/bootstrap translate 000init.subx ex11.subx  -o ex11
+{
+  bootstrap/bootstrap run ex11
+  echo
+}
+{
+  chmod +x ex11
+  ./ex11
+  echo
+}
+
+echo ex12
+bootstrap/bootstrap translate 000init.subx ex12.subx  -o ex12
+bootstrap/bootstrap run ex12  # final byte of mmap'd address is well-nigh guaranteed to be 0
+chmod +x ex12
+./ex12
+
+echo ex13
+bootstrap/bootstrap translate 000init.subx ex13.subx  -o ex13
+{
+  bootstrap/bootstrap run ex13  ||  ret=$?
+  test $ret -eq 1  # 3 == 3
+}
+{
+  chmod +x ex13
+  ./ex13  ||  ret=$?
+  test $ret -eq 1  # 3 == 3
+}
+
+# Larger apps that use the standard library.
+
+echo factorial
+bootstrap/bootstrap translate [01]*.subx factorial.subx  -o factorial
+{
+  bootstrap/bootstrap run factorial  ||  ret=$?
+  test $ret -eq 120  # factorial(5)
+  bootstrap/bootstrap run factorial test
+  echo
+}
+{
+  chmod +x factorial
+  ./factorial  ||  ret=$?
+  test $ret -eq 120  # factorial(5)
+  ./factorial test
+  echo
+}
+
+echo crenshaw2-1
+bootstrap/bootstrap translate [01]*.subx crenshaw2-1.subx  -o crenshaw2-1
+{
+  bootstrap/bootstrap run crenshaw2-1 test
+  echo
+}
+{
+  chmod +x crenshaw2-1
+  ./crenshaw2-1 test
+  echo
+}
+
+echo crenshaw2-1b
+bootstrap/bootstrap translate [01]*.subx crenshaw2-1b.subx  -o crenshaw2-1b
+{
+  bootstrap/bootstrap run crenshaw2-1b test
+  echo
+}
+{
+  chmod +x crenshaw2-1b
+  ./crenshaw2-1b test
+  echo
+}
+
+echo random
+bootstrap/bootstrap translate [01]*.subx random.subx  -o random
+# don't run
+
+# Phases of the self-hosted SubX translator.
+
+for phase in hex survey_elf pack assort dquotes tests
+do
+  echo $phase
+  bootstrap/bootstrap translate [01]*.subx subx-params.subx $phase.subx -o $phase
+  test "$1" = 'record'  ||  git diff --exit-code $phase
+  {
+    bootstrap/bootstrap run $phase test
+    echo
+  }
+  {
+    chmod +x $phase
+    ./$phase test
+    echo
+  }
+done
+
+# One phase variant for translating SubX to baremetal. (Other phases are reused.)
+
+for phase in survey_baremetal
+do
+  echo $phase
+  bootstrap/bootstrap translate [01]*.subx subx-params.subx $phase.subx -o $phase
+  test "$1" = 'record'  ||  git diff --exit-code $phase
+  {
+    bootstrap/bootstrap run $phase test
+    echo
+  }
+  {
+    chmod +x $phase
+    ./$phase test
+    echo
+  }
+done
+
+# Higher-level syntax.
+
+# Certain phases of translation run native beyond this point. We're starting
+# to go beyond functionality of the C++ bootstrap_bin.
+
+echo sigils
+bootstrap/bootstrap translate [012]*.subx subx-params.subx sigils.subx  -o sigils
+test "$1" = 'record'  ||  git diff --exit-code sigils
+{
+  bootstrap/bootstrap run sigils test
+  echo
+}
+{
+  chmod +x sigils
+  ./sigils test
+  echo
+}
+
+echo calls
+cat [012]*.subx subx-params.subx calls.subx  |  sigils  > a.sigils
+bootstrap/bootstrap translate a.sigils -o calls
+test "$1" = 'record'  ||  git diff --exit-code calls
+{
+  bootstrap/bootstrap run calls test
+  echo
+}
+{
+  chmod +x calls
+  ./calls test
+  echo
+}
+
+echo braces
+cat [012]*.subx subx-params.subx braces.subx  |  calls  |  sigils  > a.sigils
+bootstrap/bootstrap translate a.sigils -o braces
+test "$1" = 'record'  ||  git diff --exit-code braces
+{
+  bootstrap/bootstrap run braces test
+  echo
+}
+{
+  chmod +x braces
+  ./braces test
+  echo
+}
+
+echo mu
+cat [0-2]*.subx mu.subx  |  braces  |  calls  |  sigils  > a.sigils
+bootstrap/bootstrap translate a.sigils -o mu
+test "$1" = 'record'  ||  git diff --exit-code mu
+{
+  bootstrap/bootstrap run mu test
+  echo
+}
+{
+  chmod +x mu
+  ./mu test
+  echo
+}
+
+echo "== translating using the self-hosted translator"
+
+# example programs
+
+for n in `seq 1 12`
+do
+  echo ex$n
+  ./translate_subx 000init.subx ex$n.subx
+  diff ex$n a.elf
+done
+
+# Larger apps that use the standard library.
+
+for app in factorial crenshaw2-1 crenshaw2-1b
+do
+  echo $app
+  ./translate_subx [01]*.subx $app.subx
+  diff $app a.elf
+done
+
+# Phases of the self-hosted SubX translator.
+
+for app in hex survey_elf pack assort dquotes tests
+do
+  echo $app
+  ./translate_subx [01]*.subx subx-params.subx $app.subx
+  diff $app a.elf
+done
+
+# One phase variant for translating SubX to baremetal. (Other phases are reused.)
+
+for app in survey_baremetal
+do
+  echo $app
+  ./translate_subx [01]*.subx subx-params.subx $app.subx
+  diff $app a.elf
+done
+
+for app in sigils calls braces
+do
+  echo $app
+  ./translate_subx [012]*.subx subx-params.subx $app.subx
+  diff $app a.elf
+done
+
+# Mu translator
+echo mu
+./translate_subx [0-2]*.subx mu.subx
+diff mu a.elf
+
+# Mu programs
+
+echo ex1.mu
+./translate ex1.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 42  # life, the universe and everything
+}
+{
+  ./a.elf  ||  ret=$?
+  test $ret -eq 42  # life, the universe and everything
+}
+
+echo ex2.mu
+./translate ex2.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 7
+}
+{
+  ./a.elf  ||  ret=$?
+  test $ret -eq 7
+}
+
+echo ex3.mu
+./translate ex3.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 55
+}
+{
+  ./a.elf  ||  ret=$?
+  test $ret -eq 55
+}
+
+echo ex3.2.mu
+./translate ex3.2.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 55
+}
+{
+  ./a.elf  ||  ret=$?
+  test $ret -eq 55
+}
+
+echo factorial.mu
+./translate factorial.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 120
+  bootstrap/bootstrap run a.elf test
+  echo
+}
+{
+  ./a.elf  ||  ret=$?
+  test $ret -eq 120
+  ./a.elf test
+  echo
+}
+
+exit 0
diff --git a/linux/test_apps_emulated b/linux/test_apps_emulated
new file mode 100755
index 00000000..9a488c2f
--- /dev/null
+++ b/linux/test_apps_emulated
@@ -0,0 +1,295 @@
+#!/bin/sh
+# Build and test all included SubX programs on non-Linux platforms:
+#   translate them into ELF binaries
+#   if possible, compare the generated binaries with what's already in git
+#   run/test the ELF binaries in emulated mode
+#
+# Example usage:
+#   test_apps_emulated
+#   test_apps_emulated record  # don't compare with what's in git
+#
+# This script is slow. 20+ times slower than running natively on Linux.
+
+set -e
+cd `dirname $0`
+
+echo "== translating using the bootstrap C++ translator"
+
+# example programs
+
+echo ex1
+bootstrap/bootstrap translate 000init.subx ex1.subx  -o ex1
+{
+  bootstrap/bootstrap run ex1  ||  ret=$?
+  test $ret -eq 42  # life, the universe and everything
+}
+
+echo ex2
+bootstrap/bootstrap translate 000init.subx ex2.subx  -o ex2
+{
+  bootstrap/bootstrap run ex2  ||  ret=$?
+  test $ret -eq 7  # 3 + 4
+}
+
+echo ex3
+bootstrap/bootstrap translate 000init.subx ex3.subx  -o ex3
+{
+  bootstrap/bootstrap run ex3  ||  ret=$?
+  test $ret -eq 55  # 1 + 2 + ... + 10
+}
+
+echo ex4
+bootstrap/bootstrap translate 000init.subx ex4.subx  -o ex4
+{
+  echo a | bootstrap/bootstrap run ex4 >ex4.out  ||  true
+  test `cat ex4.out` = 'a'
+}
+
+echo ex5
+bootstrap/bootstrap translate 000init.subx ex5.subx  -o ex5
+{
+  echo a | bootstrap/bootstrap run ex5 >ex5.out  ||  true
+  test `cat ex5.out` = 'a'
+}
+
+echo ex6
+bootstrap/bootstrap translate 000init.subx ex6.subx  -o ex6
+{
+  bootstrap/bootstrap run ex6 >ex6.out  ||  true
+  test "`cat ex6.out`" = 'Hello, world!'
+}
+
+echo ex7
+bootstrap/bootstrap translate 000init.subx ex7.subx  -o ex7
+{
+  bootstrap/bootstrap run ex7  ||  ret=$?
+  test $ret -eq 97  # 'a'
+}
+
+echo ex8
+bootstrap/bootstrap translate 000init.subx ex8.subx  -o ex8
+{
+  bootstrap/bootstrap run ex8 abcd  ||  ret=$?
+  test $ret -eq 4  # length('abcd')
+}
+
+echo ex9
+bootstrap/bootstrap translate 000init.subx ex9.subx  -o ex9
+{
+  bootstrap/bootstrap run ex9 z x  ||  ret=$?
+  test $ret -eq 2  # 'z' - 'x'
+}
+
+echo ex10
+bootstrap/bootstrap translate 000init.subx ex10.subx  -o ex10
+{
+  bootstrap/bootstrap run ex10 abc abc  ||  ret=$?
+  test $ret -eq 1  # equal
+  bootstrap/bootstrap run ex10 abc abcd  # 0; not equal
+}
+
+echo ex11
+bootstrap/bootstrap translate 000init.subx ex11.subx  -o ex11
+{
+  bootstrap/bootstrap run ex11
+  echo
+}
+
+echo ex12
+bootstrap/bootstrap translate 000init.subx ex12.subx  -o ex12
+test $EMULATED  &&  bootstrap/bootstrap run ex12  # final byte of mmap'd address is well-nigh guaranteed to be 0
+test $NATIVE  &&  ex12
+
+echo ex13
+bootstrap/bootstrap translate 000init.subx ex13.subx  -o ex13
+{
+  bootstrap/bootstrap run ex13  ||  ret=$?
+  test $ret -eq 1  # 3 == 3
+}
+
+# Larger apps that use the standard library.
+
+echo factorial
+bootstrap/bootstrap translate [01]*.subx factorial.subx  -o factorial
+{
+  bootstrap/bootstrap run factorial  ||  ret=$?
+  test $ret -eq 120  # factorial(5)
+  bootstrap/bootstrap run factorial test
+  echo
+}
+
+echo crenshaw2-1
+bootstrap/bootstrap translate [01]*.subx crenshaw2-1.subx  -o crenshaw2-1
+{
+  bootstrap/bootstrap run crenshaw2-1 test
+  echo
+}
+
+echo crenshaw2-1b
+bootstrap/bootstrap translate [01]*.subx crenshaw2-1b.subx  -o crenshaw2-1b
+{
+  bootstrap/bootstrap run crenshaw2-1b test
+  echo
+}
+
+echo random
+bootstrap/bootstrap translate [01]*.subx random.subx  -o random
+# don't run
+
+# Phases of the self-hosted SubX translator.
+
+for phase in hex survey_elf pack assort dquotes tests
+do
+  echo $phase
+  bootstrap/bootstrap translate [01]*.subx subx-params.subx $phase.subx -o $phase
+  test "$1" = 'record'  ||  git diff --exit-code $phase
+  {
+    bootstrap/bootstrap run $phase test
+    echo
+  }
+done
+
+# One phase variant for translating SubX to baremetal. (Other phases are reused.)
+
+for phase in survey_baremetal
+do
+  echo $phase
+  bootstrap/bootstrap translate [01]*.subx subx-params.subx $phase.subx -o $phase
+  test "$1" = 'record'  ||  git diff --exit-code $phase
+  {
+    bootstrap/bootstrap run $phase test
+    echo
+  }
+done
+
+# Higher-level syntax.
+
+# Certain phases of translation run native beyond this point. We're starting
+# to go beyond functionality of the C++ bootstrap_bin.
+
+echo sigils
+bootstrap/bootstrap translate [012]*.subx subx-params.subx sigils.subx  -o sigils
+test "$1" = 'record'  ||  git diff --exit-code sigils
+{
+  bootstrap/bootstrap run sigils test
+  echo
+}
+
+echo calls
+cat [012]*.subx subx-params.subx calls.subx  |  bootstrap/bootstrap run sigils  > a.sigils
+bootstrap/bootstrap translate a.sigils -o calls
+test "$1" = 'record'  ||  git diff --exit-code calls
+{
+  bootstrap/bootstrap run calls test
+  echo
+}
+
+echo braces
+                                                 # bootstrap/bootstrap wrapper script can't have multiple copies running concurrently
+cat [012]*.subx subx-params.subx braces.subx  |  bootstrap/bootstrap_bin run calls  |  bootstrap/bootstrap_bin run sigils  > a.sigils
+bootstrap/bootstrap translate a.sigils -o braces
+test "$1" = 'record'  ||  git diff --exit-code braces
+{
+  bootstrap/bootstrap run braces test
+  echo
+}
+
+echo mu
+cat [0-2]*.subx mu.subx  |  bootstrap/bootstrap_bin run braces  |  bootstrap/bootstrap_bin run calls  |  bootstrap/bootstrap_bin run sigils  > a.sigils
+bootstrap/bootstrap translate a.sigils -o mu
+test "$1" = 'record'  ||  git diff --exit-code mu
+{
+  bootstrap/bootstrap run mu test
+  echo
+}
+
+echo "== translating using the self-hosted translator"
+
+# example programs
+
+for n in `seq 1 12`
+do
+  echo ex$n
+  ./translate_subx_emulated 000init.subx ex$n.subx
+  diff ex$n a.elf
+done
+
+# Larger apps that use the standard library.
+
+for app in factorial crenshaw2-1 crenshaw2-1b
+do
+  echo $app
+  ./translate_subx_emulated [01]*.subx $app.subx
+  diff $app a.elf
+done
+
+# Phases of the self-hosted SubX translator.
+
+for app in hex survey_elf pack assort dquotes tests
+do
+  echo $app
+  ./translate_subx_emulated [01]*.subx subx-params.subx $app.subx
+  diff $app a.elf
+done
+
+# One phase variant for translating SubX to baremetal. (Other phases are reused.)
+
+for app in survey_baremetal
+do
+  echo $app
+  ./translate_subx_emulated [01]*.subx subx-params.subx $app.subx
+  diff $app a.elf
+done
+
+for app in sigils calls braces
+do
+  echo $app
+  ./translate_subx_emulated [012]*.subx subx-params.subx $app.subx
+  diff $app a.elf
+done
+
+# Mu translator
+echo mu
+./translate_subx_emulated [0-2]*.subx mu.subx
+diff mu a.elf
+
+# Mu programs
+
+echo ex1.mu
+./translate_emulated ex1.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 42  # life, the universe and everything
+}
+
+echo ex2.mu
+./translate_emulated ex2.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 7
+}
+
+echo ex3.mu
+./translate_emulated ex3.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 55
+}
+
+echo ex3.2.mu
+./translate_emulated ex3.2.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 55
+}
+
+echo factorial.mu
+./translate_emulated factorial.mu
+{
+  bootstrap/bootstrap run a.elf  ||  ret=$?
+  test $ret -eq 120
+  bootstrap/bootstrap run a.elf test
+  echo
+}
+
+exit 0
diff --git a/linux/tests b/linux/tests
new file mode 100755
index 00000000..48f4e973
--- /dev/null
+++ b/linux/tests
Binary files differdiff --git a/linux/tests.subx b/linux/tests.subx
new file mode 100644
index 00000000..eb8eb937
--- /dev/null
+++ b/linux/tests.subx
@@ -0,0 +1,312 @@
+# Generate code for a new function called 'run-tests' which calls in sequence
+# all functions starting with 'test-'.
+#
+# To build:
+#   $ ./bootstrap translate init.linux [01]*.subx apps/subx-params.subx apps/tests.subx  -o apps/tests
+
+== code
+#   instruction                     effective address                                                   register    displacement    immediate
+# . op          subop               mod             rm32          base        index         scale       r32
+# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
+
+Entry:  # run tests if necessary, convert stdin if not
+    # . prologue
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+
+    # initialize heap
+    # . Heap = new-segment(Heap-size)
+    # . . push args
+    68/push  Heap/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Heap-size/disp32                  # push *Heap-size
+    # . . call
+    e8/call  new-segment/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # initialize-trace-stream(256KB)
+    # . . push args
+    68/push  0x40000/imm32/256KB
+    # . . call
+    e8/call  initialize-trace-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+
+    # - if argc > 1 and argv[1] == "test", then return run_tests()
+    # if (argc <= 1) goto run-main
+    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0/disp8         1/imm32           # compare *ebp
+    7e/jump-if-<=  $subx-tests-main:interactive/disp8
+    # if (!kernel-string-equal?(argv[1], "test")) goto run-main
+    # . eax = kernel-string-equal?(argv[1], "test")
+    # . . push args
+    68/push  "test"/imm32
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  kernel-string-equal?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) goto run-main
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-tests-main:interactive/disp8
+    # run-tests()
+    e8/call  run-tests/disp32
+    # syscall(exit, *Num-test-failures)
+    8b/copy                         0/mod/indirect  5/rm32/.disp32            .             .           3/r32/ebx   Num-test-failures/disp32          # copy *Num-test-failures to ebx
+    eb/jump  $subx-tests-main:end/disp8
+$subx-tests-main:interactive:
+    # - otherwise convert stdin
+    # subx-gen-run-tests(Stdin, Stdout)
+    # . . push args
+    68/push  Stdout/imm32
+    68/push  Stdin/imm32
+    # . . call
+    e8/call  subx-gen-run-tests/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # syscall(exit, 0)
+    bb/copy-to-ebx  0/imm32
+$subx-tests-main:end:
+    e8/call  syscall_exit/disp32
+
+subx-gen-run-tests:  # in: (addr buffered-file), out: (addr buffered-file)
+    # pseudocode
+    #   boolean tests-found = false
+    #   var line: (stream byte 512)
+    #   var new-code-segment-handle: (handle stream byte)
+    #   new-stream(Segment-size, 1, new-code-stream-handle)
+    #   var new-code-segment: (addr stream byte) = lookup(new-code-stream-handle)
+    #   write(new-code-segment, "\n== code\n")
+    #   write(new-code-segment, "run-tests:\n")
+    #   while true
+    #     clear-stream(line)
+    #     read-line-buffered(in, line)
+    #     if (line->write == 0) break               # end of file
+    #     var word-slice = next-word(line)
+    #     if slice-empty?(word-slice)               # empty line
+    #       continue
+    #     if is-label?(word-slice)
+    #       if slice-starts-with?(word-slice, "test-")
+    #         tests-found = true
+    #         write(new-code-segment, "  e8/call  ")
+    #         write-slice(new-code-segment, word-slice)
+    #         write(new-code-segment, "/disp32\n")
+    #     rewind-stream(line)
+    #     write-stream-data(out, line)
+    #   if tests-found
+    #     write(new-code-segment, "  c3/return\n")
+    #     write-stream-data(out, new-code-segment)
+    #   flush(out)
+    #
+    # . prologue
+    55/push-ebp
+    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
+    # . save registers
+    50/push-eax
+    51/push-ecx
+    52/push-edx
+    53/push-ebx
+    56/push-esi
+    57/push-edi
+    # var line/ecx: (stream byte 512)
+    81          5/subop/subtract    3/mod/direct    4/rm32/esp    .           .             .           .           .               0x200/imm32       # subtract from esp
+    68/push  0x200/imm32/length
+    68/push  0/imm32/read
+    68/push  0/imm32/write
+    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
+    # var word-slice/edx: slice
+    68/push  0/imm32/end
+    68/push  0/imm32/start
+    89/copy                         3/mod/direct    2/rm32/edx    .           .             .           4/r32/esp   .               .                 # copy esp to edx
+    # tests-found?/ebx = false
+    31/xor                          3/mod/direct    3/rm32/ebx    .           .             .           3/r32/ebx   .               .                 # clear ebx
+    # var new-code-stream-handle/esi: (handle stream byte)
+    68/push  0/imm32
+    68/push  0/imm32
+    89/copy                         3/mod/direct    6/rm32/esi    .           .             .           4/r32/esp   .               .                 # copy esp to esi
+    # new-stream(Heap, Segment-size, 1, new-code-stream-handle)
+    # . . push args
+    56/push-esi
+    68/push  1/imm32
+    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32            .             .           .           Segment-size/disp32               # push *Segment-size
+    68/push  Heap/imm32
+    # . . call
+    e8/call  new-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x10/imm32        # add to esp
+    # var new-code-stream/edi: (addr stream byte) = lookup(*new-code-stream-handle)
+    # . eax = lookup(*new-code-stream-handle)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi    .           .             .           .           4/disp8         .                 # push *(esi+4)
+    ff          6/subop/push        0/mod/indirect  6/rm32/esi    .           .             .           .           .               .                 # push *esi
+    # . . call
+    e8/call  lookup/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . new-code-stream = eax
+    89/copy                         3/mod/direct    7/rm32/edi    .           .             .           0/r32/eax   .               .                 # copy eax to edi
+    # write(new-code-segment, "\n== code\n")
+    # . . push args
+    68/push  "\n== code\n"/imm32
+    57/push-edi
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(new-code-segment, "run-tests:\n")
+    # . . push args
+    68/push  "run-tests:\n"/imm32
+    57/push-edi
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-gen-run-tests:loop:
+    # clear-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  clear-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # read-line-buffered(in, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           8/disp8         .                 # push *(ebp+8)
+    # . . call
+    e8/call  read-line-buffered/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-gen-run-tests:check0:
+    # if (line->write == 0) break
+    81          7/subop/compare     0/mod/indirect  1/rm32/ecx    .           .             .           .           .               0/imm32           # compare *ecx
+    0f 84/jump-if-=  $subx-gen-run-tests:break/disp32
+    # next-word(line, word-slice)
+    # . . push args
+    52/push-edx
+    51/push-ecx
+    # . . call
+    e8/call  next-word/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-gen-run-tests:check-empty:
+    # if slice-empty?(word-slice) break
+    # . eax = slice-empty?(word-slice)
+    52/push-edx
+    e8/call  slice-empty?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax != false) break
+    3d/compare-eax-and  0/imm32/false
+    75/jump-if-!=  $subx-gen-run-tests:loop/disp8
+$subx-gen-run-tests:check-for-label:
+    # if (!is-label?(word-slice)) continue
+    # . eax = is-label?(word-slice)
+    # . . push args
+    52/push-edx
+    # . . call
+    e8/call  is-label?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . if (eax == false) continue
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-gen-run-tests:continue/disp8
+$subx-gen-run-tests:check-label-prefix:
+    # strip trailing ':' from word-slice
+    ff          1/subop/decrement   1/mod/*+disp8   2/rm32/edx    .           .             .           .           4/disp8         .                 # decrement *(edx+4)
+    # if !slice-starts-with?(word-slice, "test-") continue
+    # . . push args
+    68/push  "test-"/imm32
+    52/push-edx
+    # . . call
+    e8/call  slice-starts-with?/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # . if (eax == false) break
+    3d/compare-eax-and  0/imm32/false
+    74/jump-if-=  $subx-gen-run-tests:continue/disp8
+$subx-gen-run-tests:call-test-function:
+    # tests-found? = true
+    bb/copy-to-ebx  1/imm32/true
+    # write(new-code-segment, "  e8/call  ")
+    # . . push args
+    68/push  "  e8/call  "/imm32
+    57/push-edi
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-slice(new-code-segment, word-slice)
+    # . . push args
+    52/push-edx
+    57/push-edi
+    # . . call
+    e8/call  write-slice/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write(new-code-segment, "/disp32\n")
+    # . . push args
+    68/push  "/disp32\n"/imm32
+    57/push-edi
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-gen-run-tests:continue:
+    # rewind-stream(line)
+    # . . push args
+    51/push-ecx
+    # . . call
+    e8/call  rewind-stream/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # write-stream-data(out, line)
+    # . . push args
+    51/push-ecx
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # loop
+    e9/jump  $subx-gen-run-tests:loop/disp32
+$subx-gen-run-tests:break:
+    # if (!tests-found?) goto end
+    81          7/subop/compare     3/mod/direct    3/rm32/ebx    .           .             .           .           .               0/imm32/false     # compare ebx
+    74/jump-if-=  $subx-gen-run-tests:end/disp8
+    # write(new-code-segment, "  c3/return\n")
+    # . . push args
+    68/push  "  c3/return\n"/imm32
+    57/push-edi
+    # . . call
+    e8/call  write/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+    # write-stream-data(out, new-code-segment)
+    # . . push args
+    57/push-edi
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  write-stream-data/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
+$subx-gen-run-tests:end:
+    # flush(out)
+    # . . push args
+    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp    .           .             .           .           0xc/disp8       .                 # push *(ebp+12)
+    # . . call
+    e8/call  flush/disp32
+    # . . discard args
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
+    # . reclaim locals
+    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0x21c/imm32       # add to esp
+    # . restore registers
+    5f/pop-to-edi
+    5e/pop-to-esi
+    5b/pop-to-ebx
+    5a/pop-to-edx
+    59/pop-to-ecx
+    58/pop-to-eax
+    # . epilogue
+    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
+    5d/pop-to-ebp
+    c3/return
+
+# . . vim:nowrap:textwidth=0
diff --git a/linux/texture.mu b/linux/texture.mu
new file mode 100644
index 00000000..4cfd3bbe
--- /dev/null
+++ b/linux/texture.mu
@@ -0,0 +1,58 @@
+# Playing with emitting cool textures.
+#
+# To run (on Linux):
+#   $ git clone https://github.com/akkartik/mu
+#   $ cd mu
+#   $ ./translate_mu apps/texture.mu
+#   $ ./a.elf > a.ppm
+
+fn main -> _/ebx: int {
+#?   var width/esi: int <- copy 0x190  # 400
+#?   var height/edi: int <- copy 0xe1  # 225; aspect ratio 16:9
+  var width/esi: int <- copy 0xff
+  var height/edi: int <- copy 0xff
+  print-string 0/screen, "P3\n"
+  print-int32-decimal 0/screen, width
+  print-string 0/screen, " "
+  print-int32-decimal 0/screen, height
+  print-string 0/screen, "\n"
+  print-string 0/screen, "255\n"  # color depth
+  var row/ecx: int <- copy 0
+  {
+    compare row, height
+    break-if->=
+    var col/edx: int <- copy 0
+    {
+      compare col, width
+      break-if->=
+      # r
+      var tmp/eax: int <- copy col
+      tmp <- multiply row
+      tmp <- and 0x7f
+      tmp <- add 0x80
+      tmp <- copy 0xff
+      print-int32-decimal 0/screen, tmp
+      print-string 0/screen, " "
+      # g
+      tmp <- copy row
+      tmp <- multiply col
+      tmp <- and 0x7f
+      tmp <- add 0x80
+#?       tmp <- copy 0xcf
+      print-int32-decimal 0/screen, tmp
+      print-string 0/screen, " "
+      # b
+      tmp <- copy row
+      tmp <- multiply col
+      tmp <- and 0x7f
+      tmp <- add 0x80
+      print-int32-decimal 0/screen, tmp
+      print-string 0/screen, "\n"
+      col <- increment
+      loop
+    }
+    row <- increment
+    loop
+  }
+  return 0
+}
diff --git a/linux/tile/README.md b/linux/tile/README.md
new file mode 100644
index 00000000..a13f7662
--- /dev/null
+++ b/linux/tile/README.md
@@ -0,0 +1,33 @@
+A programming environment that tries to [&ldquo;stop drawing dead fish&rdquo;](http://worrydream.com/#!/StopDrawingDeadFish).
+
+<img alt='screenshot' src='../../html/rpn5.png' width='500px'>
+
+To run:
+
+```
+./translate_mu apps/tile/*.mu
+./a.elf screen
+```
+
+To run tests:
+
+```
+./a.elf test
+```
+
+To run a conventional REPL (for debugging):
+
+```
+./a.elf type
+```
+
+## hacking
+
+Unlike the top-level directory, this is just a prototype so far. There are no
+tests.
+
+To add a new primitive you'll need to hard-code it into the `evaluate`
+function (apps/tile/rpn.mu).
+
+There's also a second place you'll want to teach about predefined primitives:
+`bound-function?` (apps/tile/environment.mu)
diff --git a/linux/tile/box.mu b/linux/tile/box.mu
new file mode 100644
index 00000000..859d0b8e
--- /dev/null
+++ b/linux/tile/box.mu
@@ -0,0 +1,109 @@
+fn draw-box screen: (addr screen), row1: int, col1: int, row2: int, col2: int {
+  draw-horizontal-line screen, row1, col1, col2
+  draw-vertical-line screen, row1, row2, col1
+  draw-horizontal-line screen, row2, col1, col2
+  draw-vertical-line screen, row1, row2, col2
+  draw-top-left-corner screen, row1, col1
+  draw-top-right-corner screen, row1, col2
+  draw-bottom-left-corner screen, row2, col1
+  draw-bottom-right-corner screen, row2, col2
+}
+
+fn draw-hatching screen: (addr screen), row1: int, col1: int, row2: int, col2: int {
+  var c/eax: int <- copy col1
+  var r1/ecx: int <- copy row1
+  r1 <- increment
+  c <- add 2
+  {
+    compare c, col2
+    break-if->=
+    draw-vertical-line screen, r1, row2, c
+    c <- add 2
+    loop
+  }
+}
+
+fn draw-horizontal-line screen: (addr screen), row: int, col1: int, col2: int {
+  var col/eax: int <- copy col1
+  move-cursor screen, row, col
+  {
+    compare col, col2
+    break-if->=
+    print-code-point screen, 0x2500
+    col <- increment
+    loop
+  }
+}
+
+fn draw-vertical-line screen: (addr screen), row1: int, row2: int, col: int {
+  var row/eax: int <- copy row1
+  {
+    compare row, row2
+    break-if->=
+    move-cursor screen, row, col
+    print-code-point screen, 0x2502
+    row <- increment
+    loop
+  }
+}
+
+fn draw-top-left-corner screen: (addr screen), row: int, col: int {
+  move-cursor screen, row, col
+  print-code-point screen, 0x250c
+}
+
+fn draw-top-right-corner screen: (addr screen), row: int, col: int {
+  move-cursor screen, row, col
+  print-code-point screen, 0x2510
+}
+
+fn draw-bottom-left-corner screen: (addr screen), row: int, col: int {
+  move-cursor screen, row, col
+  print-code-point screen, 0x2514
+}
+
+fn draw-bottom-right-corner screen: (addr screen), row: int, col: int {
+  move-cursor screen, row, col
+  print-code-point screen, 0x2518
+}
+
+# erase parts of screen the slow way
+fn clear-rect screen: (addr screen), row1: int, col1: int, row2: int, col2: int {
+  var i/eax: int <- copy row1
+  {
+    compare i, row2
+    break-if->
+    var j/ecx: int <- copy col1
+    move-cursor screen, i, j
+    {
+      compare j, col2
+      break-if->
+      print-grapheme screen 0x20/space
+      j <- increment
+      loop
+    }
+    i <- increment
+    loop
+  }
+}
+
+fn clear-rect2 screen: (addr screen), row1: int, col1: int, w: int, h: int {
+  var i/eax: int <- copy 0
+  var curr-row/esi: int <- copy row1
+  {
+    compare i, w
+    break-if->=
+    move-cursor screen, curr-row, col1
+    var j/ecx: int <- copy 0
+    {
+      compare j, h
+      break-if->=
+      print-grapheme screen 0x20/space
+      j <- increment
+      loop
+    }
+    i <- increment
+    curr-row <- increment
+    loop
+  }
+}
diff --git a/linux/tile/data.mu b/linux/tile/data.mu
new file mode 100644
index 00000000..d711e7d7
--- /dev/null
+++ b/linux/tile/data.mu
@@ -0,0 +1,641 @@
+# widgets in the environment share the following pattern of updates:
+#   process-* functions read keys and update which object the cursor is at
+#   render-* functions print to screen and update which row/col each object's cursor is at
+
+type sandbox {
+  setup: (handle line)
+  data: (handle line)
+  # bookkeeping for process-*
+  cursor-call-path: (handle call-path-element)
+  expanded-words: (handle call-path)
+  partial-name-for-cursor-word: (handle word)  # only when renaming word
+  partial-name-for-function: (handle word)  # only when defining function
+  # bookkeeping for render-*
+  cursor-row: int
+  cursor-col: int
+  #
+  next: (handle sandbox)
+  prev: (handle sandbox)
+}
+
+type function {
+  name: (handle array byte)
+  args: (handle word)  # in reverse order
+  body: (handle line)
+  # bookkeeping for process-*
+  cursor-word: (handle word)
+  # bookkeeping for render-*
+  cursor-row: int
+  cursor-col: int
+  # todo: some sort of indication of spatial location
+  next: (handle function)
+}
+
+type line {
+  name: (handle array byte)
+  data: (handle word)
+  result: (handle result)  # might be cached
+  next: (handle line)
+  prev: (handle line)
+}
+
+type word {
+  scalar-data: (handle gap-buffer)
+  next: (handle word)
+  prev: (handle word)
+}
+
+# todo: turn this into a sum type
+type value {
+  type: int
+  number-data: float  # if type = 0
+  text-data: (handle array byte)  # if type = 1
+  array-data: (handle array value)  # if type = 2
+  file-data: (handle buffered-file)  # if type = 3
+  filename: (handle array byte)  # if type = 3
+  screen-data: (handle screen)  # if type = 4
+}
+
+type table {
+  data: (handle array bind)
+  next: (handle table)
+}
+
+type bind {
+  key: (handle array byte)
+  value: (handle value)  # I'd inline this but we sometimes want to return a specific value from a table
+}
+
+# A call-path is a data structure that can unambiguously refer to any specific
+# call arbitrarily deep inside the call hierarchy of a program.
+type call-path {
+  data: (handle call-path-element)
+  next: (handle call-path)
+}
+
+# A call-path element is a list of elements, each of which corresponds to some call.
+type call-path-element {
+  word: (handle word)
+  next: (handle call-path-element)
+}
+
+type result {
+  data: value-stack
+  error: (handle array byte)  # single error message for now
+}
+
+fn initialize-sandbox _sandbox: (addr sandbox) {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  var line-ah/eax: (addr handle line) <- get sandbox, data
+  allocate line-ah
+  var line/eax: (addr line) <- lookup *line-ah
+  initialize-line line
+  var word-ah/ecx: (addr handle word) <- get line, data
+  var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+  allocate cursor-call-path-ah
+  var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+  var dest/eax: (addr handle word) <- get cursor-call-path, word
+  copy-object word-ah, dest
+}
+
+# initialize line with a single empty word
+fn initialize-line _line: (addr line) {
+  var line/esi: (addr line) <- copy _line
+  var word-ah/eax: (addr handle word) <- get line, data
+  allocate word-ah
+  var word/eax: (addr word) <- lookup *word-ah
+  initialize-word word
+}
+
+fn create-primitive-functions _self: (addr handle function) {
+  # x 2* = x 2 *
+  var self/esi: (addr handle function) <- copy _self
+  allocate self
+  var _f/eax: (addr function) <- lookup *self
+  var f/esi: (addr function) <- copy _f
+  var name-ah/eax: (addr handle array byte) <- get f, name
+  populate-text-with name-ah, "2*"
+  var args-ah/eax: (addr handle word) <- get f, args
+  allocate args-ah
+  var args/eax: (addr word) <- lookup *args-ah
+  initialize-word-with args, "x"
+  var body-ah/eax: (addr handle line) <- get f, body
+  allocate body-ah
+  var body/eax: (addr line) <- lookup *body-ah
+  initialize-line body
+  var curr-word-ah/ecx: (addr handle word) <- get body, data
+  parse-words "x 2 *", curr-word-ah
+  var cursor-word-ah/edx: (addr handle word) <- get f, cursor-word
+  copy-object curr-word-ah, cursor-word-ah
+  # x 1+ = x 1 +
+  var next/esi: (addr handle function) <- get f, next
+  allocate next
+  var _f/eax: (addr function) <- lookup *next
+  var f/esi: (addr function) <- copy _f
+  var name-ah/eax: (addr handle array byte) <- get f, name
+  populate-text-with name-ah, "1+"
+  var args-ah/eax: (addr handle word) <- get f, args
+  allocate args-ah
+  var args/eax: (addr word) <- lookup *args-ah
+  initialize-word-with args, "x"
+  var body-ah/eax: (addr handle line) <- get f, body
+  allocate body-ah
+  var body/eax: (addr line) <- lookup *body-ah
+  initialize-line body
+  curr-word-ah <- get body, data
+  parse-words "x 1 +", curr-word-ah
+  var cursor-word-ah/edx: (addr handle word) <- get f, cursor-word
+  copy-object curr-word-ah, cursor-word-ah
+  # x 2+ = x 1+ 1+
+  var next/esi: (addr handle function) <- get f, next
+  allocate next
+  var _f/eax: (addr function) <- lookup *next
+  var f/esi: (addr function) <- copy _f
+  var name-ah/eax: (addr handle array byte) <- get f, name
+  populate-text-with name-ah, "2+"
+  var args-ah/eax: (addr handle word) <- get f, args
+  allocate args-ah
+  var args/eax: (addr word) <- lookup *args-ah
+  initialize-word-with args, "x"
+  var body-ah/eax: (addr handle line) <- get f, body
+  allocate body-ah
+  var body/eax: (addr line) <- lookup *body-ah
+  initialize-line body
+  curr-word-ah <- get body, data
+  parse-words "x 1+ 1+", curr-word-ah
+  var cursor-word-ah/edx: (addr handle word) <- get f, cursor-word
+  copy-object curr-word-ah, cursor-word-ah
+  # x square = x x *
+  var next/esi: (addr handle function) <- get f, next
+  allocate next
+  var _f/eax: (addr function) <- lookup *next
+  var f/esi: (addr function) <- copy _f
+  var name-ah/eax: (addr handle array byte) <- get f, name
+  populate-text-with name-ah, "square"
+  var args-ah/eax: (addr handle word) <- get f, args
+  allocate args-ah
+  var args/eax: (addr word) <- lookup *args-ah
+  initialize-word-with args, "x"
+  var body-ah/eax: (addr handle line) <- get f, body
+  allocate body-ah
+  var body/eax: (addr line) <- lookup *body-ah
+  initialize-line body
+  curr-word-ah <- get body, data
+  parse-words "x x *", curr-word-ah
+  var cursor-word-ah/edx: (addr handle word) <- get f, cursor-word
+  copy-object curr-word-ah, cursor-word-ah
+  # x 1- = x 1 -
+  var next/esi: (addr handle function) <- get f, next
+  allocate next
+  var _f/eax: (addr function) <- lookup *next
+  var f/esi: (addr function) <- copy _f
+  var name-ah/eax: (addr handle array byte) <- get f, name
+  populate-text-with name-ah, "1-"
+  var args-ah/eax: (addr handle word) <- get f, args
+  allocate args-ah
+  var args/eax: (addr word) <- lookup *args-ah
+  initialize-word-with args, "x"
+  var body-ah/eax: (addr handle line) <- get f, body
+  allocate body-ah
+  var body/eax: (addr line) <- lookup *body-ah
+  initialize-line body
+  curr-word-ah <- get body, data
+  parse-words "x 1 -", curr-word-ah
+  var cursor-word-ah/edx: (addr handle word) <- get f, cursor-word
+  copy-object curr-word-ah, cursor-word-ah
+  # x y sub = x y -
+  var next/esi: (addr handle function) <- get f, next
+  allocate next
+  var _f/eax: (addr function) <- lookup *next
+  var f/esi: (addr function) <- copy _f
+  var name-ah/eax: (addr handle array byte) <- get f, name
+  populate-text-with name-ah, "sub"
+  # critical lesson: args are stored in reverse order
+  var args-ah/eax: (addr handle word) <- get f, args
+  allocate args-ah
+  var args/eax: (addr word) <- lookup *args-ah
+  initialize-word-with args, "y"
+  var next-arg-ah/eax: (addr handle word) <- get args, next
+  allocate next-arg-ah
+  var next-arg/eax: (addr word) <- lookup *next-arg-ah
+  initialize-word-with next-arg, "x"
+  var body-ah/eax: (addr handle line) <- get f, body
+  allocate body-ah
+  var body/eax: (addr line) <- lookup *body-ah
+  initialize-line body
+  curr-word-ah <- get body, data
+  parse-words "x y -", curr-word-ah
+  var cursor-word-ah/edx: (addr handle word) <- get f, cursor-word
+  copy-object curr-word-ah, cursor-word-ah
+}
+
+fn function-body functions: (addr handle function), _word: (addr handle word), out: (addr handle line) {
+  var function-name-storage: (handle array byte)
+  var function-name-ah/ecx: (addr handle array byte) <- address function-name-storage
+  var word-ah/esi: (addr handle word) <- copy _word
+  var word/eax: (addr word) <- lookup *word-ah
+  var gap-ah/eax: (addr handle gap-buffer) <- get word, scalar-data
+  var gap/eax: (addr gap-buffer) <- lookup *gap-ah
+  gap-buffer-to-string gap, function-name-ah
+  var _function-name/eax: (addr array byte) <- lookup *function-name-ah
+  var function-name/esi: (addr array byte) <- copy _function-name
+  var curr-ah/ecx: (addr handle function) <- copy functions
+  $function-body:loop: {
+    var _curr/eax: (addr function) <- lookup *curr-ah
+    var curr/edx: (addr function) <- copy _curr
+    compare curr, 0
+    break-if-=
+    var curr-name-ah/eax: (addr handle array byte) <- get curr, name
+    var curr-name/eax: (addr array byte) <- lookup *curr-name-ah
+    var found?/eax: boolean <- string-equal? curr-name, function-name
+    compare found?, 0/false
+    {
+      break-if-=
+      var src/eax: (addr handle line) <- get curr, body
+      copy-object src, out
+      break $function-body:loop
+    }
+    curr-ah <- get curr, next
+    loop
+  }
+}
+
+fn body-length functions: (addr handle function), function-name: (addr handle word) -> _/eax: int {
+  var body-storage: (handle line)
+  var body-ah/edi: (addr handle line) <- address body-storage
+  function-body functions, function-name, body-ah
+  var body/eax: (addr line) <- lookup *body-ah
+  var result/eax: int <- num-words-in-line body
+  return result
+}
+
+fn num-words-in-line _in: (addr line) -> _/eax: int {
+  var in/esi: (addr line) <- copy _in
+  var curr-ah/ecx: (addr handle word) <- get in, data
+  var result/edi: int <- copy 0
+  {
+    var curr/eax: (addr word) <- lookup *curr-ah
+    compare curr, 0
+    break-if-=
+    curr-ah <- get curr, next
+    result <- increment
+    loop
+  }
+  return result
+}
+
+fn populate-text-with _out: (addr handle array byte), _in: (addr array byte) {
+  var in/esi: (addr array byte) <- copy _in
+  var n/ecx: int <- length in
+  var out/edx: (addr handle array byte) <- copy _out
+  populate out, n
+  var _out-addr/eax: (addr array byte) <- lookup *out
+  var out-addr/edx: (addr array byte) <- copy _out-addr
+  var i/eax: int <- copy 0
+  {
+    compare i, n
+    break-if->=
+    var src/esi: (addr byte) <- index in, i
+    var val/ecx: byte <- copy-byte *src
+    var dest/edi: (addr byte) <- index out-addr, i
+    copy-byte-to *dest, val
+    i <- increment
+    loop
+  }
+}
+
+fn initialize-path-from-sandbox _in: (addr sandbox), _out: (addr handle call-path-element) {
+  var sandbox/esi: (addr sandbox) <- copy _in
+  var line-ah/eax: (addr handle line) <- get sandbox, data
+  var line/eax: (addr line) <- lookup *line-ah
+  var src/esi: (addr handle word) <- get line, data
+  var out-ah/edi: (addr handle call-path-element) <- copy _out
+  var out/eax: (addr call-path-element) <- lookup *out-ah
+  var dest/edi: (addr handle word) <- get out, word
+  copy-object src, dest
+}
+
+fn initialize-path-from-line _line: (addr line), _out: (addr handle call-path-element) {
+  var line/eax: (addr line) <- copy _line
+  var src/esi: (addr handle word) <- get line, data
+  var out-ah/edi: (addr handle call-path-element) <- copy _out
+  var out/eax: (addr call-path-element) <- lookup *out-ah
+  var dest/edi: (addr handle word) <- get out, word
+  copy-object src, dest
+}
+
+fn find-in-call-paths call-paths: (addr handle call-path), needle: (addr handle call-path-element) -> _/eax: boolean {
+  var curr-ah/esi: (addr handle call-path) <- copy call-paths
+  $find-in-call-path:loop: {
+    var curr/eax: (addr call-path) <- lookup *curr-ah
+    compare curr, 0
+    break-if-=
+    {
+      var curr-data/eax: (addr handle call-path-element) <- get curr, data
+      var match?/eax: boolean <- call-path-element-match? curr-data, needle
+      compare match?, 0/false
+      {
+        break-if-=
+        return 1/true
+      }
+    }
+    curr-ah <- get curr, next
+    loop
+  }
+  return 0/false
+}
+
+fn call-path-element-match? _x: (addr handle call-path-element), _y: (addr handle call-path-element) -> _/eax: boolean {
+  var x-ah/eax: (addr handle call-path-element) <- copy _x
+  var x-a/eax: (addr call-path-element) <- lookup *x-ah
+  var x/esi: (addr call-path-element) <- copy x-a
+  var y-ah/eax: (addr handle call-path-element) <- copy _y
+  var y-a/eax: (addr call-path-element) <- lookup *y-ah
+  var y/edi: (addr call-path-element) <- copy y-a
+  compare x, y
+  {
+    break-if-!=
+    return 1/true
+  }
+  compare x, 0
+  {
+    break-if-!=
+    return 0/false
+  }
+  compare y, 0
+  {
+    break-if-!=
+    return 0/false
+  }
+  # compare word addresses, not contents
+  var x-data-ah/ecx: (addr handle word) <- get x, word
+  var x-data-a/eax: (addr word) <- lookup *x-data-ah
+  var x-data/ecx: int <- copy x-data-a
+  var y-data-ah/eax: (addr handle word) <- get y, word
+  var y-data-a/eax: (addr word) <- lookup *y-data-ah
+  var y-data/eax: int <- copy y-data-a
+#?   print-string 0, "match? "
+#?   print-int32-hex 0, x-data
+#?   print-string 0, " vs "
+#?   print-int32-hex 0, y-data
+#?   print-string 0, "\n"
+  compare x-data, y-data
+  {
+    break-if-=
+    return 0/false
+  }
+  var x-next/ecx: (addr handle call-path-element) <- get x, next
+  var y-next/eax: (addr handle call-path-element) <- get y, next
+  var result/eax: boolean <- call-path-element-match? x-next, y-next
+  return result
+}
+
+# order is irrelevant
+fn insert-in-call-path list: (addr handle call-path), new: (addr handle call-path-element) {
+  var new-path-storage: (handle call-path)
+  var new-path-ah/edi: (addr handle call-path) <- address new-path-storage
+  allocate new-path-ah
+  var new-path/eax: (addr call-path) <- lookup *new-path-ah
+  var next/ecx: (addr handle call-path) <- get new-path, next
+  copy-object list, next
+  var dest/ecx: (addr handle call-path-element) <- get new-path, data
+  deep-copy-call-path-element new, dest
+  copy-object new-path-ah, list
+}
+
+# assumes dest is initially clear
+fn deep-copy-call-path-element _src: (addr handle call-path-element), _dest: (addr handle call-path-element) {
+  var src/esi: (addr handle call-path-element) <- copy _src
+  # if src is null, return
+  var _src-addr/eax: (addr call-path-element) <- lookup *src
+  compare _src-addr, 0
+  break-if-=
+  # allocate
+  var src-addr/esi: (addr call-path-element) <- copy _src-addr
+  var dest/eax: (addr handle call-path-element) <- copy _dest
+  allocate dest
+  # copy data
+  var dest-addr/eax: (addr call-path-element) <- lookup *dest
+  {
+    var dest-data-addr/ecx: (addr handle word) <- get dest-addr, word
+    var src-data-addr/eax: (addr handle word) <- get src-addr, word
+    copy-object src-data-addr, dest-data-addr
+  }
+  # recurse
+  var src-next/esi: (addr handle call-path-element) <- get src-addr, next
+  var dest-next/eax: (addr handle call-path-element) <- get dest-addr, next
+  deep-copy-call-path-element src-next, dest-next
+}
+
+fn delete-in-call-path list: (addr handle call-path), needle: (addr handle call-path-element) {
+  var curr-ah/esi: (addr handle call-path) <- copy list
+  $delete-in-call-path:loop: {
+    var _curr/eax: (addr call-path) <- lookup *curr-ah
+    var curr/ecx: (addr call-path) <- copy _curr
+    compare curr, 0
+    break-if-=
+    {
+      var curr-data/eax: (addr handle call-path-element) <- get curr, data
+      var match?/eax: boolean <- call-path-element-match? curr-data, needle
+      compare match?, 0/false
+      {
+        break-if-=
+        var next-ah/ecx: (addr handle call-path) <- get curr, next
+        copy-object next-ah, curr-ah
+        loop $delete-in-call-path:loop
+      }
+    }
+    curr-ah <- get curr, next
+    loop
+  }
+}
+
+fn increment-final-element list: (addr handle call-path-element) {
+  var final-ah/eax: (addr handle call-path-element) <- copy list
+  var final/eax: (addr call-path-element) <- lookup *final-ah
+  var val-ah/ecx: (addr handle word) <- get final, word
+  var val/eax: (addr word) <- lookup *val-ah
+  var new-ah/edx: (addr handle word) <- get val, next
+  var target/eax: (addr word) <- lookup *new-ah
+  compare target, 0
+  break-if-=
+  copy-object new-ah, val-ah
+}
+
+fn decrement-final-element list: (addr handle call-path-element) {
+  var final-ah/eax: (addr handle call-path-element) <- copy list
+  var final/eax: (addr call-path-element) <- lookup *final-ah
+  var val-ah/ecx: (addr handle word) <- get final, word
+  var val/eax: (addr word) <- lookup *val-ah
+#?   print-string 0, "replacing "
+#?   {
+#?     var foo/eax: int <- copy val
+#?     print-int32-hex 0, foo
+#?   }
+  var new-ah/edx: (addr handle word) <- get val, prev
+  var target/eax: (addr word) <- lookup *new-ah
+  compare target, 0
+  break-if-=
+  # val = val->prev
+#?   print-string 0, " with "
+#?   {
+#?     var foo/eax: int <- copy target
+#?     print-int32-hex 0, foo
+#?   }
+#?   print-string 0, "\n"
+  copy-object new-ah, val-ah
+}
+
+fn move-final-element-to-start-of-line list: (addr handle call-path-element) {
+  var final-ah/eax: (addr handle call-path-element) <- copy list
+  var final/eax: (addr call-path-element) <- lookup *final-ah
+  var val-ah/ecx: (addr handle word) <- get final, word
+  var val/eax: (addr word) <- lookup *val-ah
+  var new-ah/edx: (addr handle word) <- get val, prev
+  var target/eax: (addr word) <- lookup *new-ah
+  compare target, 0
+  break-if-=
+  copy-object new-ah, val-ah
+  move-final-element-to-start-of-line list
+}
+
+fn move-final-element-to-end-of-line list: (addr handle call-path-element) {
+  var final-ah/eax: (addr handle call-path-element) <- copy list
+  var final/eax: (addr call-path-element) <- lookup *final-ah
+  var val-ah/ecx: (addr handle word) <- get final, word
+  var val/eax: (addr word) <- lookup *val-ah
+  var new-ah/edx: (addr handle word) <- get val, next
+  var target/eax: (addr word) <- lookup *new-ah
+  compare target, 0
+  break-if-=
+  copy-object new-ah, val-ah
+  move-final-element-to-end-of-line list
+}
+
+fn push-to-call-path-element list: (addr handle call-path-element), new: (addr handle word) {
+  var new-element-storage: (handle call-path-element)
+  var new-element-ah/edi: (addr handle call-path-element) <- address new-element-storage
+  allocate new-element-ah
+  var new-element/eax: (addr call-path-element) <- lookup *new-element-ah
+  # save word
+  var dest/ecx: (addr handle word) <- get new-element, word
+  copy-object new, dest
+  # save next
+  var dest2/ecx: (addr handle call-path-element) <- get new-element, next
+  copy-object list, dest2
+  # return
+  copy-object new-element-ah, list
+}
+
+fn drop-from-call-path-element _list: (addr handle call-path-element) {
+  var list-ah/esi: (addr handle call-path-element) <- copy _list
+  var list/eax: (addr call-path-element) <- lookup *list-ah
+  var next/eax: (addr handle call-path-element) <- get list, next
+  copy-object next, _list
+}
+
+fn drop-nested-calls _list: (addr handle call-path-element) {
+  var list-ah/esi: (addr handle call-path-element) <- copy _list
+  var list/eax: (addr call-path-element) <- lookup *list-ah
+  var next-ah/edi: (addr handle call-path-element) <- get list, next
+  var next/eax: (addr call-path-element) <- lookup *next-ah
+  compare next, 0
+  break-if-=
+  copy-object next-ah, _list
+  drop-nested-calls _list
+}
+
+fn dump-call-path-element screen: (addr screen), _x-ah: (addr handle call-path-element) {
+  var x-ah/ecx: (addr handle call-path-element) <- copy _x-ah
+  var _x/eax: (addr call-path-element) <- lookup *x-ah
+  var x/esi: (addr call-path-element) <- copy _x
+  var word-ah/eax: (addr handle word) <- get x, word
+  var word/eax: (addr word) <- lookup *word-ah
+  print-word screen, word
+  var next-ah/ecx: (addr handle call-path-element) <- get x, next
+  var next/eax: (addr call-path-element) <- lookup *next-ah
+  compare next, 0
+  {
+    break-if-=
+    print-string screen, " "
+    dump-call-path-element screen, next-ah
+    return
+  }
+  print-string screen, "\n"
+}
+
+fn dump-call-paths screen: (addr screen), _x-ah: (addr handle call-path) {
+  var x-ah/ecx: (addr handle call-path) <- copy _x-ah
+  var x/eax: (addr call-path) <- lookup *x-ah
+  compare x, 0
+  break-if-=
+  var src/ecx: (addr handle call-path-element) <- get x, data
+  dump-call-path-element screen, src
+  var next-ah/ecx: (addr handle call-path) <- get x, next
+  var next/eax: (addr call-path) <- lookup *next-ah
+  compare next, 0
+  {
+    break-if-=
+    dump-call-paths screen, next-ah
+  }
+}
+
+fn function-width _self: (addr function) -> _/eax: int {
+  var self/esi: (addr function) <- copy _self
+  var args/ecx: (addr handle word) <- get self, args
+  var arg-width/eax: int <- word-list-length args
+  var result/edi: int <- copy arg-width
+  result <- add 4  # function-header-indent + body-indent
+  var body-ah/eax: (addr handle line) <- get self, body
+  var body-width/eax: int <- body-width body-ah
+  body-width <- add 1  # right margin
+  body-width <- add 2  # body-indent for "≡ "
+  compare result, body-width
+  {
+    break-if->=
+    result <- copy body-width
+  }
+  return result
+}
+
+fn body-width lines: (addr handle line) -> _/eax: int {
+  var curr-ah/esi: (addr handle line) <- copy lines
+  var result/edi: int <- copy 0
+  {
+    var curr/eax: (addr line) <- lookup *curr-ah
+    compare curr, 0
+    break-if-=
+    {
+      var words/ecx: (addr handle word) <- get curr, data
+      var curr-len/eax: int <- word-list-length words
+      compare curr-len, result
+      break-if-<=
+      result <- copy curr-len
+    }
+    curr-ah <- get curr, next
+    loop
+  }
+  return result
+}
+
+fn function-height _self: (addr function) -> _/eax: int {
+  var self/esi: (addr function) <- copy _self
+  var body-ah/eax: (addr handle line) <- get self, body
+  var result/eax: int <- line-list-length body-ah
+  result <- increment  # for function header
+  return result
+}
+
+fn line-list-length lines: (addr handle line) -> _/eax: int {
+  var curr-ah/esi: (addr handle line) <- copy lines
+  var result/edi: int <- copy 0
+  {
+    var curr/eax: (addr line) <- lookup *curr-ah
+    compare curr, 0
+    break-if-=
+    curr-ah <- get curr, next
+    result <- increment
+    loop
+  }
+  return result
+}
diff --git a/linux/tile/environment.mu b/linux/tile/environment.mu
new file mode 100644
index 00000000..de771dee
--- /dev/null
+++ b/linux/tile/environment.mu
@@ -0,0 +1,2181 @@
+# The architecture that seems to be crystallizing: the environment has two
+# areas: functions and sandbox.
+#
+# Rendering the environment requires rendering all areas.
+# Displaying the cursor requires displaying cursor for the area controlling the cursor.
+# Processing events for the environment requires processing events for the area controlling the cursor.
+#
+# Areas can have dialogs.
+# There can also be global dialogs (currently just one: goto function).
+# Areas are responsible for rendering their dialogs.
+# In practice this results in dialogs encapsulating the state they need to
+# decide whether to render.
+#
+# This will be useful if we add more areas in the future.
+
+type environment {
+  screen: (handle screen)
+  functions: (handle function)
+  sandboxes: (handle sandbox)
+  partial-function-name: (handle word)
+  # at most one of these will be set
+  cursor-function: (handle function)
+  cursor-sandbox: (handle sandbox)
+  #
+  nrows: int
+  ncols: int
+  code-separator-col: int
+}
+
+fn initialize-environment _env: (addr environment) {
+  var env/esi: (addr environment) <- copy _env
+  # initialize some predefined function definitions
+  var functions/eax: (addr handle function) <- get env, functions
+  create-primitive-functions functions
+  # initialize first sandbox
+  var sandbox-ah/ecx: (addr handle sandbox) <- get env, sandboxes
+  allocate sandbox-ah
+  var sandbox/eax: (addr sandbox) <- lookup *sandbox-ah
+  initialize-sandbox sandbox
+  # initialize cursor sandbox
+  var cursor-sandbox-ah/eax: (addr handle sandbox) <- get env, cursor-sandbox
+  copy-object sandbox-ah, cursor-sandbox-ah
+  # initialize screen
+  var screen-ah/eax: (addr handle screen) <- get env, screen
+  var _screen/eax: (addr screen) <- lookup *screen-ah
+  var screen/edi: (addr screen) <- copy _screen
+  var nrows/eax: int <- copy 0
+  var ncols/ecx: int <- copy 0
+  nrows, ncols <- screen-size screen
+  var dest/edx: (addr int) <- get env, nrows
+  copy-to *dest, nrows
+  dest <- get env, ncols
+  copy-to *dest, ncols
+  var repl-col/ecx: int <- copy ncols
+  repl-col <- shift-right 1
+  dest <- get env, code-separator-col
+  copy-to *dest, repl-col
+}
+
+fn initialize-environment-with-fake-screen _self: (addr environment), nrows: int, ncols: int {
+  var self/esi: (addr environment) <- copy _self
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  allocate screen-ah
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  initialize-screen screen-addr, nrows, ncols
+  initialize-environment self
+}
+
+#############
+# Iterate
+#############
+
+fn process _self: (addr environment), key: grapheme {
+  var self/esi: (addr environment) <- copy _self
+  var fn-name-ah/eax: (addr handle word) <- get self, partial-function-name
+  var fn-name/eax: (addr word) <- lookup *fn-name-ah
+  compare fn-name, 0
+  {
+    break-if-=
+#?     print-string 0, "processing goto fn\n"
+    process-goto-dialog self, key
+    return
+  }
+  var function-ah/eax: (addr handle function) <- get self, cursor-function
+  var function/eax: (addr function) <- lookup *function-ah
+  compare function, 0
+  {
+    break-if-=
+#?     print-string 0, "processing function\n"
+    process-function self, function, key
+    return
+  }
+  var sandbox-ah/eax: (addr handle sandbox) <- get self, cursor-sandbox
+  var sandbox/eax: (addr sandbox) <- lookup *sandbox-ah
+  compare sandbox, 0
+  {
+    break-if-=
+#?     print-string 0, "processing sandbox\n"
+    process-sandbox self, sandbox, key
+    return
+  }
+}
+
+# collect new name in partial-function-name, and move the cursor to function with that name
+fn process-goto-dialog _self: (addr environment), key: grapheme {
+  var self/esi: (addr environment) <- copy _self
+  var fn-name-ah/edi: (addr handle word) <- get self, partial-function-name
+  # if 'esc' pressed, cancel goto
+  compare key, 0x1b/esc
+  $process-goto-dialog:cancel: {
+    break-if-!=
+    clear-object fn-name-ah
+    return
+  }
+  # if 'enter' pressed, location function and set cursor to it
+  compare key, 0xa/enter
+  $process-goto-dialog:commit: {
+    break-if-!=
+#?     print-string 0, "jump\n"
+    var fn-name/eax: (addr word) <- lookup *fn-name-ah
+    var functions/ecx: (addr handle function) <- get self, functions
+    var dest/edx: (addr handle function) <- get self, cursor-function
+    callee functions, fn-name, dest
+    # we won't clear cursor-sandbox until we start supporting multiple sandboxes
+    clear-object fn-name-ah
+    # there shouldn't be any need to clear state for other dialogs in the sandbox
+    return
+  }
+  #
+  compare key, 0x7f/del  # backspace on Macs
+  $process-goto-dialog:backspace: {
+    break-if-!=
+    # if not at start, delete grapheme before cursor
+    var fn-name/eax: (addr word) <- lookup *fn-name-ah
+    var at-start?/eax: boolean <- cursor-at-start? fn-name
+    compare at-start?, 0/false
+    {
+      break-if-!=
+      var fn-name/eax: (addr word) <- lookup *fn-name-ah
+      delete-before-cursor fn-name
+    }
+    return
+  }
+  # otherwise insert key within current word
+  var print?/eax: boolean <- real-grapheme? key
+  $process-goto-dialog:real-grapheme: {
+    compare print?, 0/false
+    break-if-=
+    var fn-name/eax: (addr word) <- lookup *fn-name-ah
+    add-grapheme-to-word fn-name, key
+    return
+  }
+  # silently ignore other hotkeys
+}
+
+fn process-function _self: (addr environment), _function: (addr function), key: grapheme {
+  var self/esi: (addr environment) <- copy _self
+  var function/edi: (addr function) <- copy _function
+  process-function-edit self, function, key
+}
+
+fn process-function-edit _self: (addr environment), _function: (addr function), key: grapheme {
+  var self/esi: (addr environment) <- copy _self
+  var function/edi: (addr function) <- copy _function
+  var cursor-word-ah/ebx: (addr handle word) <- get function, cursor-word
+  var _cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+  var cursor-word/ecx: (addr word) <- copy _cursor-word
+  compare key, 0x445b1b/left-arrow
+  $process-function-edit:key-left-arrow: {
+    break-if-!=
+#?     print-string 0, "left-arrow\n"
+    # if not at start, move left within current word
+    var at-start?/eax: boolean <- cursor-at-start? cursor-word
+    compare at-start?, 0/false
+    {
+      break-if-!=
+#?       print-string 0, "cursor left within word\n"
+      cursor-left cursor-word
+      return
+    }
+    # otherwise move to end of previous word
+    var prev-word-ah/edx: (addr handle word) <- get cursor-word, prev
+    var prev-word/eax: (addr word) <- lookup *prev-word-ah
+    {
+      compare prev-word, 0
+      break-if-=
+#?       print-string 0, "move to previous word\n"
+      cursor-to-end prev-word
+      copy-object prev-word-ah, cursor-word-ah
+    }
+    return
+  }
+  compare key, 0x435b1b/right-arrow
+  $process-function-edit:key-right-arrow: {
+    break-if-!=
+    # if not at end, move right within current word
+    var at-end?/eax: boolean <- cursor-at-end? cursor-word
+    compare at-end?, 0/false
+    {
+      break-if-!=
+      cursor-right cursor-word
+      return
+    }
+    # otherwise, move to the next word
+    var next-word-ah/edx: (addr handle word) <- get cursor-word, next
+    var next-word/eax: (addr word) <- lookup *next-word-ah
+    {
+      compare next-word, 0
+      break-if-=
+      cursor-to-start next-word
+      copy-object next-word-ah, cursor-word-ah
+    }
+    return
+  }
+  # word-based motions
+  compare key, 2/ctrl-b
+  $process-function-edit:prev-word: {
+    break-if-!=
+    # jump to previous word if possible
+    var prev-word-ah/edx: (addr handle word) <- get cursor-word, prev
+    var prev-word/eax: (addr word) <- lookup *prev-word-ah
+    {
+      compare prev-word, 0
+      break-if-=
+      cursor-to-end prev-word
+      copy-object prev-word-ah, cursor-word-ah
+    }
+    return
+  }
+  compare key, 6/ctrl-f
+  $process-function-edit:next-word: {
+    break-if-!=
+    # jump to previous word if possible
+    var next-word-ah/edx: (addr handle word) <- get cursor-word, next
+    var next-word/eax: (addr word) <- lookup *next-word-ah
+    {
+      compare next-word, 0
+      break-if-=
+      cursor-to-end next-word
+      copy-object next-word-ah, cursor-word-ah
+    }
+    return
+  }
+  # line-based motions
+  compare key, 1/ctrl-a
+  $process-function-edit:start-of-line: {
+    break-if-!=
+    # move cursor to start of first word
+    var body-ah/eax: (addr handle line) <- get function, body
+    var body/eax: (addr line) <- lookup *body-ah
+    var body-contents-ah/ecx: (addr handle word) <- get body, data
+    copy-object body-contents-ah, cursor-word-ah
+    var body-contents/eax: (addr word) <- lookup *body-contents-ah
+    cursor-to-start body-contents
+    return
+  }
+  compare key, 5/ctrl-e
+  $process-function-edit:end-of-line: {
+    break-if-!=
+    # move cursor to end of final word
+    var body-ah/eax: (addr handle line) <- get function, body
+    var body/eax: (addr line) <- lookup *body-ah
+    var body-contents-ah/ecx: (addr handle word) <- get body, data
+    copy-object body-contents-ah, cursor-word-ah
+    final-word cursor-word-ah, cursor-word-ah
+    var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+    cursor-to-end cursor-word
+    return
+  }
+  # bounce to another function
+  compare key, 7/ctrl-g
+  $process-function-edit:goto-function: {
+    break-if-!=
+    # initialize dialog to name function to jump to
+    var partial-function-name-ah/eax: (addr handle word) <- get self, partial-function-name
+    allocate partial-function-name-ah
+    var partial-function-name/eax: (addr word) <- lookup *partial-function-name-ah
+    initialize-word partial-function-name
+    return
+  }
+  # bounce to sandbox
+  compare key, 9/tab
+  $process-function-edit:goto-sandbox: {
+    break-if-!=
+    var function-ah/eax: (addr handle function) <- get self, cursor-function
+    clear-object function-ah
+    return
+  }
+  # editing the current function
+  compare key, 0x7f/del  # backspace on Macs
+  $process-function-edit:backspace: {
+    break-if-!=
+    # if not at start of some word, delete grapheme before cursor within current word
+    var at-start?/eax: boolean <- cursor-at-start? cursor-word
+    compare at-start?, 0/false
+    {
+      break-if-!=
+      delete-before-cursor cursor-word
+      return
+    }
+    # otherwise delete current word and move to end of prev word
+    var prev-word-ah/edx: (addr handle word) <- get cursor-word, prev
+    var prev-word/eax: (addr word) <- lookup *prev-word-ah
+    {
+      compare prev-word, 0
+      break-if-=
+      cursor-to-end prev-word
+      delete-next prev-word
+      copy-object prev-word-ah, cursor-word-ah
+    }
+    return
+  }
+  compare key, 0x20/space
+  $process-function-edit:space: {
+    break-if-!=
+#?     print-string 0, "space\n"
+    # if cursor is at start of word, insert word before
+    {
+      var at-start?/eax: boolean <- cursor-at-start? cursor-word
+      compare at-start?, 0/false
+      break-if-=
+      var prev-word-ah/eax: (addr handle word) <- get cursor-word, prev
+      append-word prev-word-ah
+      var new-prev-word-ah/eax: (addr handle word) <- get cursor-word, prev
+      copy-object new-prev-word-ah, cursor-word-ah
+      return
+    }
+    # if start of word is quote and grapheme before cursor is not, just insert it as usual
+    # TODO: support string escaping
+    {
+      var first-grapheme/eax: grapheme <- first-grapheme cursor-word
+      compare first-grapheme, 0x22/double-quote
+      break-if-!=
+      var final-grapheme/eax: grapheme <- grapheme-before-cursor cursor-word
+      compare final-grapheme, 0x22/double-quote
+      break-if-=
+      break $process-function-edit:space
+    }
+    # if start of word is '[' and grapheme before cursor is not ']', just insert it as usual
+    # TODO: support nested arrays
+    {
+      var first-grapheme/eax: grapheme <- first-grapheme cursor-word
+      compare first-grapheme, 0x5b/[
+      break-if-!=
+      var final-grapheme/eax: grapheme <- grapheme-before-cursor cursor-word
+      compare final-grapheme, 0x5d/]
+      break-if-=
+      break $process-function-edit:space
+    }
+    # otherwise insert word after and move cursor to it for the next key
+    # (but we'll continue to track the current cursor-word for the rest of this function)
+    append-word cursor-word-ah
+    var next-word-ah/eax: (addr handle word) <- get cursor-word, next
+    copy-object next-word-ah, cursor-word-ah
+    # if cursor is at end of word, that's all
+    var at-end?/eax: boolean <- cursor-at-end? cursor-word
+    compare at-end?, 0/false
+    {
+      break-if-=
+      return
+    }
+    # otherwise we're in the middle of a word
+    # move everything after cursor to the (just created) next word
+    var next-word-ah/eax: (addr handle word) <- get cursor-word, next
+    var _next-word/eax: (addr word) <- lookup *next-word-ah
+    var next-word/ebx: (addr word) <- copy _next-word
+    {
+      var at-end?/eax: boolean <- cursor-at-end? cursor-word
+      compare at-end?, 0/false
+      break-if-!=
+      var g/eax: grapheme <- pop-after-cursor cursor-word
+      add-grapheme-to-word next-word, g
+      loop
+    }
+    cursor-to-start next-word
+    return
+  }
+  # otherwise insert key within current word
+  var g/edx: grapheme <- copy key
+  var print?/eax: boolean <- real-grapheme? key
+  $process-function-edit:real-grapheme: {
+    compare print?, 0/false
+    break-if-=
+    add-grapheme-to-word cursor-word, g
+    return
+  }
+  # silently ignore other hotkeys
+}
+
+fn process-sandbox _self: (addr environment), _sandbox: (addr sandbox), key: grapheme {
+  var self/esi: (addr environment) <- copy _self
+  var sandbox/edi: (addr sandbox) <- copy _sandbox
+  var rename-word-mode-ah?/ecx: (addr handle word) <- get sandbox, partial-name-for-cursor-word
+  var rename-word-mode?/eax: (addr word) <- lookup *rename-word-mode-ah?
+  compare rename-word-mode?, 0
+  {
+    break-if-=
+#?     print-string 0, "processing sandbox rename\n"
+    process-sandbox-rename sandbox, key
+    return
+  }
+  var define-function-mode-ah?/ecx: (addr handle word) <- get sandbox, partial-name-for-function
+  var define-function-mode?/eax: (addr word) <- lookup *define-function-mode-ah?
+  compare define-function-mode?, 0
+  {
+    break-if-=
+#?     print-string 0, "processing function definition\n"
+    var functions/ecx: (addr handle function) <- get self, functions
+    process-sandbox-define sandbox, functions, key
+    return
+  }
+#?   print-string 0, "processing sandbox edit\n"
+  process-sandbox-edit self, sandbox, key
+}
+
+fn process-sandbox-edit _self: (addr environment), _sandbox: (addr sandbox), key: grapheme {
+  var self/esi: (addr environment) <- copy _self
+  var sandbox/edi: (addr sandbox) <- copy _sandbox
+  var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+  var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+  var cursor-word-ah/ebx: (addr handle word) <- get cursor-call-path, word
+  var _cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+  var cursor-word/ecx: (addr word) <- copy _cursor-word
+  compare key, 0x445b1b/left-arrow
+  $process-sandbox-edit:key-left-arrow: {
+    break-if-!=
+#?     print-string 0, "left-arrow\n"
+    # if not at start, move left within current word
+    var at-start?/eax: boolean <- cursor-at-start? cursor-word
+    compare at-start?, 0/false
+    {
+      break-if-!=
+#?       print-string 0, "cursor left within word\n"
+      cursor-left cursor-word
+      return
+    }
+    # if current word is expanded, move to the rightmost word in its body
+    {
+      var cursor-call-path/esi: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      var expanded-words/edx: (addr handle call-path) <- get sandbox, expanded-words
+      var curr-word-is-expanded?/eax: boolean <- find-in-call-paths expanded-words, cursor-call-path
+      compare curr-word-is-expanded?, 0/false
+      break-if-=
+      # update cursor-call-path
+#?       print-string 0, "curr word is expanded\n"
+      var self/ecx: (addr environment) <- copy _self
+      var functions/ecx: (addr handle function) <- get self, functions
+      var body: (handle line)
+      var body-ah/eax: (addr handle line) <- address body
+      function-body functions, cursor-word-ah, body-ah
+      var body-addr/eax: (addr line) <- lookup *body-ah
+      var first-word-ah/edx: (addr handle word) <- get body-addr, data
+      var final-word-h: (handle word)
+      var final-word-ah/eax: (addr handle word) <- address final-word-h
+      final-word first-word-ah, final-word-ah
+      push-to-call-path-element cursor-call-path, final-word-ah
+      # move cursor to end of word
+      var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+      var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+      var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+      cursor-to-end cursor-word
+      return
+    }
+    # if at first word, look for a caller to jump to
+    $process-sandbox-edit:key-left-arrow-first-word: {
+      var prev-word-ah/edx: (addr handle word) <- get cursor-word, prev
+      var prev-word/eax: (addr word) <- lookup *prev-word-ah
+      compare prev-word, 0
+      break-if-!=
+      $process-sandbox-edit:key-left-arrow-first-word-and-caller: {
+#?         print-string 0, "return\n"
+        {
+          var cursor-call-path-ah/edi: (addr handle call-path-element) <- get sandbox, cursor-call-path
+          var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+          var next-cursor-element-ah/edx: (addr handle call-path-element) <- get cursor-call-path, next
+          var next-cursor-element/eax: (addr call-path-element) <- lookup *next-cursor-element-ah
+          compare next-cursor-element, 0
+          break-if-= $process-sandbox-edit:key-left-arrow-first-word-and-caller
+          copy-object next-cursor-element-ah, cursor-call-path-ah
+        }
+        var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+        var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+        var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+        var _cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+        cursor-word <- copy _cursor-word
+      }
+    }
+    # then move to end of previous word
+    var prev-word-ah/edx: (addr handle word) <- get cursor-word, prev
+    var prev-word/eax: (addr word) <- lookup *prev-word-ah
+    {
+      compare prev-word, 0
+      break-if-=
+#?       print-string 0, "move to previous word\n"
+      cursor-to-end prev-word
+#?       {
+#?         var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+#?         var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+#?         var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+#?         var _cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+#?         var cursor-word/ebx: (addr word) <- copy _cursor-word
+#?         print-string 0, "word at cursor before: "
+#?         print-word 0, cursor-word
+#?         print-string 0, "\n"
+#?       }
+      var cursor-call-path/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      decrement-final-element cursor-call-path
+#?       {
+#?         var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+#?         var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+#?         var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+#?         var _cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+#?         var cursor-word/ebx: (addr word) <- copy _cursor-word
+#?         print-string 0, "word at cursor after: "
+#?         print-word 0, cursor-word
+#?         print-string 0, "\n"
+#?       }
+    }
+    return
+  }
+  compare key, 0x435b1b/right-arrow
+  $process-sandbox-edit:key-right-arrow: {
+    break-if-!=
+    # if not at end, move right within current word
+    var at-end?/eax: boolean <- cursor-at-end? cursor-word
+    compare at-end?, 0/false
+    {
+      break-if-!=
+#?       print-string 0, "a\n"
+      cursor-right cursor-word
+      return
+    }
+    # if at final word, look for a caller to jump to
+    {
+      var next-word-ah/edx: (addr handle word) <- get cursor-word, next
+      var next-word/eax: (addr word) <- lookup *next-word-ah
+      compare next-word, 0
+      break-if-!=
+      var cursor-call-path-ah/edi: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+      var next-cursor-element-ah/ecx: (addr handle call-path-element) <- get cursor-call-path, next
+      var next-cursor-element/eax: (addr call-path-element) <- lookup *next-cursor-element-ah
+      compare next-cursor-element, 0
+      break-if-=
+      copy-object next-cursor-element-ah, cursor-call-path-ah
+      return
+    }
+    # otherwise, move to the next word
+    var next-word-ah/edx: (addr handle word) <- get cursor-word, next
+    var next-word/eax: (addr word) <- lookup *next-word-ah
+    {
+      compare next-word, 0
+      break-if-=
+#?       print-string 0, "b\n"
+      cursor-to-start next-word
+      # . . cursor-word now out of date
+      var cursor-call-path/ecx: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      increment-final-element cursor-call-path
+      # Is the new cursor word expanded? If so, it's a function call. Add a
+      # new level to the cursor-call-path for the call's body.
+      $process-sandbox-edit:key-right-arrow-next-word-is-call-expanded: {
+#?         print-string 0, "c\n"
+        {
+          var expanded-words/eax: (addr handle call-path) <- get sandbox, expanded-words
+          var curr-word-is-expanded?/eax: boolean <- find-in-call-paths expanded-words, cursor-call-path
+          compare curr-word-is-expanded?, 0/false
+          break-if-= $process-sandbox-edit:key-right-arrow-next-word-is-call-expanded
+        }
+        var callee-h: (handle function)
+        var callee-ah/edx: (addr handle function) <- address callee-h
+        var functions/ebx: (addr handle function) <- get self, functions
+        callee functions, next-word, callee-ah
+        var callee/eax: (addr function) <- lookup *callee-ah
+        var callee-body-ah/eax: (addr handle line) <- get callee, body
+        var callee-body/eax: (addr line) <- lookup *callee-body-ah
+        var callee-body-first-word/edx: (addr handle word) <- get callee-body, data
+        push-to-call-path-element cursor-call-path, callee-body-first-word
+        # position cursor at left
+        var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+        var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+        var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+        var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+        cursor-to-start cursor-word
+#?         print-string 0, "d\n"
+        return
+      }
+    }
+    return
+  }
+  compare key, 0xa/enter
+  {
+    break-if-!=
+    # toggle display of subsidiary stack
+    toggle-cursor-word sandbox
+    return
+  }
+  compare key, 0xc/ctrl-l
+  $process-sandbox-edit:new-line: {
+    break-if-!=
+    # new line in sandbox
+    append-line sandbox
+    return
+  }
+  # word-based motions
+  compare key, 2/ctrl-b
+  $process-sandbox-edit:prev-word: {
+    break-if-!=
+    # jump to previous word at same level
+    var prev-word-ah/edx: (addr handle word) <- get cursor-word, prev
+    var prev-word/eax: (addr word) <- lookup *prev-word-ah
+    {
+      compare prev-word, 0
+      break-if-=
+      cursor-to-end prev-word
+      var cursor-call-path/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      decrement-final-element cursor-call-path
+      return
+    }
+    # if previous word doesn't exist, try to bump up one level
+    {
+      var cursor-call-path-ah/edi: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+      var caller-cursor-element-ah/ecx: (addr handle call-path-element) <- get cursor-call-path, next
+      var caller-cursor-element/eax: (addr call-path-element) <- lookup *caller-cursor-element-ah
+      compare caller-cursor-element, 0
+      break-if-=
+      # check if previous word exists in caller
+      var caller-word-ah/eax: (addr handle word) <- get caller-cursor-element, word
+      var caller-word/eax: (addr word) <- lookup *caller-word-ah
+      var word-before-caller-ah/eax: (addr handle word) <- get caller-word, prev
+      var word-before-caller/eax: (addr word) <- lookup *word-before-caller-ah
+      compare word-before-caller, 0
+      break-if-=
+      # if so jump to it
+      drop-from-call-path-element cursor-call-path-ah
+      decrement-final-element cursor-call-path-ah
+      return
+    }
+  }
+  compare key, 6/ctrl-f
+  $process-sandbox-edit:next-word: {
+    break-if-!=
+#?     print-string 0, "AA\n"
+    # jump to previous word at same level
+    var next-word-ah/edx: (addr handle word) <- get cursor-word, next
+    var next-word/eax: (addr word) <- lookup *next-word-ah
+    {
+      compare next-word, 0
+      break-if-=
+#?       print-string 0, "BB\n"
+      cursor-to-end next-word
+      var cursor-call-path/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      increment-final-element cursor-call-path
+      return
+    }
+    # if next word doesn't exist, try to bump up one level
+#?     print-string 0, "CC\n"
+    var cursor-call-path-ah/edi: (addr handle call-path-element) <- get sandbox, cursor-call-path
+    var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+    var caller-cursor-element-ah/ecx: (addr handle call-path-element) <- get cursor-call-path, next
+    var caller-cursor-element/eax: (addr call-path-element) <- lookup *caller-cursor-element-ah
+    compare caller-cursor-element, 0
+    break-if-=
+#?     print-string 0, "DD\n"
+    copy-object caller-cursor-element-ah, cursor-call-path-ah
+    return
+  }
+  compare key, 7/ctrl-g
+  $process-sandbox-edit:goto-function: {
+    break-if-!=
+    # initialize dialog to name function to jump to
+    var partial-function-name-ah/eax: (addr handle word) <- get self, partial-function-name
+    allocate partial-function-name-ah
+    var partial-function-name/eax: (addr word) <- lookup *partial-function-name-ah
+    initialize-word partial-function-name
+    return
+  }
+  # line-based motions
+  compare key, 1/ctrl-a
+  $process-sandbox-edit:start-of-line: {
+    break-if-!=
+    # move cursor up past all calls and to start of line
+    var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+    drop-nested-calls cursor-call-path-ah
+    move-final-element-to-start-of-line cursor-call-path-ah
+    # move cursor to start of word
+    var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+    var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+    var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+    cursor-to-start cursor-word
+    # this works as long as the first word isn't expanded
+    # but we don't expect to see zero-arg functions first-up
+    return
+  }
+  compare key, 5/ctrl-e
+  $process-sandbox-edit:end-of-line: {
+    break-if-!=
+    # move cursor up past all calls and to start of line
+    var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+    drop-nested-calls cursor-call-path-ah
+    move-final-element-to-end-of-line cursor-call-path-ah
+    # move cursor to end of word
+    var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+    var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+    var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+    cursor-to-end cursor-word
+    # this works because expanded words lie to the right of their bodies
+    # so the final word is always guaranteed to be at the top-level
+    return
+  }
+  compare key, 0x15/ctrl-u
+  $process-sandbox-edit:clear-line: {
+    break-if-!=
+    # clear line in sandbox
+    initialize-sandbox sandbox
+    return
+  }
+  # if cursor is within a call, disable editing hotkeys below
+  var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+  var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+  var next-cursor-element-ah/eax: (addr handle call-path-element) <- get cursor-call-path, next
+  var next-cursor-element/eax: (addr call-path-element) <- lookup *next-cursor-element-ah
+  compare next-cursor-element, 0
+  {
+    break-if-=
+    return
+  }
+  # - remaining keys only work at the top row outside any function calls
+  compare key, 0x7f/del  # backspace on Macs
+  $process-sandbox-edit:backspace: {
+    break-if-!=
+    # if not at start of some word, delete grapheme before cursor within current word
+    var at-start?/eax: boolean <- cursor-at-start? cursor-word
+    compare at-start?, 0/false
+    {
+      break-if-!=
+      delete-before-cursor cursor-word
+      return
+    }
+    # otherwise delete current word and move to end of prev word
+    var prev-word-ah/eax: (addr handle word) <- get cursor-word, prev
+    var prev-word/eax: (addr word) <- lookup *prev-word-ah
+    {
+      compare prev-word, 0
+      break-if-=
+      cursor-to-end prev-word
+      delete-next prev-word
+      var cursor-call-path/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      decrement-final-element cursor-call-path
+    }
+    return
+  }
+  compare key, 0x20/space
+  $process-sandbox-edit:space: {
+    break-if-!=
+#?     print-string 0, "space\n"
+    # if cursor is at start of word, insert word before
+    {
+      var at-start?/eax: boolean <- cursor-at-start? cursor-word
+      compare at-start?, 0/false
+      break-if-=
+      var prev-word-ah/eax: (addr handle word) <- get cursor-word, prev
+      append-word prev-word-ah
+      var cursor-call-path/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      decrement-final-element cursor-call-path
+      return
+    }
+    # if start of word is quote and grapheme before cursor is not, just insert it as usual
+    # TODO: support string escaping
+    {
+      var first-grapheme/eax: grapheme <- first-grapheme cursor-word
+      compare first-grapheme, 0x22/double-quote
+      break-if-!=
+      var final-grapheme/eax: grapheme <- grapheme-before-cursor cursor-word
+      compare final-grapheme, 0x22/double-quote
+      break-if-=
+      break $process-sandbox-edit:space
+    }
+    # if start of word is '[' and grapheme before cursor is not ']', just insert it as usual
+    # TODO: support nested arrays
+    {
+      var first-grapheme/eax: grapheme <- first-grapheme cursor-word
+      compare first-grapheme, 0x5b/[
+      break-if-!=
+      var final-grapheme/eax: grapheme <- grapheme-before-cursor cursor-word
+      compare final-grapheme, 0x5d/]
+      break-if-=
+      break $process-sandbox-edit:space
+    }
+    # otherwise insert word after and move cursor to it for the next key
+    # (but we'll continue to track the current cursor-word for the rest of this function)
+    append-word cursor-word-ah
+    var cursor-call-path/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+    increment-final-element cursor-call-path
+    # if cursor is at end of word, that's all
+    var at-end?/eax: boolean <- cursor-at-end? cursor-word
+    compare at-end?, 0/false
+    {
+      break-if-=
+      return
+    }
+    # otherwise we're in the middle of a word
+    # move everything after cursor to the (just created) next word
+    var next-word-ah/eax: (addr handle word) <- get cursor-word, next
+    var _next-word/eax: (addr word) <- lookup *next-word-ah
+    var next-word/ebx: (addr word) <- copy _next-word
+    {
+      var at-end?/eax: boolean <- cursor-at-end? cursor-word
+      compare at-end?, 0/false
+      break-if-!=
+      var g/eax: grapheme <- pop-after-cursor cursor-word
+      add-grapheme-to-word next-word, g
+      loop
+    }
+    cursor-to-start next-word
+    return
+  }
+  compare key, 0xe/ctrl-n
+  $process:rename-word: {
+    break-if-!=
+    # TODO: ensure current word is not a function
+    # rename word at cursor
+    var new-name-ah/eax: (addr handle word) <- get sandbox, partial-name-for-cursor-word
+    allocate new-name-ah
+    var new-name/eax: (addr word) <- lookup *new-name-ah
+    initialize-word new-name
+    return
+  }
+  compare key, 4/ctrl-d
+  $process:define-function: {
+    break-if-!=
+    # define function out of line at cursor
+    var new-name-ah/eax: (addr handle word) <- get sandbox, partial-name-for-function
+    allocate new-name-ah
+    var new-name/eax: (addr word) <- lookup *new-name-ah
+    initialize-word new-name
+    return
+  }
+  # otherwise insert key within current word
+  var g/edx: grapheme <- copy key
+  var print?/eax: boolean <- real-grapheme? key
+  $process-sandbox-edit:real-grapheme: {
+    compare print?, 0/false
+    break-if-=
+    add-grapheme-to-word cursor-word, g
+    return
+  }
+  # silently ignore other hotkeys
+}
+
+# collect new name in partial-name-for-cursor-word, and then rename the word
+# at cursor to it
+# Precondition: cursor-call-path is a singleton (not within a call)
+fn process-sandbox-rename _sandbox: (addr sandbox), key: grapheme {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  var new-name-ah/edi: (addr handle word) <- get sandbox, partial-name-for-cursor-word
+  # if 'esc' pressed, cancel rename
+  compare key, 0x1b/esc
+  $process-sandbox-rename:cancel: {
+    break-if-!=
+    clear-object new-name-ah
+    return
+  }
+  # if 'enter' pressed, perform rename
+  compare key, 0xa/enter
+  $process-sandbox-rename:commit: {
+    break-if-!=
+#?     print-string 0, "rename\n"
+    # new line
+    var new-line-h: (handle line)
+    var new-line-ah/eax: (addr handle line) <- address new-line-h
+    allocate new-line-ah
+    var new-line/eax: (addr line) <- lookup *new-line-ah
+    initialize-line new-line
+    var new-line-word-ah/ecx: (addr handle word) <- get new-line, data
+    {
+      # move word at cursor to new line
+      var cursor-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      var cursor/eax: (addr call-path-element) <- lookup *cursor-ah
+      var word-at-cursor-ah/eax: (addr handle word) <- get cursor, word
+#?       print-string 0, "cursor before at word "
+#?       {
+#?         var cursor-word/eax: (addr word) <- lookup *word-at-cursor-ah
+#?         print-word 0, cursor-word
+#?         print-string 0, "\n"
+#?       }
+      move-word-contents word-at-cursor-ah, new-line-word-ah
+      # copy name to word at cursor
+      copy-word-contents-before-cursor new-name-ah, word-at-cursor-ah
+#?       print-string 0, "cursor after at word "
+#?       {
+#?         var cursor-word/eax: (addr word) <- lookup *word-at-cursor-ah
+#?         print-word 0, cursor-word
+#?         print-string 0, "\n"
+#?         var foo/eax: int <- copy cursor-word
+#?         print-int32-hex 0, foo
+#?         print-string 0, "\n"
+#?       }
+#?       print-string 0, "new name word "
+#?       {
+#?         var new-name/eax: (addr word) <- lookup *new-name-ah
+#?         print-word 0, new-name
+#?         print-string 0, "\n"
+#?         var foo/eax: int <- copy new-name
+#?         print-int32-hex 0, foo
+#?         print-string 0, "\n"
+#?       }
+    }
+    # prepend '=' to name
+    {
+      var new-name/eax: (addr word) <- lookup *new-name-ah
+      cursor-to-start new-name
+      add-grapheme-to-word new-name, 0x3d/=
+    }
+    # append name to new line
+    chain-words new-line-word-ah, new-name-ah
+    # new-line->next = sandbox->data
+    var new-line-next/ecx: (addr handle line) <- get new-line, next
+    var sandbox-slot/edx: (addr handle line) <- get sandbox, data
+    copy-object sandbox-slot, new-line-next
+    # sandbox->data = new-line
+    copy-handle new-line-h, sandbox-slot
+    # clear partial-name-for-cursor-word
+    clear-object new-name-ah
+#?     var cursor-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+#?     var cursor/eax: (addr call-path-element) <- lookup *cursor-ah
+#?     var word-at-cursor-ah/eax: (addr handle word) <- get cursor, word
+#?     print-string 0, "cursor after rename: "
+#?     {
+#?       var cursor-word/eax: (addr word) <- lookup *word-at-cursor-ah
+#?       print-word 0, cursor-word
+#?       print-string 0, " -- "
+#?       var foo/eax: int <- copy cursor-word
+#?       print-int32-hex 0, foo
+#?       print-string 0, "\n"
+#?     }
+    return
+  }
+  #
+  compare key, 0x7f/del  # backspace on Macs
+  $process-sandbox-rename:backspace: {
+    break-if-!=
+    # if not at start, delete grapheme before cursor
+    var new-name/eax: (addr word) <- lookup *new-name-ah
+    var at-start?/eax: boolean <- cursor-at-start? new-name
+    compare at-start?, 0/false
+    {
+      break-if-!=
+      var new-name/eax: (addr word) <- lookup *new-name-ah
+      delete-before-cursor new-name
+    }
+    return
+  }
+  # otherwise insert key within current word
+  var print?/eax: boolean <- real-grapheme? key
+  $process-sandbox-rename:real-grapheme: {
+    compare print?, 0/false
+    break-if-=
+    var new-name/eax: (addr word) <- lookup *new-name-ah
+    add-grapheme-to-word new-name, key
+    return
+  }
+  # silently ignore other hotkeys
+}
+
+# collect new name in partial-name-for-function, and then define the last line
+# of the sandbox to be a new function with that name. Replace the last line
+# with a call to the appropriate function.
+# Precondition: cursor-call-path is a singleton (not within a call)
+fn process-sandbox-define _sandbox: (addr sandbox), functions: (addr handle function), key: grapheme {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  var new-name-ah/edi: (addr handle word) <- get sandbox, partial-name-for-function
+  # if 'esc' pressed, cancel define
+  compare key, 0x1b/esc
+  $process-sandbox-define:cancel: {
+    break-if-!=
+    clear-object new-name-ah
+    return
+  }
+  # if 'enter' pressed, perform define
+  compare key, 0xa/enter
+  $process-sandbox-define:commit: {
+    break-if-!=
+#?     print-string 0, "define\n"
+    # create new function
+    var new-function: (handle function)
+    var new-function-ah/ecx: (addr handle function) <- address new-function
+    allocate new-function-ah
+    var _new-function/eax: (addr function) <- lookup *new-function-ah
+    var new-function/ebx: (addr function) <- copy _new-function
+    var dest/edx: (addr handle function) <- get new-function, next
+    copy-object functions, dest
+    copy-object new-function-ah, functions
+    # set function name to new-name
+    var new-name/eax: (addr word) <- lookup *new-name-ah
+    var dest/edx: (addr handle array byte) <- get new-function, name
+    word-to-string new-name, dest
+    # move final line to body
+    var body-ah/eax: (addr handle line) <- get new-function, body
+    allocate body-ah
+    var body/eax: (addr line) <- lookup *body-ah
+    var body-contents/ecx: (addr handle word) <- get body, data
+    var final-line-storage: (handle line)
+    var final-line-ah/eax: (addr handle line) <- address final-line-storage
+    final-line sandbox, final-line-ah
+    var final-line/eax: (addr line) <- lookup *final-line-ah
+    var final-line-contents/eax: (addr handle word) <- get final-line, data
+    copy-object final-line-contents, body-contents
+    var cursor-word-ah/ecx: (addr handle word) <- get new-function, cursor-word
+    copy-object final-line-contents, cursor-word-ah
+    {
+      var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+      cursor-to-start cursor-word
+    }
+    #
+    copy-unbound-words-to-args functions
+    #
+    var empty-word: (handle word)
+    copy-handle empty-word, final-line-contents
+    construct-call functions, final-line-contents
+    # clear partial-name-for-function
+    var empty-word: (handle word)
+    copy-handle empty-word, new-name-ah
+    # update cursor
+    var final-line/eax: (addr line) <- lookup final-line-storage
+    var cursor-call-path-ah/ecx: (addr handle call-path-element) <- get sandbox, cursor-call-path
+    allocate cursor-call-path-ah  # leak
+    initialize-path-from-line final-line, cursor-call-path-ah
+    return
+  }
+  #
+  compare key, 0x7f/del  # backspace on Macs
+  $process-sandbox-define:backspace: {
+    break-if-!=
+    # if not at start, delete grapheme before cursor
+    var new-name/eax: (addr word) <- lookup *new-name-ah
+    var at-start?/eax: boolean <- cursor-at-start? new-name
+    compare at-start?, 0/false
+    {
+      break-if-!=
+      var new-name/eax: (addr word) <- lookup *new-name-ah
+      delete-before-cursor new-name
+    }
+    return
+  }
+  # otherwise insert key within current word
+  var print?/eax: boolean <- real-grapheme? key
+  $process-sandbox-define:real-grapheme: {
+    compare print?, 0/false
+    break-if-=
+    var new-name/eax: (addr word) <- lookup *new-name-ah
+    add-grapheme-to-word new-name, key
+    return
+  }
+  # silently ignore other hotkeys
+}
+
+# extract from the body of the first function in 'functions' all words that
+# aren't defined in the rest of 'functions'. Prepend them in reverse order.
+# Assumes function body is a single line for now.
+fn copy-unbound-words-to-args _functions: (addr handle function) {
+  # target
+  var target-ah/eax: (addr handle function) <- copy _functions
+  var _target/eax: (addr function) <- lookup *target-ah
+  var target/esi: (addr function) <- copy _target
+  var dest-ah/edi: (addr handle word) <- get target, args
+  # next
+  var functions-ah/edx: (addr handle function) <- get target, next
+  # src
+  var line-ah/eax: (addr handle line) <- get target, body
+  var line/eax: (addr line) <- lookup *line-ah
+  var curr-ah/eax: (addr handle word) <- get line, data
+  var curr/eax: (addr word) <- lookup *curr-ah
+  {
+    compare curr, 0
+    break-if-=
+    $copy-unbound-words-to-args:loop-iter: {
+      # is it a number?
+      {
+        var is-int?/eax: boolean <- word-is-decimal-integer? curr
+        compare is-int?, 0/false
+        break-if-!= $copy-unbound-words-to-args:loop-iter
+      }
+      # is it a pre-existing function?
+      var bound?/ebx: boolean <- bound-function? curr, functions-ah
+      compare bound?, 0/false
+      break-if-!=
+      # is it already bound as an arg?
+      var dup?/ebx: boolean <- arg-exists? _functions, curr  # _functions = target-ah
+      compare dup?, 0/false
+      break-if-!= $copy-unbound-words-to-args:loop-iter
+      # push copy of curr before dest-ah
+      var rest-h: (handle word)
+      var rest-ah/ecx: (addr handle word) <- address rest-h
+      copy-object dest-ah, rest-ah
+      copy-word curr, dest-ah
+      chain-words dest-ah, rest-ah
+    }
+    var next-ah/ecx: (addr handle word) <- get curr, next
+    curr <- lookup *next-ah
+    loop
+  }
+}
+
+fn bound-function? w: (addr word), functions-ah: (addr handle function) -> _/ebx: boolean {
+  var result/ebx: boolean <- copy 1/true
+  {
+    ## numbers
+    # if w == "+" return true
+    var subresult/eax: boolean <- word-equal? w, "+"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "-" return true
+    subresult <- word-equal? w, "-"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "*" return true
+    subresult <- word-equal? w, "*"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "/" return true
+    subresult <- word-equal? w, "/"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "sqrt" return true
+    subresult <- word-equal? w, "sqrt"
+    compare subresult, 0/false
+    break-if-!=
+    ## strings/arrays
+    # if w == "len" return true
+    subresult <- word-equal? w, "len"
+    compare subresult, 0/false
+    break-if-!=
+    ## files
+    # if w == "open" return true
+    subresult <- word-equal? w, "open"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "read" return true
+    subresult <- word-equal? w, "read"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "slurp" return true
+    subresult <- word-equal? w, "slurp"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "lines" return true
+    subresult <- word-equal? w, "lines"
+    compare subresult, 0/false
+    break-if-!=
+    ## screens
+    # if w == "fake-screen" return true
+    subresult <- word-equal? w, "fake-screen"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "print" return true
+    subresult <- word-equal? w, "print"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "move" return true
+    subresult <- word-equal? w, "move"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "up" return true
+    subresult <- word-equal? w, "up"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "down" return true
+    subresult <- word-equal? w, "down"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "left" return true
+    subresult <- word-equal? w, "left"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "right" return true
+    subresult <- word-equal? w, "right"
+    compare subresult, 0/false
+    break-if-!=
+    ## hacks
+    # if w == "dup" return true
+    subresult <- word-equal? w, "dup"
+    compare subresult, 0/false
+    break-if-!=
+    # if w == "swap" return true
+    subresult <- word-equal? w, "swap"
+    compare subresult, 0/false
+    break-if-!=
+    # return w in functions
+    var out-h: (handle function)
+    var out/eax: (addr handle function) <- address out-h
+    callee functions-ah, w, out
+    var found?/eax: (addr function) <- lookup *out
+    result <- copy found?
+  }
+  return result
+}
+
+fn arg-exists? _f-ah: (addr handle function), arg: (addr word) -> _/ebx: boolean {
+  var f-ah/eax: (addr handle function) <- copy _f-ah
+  var f/eax: (addr function) <- lookup *f-ah
+  var args-ah/eax: (addr handle word) <- get f, args
+  var result/ebx: boolean <- word-exists? args-ah, arg
+  return result
+}
+
+# construct a call to `f` with copies of exactly its args
+fn construct-call _f-ah: (addr handle function), _dest-ah: (addr handle word) {
+  var f-ah/eax: (addr handle function) <- copy _f-ah
+  var _f/eax: (addr function) <- lookup *f-ah
+  var f/esi: (addr function) <- copy _f
+  # append args in reverse
+  var args-ah/eax: (addr handle word) <- get f, args
+  var dest-ah/edi: (addr handle word) <- copy _dest-ah
+  copy-words-in-reverse args-ah, dest-ah
+  # append name
+  var name-ah/eax: (addr handle array byte) <- get f, name
+  var name/eax: (addr array byte) <- lookup *name-ah
+  append-word-at-end-with dest-ah, name
+}
+
+fn word-index _words: (addr handle word), _n: int, out: (addr handle word) {
+  var n/ecx: int <- copy _n
+  {
+    compare n, 0
+    break-if-!=
+    copy-object _words, out
+    return
+  }
+  var words-ah/eax: (addr handle word) <- copy _words
+  var words/eax: (addr word) <- lookup *words-ah
+  var next/eax: (addr handle word) <- get words, next
+  n <- decrement
+  word-index next, n, out
+}
+
+fn toggle-cursor-word _sandbox: (addr sandbox) {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  var expanded-words/edi: (addr handle call-path) <- get sandbox, expanded-words
+  var cursor-call-path/ecx: (addr handle call-path-element) <- get sandbox, cursor-call-path
+#?   print-string 0, "cursor call path: "
+#?   dump-call-path-element 0, cursor-call-path
+#?   print-string 0, "expanded words:\n"
+#?   dump-call-paths 0, expanded-words
+  var already-expanded?/eax: boolean <- find-in-call-paths expanded-words, cursor-call-path
+  compare already-expanded?, 0/false
+  {
+    break-if-!=
+#?     print-string 0, "expand\n"
+    # if not already-expanded, insert
+    insert-in-call-path expanded-words cursor-call-path
+#?     print-string 0, "expanded words now:\n"
+#?     dump-call-paths 0, expanded-words
+    return
+  }
+  {
+    break-if-=
+    # otherwise delete
+    delete-in-call-path expanded-words cursor-call-path
+  }
+}
+
+fn append-line _sandbox: (addr sandbox) {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  var line-ah/ecx: (addr handle line) <- get sandbox, data
+  {
+    var line/eax: (addr line) <- lookup *line-ah
+    var next-line-ah/edx: (addr handle line) <- get line, next
+    var next-line/eax: (addr line) <- lookup *next-line-ah
+    compare next-line, 0
+    break-if-=
+    line-ah <- copy next-line-ah
+    loop
+  }
+  var line/eax: (addr line) <- lookup *line-ah
+  var final-line-ah/edx: (addr handle line) <- get line, next
+  allocate final-line-ah
+  var final-line/eax: (addr line) <- lookup *final-line-ah
+  initialize-line final-line
+  var final-prev/eax: (addr handle line) <- get final-line, prev
+  copy-object line-ah, final-prev
+  # clear cursor
+  var final-line/eax: (addr line) <- lookup *final-line-ah
+  var word-ah/ecx: (addr handle word) <- get final-line, data
+  var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+  var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+  var dest/eax: (addr handle word) <- get cursor-call-path, word
+  copy-object word-ah, dest
+}
+
+#############
+# Visualize
+#############
+
+fn evaluate-environment _env: (addr environment), stack: (addr value-stack) {
+  var env/esi: (addr environment) <- copy _env
+  # functions
+  var functions/edx: (addr handle function) <- get env, functions
+  # line
+  var sandbox-ah/esi: (addr handle sandbox) <- get env, sandboxes
+  var sandbox/eax: (addr sandbox) <- lookup *sandbox-ah
+  var line-ah/eax: (addr handle line) <- get sandbox, data
+  var _line/eax: (addr line) <- lookup *line-ah
+  var line/esi: (addr line) <- copy _line
+  evaluate functions, 0, line, 0, stack
+}
+
+fn render _env: (addr environment) {
+#?   print-string 0, "== render\n"
+  var env/esi: (addr environment) <- copy _env
+  clear-canvas env
+  # menu
+  render-menu env
+  # screen
+  var screen-ah/eax: (addr handle screen) <- get env, screen
+  var _screen/eax: (addr screen) <- lookup *screen-ah
+  var screen/edi: (addr screen) <- copy _screen
+  # functions
+  var sep-col/eax: (addr int) <- get env, code-separator-col
+  var functions/edx: (addr handle function) <- get env, functions
+  render-functions screen, *sep-col, env
+  # sandbox
+  var repl-col/ecx: int <- copy *sep-col
+  repl-col <- add 2/repl-margin-left
+  var cursor-sandbox-ah/eax: (addr handle sandbox) <- get env, cursor-sandbox
+  var cursor-sandbox/eax: (addr sandbox) <- lookup *cursor-sandbox-ah
+  # bindings
+  var bindings-storage: table
+  var bindings/ebx: (addr table) <- address bindings-storage
+  initialize-table bindings, 0x10
+#?   print-string 0, "render-sandbox {\n"
+  render-sandbox screen, functions, bindings, cursor-sandbox, 3, repl-col
+#?   print-string 0, "render-sandbox }\n"
+  # dialogs
+  render-goto-dialog screen, env
+  #
+  position-cursor screen, env
+}
+
+# draw a wordstar-style cheatsheet of shortcuts on the bottom line of the screen
+fn render-menu _env: (addr environment) {
+  var env/esi: (addr environment) <- copy _env
+  var cursor-function-ah/eax: (addr handle function) <- get env, cursor-function
+  var cursor-function/eax: (addr function) <- lookup *cursor-function-ah
+  {
+    compare cursor-function, 0
+    break-if-=
+    render-function-menu env
+    return
+  }
+  var cursor-sandbox-ah/eax: (addr handle sandbox) <- get env, cursor-sandbox
+  var cursor-sandbox/eax: (addr sandbox) <- lookup *cursor-sandbox-ah
+  {
+    compare cursor-sandbox, 0
+    break-if-=
+    render-sandbox-menu env
+    return
+  }
+}
+
+# HACK: areas currently responsible for positioning their dialogs' cursors. So
+# we just do nothing here if a dialog is up.
+fn position-cursor screen: (addr screen), _env: (addr environment) {
+  var env/esi: (addr environment) <- copy _env
+  var goto-function-ah/eax: (addr handle word) <- get env, partial-function-name
+  var goto-function/eax: (addr word) <- lookup *goto-function-ah
+  {
+    compare goto-function, 0
+    break-if-=
+    return
+  }
+  var cursor-function-ah/eax: (addr handle function) <- get env, cursor-function
+  var cursor-function/eax: (addr function) <- lookup *cursor-function-ah
+  {
+    compare cursor-function, 0
+    break-if-=
+    var cursor-row/ecx: (addr int) <- get cursor-function, cursor-row
+    var cursor-col/eax: (addr int) <- get cursor-function, cursor-col
+    move-cursor screen, *cursor-row, *cursor-col
+    return
+  }
+  var cursor-sandbox-ah/eax: (addr handle sandbox) <- get env, cursor-sandbox
+  var cursor-sandbox/eax: (addr sandbox) <- lookup *cursor-sandbox-ah
+  {
+    compare cursor-sandbox, 0
+    break-if-=
+    # if in a dialog, return
+    {
+      var partial-word-rename-ah/eax: (addr handle word) <- get cursor-sandbox, partial-name-for-cursor-word
+      var partial-word-rename/eax: (addr word) <- lookup *partial-word-rename-ah
+      compare partial-word-rename, 0
+      break-if-=
+      return
+    }
+    {
+      var partial-function-name-ah/eax: (addr handle word) <- get cursor-sandbox, partial-name-for-function
+      var partial-function-name/eax: (addr word) <- lookup *partial-function-name-ah
+      compare partial-function-name, 0
+      break-if-=
+      return
+    }
+    var cursor-row/ecx: (addr int) <- get cursor-sandbox, cursor-row
+    var cursor-col/eax: (addr int) <- get cursor-sandbox, cursor-col
+    move-cursor screen, *cursor-row, *cursor-col
+  }
+}
+
+fn render-goto-dialog screen: (addr screen), _env: (addr environment) {
+  var env/esi: (addr environment) <- copy _env
+  var goto-function-mode-ah?/eax: (addr handle word) <- get env, partial-function-name
+  var goto-function-mode?/eax: (addr word) <- lookup *goto-function-mode-ah?
+  compare goto-function-mode?, 0/false
+  break-if-=
+  # clear a space for the dialog
+  var top-row/ebx: int <- copy 3
+  var bottom-row/edx: int <- copy 9
+  var sep-col/eax: (addr int) <- get env, code-separator-col
+  var left-col/ecx: int <- copy *sep-col
+  left-col <- subtract 0x10
+  var right-col/eax: int <- copy *sep-col
+  right-col <- add 0x10
+  clear-rect screen, top-row, left-col, bottom-row, right-col
+  draw-box screen, top-row, left-col, bottom-row, right-col
+  # render a little menu for the dialog
+  var menu-row/eax: int <- copy bottom-row
+  menu-row <- decrement
+  var menu-col/edx: int <- copy left-col
+  menu-col <- add 2
+  move-cursor screen, menu-row, menu-col
+  start-reverse-video screen
+  print-string screen, " esc "
+  reset-formatting screen
+  print-string screen, " cancel  "
+  start-reverse-video screen
+  print-string screen, " enter "
+  reset-formatting screen
+  print-string screen, " jump  "
+  # draw the word, positioned appropriately around the cursor
+  var start-col/ecx: int <- copy left-col
+  start-col <- increment
+  move-cursor screen, 6, start-col  # cursor-row
+  var word-ah?/edx: (addr handle word) <- get env, partial-function-name
+  var word/eax: (addr word) <- lookup *word-ah?
+  print-word screen, word
+}
+
+fn render-sandbox screen: (addr screen), functions: (addr handle function), bindings: (addr table), _sandbox: (addr sandbox), top-row: int, left-col: int {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  # line
+  var curr-line-ah/eax: (addr handle line) <- get sandbox, data
+  var _curr-line/eax: (addr line) <- lookup *curr-line-ah
+  var curr-line/ecx: (addr line) <- copy _curr-line
+  #
+  var curr-row/edx: int <- copy top-row
+  # cursor row, col
+  var cursor-row-addr: (addr int)
+  var tmp/eax: (addr int) <- get sandbox, cursor-row
+  copy-to cursor-row-addr, tmp
+  var cursor-col-addr: (addr int)
+  tmp <- get sandbox, cursor-col
+  copy-to cursor-col-addr, tmp
+  # render all but final line without stack
+#?   print-string 0, "render all but final line\n"
+  {
+    var next-line-ah/eax: (addr handle line) <- get curr-line, next
+    var next-line/eax: (addr line) <- lookup *next-line-ah
+    compare next-line, 0
+    break-if-=
+    {
+      var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+      var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+      var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+      var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+      # it's enough to pass in the first word of the path, because if the path isn't a singleton the word is guaranteed to be unique
+      render-line-without-stack screen, curr-line, curr-row, left-col, cursor-word, cursor-row-addr, cursor-col-addr
+    }
+    curr-line <- copy next-line
+    curr-row <- add 2
+    loop
+  }
+  #
+  render-final-line-with-stack screen, functions, bindings, sandbox, curr-row, left-col, cursor-row-addr, cursor-col-addr
+  # at most one of the following dialogs will be rendered
+  render-rename-dialog screen, sandbox
+  render-define-dialog screen, sandbox
+}
+
+fn render-final-line-with-stack screen: (addr screen), functions: (addr handle function), bindings: (addr table), _sandbox: (addr sandbox), top-row: int, left-col: int, cursor-row-addr: (addr int), cursor-col-addr: (addr int) {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  # expanded-words
+  var expanded-words/edi: (addr handle call-path) <- get sandbox, expanded-words
+  # cursor-word
+  var cursor-call-path-ah/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+  var cursor-call-path/eax: (addr call-path-element) <- lookup *cursor-call-path-ah
+  var cursor-word-ah/eax: (addr handle word) <- get cursor-call-path, word
+  var _cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+  var cursor-word/ebx: (addr word) <- copy _cursor-word
+#?   print-string 0, "word at cursor: "
+#?   print-word 0, cursor-word
+#?   print-string 0, "\n"
+  # cursor-call-path
+  var cursor-call-path: (addr handle call-path-element)
+  {
+    var src/eax: (addr handle call-path-element) <- get sandbox, cursor-call-path
+    copy-to cursor-call-path, src
+  }
+  # first line
+  var first-line-ah/eax: (addr handle line) <- get sandbox, data
+  var _first-line/eax: (addr line) <- lookup *first-line-ah
+  var first-line/edx: (addr line) <- copy _first-line
+  # final line
+  var final-line-storage: (handle line)
+  var final-line-ah/eax: (addr handle line) <- address final-line-storage
+  final-line sandbox, final-line-ah
+  var final-line/eax: (addr line) <- lookup *final-line-ah
+  # curr-path
+  var curr-path-storage: (handle call-path-element)
+  var curr-path/ecx: (addr handle call-path-element) <- address curr-path-storage
+  allocate curr-path  # leak
+  initialize-path-from-line final-line, curr-path
+  #
+  var dummy/ecx: int <- render-line screen, functions, bindings, first-line, final-line, expanded-words, top-row, left-col, curr-path, cursor-word, cursor-call-path, cursor-row-addr, cursor-col-addr
+}
+
+fn final-line _sandbox: (addr sandbox), out: (addr handle line) {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  var curr-line-ah/ecx: (addr handle line) <- get sandbox, data
+  {
+    var curr-line/eax: (addr line) <- lookup *curr-line-ah
+    var next-line-ah/edx: (addr handle line) <- get curr-line, next
+    var next-line/eax: (addr line) <- lookup *next-line-ah
+    compare next-line, 0
+    break-if-=
+    curr-line-ah <- copy next-line-ah
+    loop
+  }
+  copy-object curr-line-ah, out
+}
+
+fn render-rename-dialog screen: (addr screen), _sandbox: (addr sandbox) {
+  var sandbox/edi: (addr sandbox) <- copy _sandbox
+  var rename-word-mode-ah?/ecx: (addr handle word) <- get sandbox, partial-name-for-cursor-word
+  var rename-word-mode?/eax: (addr word) <- lookup *rename-word-mode-ah?
+  compare rename-word-mode?, 0/false
+  break-if-=
+  # clear a space for the dialog
+  var cursor-row/ebx: (addr int) <- get sandbox, cursor-row
+  var top-row/eax: int <- copy *cursor-row
+  top-row <- subtract 3
+  var bottom-row/ecx: int <- copy *cursor-row
+  bottom-row <- add 3
+  var cursor-col/ebx: (addr int) <- get sandbox, cursor-col
+  var left-col/edx: int <- copy *cursor-col
+  left-col <- subtract 0x10
+  var right-col/ebx: int <- copy *cursor-col
+  right-col <- add 0x10
+  clear-rect screen, top-row, left-col, bottom-row, right-col
+  draw-box screen, top-row, left-col, bottom-row, right-col
+  # render a little menu for the dialog
+  var menu-row/ecx: int <- copy bottom-row
+  menu-row <- decrement
+  var menu-col/edx: int <- copy left-col
+  menu-col <- add 2
+  move-cursor screen, menu-row, menu-col
+  start-reverse-video screen
+  print-string screen, " esc "
+  reset-formatting screen
+  print-string screen, " cancel  "
+  start-reverse-video screen
+  print-string screen, " enter "
+  reset-formatting screen
+  print-string screen, " rename  "
+  # draw the word, positioned appropriately around the cursor
+  var cursor-col/ebx: (addr int) <- get sandbox, cursor-col
+  var start-col/ecx: int <- copy *cursor-col
+  var word-ah?/edx: (addr handle word) <- get sandbox, partial-name-for-cursor-word
+  var word/eax: (addr word) <- lookup *word-ah?
+  var cursor-index/eax: int <- cursor-index word
+  start-col <- subtract cursor-index
+  var cursor-row/ebx: (addr int) <- get sandbox, cursor-row
+  move-cursor screen, *cursor-row, start-col
+  var word/eax: (addr word) <- lookup *word-ah?
+  print-word screen, word
+}
+
+fn render-define-dialog screen: (addr screen), _sandbox: (addr sandbox) {
+  var sandbox/edi: (addr sandbox) <- copy _sandbox
+  var define-function-mode-ah?/ecx: (addr handle word) <- get sandbox, partial-name-for-function
+  var define-function-mode?/eax: (addr word) <- lookup *define-function-mode-ah?
+  compare define-function-mode?, 0/false
+  break-if-=
+  # clear a space for the dialog
+  var cursor-row/ebx: (addr int) <- get sandbox, cursor-row
+  var top-row/eax: int <- copy *cursor-row
+  top-row <- subtract 3
+  var bottom-row/ecx: int <- copy *cursor-row
+  bottom-row <- add 3
+  var cursor-col/ebx: (addr int) <- get sandbox, cursor-col
+  var left-col/edx: int <- copy *cursor-col
+  left-col <- subtract 0x10
+  var right-col/ebx: int <- copy *cursor-col
+  right-col <- add 0x10
+  clear-rect screen, top-row, left-col, bottom-row, right-col
+  draw-box screen, top-row, left-col, bottom-row, right-col
+  # render a little menu for the dialog
+  var menu-row/ecx: int <- copy bottom-row
+  menu-row <- decrement
+  var menu-col/edx: int <- copy left-col
+  menu-col <- add 2
+  move-cursor screen, menu-row, menu-col
+  start-reverse-video screen
+  print-string screen, " esc "
+  reset-formatting screen
+  print-string screen, " cancel  "
+  start-reverse-video screen
+  print-string screen, " enter "
+  reset-formatting screen
+  print-string screen, " define  "
+  # draw the word, positioned appropriately around the cursor
+  var cursor-col/ebx: (addr int) <- get sandbox, cursor-col
+  var start-col/ecx: int <- copy *cursor-col
+  var word-ah?/edx: (addr handle word) <- get sandbox, partial-name-for-function
+  var word/eax: (addr word) <- lookup *word-ah?
+  var cursor-index/eax: int <- cursor-index word
+  start-col <- subtract cursor-index
+  var cursor-row/ebx: (addr int) <- get sandbox, cursor-row
+  move-cursor screen, *cursor-row, start-col
+  var word/eax: (addr word) <- lookup *word-ah?
+  print-word screen, word
+}
+
+# Render just the words in 'line'.
+fn render-line-without-stack screen: (addr screen), _line: (addr line), curr-row: int, left-col: int, cursor-word: (addr word), cursor-row-addr: (addr int), cursor-col-addr: (addr int) {
+  # curr-word
+  var line/eax: (addr line) <- copy _line
+  var first-word-ah/eax: (addr handle word) <- get line, data
+  var _curr-word/eax: (addr word) <- lookup *first-word-ah
+  var curr-word/esi: (addr word) <- copy _curr-word
+  #
+  # loop-carried dependency
+  var curr-col/ecx: int <- copy left-col
+  #
+  {
+    compare curr-word, 0
+    break-if-=
+#?     print-string 0, "-- word in penultimate lines: "
+#?     {
+#?       var foo/eax: int <- copy curr-word
+#?       print-int32-hex 0, foo
+#?     }
+#?     print-string 0, "\n"
+    var old-col/edx: int <- copy curr-col
+    move-cursor screen, curr-row, curr-col
+    print-word screen, curr-word
+    {
+      var max-width/eax: int <- word-length curr-word
+      curr-col <- add max-width
+      curr-col <- add 1/margin-right
+    }
+    # cache cursor column if necessary
+    {
+      compare curr-word, cursor-word
+      break-if-!=
+#?       print-string 0, "Cursor at "
+#?       print-int32-decimal 0, curr-row
+#?       print-string 0, ", "
+#?       print-int32-decimal 0, old-col
+#?       print-string 0, "\n"
+#?       print-string 0, "contents: "
+#?       print-word 0, cursor-word
+#?       print-string 0, "\n"
+#?       {
+#?         var foo/eax: int <- copy cursor-word
+#?         print-int32-hex 0, foo
+#?         print-string 0, "\n"
+#?       }
+      var dest/ecx: (addr int) <- copy cursor-row-addr
+      var src/eax: int <- copy curr-row
+      copy-to *dest, src
+      dest <- copy cursor-col-addr
+      copy-to *dest, old-col
+      var cursor-index-in-word/eax: int <- cursor-index curr-word
+      add-to *dest, cursor-index-in-word
+    }
+    # loop update
+    var next-word-ah/edx: (addr handle word) <- get curr-word, next
+    var _curr-word/eax: (addr word) <- lookup *next-word-ah
+    curr-word <- copy _curr-word
+    loop
+  }
+}
+
+fn call-depth-at-cursor _sandbox: (addr sandbox) -> _/eax: int {
+  var sandbox/esi: (addr sandbox) <- copy _sandbox
+  var cursor-call-path/edi: (addr handle call-path-element) <- get sandbox, cursor-call-path
+  var result/eax: int <- call-path-element-length cursor-call-path
+  result <- add 2  # input-row - 1
+  return result
+}
+
+fn call-path-element-length _x: (addr handle call-path-element) -> _/eax: int {
+  var curr-ah/ecx: (addr handle call-path-element) <- copy _x
+  var result/edi: int <- copy 0
+  {
+    var curr/eax: (addr call-path-element) <- lookup *curr-ah
+    compare curr, 0
+    break-if-=
+    curr-ah <- get curr, next
+    result <- increment
+    loop
+  }
+  return result
+}
+
+# Render the line of words in line, along with the state of the stack under each word.
+# Also render any expanded function calls using recursive calls.
+#
+# Along the way, compute the column the cursor should be positioned at (cursor-col-addr).
+fn render-line screen: (addr screen), functions: (addr handle function), bindings: (addr table), first-line: (addr line), _line: (addr line), expanded-words: (addr handle call-path), top-row: int, left-col: int, curr-path: (addr handle call-path-element), cursor-word: (addr word), cursor-call-path: (addr handle call-path-element), cursor-row-addr: (addr int), cursor-col-addr: (addr int) -> _/ecx: int {
+#?   print-string 0, "render-line\n"
+#?   dump-table bindings
+  # curr-word
+  var line/esi: (addr line) <- copy _line
+  var first-word-ah/eax: (addr handle word) <- get line, data
+  var curr-word/eax: (addr word) <- lookup *first-word-ah
+  #
+  # loop-carried dependency
+  var curr-col/ecx: int <- copy left-col
+  #
+  {
+    compare curr-word, 0
+    break-if-=
+#?     print-string 0, "-- word "
+#?     print-word 0, curr-word
+#?     print-string 0, "\n"
+    # if necessary, first render columns for subsidiary stack
+    $render-line:subsidiary: {
+      {
+#?         print-string 0, "check sub\n"
+        var display-subsidiary-stack?/eax: boolean <- find-in-call-paths expanded-words, curr-path
+        compare display-subsidiary-stack?, 0/false
+        break-if-= $render-line:subsidiary
+      }
+#?       print-string 0, "render subsidiary stack\n"
+      # does function exist?
+      var callee/edi: (addr function) <- copy 0
+      {
+        var callee-h: (handle function)
+        var callee-ah/ecx: (addr handle function) <- address callee-h
+        callee functions, curr-word, callee-ah
+        var _callee/eax: (addr function) <- lookup *callee-ah
+        callee <- copy _callee
+        compare callee, 0
+        break-if-= $render-line:subsidiary
+      }
+      move-cursor screen, top-row, curr-col
+      start-color screen, 8, 7
+      print-word screen, curr-word
+      {
+        var word-len/eax: int <- word-length curr-word
+        curr-col <- add word-len
+        curr-col <- add 2
+        increment top-row
+      }
+      # obtain stack at call site
+      var stack-storage: value-stack
+      var stack/edx: (addr value-stack) <- address stack-storage
+      initialize-value-stack stack, 0x10
+      {
+        var prev-word-ah/eax: (addr handle word) <- get curr-word, prev
+        var prev-word/eax: (addr word) <- lookup *prev-word-ah
+        compare prev-word, 0
+        break-if-=
+        var bindings2-storage: table
+        var bindings2/ebx: (addr table) <- address bindings2-storage
+        deep-copy-table bindings, bindings2
+        evaluate functions, bindings2, first-line, prev-word, stack
+      }
+      # construct new bindings
+      var callee-bindings-storage: table
+      var callee-bindings/esi: (addr table) <- address callee-bindings-storage
+      initialize-table callee-bindings, 0x10
+      bind-args callee, stack, callee-bindings
+      # obtain body
+      var callee-body-ah/eax: (addr handle line) <- get callee, body
+      var callee-body/eax: (addr line) <- lookup *callee-body-ah
+      var callee-body-first-word/edx: (addr handle word) <- get callee-body, data
+      # - render subsidiary stack
+      push-to-call-path-element curr-path, callee-body-first-word  # leak
+#?       print-string 0, "subsidiary {\n"
+#?       dump-table callee-bindings
+#?       syscall_exit
+      curr-col <- render-line screen, functions, callee-bindings, callee-body, callee-body, expanded-words, top-row, curr-col, curr-path, cursor-word, cursor-call-path, cursor-row-addr, cursor-col-addr
+#?       print-string 0, "}\n"
+      drop-from-call-path-element curr-path
+      #
+      move-cursor screen, top-row, curr-col
+      print-code-point screen, 0x21d7/⇗
+      #
+      curr-col <- add 2
+      decrement top-row
+    }
+    # render main column
+    var old-col/edx: int <- copy curr-col
+    var bindings2-storage: table
+    var bindings2/ebx: (addr table) <- address bindings2-storage
+#?     print-string 0, "deep-copy {\n"
+    deep-copy-table bindings, bindings2
+#?     print-string 0, "}\n"
+#?     print-string 0, "render column {\n"
+    curr-col <- render-column screen, functions, bindings2, first-line, line, curr-word, top-row, curr-col
+#?     print-string 0, "}\n"
+    # cache cursor column if necessary
+    $render-line:cache-cursor-column: {
+      {
+        var found?/eax: boolean <- call-path-element-match? curr-path, cursor-call-path
+        compare found?, 0/false
+        break-if-= $render-line:cache-cursor-column
+      }
+      var dest/edi: (addr int) <- copy cursor-row-addr
+      {
+        var src/eax: int <- copy top-row
+        copy-to *dest, src
+      }
+      dest <- copy cursor-col-addr
+      copy-to *dest, old-col
+      var cursor-index-in-word/eax: int <- cursor-index curr-word
+      add-to *dest, cursor-index-in-word
+    }
+    # loop update
+#?     print-string 0, "next word\n"
+    var next-word-ah/edx: (addr handle word) <- get curr-word, next
+    curr-word <- lookup *next-word-ah
+#?     {
+#?       var foo/eax: int <- copy curr-word
+#?       print-int32-hex 0, foo
+#?       print-string 0, "\n"
+#?     }
+    increment-final-element curr-path
+    loop
+  }
+  return curr-col
+}
+
+fn callee functions: (addr handle function), word: (addr word), out: (addr handle function) {
+  var stream-storage: (stream byte 0x10)
+  var stream/esi: (addr stream byte) <- address stream-storage
+  emit-word word, stream
+  find-function functions, stream, out
+}
+
+# Render:
+#   - starting at top-row, left-col: final-word
+#   - starting somewhere below at left-col: the stack result from interpreting first-world to final-word (inclusive)
+#
+# Return the farthest column written.
+fn render-column screen: (addr screen), functions: (addr handle function), bindings: (addr table), first-line: (addr line), line: (addr line), final-word: (addr word), top-row: int, left-col: int -> _/ecx: int {
+#?   print-string 0, "render-column\n"
+#?   dump-table bindings
+  var max-width/esi: int <- copy 0
+  {
+    # compute stack
+    var stack: value-stack
+    var stack-addr/edi: (addr value-stack) <- address stack
+    initialize-value-stack stack-addr, 0x10/max-words
+    # copy bindings
+    var bindings2-storage: table
+    var bindings2/ebx: (addr table) <- address bindings2-storage
+#?     print-string 0, "deep copy table {\n"
+    deep-copy-table bindings, bindings2
+#?     print-string 0, "}\n"
+    evaluate functions, bindings2, first-line, final-word, stack-addr
+    # indent stack
+    var indented-col/ebx: int <- copy left-col
+    indented-col <- add 1/margin-right
+    # render stack
+    var curr-row/edx: int <- copy top-row
+    curr-row <- add 2/stack-margin-top
+    {
+      var top-addr/ecx: (addr int) <- get stack-addr, top
+      compare *top-addr, 0
+      break-if-<=
+      decrement *top-addr
+      var data-ah/eax: (addr handle array value) <- get stack-addr, data
+      var data/eax: (addr array value) <- lookup *data-ah
+      var top/ecx: int <- copy *top-addr
+      var dest-offset/ecx: (offset value) <- compute-offset data, top
+      var val/eax: (addr value) <- index data, dest-offset
+      render-value-at screen, curr-row, indented-col, val, 1/top-level=true
+      {
+        var width/eax: int <- value-width val, 1
+        compare width, max-width
+        break-if-<=
+        max-width <- copy width
+      }
+      var height/eax: int <- value-height val
+      curr-row <- add height
+      loop
+    }
+  }
+
+  max-width <- add 2  # spaces on either side of items on the stack
+
+  # render word, initialize result
+  reset-formatting screen
+  move-cursor screen, top-row, left-col
+  print-word screen, final-word
+  {
+    var width/eax: int <- word-length final-word
+    compare width, max-width
+    break-if-<=
+    max-width <- copy width
+  }
+
+  # post-process right-col
+  var right-col/ecx: int <- copy left-col
+  right-col <- add max-width
+  right-col <- add 1/margin-right
+#?   print-int32-decimal 0, left-col
+#?   print-string 0, " => "
+#?   print-int32-decimal 0, right-col
+#?   print-string 0, "\n"
+  return right-col
+}
+
+fn render-function-menu _env: (addr environment) {
+  var env/esi: (addr environment) <- copy _env
+  var screen-ah/edi: (addr handle screen) <- get env, screen
+  var _screen/eax: (addr screen) <- lookup *screen-ah
+  var screen/edi: (addr screen) <- copy _screen
+  var nrows/eax: (addr int) <- get env, nrows
+  move-cursor screen, *nrows, 0
+  start-reverse-video screen
+  print-string screen, " ctrl-q "
+  reset-formatting screen
+  print-string screen, " quit     "
+  start-reverse-video screen
+  print-string screen, " ctrl-a "
+  reset-formatting screen
+  print-string screen, " ⏮   "
+  start-reverse-video screen
+  print-string screen, " ctrl-b "
+  reset-formatting screen
+  print-string screen, " ◀ word  "
+  start-reverse-video screen
+  print-string screen, " ctrl-f "
+  reset-formatting screen
+  print-string screen, " word ▶  "
+  start-reverse-video screen
+  print-string screen, " ctrl-e "
+  reset-formatting screen
+  print-string screen, " ⏭       "
+  start-reverse-video screen
+  print-string screen, " ctrl-g "
+  reset-formatting screen
+  print-string screen, " go to function  "
+  start-reverse-video screen
+  print-string screen, " tab "
+  reset-formatting screen
+  print-string screen, " go to sandbox"
+}
+
+fn render-sandbox-menu _env: (addr environment) {
+  var env/esi: (addr environment) <- copy _env
+  var screen-ah/edi: (addr handle screen) <- get env, screen
+  var _screen/eax: (addr screen) <- lookup *screen-ah
+  var screen/edi: (addr screen) <- copy _screen
+  var nrows/eax: (addr int) <- get env, nrows
+  move-cursor screen, *nrows, 0
+  start-reverse-video screen
+  print-string screen, " ctrl-q "
+  reset-formatting screen
+  print-string screen, " quit     "
+  start-reverse-video screen
+  print-string screen, " ctrl-a "
+  reset-formatting screen
+  print-string screen, " ⏮   "
+  start-reverse-video screen
+  print-string screen, " ctrl-b "
+  reset-formatting screen
+  print-string screen, " ◀ word  "
+  start-reverse-video screen
+  print-string screen, " ctrl-f "
+  reset-formatting screen
+  print-string screen, " word ▶  "
+  start-reverse-video screen
+  print-string screen, " ctrl-e "
+  reset-formatting screen
+  print-string screen, " ⏭       "
+  start-reverse-video screen
+  print-string screen, " ctrl-g "
+  reset-formatting screen
+  print-string screen, " go to function     "
+  start-reverse-video screen
+  print-string screen, " ctrl-l "
+  reset-formatting screen
+  print-string screen, " new line "
+  start-reverse-video screen
+  print-string screen, " ctrl-u "
+  reset-formatting screen
+  print-string screen, " clear  "
+  start-reverse-video screen
+  print-string screen, " ctrl-n "
+  reset-formatting screen
+  print-string screen, " name word  "
+  start-reverse-video screen
+  print-string screen, " ctrl-d "
+  reset-formatting screen
+  print-string screen, " define function"
+}
+
+fn clear-canvas _env: (addr environment) {
+  var env/esi: (addr environment) <- copy _env
+  var screen-ah/edi: (addr handle screen) <- get env, screen
+  var _screen/eax: (addr screen) <- lookup *screen-ah
+  var screen/edi: (addr screen) <- copy _screen
+  clear-screen screen
+  var nrows/eax: (addr int) <- get env, nrows
+  var sep-col/ecx: (addr int) <- get env, code-separator-col
+  # divider
+  draw-vertical-line screen, 1, *nrows, *sep-col
+  # primitives
+  var dummy/eax: int <- render-primitives screen, *nrows, *sep-col
+}
+
+# return value: top-most row written to
+fn render-primitives screen: (addr screen), bottom-margin-row: int, right-col: int -> _/eax: int {
+  # render primitives from the bottom of the screen upward
+  var row/ecx: int <- copy bottom-margin-row
+  row <- subtract 1
+  var col/edx: int <- copy 1
+  move-cursor screen, row, col
+  row, col <- render-primitive-group screen, row, col, right-col, "numbers: ", "+ - * / sqrt  "
+  row, col <- render-primitive-group screen, row, col, right-col, "arrays: ", "len  "
+  row, col <- render-primitive-group screen, row, col, right-col, "files: ", "open read slurp lines  "
+  row, col <- render-primitive-group screen, row, col, right-col, "misc: ", "dup swap  "  # hack: keep these at the right of the bottom row
+  row, col <- render-primitive-group screen, row, col, right-col, "screens: ", "fake-screen print move up down left right  "
+  # finally print heading up top
+  row <- decrement
+  move-cursor screen, row, 1
+  start-bold screen
+  print-string screen, "primitives:"
+  reset-formatting screen
+  return row
+}
+
+# start at row, col and print the given strings
+# move up one row if there isn't enough room before right-col
+# return row, col printed until
+fn render-primitive-group screen: (addr screen), _row: int, _col: int, right-col: int, _heading: (addr array byte), _contents: (addr array byte) -> _/ecx: int, _/edx: int {
+  var row/ecx: int <- copy _row
+  var col/edx: int <- copy _col
+  # decrement row if necessary
+  var new-col/ebx: int <- copy col
+  var heading/esi: (addr array byte) <- copy _heading
+  var len1/eax: int <- length heading
+  new-col <- add len1
+  var contents/edi: (addr array byte) <- copy _contents
+  var len2/eax: int <- length contents
+  new-col <- add len2
+  var bound/eax: int <- copy right-col
+  bound <- decrement
+  {
+    compare new-col, bound
+    break-if-<=
+    row <- decrement
+    col <- copy 1
+  }
+  move-cursor screen, row, col
+  start-color screen, 0xf6, 7
+  print-string screen, heading
+  reset-formatting screen
+  print-string screen, contents
+  return row, new-col
+}
+
+fn render-functions screen: (addr screen), right-col: int, _env: (addr environment) {
+  var row/ecx: int <- copy 1
+  var dummy-col/edx: int <- copy right-col
+  var env/esi: (addr environment) <- copy _env
+  var functions/esi: (addr handle function) <- get env, functions
+  {
+    var curr/eax: (addr function) <- lookup *functions
+    compare curr, 0
+    break-if-=
+    row, dummy-col <- render-function-right-aligned screen, row, right-col, curr
+    functions <- get curr, next
+    row <- add 1/inter-function-margin
+    loop
+  }
+}
+
+# print function starting at row, right-aligned before right-col
+# return row, col printed until
+fn render-function-right-aligned screen: (addr screen), row: int, right-col: int, f: (addr function) -> _/ecx: int, _/edx: int {
+  var col/edx: int <- copy right-col
+  col <- subtract 1/function-right-margin
+  var col2/ebx: int <- copy col
+  var width/eax: int <- function-width f
+  col <- subtract width
+  var new-row/ecx: int <- copy row
+  var height/eax: int <- function-height f
+  new-row <- add height
+  new-row <- decrement
+  col <- subtract 1/function-left-padding
+  start-color screen, 0, 0xf7
+  clear-rect screen, row, col, new-row, col2
+  col <- add 1
+#?   var dummy/eax: grapheme <- read-key-from-real-keyboard
+  render-function screen, row, col, f
+  new-row <- add 1/function-bottom-margin
+  col <- subtract 1/function-left-padding
+  col <- subtract 1/function-left-margin
+  reset-formatting screen
+  return new-row, col
+}
+
+# render function starting at row, col
+# only single-line functions supported for now
+fn render-function screen: (addr screen), row: int, col: int, _f: (addr function) {
+  var f/esi: (addr function) <- copy _f
+  var args/ecx: (addr handle word) <- get f, args
+  move-cursor screen, row, col
+  print-words-in-reverse screen, args
+  var name-ah/eax: (addr handle array byte) <- get f, name
+  var name/eax: (addr array byte) <- lookup *name-ah
+  start-bold screen
+  print-string screen, name
+  reset-formatting screen
+  start-color screen, 0, 0xf7
+  increment row
+  add-to col, 2
+  move-cursor screen, row, col
+  print-string screen, "≡ "
+  add-to col, 2
+  var cursor-row/ecx: (addr int) <- get f, cursor-row
+  var cursor-col/edx: (addr int) <- get f, cursor-col
+  var cursor-word-ah/eax: (addr handle word) <- get f, cursor-word
+  var _cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+  var cursor-word/ebx: (addr word) <- copy _cursor-word
+  var body-ah/eax: (addr handle line) <- get f, body
+  var body/eax: (addr line) <- lookup *body-ah
+  render-line-without-stack screen, body, row, col, cursor-word, cursor-row, cursor-col
+}
+
+fn real-grapheme? g: grapheme -> _/eax: boolean {
+  # if g == newline return true
+  compare g, 0xa
+  {
+    break-if-!=
+    return 1/true
+  }
+  # if g == tab return true
+  compare g, 9
+  {
+    break-if-!=
+    return 1/true
+  }
+  # if g < 32 return false
+  compare g, 0x20
+  {
+    break-if->=
+    return 0/false
+  }
+  # if g <= 255 return true
+  compare g, 0xff
+  {
+    break-if->
+    return 1/true
+  }
+  # if (g&0xff == Esc) it's an escape sequence
+  and-with g, 0xff
+  compare g, 0x1b/esc
+  {
+    break-if-!=
+    return 0/false
+  }
+  # otherwise return true
+  return 1/true
+}
diff --git a/linux/tile/float-stack.mu b/linux/tile/float-stack.mu
new file mode 100644
index 00000000..146995e7
--- /dev/null
+++ b/linux/tile/float-stack.mu
@@ -0,0 +1,64 @@
+type float-stack {
+  data: (handle array float)
+  top: int
+}
+
+fn initialize-float-stack _self: (addr float-stack), n: int {
+  var self/esi: (addr float-stack) <- copy _self
+  var d/edi: (addr handle array float) <- get self, data
+  populate d, n
+  var top/eax: (addr int) <- get self, top
+  copy-to *top, 0
+}
+
+fn clear-float-stack _self: (addr float-stack) {
+  var self/esi: (addr float-stack) <- copy _self
+  var top/eax: (addr int) <- get self, top
+  copy-to *top, 0
+}
+
+fn push-float-stack _self: (addr float-stack), _val: float {
+  var self/esi: (addr float-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  var data-ah/edx: (addr handle array float) <- get self, data
+  var data/eax: (addr array float) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var dest-addr/edx: (addr float) <- index data, top
+  var val/xmm0: float <- copy _val
+  copy-to *dest-addr, val
+  add-to *top-addr, 1
+}
+
+fn pop-float-stack _self: (addr float-stack) -> _/xmm0: float {
+  var self/esi: (addr float-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  {
+    compare *top-addr, 0
+    break-if->
+    var zero: float
+    return zero
+  }
+  subtract-from *top-addr, 1
+  var data-ah/edx: (addr handle array float) <- get self, data
+  var data/eax: (addr array float) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var result-addr/eax: (addr float) <- index data, top
+  return *result-addr
+}
+
+fn float-stack-empty? _self: (addr float-stack) -> _/eax: boolean {
+  var self/esi: (addr float-stack) <- copy _self
+  var top-addr/eax: (addr int) <- get self, top
+  compare *top-addr, 0
+  {
+    break-if-!=
+    return 1/true
+  }
+  return 0/false
+}
+
+fn float-stack-length _self: (addr float-stack) -> _/eax: int {
+  var self/esi: (addr float-stack) <- copy _self
+  var top-addr/eax: (addr int) <- get self, top
+  return *top-addr
+}
diff --git a/linux/tile/gap-buffer.mu b/linux/tile/gap-buffer.mu
new file mode 100644
index 00000000..0132daf0
--- /dev/null
+++ b/linux/tile/gap-buffer.mu
@@ -0,0 +1,343 @@
+type gap-buffer {
+  left: grapheme-stack
+  right: grapheme-stack
+}
+
+fn initialize-gap-buffer _self: (addr gap-buffer) {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var left/eax: (addr grapheme-stack) <- get self, left
+  initialize-grapheme-stack left, 0x10/max-word-size
+  var right/eax: (addr grapheme-stack) <- get self, right
+  initialize-grapheme-stack right, 0x10/max-word-size
+}
+
+# just for tests
+fn initialize-gap-buffer-with self: (addr gap-buffer), s: (addr array byte) {
+  initialize-gap-buffer self
+  var stream-storage: (stream byte 0x10/max-word-size)
+  var stream/ecx: (addr stream byte) <- address stream-storage
+  write stream, s
+  {
+    var done?/eax: boolean <- stream-empty? stream
+    compare done?, 0/false
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme stream
+    add-grapheme-at-gap self, g
+    loop
+  }
+}
+
+fn gap-buffer-to-string self: (addr gap-buffer), out: (addr handle array byte) {
+  var s-storage: (stream byte 0x100)
+  var s/ecx: (addr stream byte) <- address s-storage
+  emit-gap-buffer self, s
+  stream-to-array s, out
+}
+
+fn emit-gap-buffer _self: (addr gap-buffer), out: (addr stream byte) {
+  var self/esi: (addr gap-buffer) <- copy _self
+  clear-stream out
+  var left/eax: (addr grapheme-stack) <- get self, left
+  emit-stack-from-bottom left, out
+  var right/eax: (addr grapheme-stack) <- get self, right
+  emit-stack-from-top right, out
+}
+
+# dump stack from bottom to top
+fn emit-stack-from-bottom _self: (addr grapheme-stack), out: (addr stream byte) {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var data-ah/edi: (addr handle array grapheme) <- get self, data
+  var _data/eax: (addr array grapheme) <- lookup *data-ah
+  var data/edi: (addr array grapheme) <- copy _data
+  var top-addr/ecx: (addr int) <- get self, top
+  var i/eax: int <- copy 0
+  {
+    compare i, *top-addr
+    break-if->=
+    var g/edx: (addr grapheme) <- index data, i
+    write-grapheme out, *g
+    i <- increment
+    loop
+  }
+}
+
+# dump stack from top to bottom
+fn emit-stack-from-top _self: (addr grapheme-stack), out: (addr stream byte) {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var data-ah/edi: (addr handle array grapheme) <- get self, data
+  var _data/eax: (addr array grapheme) <- lookup *data-ah
+  var data/edi: (addr array grapheme) <- copy _data
+  var top-addr/ecx: (addr int) <- get self, top
+  var i/eax: int <- copy *top-addr
+  i <- decrement
+  {
+    compare i, 0
+    break-if-<
+    var g/edx: (addr grapheme) <- index data, i
+    write-grapheme out, *g
+    i <- decrement
+    loop
+  }
+}
+
+fn render-gap-buffer screen: (addr screen), _gap: (addr gap-buffer) {
+  var gap/esi: (addr gap-buffer) <- copy _gap
+  var left/eax: (addr grapheme-stack) <- get gap, left
+  render-stack-from-bottom left, screen
+  var right/eax: (addr grapheme-stack) <- get gap, right
+  render-stack-from-top right, screen
+}
+
+fn gap-buffer-length _gap: (addr gap-buffer) -> _/eax: int {
+  var gap/esi: (addr gap-buffer) <- copy _gap
+  var left/eax: (addr grapheme-stack) <- get gap, left
+  var tmp/eax: (addr int) <- get left, top
+  var left-length/ecx: int <- copy *tmp
+  var right/esi: (addr grapheme-stack) <- get gap, right
+  tmp <- get right, top
+  var result/eax: int <- copy *tmp
+  result <- add left-length
+  return result
+}
+
+fn add-grapheme-at-gap _self: (addr gap-buffer), g: grapheme {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var left/eax: (addr grapheme-stack) <- get self, left
+  push-grapheme-stack left, g
+}
+
+fn gap-to-start self: (addr gap-buffer) {
+  {
+    var curr/eax: grapheme <- gap-left self
+    compare curr, -1
+    loop-if-!=
+  }
+}
+
+fn gap-to-end self: (addr gap-buffer) {
+  {
+    var curr/eax: grapheme <- gap-right self
+    compare curr, -1
+    loop-if-!=
+  }
+}
+
+fn gap-at-start? _self: (addr gap-buffer) -> _/eax: boolean {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var left/eax: (addr grapheme-stack) <- get self, left
+  var result/eax: boolean <- grapheme-stack-empty? left
+  return result
+}
+
+fn gap-at-end? _self: (addr gap-buffer) -> _/eax: boolean {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var right/eax: (addr grapheme-stack) <- get self, right
+  var result/eax: boolean <- grapheme-stack-empty? right
+  return result
+}
+
+fn gap-right _self: (addr gap-buffer) -> _/eax: grapheme {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var g/eax: grapheme <- copy 0
+  var right/ecx: (addr grapheme-stack) <- get self, right
+  g <- pop-grapheme-stack right
+  compare g, -1
+  {
+    break-if-=
+    var left/ecx: (addr grapheme-stack) <- get self, left
+    push-grapheme-stack left, g
+  }
+  return g
+}
+
+fn gap-left _self: (addr gap-buffer) -> _/eax: grapheme {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var g/eax: grapheme <- copy 0
+  {
+    var left/ecx: (addr grapheme-stack) <- get self, left
+    g <- pop-grapheme-stack left
+  }
+  compare g, -1
+  {
+    break-if-=
+    var right/ecx: (addr grapheme-stack) <- get self, right
+    push-grapheme-stack right, g
+  }
+  return g
+}
+
+fn gap-index _self: (addr gap-buffer) -> _/eax: int {
+  var self/eax: (addr gap-buffer) <- copy _self
+  var left/eax: (addr grapheme-stack) <- get self, left
+  var top-addr/eax: (addr int) <- get left, top
+  var result/eax: int <- copy *top-addr
+  return result
+}
+
+fn first-grapheme-in-gap-buffer _self: (addr gap-buffer) -> _/eax: grapheme {
+  var self/esi: (addr gap-buffer) <- copy _self
+  # try to read from left
+  var left/eax: (addr grapheme-stack) <- get self, left
+  var top-addr/ecx: (addr int) <- get left, top
+  compare *top-addr, 0
+  {
+    break-if-<=
+    var data-ah/eax: (addr handle array grapheme) <- get left, data
+    var data/eax: (addr array grapheme) <- lookup *data-ah
+    var result-addr/eax: (addr grapheme) <- index data, 0
+    return *result-addr
+  }
+  # try to read from right
+  var right/eax: (addr grapheme-stack) <- get self, right
+  top-addr <- get right, top
+  compare *top-addr, 0
+  {
+    break-if-<=
+    var data-ah/eax: (addr handle array grapheme) <- get right, data
+    var data/eax: (addr array grapheme) <- lookup *data-ah
+    var top/ecx: int <- copy *top-addr
+    top <- decrement
+    var result-addr/eax: (addr grapheme) <- index data, top
+    return *result-addr
+  }
+  # give up
+  return -1
+}
+
+fn grapheme-before-cursor-in-gap-buffer _self: (addr gap-buffer) -> _/eax: grapheme {
+  var self/esi: (addr gap-buffer) <- copy _self
+  # try to read from left
+  var left/ecx: (addr grapheme-stack) <- get self, left
+  var top-addr/edx: (addr int) <- get left, top
+  compare *top-addr, 0
+  {
+    break-if-<=
+    var result/eax: grapheme <- pop-grapheme-stack left
+    push-grapheme-stack left, result
+    return result
+  }
+  # give up
+  return -1
+}
+
+fn delete-before-gap _self: (addr gap-buffer) {
+  var self/eax: (addr gap-buffer) <- copy _self
+  var left/eax: (addr grapheme-stack) <- get self, left
+  var dummy/eax: grapheme <- pop-grapheme-stack left
+}
+
+fn pop-after-gap _self: (addr gap-buffer) -> _/eax: grapheme {
+  var self/eax: (addr gap-buffer) <- copy _self
+  var right/eax: (addr grapheme-stack) <- get self, right
+  var result/eax: grapheme <- pop-grapheme-stack right
+  return result
+}
+
+fn gap-buffer-equal? _self: (addr gap-buffer), s: (addr array byte) -> _/eax: boolean {
+  var self/esi: (addr gap-buffer) <- copy _self
+  # complication: graphemes may be multiple bytes
+  # so don't rely on length
+  # instead turn the expected result into a stream and arrange to read from it in order
+  var stream-storage: (stream byte 0x10/max-word-size)
+  var expected-stream/ecx: (addr stream byte) <- address stream-storage
+  write expected-stream, s
+  # compare left
+  var left/edx: (addr grapheme-stack) <- get self, left
+  var result/eax: boolean <- prefix-match? left, expected-stream
+  compare result, 0/false
+  {
+    break-if-!=
+    return result
+  }
+  # compare right
+  var right/edx: (addr grapheme-stack) <- get self, right
+  result <- suffix-match? right, expected-stream
+  compare result, 0/false
+  {
+    break-if-!=
+    return result
+  }
+  # ensure there's nothing left over
+  result <- stream-empty? expected-stream
+  return result
+}
+
+fn test-gap-buffer-equal-from-end? {
+  var _g: gap-buffer
+  var g/esi: (addr gap-buffer) <- address _g
+  initialize-gap-buffer g
+  #
+  var c/eax: grapheme <- copy 0x61/a
+  add-grapheme-at-gap g, c
+  add-grapheme-at-gap g, c
+  add-grapheme-at-gap g, c
+  # gap is at end (right is empty)
+  var _result/eax: boolean <- gap-buffer-equal? g, "aaa"
+  var result/eax: int <- copy _result
+  check-ints-equal result, 1, "F - test-gap-buffer-equal-from-end?"
+}
+
+fn test-gap-buffer-equal-from-middle? {
+  var _g: gap-buffer
+  var g/esi: (addr gap-buffer) <- address _g
+  initialize-gap-buffer g
+  #
+  var c/eax: grapheme <- copy 0x61/a
+  add-grapheme-at-gap g, c
+  add-grapheme-at-gap g, c
+  add-grapheme-at-gap g, c
+  var dummy/eax: grapheme <- gap-left g
+  # gap is in the middle
+  var _result/eax: boolean <- gap-buffer-equal? g, "aaa"
+  var result/eax: int <- copy _result
+  check-ints-equal result, 1, "F - test-gap-buffer-equal-from-middle?"
+}
+
+fn test-gap-buffer-equal-from-start? {
+  var _g: gap-buffer
+  var g/esi: (addr gap-buffer) <- address _g
+  initialize-gap-buffer g
+  #
+  var c/eax: grapheme <- copy 0x61/a
+  add-grapheme-at-gap g, c
+  add-grapheme-at-gap g, c
+  add-grapheme-at-gap g, c
+  var dummy/eax: grapheme <- gap-left g
+  dummy <- gap-left g
+  dummy <- gap-left g
+  # gap is at the start
+  var _result/eax: boolean <- gap-buffer-equal? g, "aaa"
+  var result/eax: int <- copy _result
+  check-ints-equal result, 1, "F - test-gap-buffer-equal-from-start?"
+}
+
+fn copy-gap-buffer _src-ah: (addr handle gap-buffer), _dest-ah: (addr handle gap-buffer) {
+  # obtain src-a, dest-a
+  var src-ah/eax: (addr handle gap-buffer) <- copy _src-ah
+  var _src-a/eax: (addr gap-buffer) <- lookup *src-ah
+  var src-a/esi: (addr gap-buffer) <- copy _src-a
+  var dest-ah/eax: (addr handle gap-buffer) <- copy _dest-ah
+  var _dest-a/eax: (addr gap-buffer) <- lookup *dest-ah
+  var dest-a/edi: (addr gap-buffer) <- copy _dest-a
+  # copy left grapheme-stack
+  var src/ecx: (addr grapheme-stack) <- get src-a, left
+  var dest/edx: (addr grapheme-stack) <- get dest-a, left
+  copy-grapheme-stack src, dest
+  # copy right grapheme-stack
+  src <- get src-a, right
+  dest <- get dest-a, right
+  copy-grapheme-stack src, dest
+}
+
+fn gap-buffer-is-decimal-integer? _self: (addr gap-buffer) -> _/eax: boolean {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var curr/ecx: (addr grapheme-stack) <- get self, left
+  var result/eax: boolean <- grapheme-stack-is-decimal-integer? curr
+  {
+    compare result, 0/false
+    break-if-=
+    curr <- get self, right
+    result <- grapheme-stack-is-decimal-integer? curr
+  }
+  return result
+}
diff --git a/linux/tile/grapheme-stack.mu b/linux/tile/grapheme-stack.mu
new file mode 100644
index 00000000..e0d40ecc
--- /dev/null
+++ b/linux/tile/grapheme-stack.mu
@@ -0,0 +1,191 @@
+type grapheme-stack {
+  data: (handle array grapheme)
+  top: int
+}
+
+fn initialize-grapheme-stack _self: (addr grapheme-stack), n: int {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var d/edi: (addr handle array grapheme) <- get self, data
+  populate d, n
+  var top/eax: (addr int) <- get self, top
+  copy-to *top, 0
+}
+
+fn clear-grapheme-stack _self: (addr grapheme-stack) {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var top/eax: (addr int) <- get self, top
+  copy-to *top, 0
+}
+
+fn grapheme-stack-empty? _self: (addr grapheme-stack) -> _/eax: boolean {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var top/eax: (addr int) <- get self, top
+  compare *top, 0
+  {
+    break-if-!=
+    return 1/true
+  }
+  return 0/false
+}
+
+fn push-grapheme-stack _self: (addr grapheme-stack), _val: grapheme {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  var data-ah/edx: (addr handle array grapheme) <- get self, data
+  var data/eax: (addr array grapheme) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var dest-addr/edx: (addr grapheme) <- index data, top
+  var val/eax: grapheme <- copy _val
+  copy-to *dest-addr, val
+  add-to *top-addr, 1
+}
+
+fn pop-grapheme-stack _self: (addr grapheme-stack) -> _/eax: grapheme {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  {
+    compare *top-addr, 0
+    break-if->
+    return -1
+  }
+  subtract-from *top-addr, 1
+  var data-ah/edx: (addr handle array grapheme) <- get self, data
+  var data/eax: (addr array grapheme) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var result-addr/eax: (addr grapheme) <- index data, top
+  return *result-addr
+}
+
+fn copy-grapheme-stack _src: (addr grapheme-stack), dest: (addr grapheme-stack) {
+  var src/esi: (addr grapheme-stack) <- copy _src
+  var data-ah/edi: (addr handle array grapheme) <- get src, data
+  var _data/eax: (addr array grapheme) <- lookup *data-ah
+  var data/edi: (addr array grapheme) <- copy _data
+  var top-addr/ecx: (addr int) <- get src, top
+  var i/eax: int <- copy 0
+  {
+    compare i, *top-addr
+    break-if->=
+    var g/edx: (addr grapheme) <- index data, i
+    push-grapheme-stack dest, *g
+    i <- increment
+    loop
+  }
+}
+
+# dump stack to screen from bottom to top
+# don't move the cursor or anything
+fn render-stack-from-bottom _self: (addr grapheme-stack), screen: (addr screen) {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var data-ah/edi: (addr handle array grapheme) <- get self, data
+  var _data/eax: (addr array grapheme) <- lookup *data-ah
+  var data/edi: (addr array grapheme) <- copy _data
+  var top-addr/ecx: (addr int) <- get self, top
+  var i/eax: int <- copy 0
+  {
+    compare i, *top-addr
+    break-if->=
+    var g/edx: (addr grapheme) <- index data, i
+    print-grapheme screen, *g
+    i <- increment
+    loop
+  }
+}
+
+# dump stack to screen from top to bottom
+# don't move the cursor or anything
+fn render-stack-from-top _self: (addr grapheme-stack), screen: (addr screen) {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var data-ah/edi: (addr handle array grapheme) <- get self, data
+  var _data/eax: (addr array grapheme) <- lookup *data-ah
+  var data/edi: (addr array grapheme) <- copy _data
+  var top-addr/ecx: (addr int) <- get self, top
+  var i/eax: int <- copy *top-addr
+  i <- decrement
+  {
+    compare i, 0
+    break-if-<
+    var g/edx: (addr grapheme) <- index data, i
+    print-grapheme screen, *g
+    i <- decrement
+    loop
+  }
+}
+
+# compare from bottom
+# beware: modifies 'stream', which must be disposed of after a false result
+fn prefix-match? _self: (addr grapheme-stack), s: (addr stream byte) -> _/eax: boolean {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var data-ah/edi: (addr handle array grapheme) <- get self, data
+  var _data/eax: (addr array grapheme) <- lookup *data-ah
+  var data/edi: (addr array grapheme) <- copy _data
+  var top-addr/ecx: (addr int) <- get self, top
+  var i/ebx: int <- copy 0
+  {
+    compare i, *top-addr
+    break-if->=
+    # if curr != expected, return false
+    {
+      var curr-a/edx: (addr grapheme) <- index data, i
+      var expected/eax: grapheme <- read-grapheme s
+      {
+        compare expected, *curr-a
+        break-if-=
+        return 0/false
+      }
+    }
+    i <- increment
+    loop
+  }
+  return 1   # true
+}
+
+# compare from bottom
+# beware: modifies 'stream', which must be disposed of after a false result
+fn suffix-match? _self: (addr grapheme-stack), s: (addr stream byte) -> _/eax: boolean {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var data-ah/edi: (addr handle array grapheme) <- get self, data
+  var _data/eax: (addr array grapheme) <- lookup *data-ah
+  var data/edi: (addr array grapheme) <- copy _data
+  var top-addr/eax: (addr int) <- get self, top
+  var i/ebx: int <- copy *top-addr
+  i <- decrement
+  {
+    compare i, 0
+    break-if-<
+    {
+      var curr-a/edx: (addr grapheme) <- index data, i
+      var expected/eax: grapheme <- read-grapheme s
+      # if curr != expected, return false
+      {
+        compare expected, *curr-a
+        break-if-=
+        return 0/false
+      }
+    }
+    i <- decrement
+    loop
+  }
+  return 1   # true
+}
+
+fn grapheme-stack-is-decimal-integer? _self: (addr grapheme-stack) -> _/eax: boolean {
+  var self/esi: (addr grapheme-stack) <- copy _self
+  var data-ah/eax: (addr handle array grapheme) <- get self, data
+  var _data/eax: (addr array grapheme) <- lookup *data-ah
+  var data/edx: (addr array grapheme) <- copy _data
+  var top-addr/ecx: (addr int) <- get self, top
+  var i/ebx: int <- copy 0
+  var result/eax: boolean <- copy 1/true
+  $grapheme-stack-is-integer?:loop: {
+    compare i, *top-addr
+    break-if->=
+    var g/edx: (addr grapheme) <- index data, i
+    result <- is-decimal-digit? *g
+    compare result, 0/false
+    break-if-=
+    i <- increment
+    loop
+  }
+  return result
+}
diff --git a/linux/tile/main.mu b/linux/tile/main.mu
new file mode 100644
index 00000000..e0daaf1b
--- /dev/null
+++ b/linux/tile/main.mu
@@ -0,0 +1,133 @@
+fn main args-on-stack: (addr array addr array byte) -> _/ebx: int {
+  var args/eax: (addr array addr array byte) <- copy args-on-stack
+  var len/ecx: int <- length args
+  compare len, 2
+  {
+    break-if-!=
+    # if single arg is 'test', run tests
+    var tmp/ecx: (addr addr array byte) <- index args, 1
+    var tmp2/eax: boolean <- string-equal? *tmp, "test"
+    compare tmp2, 0/false
+    {
+      break-if-=
+      run-tests
+      return 0  # TODO: get at Num-test-failures somehow
+    }
+    # if single arg is 'screen', run in full-screen mode
+    tmp2 <- string-equal? *tmp, "screen"
+    compare tmp2, 0/false
+    {
+      break-if-=
+      interactive
+      return 0
+    }
+    # if single arg is 'type', run in typewriter mode
+    tmp2 <- string-equal? *tmp, "type"
+    compare tmp2, 0/false
+    {
+      break-if-=
+      repl
+      return 0
+    }
+    # if single arg is 'test' ...
+    tmp2 <- string-equal? *tmp, "test2"
+    compare tmp2, 0/false
+    {
+      break-if-=
+      test
+      return 0
+    }
+  }
+  # otherwise error message
+  print-string-to-real-screen "usage:\n"
+  print-string-to-real-screen "  to run tests: tile test\n"
+  print-string-to-real-screen "  full-screen mode: tile screen\n"
+  print-string-to-real-screen "  regular REPL: tile type\n"
+  return 1
+}
+
+fn interactive {
+  enable-screen-grid-mode
+  enable-keyboard-immediate-mode
+  var env-storage: environment
+  var env/esi: (addr environment) <- address env-storage
+  initialize-environment env
+  {
+    render env
+    var key/eax: grapheme <- read-key-from-real-keyboard
+    compare key, 0x11/ctrl-q
+    break-if-=
+    process env, key
+    loop
+  }
+  enable-keyboard-type-mode
+  enable-screen-type-mode
+}
+
+fn test {
+  var env-storage: environment
+  var env/esi: (addr environment) <- address env-storage
+  initialize-environment-with-fake-screen env, 0x20, 0xa0
+  render env
+}
+
+fn process-all env: (addr environment), cmds: (addr array byte) {
+  var cmds-stream: (stream byte 0x100)
+  var cmds-stream-a/esi: (addr stream byte) <- address cmds-stream
+  write cmds-stream-a, cmds
+  {
+    var done?/eax: boolean <- stream-empty? cmds-stream-a
+    compare done?, 0/false
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme cmds-stream-a
+    process env, g
+    loop
+  }
+}
+
+fn repl {
+  {
+    # prompt
+    print-string-to-real-screen "> "
+    # read
+    var line-storage: (stream byte 0x100)
+    var line/ecx: (addr stream byte) <- address line-storage
+    clear-stream line
+    read-line-from-real-keyboard line
+    var done?/eax: boolean <- stream-empty? line
+    compare done?, 0/false
+    break-if-!=
+    # parse
+    var env-storage: environment
+    var env/esi: (addr environment) <- address env-storage
+    initialize-environment env
+    {
+      var done?/eax: boolean <- stream-empty? line
+      compare done?, 0/false
+      break-if-!=
+      var g/eax: grapheme <- read-grapheme line
+      process env, g
+      loop
+    }
+    # eval
+    var stack-storage: value-stack
+    var stack/edi: (addr value-stack) <- address stack-storage
+    initialize-value-stack stack, 0x10
+    evaluate-environment env, stack
+    # print
+    var empty?/eax: boolean <- value-stack-empty? stack
+    {
+      compare empty?, 0/false
+      break-if-!=
+      var result/xmm0: float <- pop-number-from-value-stack stack
+      print-float-decimal-approximate 0, result, 3
+      print-string 0, "\n"
+      print-string 0, "width: "
+      var width/eax: int <- float-size result, 3
+      print-int32-decimal 0, width
+      print-string 0, "\n"
+    }
+    #
+    loop
+  }
+}
diff --git a/linux/tile/rpn.mu b/linux/tile/rpn.mu
new file mode 100644
index 00000000..bf81308b
--- /dev/null
+++ b/linux/tile/rpn.mu
@@ -0,0 +1,911 @@
+fn evaluate functions: (addr handle function), bindings: (addr table), scratch: (addr line), end: (addr word), out: (addr value-stack) {
+  var line/eax: (addr line) <- copy scratch
+  var word-ah/eax: (addr handle word) <- get line, data
+  var curr/eax: (addr word) <- lookup *word-ah
+  var curr-stream-storage: (stream byte 0x10)
+  var curr-stream/edi: (addr stream byte) <- address curr-stream-storage
+  clear-value-stack out
+  $evaluate:loop: {
+    # precondition (should never hit)
+    compare curr, 0
+    break-if-=
+    # update curr-stream
+    emit-word curr, curr-stream
+#?     print-string-to-real-screen "eval: "
+#?     print-stream-to-real-screen curr-stream
+#?     print-string-to-real-screen "\n"
+    $evaluate:process-word: {
+      ### if curr-stream is an operator, perform it
+      ## numbers
+      {
+        var is-add?/eax: boolean <- stream-data-equal? curr-stream, "+"
+        compare is-add?, 0
+        break-if-=
+        var _b/xmm0: float <- pop-number-from-value-stack out
+        var b/xmm1: float <- copy _b
+        var a/xmm0: float <- pop-number-from-value-stack out
+        a <- add b
+        push-number-to-value-stack out, a
+        break $evaluate:process-word
+      }
+      {
+        var is-sub?/eax: boolean <- stream-data-equal? curr-stream, "-"
+        compare is-sub?, 0
+        break-if-=
+        var _b/xmm0: float <- pop-number-from-value-stack out
+        var b/xmm1: float <- copy _b
+        var a/xmm0: float <- pop-number-from-value-stack out
+        a <- subtract b
+        push-number-to-value-stack out, a
+        break $evaluate:process-word
+      }
+      {
+        var is-mul?/eax: boolean <- stream-data-equal? curr-stream, "*"
+        compare is-mul?, 0
+        break-if-=
+        var _b/xmm0: float <- pop-number-from-value-stack out
+        var b/xmm1: float <- copy _b
+        var a/xmm0: float <- pop-number-from-value-stack out
+        a <- multiply b
+        push-number-to-value-stack out, a
+        break $evaluate:process-word
+      }
+      {
+        var is-div?/eax: boolean <- stream-data-equal? curr-stream, "/"
+        compare is-div?, 0
+        break-if-=
+        var _b/xmm0: float <- pop-number-from-value-stack out
+        var b/xmm1: float <- copy _b
+        var a/xmm0: float <- pop-number-from-value-stack out
+        a <- divide b
+        push-number-to-value-stack out, a
+        break $evaluate:process-word
+      }
+      {
+        var is-sqrt?/eax: boolean <- stream-data-equal? curr-stream, "sqrt"
+        compare is-sqrt?, 0
+        break-if-=
+        var a/xmm0: float <- pop-number-from-value-stack out
+        a <- square-root a
+        push-number-to-value-stack out, a
+        break $evaluate:process-word
+      }
+      ## strings/arrays
+      {
+        var is-len?/eax: boolean <- stream-data-equal? curr-stream, "len"
+        compare is-len?, 0
+        break-if-=
+#?         print-string 0, "is len\n"
+        # pop target-val from out
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+#?         print-string 0, "stack has stuff\n"
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/edx: int <- copy *top-addr
+        top <- decrement
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var target-val/edx: (addr value) <- index data, dest-offset
+        # check target-val is a string or array
+        var target-type-addr/eax: (addr int) <- get target-val, type
+        compare *target-type-addr, 1/string
+        {
+          break-if-!=
+          # compute length
+          var src-ah/eax: (addr handle array byte) <- get target-val, text-data
+          var src/eax: (addr array byte) <- lookup *src-ah
+          var result/ebx: int <- length src
+          var result-f/xmm0: float <- convert result
+          # save result into target-val
+          var type-addr/eax: (addr int) <- get target-val, type
+          copy-to *type-addr, 0/int
+          var target-string-ah/eax: (addr handle array byte) <- get target-val, text-data
+          clear-object target-string-ah
+          var target/eax: (addr float) <- get target-val, number-data
+          copy-to *target, result-f
+          break $evaluate:process-word
+        }
+        compare *target-type-addr, 2/array
+        {
+          break-if-!=
+          # compute length
+          var src-ah/eax: (addr handle array value) <- get target-val, array-data
+          var src/eax: (addr array value) <- lookup *src-ah
+          var result/ebx: int <- length src
+          var result-f/xmm0: float <- convert result
+          # save result into target-val
+          var type-addr/eax: (addr int) <- get target-val, type
+          copy-to *type-addr, 0/int
+          var target-array-ah/eax: (addr handle array value) <- get target-val, array-data
+          clear-object target-array-ah
+          var target/eax: (addr float) <- get target-val, number-data
+          copy-to *target, result-f
+          break $evaluate:process-word
+        }
+      }
+      ## files
+      {
+        var is-open?/eax: boolean <- stream-data-equal? curr-stream, "open"
+        compare is-open?, 0
+        break-if-=
+        # pop target-val from out
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/edx: int <- copy *top-addr
+        top <- decrement
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var target-val/edx: (addr value) <- index data, dest-offset
+        # check target-val is a string
+        var target-type-addr/eax: (addr int) <- get target-val, type
+        compare *target-type-addr, 1/string
+        break-if-!=
+        # open target-val as a filename and save the handle in target-val
+        var src-ah/eax: (addr handle array byte) <- get target-val, text-data
+        var src/eax: (addr array byte) <- lookup *src-ah
+        var result-ah/ecx: (addr handle buffered-file) <- get target-val, file-data
+        open src, 0, result-ah  # write? = false
+        # save result into target-val
+        var type-addr/eax: (addr int) <- get target-val, type
+        copy-to *type-addr, 3/file
+        var target-string-ah/eax: (addr handle array byte) <- get target-val, text-data
+        var filename-ah/ecx: (addr handle array byte) <- get target-val, filename
+        copy-object target-string-ah, filename-ah
+        clear-object target-string-ah
+        break $evaluate:process-word
+      }
+      {
+        var is-read?/eax: boolean <- stream-data-equal? curr-stream, "read"
+        compare is-read?, 0
+        break-if-=
+        # pop target-val from out
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/edx: int <- copy *top-addr
+        top <- decrement
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var target-val/edx: (addr value) <- index data, dest-offset
+        # check target-val is a file
+        var target-type-addr/eax: (addr int) <- get target-val, type
+        compare *target-type-addr, 3/file
+        break-if-!=
+        # read a line from the file and save in target-val
+        # read target-val as a filename and save the handle in target-val
+        var file-ah/eax: (addr handle buffered-file) <- get target-val, file-data
+        var file/eax: (addr buffered-file) <- lookup *file-ah
+        var s: (stream byte 0x100)
+        var s-addr/ecx: (addr stream byte) <- address s
+        read-line-buffered file, s-addr
+        var target/eax: (addr handle array byte) <- get target-val, text-data
+        stream-to-array s-addr, target
+        # save result into target-val
+        var type-addr/eax: (addr int) <- get target-val, type
+        copy-to *type-addr, 1/string
+        var target-file-ah/eax: (addr handle buffered-file) <- get target-val, file-data
+        clear-object target-file-ah
+        break $evaluate:process-word
+      }
+      {
+        var is-slurp?/eax: boolean <- stream-data-equal? curr-stream, "slurp"
+        compare is-slurp?, 0
+        break-if-=
+        # pop target-val from out
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/edx: int <- copy *top-addr
+        top <- decrement
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var target-val/edx: (addr value) <- index data, dest-offset
+        # check target-val is a file
+        var target-type-addr/eax: (addr int) <- get target-val, type
+        compare *target-type-addr, 3/file
+        break-if-!=
+        # slurp all contents from file and save in target-val
+        # read target-val as a filename and save the handle in target-val
+        var file-ah/eax: (addr handle buffered-file) <- get target-val, file-data
+        var file/eax: (addr buffered-file) <- lookup *file-ah
+        var s: (stream byte 0x100)
+        var s-addr/ecx: (addr stream byte) <- address s
+        slurp file, s-addr
+        var target/eax: (addr handle array byte) <- get target-val, text-data
+        stream-to-array s-addr, target
+        # save result into target-val
+        var type-addr/eax: (addr int) <- get target-val, type
+        copy-to *type-addr, 1/string
+        var target-file-ah/eax: (addr handle buffered-file) <- get target-val, file-data
+        clear-object target-file-ah
+        break $evaluate:process-word
+      }
+      {
+        var is-lines?/eax: boolean <- stream-data-equal? curr-stream, "lines"
+        compare is-lines?, 0
+        break-if-=
+        # pop target-val from out
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/edx: int <- copy *top-addr
+        top <- decrement
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var target-val/edx: (addr value) <- index data, dest-offset
+        # check target-val is a file
+        var target-type-addr/eax: (addr int) <- get target-val, type
+        compare *target-type-addr, 3/file
+        break-if-!=
+        # read all lines from file and save as an array of strings in target-val
+        # read target-val as a filename and save the handle in target-val
+        var file-ah/eax: (addr handle buffered-file) <- get target-val, file-data
+        var file/eax: (addr buffered-file) <- lookup *file-ah
+        var s: (stream byte 0x100)
+        var s-addr/ecx: (addr stream byte) <- address s
+        slurp file, s-addr
+        var tmp-ah/eax: (addr handle array byte) <- get target-val, text-data
+        stream-to-array s-addr, tmp-ah
+        var tmp/eax: (addr array byte) <- lookup *tmp-ah
+#?         enable-screen-type-mode
+#?         print-string 0, tmp
+        var h: (handle array (handle array byte))
+        {
+          var ah/edx: (addr handle array (handle array byte)) <- address h
+          split-string tmp, 0xa, ah
+        }
+        var target/eax: (addr handle array value) <- get target-val, array-data
+        save-lines h, target
+        # save result into target-val
+        var type-addr/eax: (addr int) <- get target-val, type
+        copy-to *type-addr, 2/array
+        var target-file-ah/eax: (addr handle buffered-file) <- get target-val, file-data
+        var empty-file: (handle buffered-file)
+        copy-handle empty-file, target-file-ah
+        var target-text-ah/eax: (addr handle array byte) <- get target-val, text-data
+        var empty-text: (handle array byte)
+        copy-handle empty-text, target-text-ah
+        break $evaluate:process-word
+      }
+      ## screens
+      {
+        var is-fake-screen?/eax: boolean <- stream-data-equal? curr-stream, "fake-screen"
+        compare is-fake-screen?, 0
+        break-if-=
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        # pop width and height from out
+        var nrows-f/xmm0: float <- pop-number-from-value-stack out2
+        var nrows/edx: int <- convert nrows-f
+        var ncols-f/xmm0: float <- pop-number-from-value-stack out2
+        var ncols/ebx: int <- convert ncols-f
+        # define a new screen with those dimensions
+        var screen-h: (handle screen)
+        var screen-ah/eax: (addr handle screen) <- address screen-h
+        allocate screen-ah
+        var screen/eax: (addr screen) <- lookup screen-h
+        initialize-screen screen, nrows, ncols
+        # push screen to stack
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/edx: int <- copy *top-addr
+        increment *top-addr
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var target-val/edx: (addr value) <- index data, dest-offset
+        var type/eax: (addr int) <- get target-val, type
+        copy-to *type, 4/screen
+        var dest/eax: (addr handle screen) <- get target-val, screen-data
+        copy-handle screen-h, dest
+        break $evaluate:process-word
+      }
+      {
+        var is-print?/eax: boolean <- stream-data-equal? curr-stream, "print"
+        compare is-print?, 0
+        break-if-=
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        # pop string from out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        decrement *top-addr
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var _data/eax: (addr array value) <- lookup *data-ah
+        var data/edi: (addr array value) <- copy _data
+        var top/eax: int <- copy *top-addr
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var s/esi: (addr value) <- index data, dest-offset
+        # select target screen from top of out (but don't pop it)
+        compare *top-addr, 0
+        break-if-<=
+        var top/eax: int <- copy *top-addr
+        top <- decrement
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var target-val/edx: (addr value) <- index data, dest-offset
+        var type/eax: (addr int) <- get target-val, type
+        compare *type, 4/screen
+        break-if-!=
+        # print string to target screen
+        var dest-ah/eax: (addr handle screen) <- get target-val, screen-data
+        var dest/eax: (addr screen) <- lookup *dest-ah
+        var r/ecx: (addr int) <- get dest, cursor-row
+        var c/edx: (addr int) <- get dest, cursor-col
+        render-value-at dest, *r, *c, s, 0
+        break $evaluate:process-word
+      }
+      {
+        var is-move?/eax: boolean <- stream-data-equal? curr-stream, "move"
+        compare is-move?, 0
+        break-if-=
+        var out2/esi: (addr value-stack) <- copy out
+        # pop args
+        var r-f/xmm0: float <- pop-number-from-value-stack out2
+        var r/ecx: int <- convert r-f
+        var c-f/xmm0: float <- pop-number-from-value-stack out2
+        var c/edx: int <- convert c-f
+        # select screen from top of out (but don't pop it)
+        var top-addr/ebx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var _data/eax: (addr array value) <- lookup *data-ah
+        var data/edi: (addr array value) <- copy _data
+        var top/eax: int <- copy *top-addr
+        top <- decrement
+        var target-offset/eax: (offset value) <- compute-offset data, top
+        var target-val/ebx: (addr value) <- index data, target-offset
+        var type/eax: (addr int) <- get target-val, type
+        compare *type, 4/screen
+        break-if-!=
+        var target-ah/eax: (addr handle screen) <- get target-val, screen-data
+        var target/eax: (addr screen) <- lookup *target-ah
+        move-cursor target, r, c
+        break $evaluate:process-word
+      }
+      {
+        var is-up?/eax: boolean <- stream-data-equal? curr-stream, "up"
+        compare is-up?, 0
+        break-if-=
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ebx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        # pop args
+        var d-f/xmm0: float <- pop-number-from-value-stack out2
+        var d/ecx: int <- convert d-f
+        # select screen from top of out (but don't pop it)
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var _data/eax: (addr array value) <- lookup *data-ah
+        var data/edi: (addr array value) <- copy _data
+        var top/eax: int <- copy *top-addr
+        top <- decrement
+        var target-offset/eax: (offset value) <- compute-offset data, top
+        var target-val/ebx: (addr value) <- index data, target-offset
+        var type/eax: (addr int) <- get target-val, type
+        compare *type, 4/screen
+        break-if-!=
+        var target-ah/eax: (addr handle screen) <- get target-val, screen-data
+        var _target/eax: (addr screen) <- lookup *target-ah
+        var target/edi: (addr screen) <- copy _target
+        var r/edx: (addr int) <- get target, cursor-row
+        var c/eax: (addr int) <- get target, cursor-col
+        var col/eax: int <- copy *c
+        {
+          compare d, 0
+          break-if-<=
+          compare *r, 1
+          break-if-<=
+          print-string target "│"
+          decrement *r
+          move-cursor target, *r, col
+          d <- decrement
+          loop
+        }
+        break $evaluate:process-word
+      }
+      {
+        var is-down?/eax: boolean <- stream-data-equal? curr-stream, "down"
+        compare is-down?, 0
+        break-if-=
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ebx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        # pop args
+        var d-f/xmm0: float <- pop-number-from-value-stack out2
+        var d/ecx: int <- convert d-f
+        # select screen from top of out (but don't pop it)
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var _data/eax: (addr array value) <- lookup *data-ah
+        var data/edi: (addr array value) <- copy _data
+        var top/eax: int <- copy *top-addr
+        top <- decrement
+        var target-offset/eax: (offset value) <- compute-offset data, top
+        var target-val/ebx: (addr value) <- index data, target-offset
+        var type/eax: (addr int) <- get target-val, type
+        compare *type, 4/screen
+        break-if-!=
+        var target-ah/eax: (addr handle screen) <- get target-val, screen-data
+        var _target/eax: (addr screen) <- lookup *target-ah
+        var target/edi: (addr screen) <- copy _target
+        var bound-a/ebx: (addr int) <- get target, num-rows
+        var bound/ebx: int <- copy *bound-a
+        var r/edx: (addr int) <- get target, cursor-row
+        var c/eax: (addr int) <- get target, cursor-col
+        var col/eax: int <- copy *c
+        {
+          compare d, 0
+          break-if-<=
+          compare *r, bound
+          break-if->=
+          print-string target "│"
+          increment *r
+          move-cursor target, *r, col
+          d <- decrement
+          loop
+        }
+        break $evaluate:process-word
+      }
+      {
+        var is-left?/eax: boolean <- stream-data-equal? curr-stream, "left"
+        compare is-left?, 0
+        break-if-=
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ebx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        # pop args
+        var d-f/xmm0: float <- pop-number-from-value-stack out2
+        var d/ecx: int <- convert d-f
+        # select screen from top of out (but don't pop it)
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var _data/eax: (addr array value) <- lookup *data-ah
+        var data/edi: (addr array value) <- copy _data
+        var top/eax: int <- copy *top-addr
+        top <- decrement
+        var target-offset/eax: (offset value) <- compute-offset data, top
+        var target-val/ebx: (addr value) <- index data, target-offset
+        var type/eax: (addr int) <- get target-val, type
+        compare *type, 4/screen
+        break-if-!=
+        var target-ah/eax: (addr handle screen) <- get target-val, screen-data
+        var _target/eax: (addr screen) <- lookup *target-ah
+        var target/edi: (addr screen) <- copy _target
+        var c/edx: (addr int) <- get target, cursor-col
+        var r/eax: (addr int) <- get target, cursor-row
+        var row/eax: int <- copy *r
+        {
+          compare d, 0
+          break-if-<=
+          compare *c, 1
+          break-if-<=
+          print-string target "─"
+          decrement *c
+          decrement *c  # second one to undo the print above
+          move-cursor target, row, *c
+          d <- decrement
+          loop
+        }
+        break $evaluate:process-word
+      }
+      {
+        var is-right?/eax: boolean <- stream-data-equal? curr-stream, "right"
+        compare is-right?, 0
+        break-if-=
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ebx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        # pop args
+        var _d/xmm0: float <- pop-number-from-value-stack out2
+        var d/ecx: int <- convert _d
+        # select screen from top of out (but don't pop it)
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var _data/eax: (addr array value) <- lookup *data-ah
+        var data/edi: (addr array value) <- copy _data
+        var top/eax: int <- copy *top-addr
+        top <- decrement
+        var target-offset/eax: (offset value) <- compute-offset data, top
+        var target-val/ebx: (addr value) <- index data, target-offset
+        var type/eax: (addr int) <- get target-val, type
+        compare *type, 4/screen
+        break-if-!=
+        var target-ah/eax: (addr handle screen) <- get target-val, screen-data
+        var _target/eax: (addr screen) <- lookup *target-ah
+        var target/edi: (addr screen) <- copy _target
+        var bound-a/ebx: (addr int) <- get target, num-rows
+        var bound/ebx: int <- copy *bound-a
+        var c/edx: (addr int) <- get target, cursor-col
+        var r/eax: (addr int) <- get target, cursor-row
+        var row/eax: int <- copy *r
+        {
+          compare d, 0
+          break-if-<=
+          compare *c, bound
+          break-if->=
+          print-string target "─"
+          # no increment; the print took care of it
+          move-cursor target, row, *c
+          d <- decrement
+          loop
+        }
+        break $evaluate:process-word
+      }
+      ## HACKS: we're trying to avoid turning this into Forth
+      {
+        var is-dup?/eax: boolean <- stream-data-equal? curr-stream, "dup"
+        compare is-dup?, 0
+        break-if-=
+        # read src-val from out
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/ecx: int <- copy *top-addr
+        top <- decrement
+        var offset/edx: (offset value) <- compute-offset data, top
+        var src-val/edx: (addr value) <- index data, offset
+        # push a copy of it
+        top <- increment
+        var offset/ebx: (offset value) <- compute-offset data, top
+        var target-val/ebx: (addr value) <- index data, offset
+        copy-object src-val, target-val
+        # commit
+        var top-addr/ecx: (addr int) <- get out2, top
+        increment *top-addr
+        break $evaluate:process-word
+      }
+      {
+        var is-swap?/eax: boolean <- stream-data-equal? curr-stream, "swap"
+        compare is-swap?, 0
+        break-if-=
+        # read top-val from out
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/ecx: int <- copy *top-addr
+        top <- decrement
+        var offset/edx: (offset value) <- compute-offset data, top
+        var top-val/edx: (addr value) <- index data, offset
+        # read next val from out
+        top <- decrement
+        var offset/ebx: (offset value) <- compute-offset data, top
+        var pen-top-val/ebx: (addr value) <- index data, offset
+        # swap
+        var tmp: value
+        var tmp-a/eax: (addr value) <- address tmp
+        copy-object top-val, tmp-a
+        copy-object pen-top-val, top-val
+        copy-object tmp-a, pen-top-val
+        break $evaluate:process-word
+      }
+      ### if curr-stream defines a binding, save top of stack to bindings
+      {
+        var done?/eax: boolean <- stream-empty? curr-stream
+        compare done?, 0/false
+        break-if-!=
+        var new-byte/eax: byte <- read-byte curr-stream
+        compare new-byte, 0x3d/=
+        break-if-!=
+        # pop target-val from out
+        var out2/esi: (addr value-stack) <- copy out
+        var top-addr/ecx: (addr int) <- get out2, top
+        compare *top-addr, 0
+        break-if-<=
+        var data-ah/eax: (addr handle array value) <- get out2, data
+        var data/eax: (addr array value) <- lookup *data-ah
+        var top/edx: int <- copy *top-addr
+        top <- decrement
+        var dest-offset/edx: (offset value) <- compute-offset data, top
+        var target-val/edx: (addr value) <- index data, dest-offset
+        # create binding from curr-stream to target-val
+        var key-h: (handle array byte)
+        var key/ecx: (addr handle array byte) <- address key-h
+        stream-to-array curr-stream, key
+        bind-in-table bindings, key, target-val
+        break $evaluate:process-word
+      }
+      rewind-stream curr-stream
+      ### if curr-stream is a known function name, call it appropriately
+      {
+        var callee-h: (handle function)
+        var callee-ah/eax: (addr handle function) <- address callee-h
+        find-function functions, curr-stream, callee-ah
+        var callee/eax: (addr function) <- lookup *callee-ah
+        compare callee, 0
+        break-if-=
+        perform-call callee, out, functions
+        break $evaluate:process-word
+      }
+      ### if it's a name, push its value
+      {
+        compare bindings, 0
+        break-if-=
+        var tmp: (handle array byte)
+        var curr-string-ah/edx: (addr handle array byte) <- address tmp
+        stream-to-array curr-stream, curr-string-ah  # unfortunate leak
+        var curr-string/eax: (addr array byte) <- lookup *curr-string-ah
+        var val-storage: (handle value)
+        var val-ah/edi: (addr handle value) <- address val-storage
+        lookup-binding bindings, curr-string, val-ah
+        var val/eax: (addr value) <- lookup *val-ah
+        compare val, 0
+        break-if-=
+        push-value-stack out, val
+        break $evaluate:process-word
+      }
+      ### if the word starts with a quote and ends with a quote, turn it into a string
+      {
+        var start/eax: byte <- stream-first curr-stream
+        compare start, 0x22/double-quote
+        break-if-!=
+        var end/eax: byte <- stream-final curr-stream
+        compare end, 0x22/double-quote
+        break-if-!=
+        var h: (handle array byte)
+        var s/eax: (addr handle array byte) <- address h
+        unquote-stream-to-array curr-stream, s  # leak
+        push-string-to-value-stack out, *s
+        break $evaluate:process-word
+      }
+      ### if the word starts with a '[' and ends with a ']', turn it into an array
+      {
+        var start/eax: byte <- stream-first curr-stream
+        compare start, 0x5b/[
+        break-if-!=
+        var end/eax: byte <- stream-final curr-stream
+        compare end, 0x5d/]
+        break-if-!=
+        # wastefully create a new input string to strip quotes
+        var h: (handle array value)
+        var input-ah/eax: (addr handle array byte) <- address h
+        unquote-stream-to-array curr-stream, input-ah  # leak
+        # wastefully parse input into int-array
+        # TODO: support parsing arrays of other types
+        var input/eax: (addr array byte) <- lookup *input-ah
+        var h2: (handle array int)
+        var int-array-ah/esi: (addr handle array int) <- address h2
+        parse-array-of-decimal-ints input, int-array-ah  # leak
+        var _int-array/eax: (addr array int) <- lookup *int-array-ah
+        var int-array/esi: (addr array int) <- copy _int-array
+        var len/ebx: int <- length int-array
+        # push value-array of same size as int-array
+        var h3: (handle array value)
+        var value-array-ah/eax: (addr handle array value) <- address h3
+        populate value-array-ah, len
+        push-array-to-value-stack out, *value-array-ah
+        # copy int-array into value-array
+        var _value-array/eax: (addr array value) <- lookup *value-array-ah
+        var value-array/edi: (addr array value) <- copy _value-array
+        var i/eax: int <- copy 0
+        {
+          compare i, len
+          break-if->=
+          var src-addr/ecx: (addr int) <- index int-array, i
+          var src/ecx: int <- copy *src-addr
+          var src-f/xmm0: float <- convert src
+          var dest-offset/edx: (offset value) <- compute-offset value-array, i
+          var dest-val/edx: (addr value) <- index value-array, dest-offset
+          var dest/edx: (addr float) <- get dest-val, number-data
+          copy-to *dest, src-f
+          i <- increment
+          loop
+        }
+        break $evaluate:process-word
+      }
+      ### otherwise assume it's a literal number and push it
+      {
+        var n/eax: int <- parse-decimal-int-from-stream curr-stream
+        var n-f/xmm0: float <- convert n
+        push-number-to-value-stack out, n-f
+      }
+    }
+    # termination check
+    compare curr, end
+    break-if-=
+    # update
+    var next-word-ah/edx: (addr handle word) <- get curr, next
+    curr <- lookup *next-word-ah
+    #
+    loop
+  }
+  # process next line if necessary
+  var line/eax: (addr line) <- copy scratch
+  var next-line-ah/eax: (addr handle line) <- get line, next
+  var next-line/eax: (addr line) <- lookup *next-line-ah
+  compare next-line, 0
+  break-if-=
+  evaluate functions, bindings, next-line, end, out
+}
+
+fn test-evaluate {
+  var line-storage: line
+  var line/esi: (addr line) <- address line-storage
+  var first-word-ah/eax: (addr handle word) <- get line-storage, data
+  allocate-word-with first-word-ah, "3"
+  append-word-with *first-word-ah, "=a"
+  var next-line-ah/eax: (addr handle line) <- get line-storage, next
+  allocate next-line-ah
+  var next-line/eax: (addr line) <- lookup *next-line-ah
+  var first-word-ah/eax: (addr handle word) <- get next-line, data
+  allocate-word-with first-word-ah, "a"
+  var functions-storage: (handle function)
+  var functions/ecx: (addr handle function) <- address functions-storage
+  var table-storage: table
+  var table/ebx: (addr table) <- address table-storage
+  initialize-table table, 0x10
+  var stack-storage: value-stack
+  var stack/edi: (addr value-stack) <- address stack-storage
+  initialize-value-stack stack, 0x10
+  evaluate functions, table, line, 0, stack
+  var x-f/xmm0: float <- pop-number-from-value-stack stack
+  var x/eax: int <- convert x-f
+  check-ints-equal x, 3, "F - test-evaluate"
+}
+
+fn find-function first: (addr handle function), name: (addr stream byte), out: (addr handle function) {
+  var curr/esi: (addr handle function) <- copy first
+  $find-function:loop: {
+    var _f/eax: (addr function) <- lookup *curr
+    var f/ecx: (addr function) <- copy _f
+    compare f, 0
+    break-if-=
+    var curr-name-ah/eax: (addr handle array byte) <- get f, name
+    var curr-name/eax: (addr array byte) <- lookup *curr-name-ah
+    var done?/eax: boolean <- stream-data-equal? name, curr-name
+    compare done?, 0/false
+    {
+      break-if-=
+      copy-handle *curr, out
+      break $find-function:loop
+    }
+    curr <- get f, next
+    loop
+  }
+}
+
+fn perform-call _callee: (addr function), caller-stack: (addr value-stack), functions: (addr handle function) {
+  var callee/ecx: (addr function) <- copy _callee
+  # create bindings for args
+  var table-storage: table
+  var table/esi: (addr table) <- address table-storage
+  initialize-table table, 0x10
+  bind-args callee, caller-stack, table
+  # obtain body
+  var body-ah/eax: (addr handle line) <- get callee, body
+  var body/eax: (addr line) <- lookup *body-ah
+  # perform call
+  var stack-storage: value-stack
+  var stack/edi: (addr value-stack) <- address stack-storage
+  initialize-value-stack stack, 0x10
+#?   print-string-to-real-screen "about to enter recursive eval\n"
+  evaluate functions, table, body, 0, stack
+#?   print-string-to-real-screen "exited recursive eval\n"
+  # pop target-val from out
+  var top-addr/ecx: (addr int) <- get stack, top
+  compare *top-addr, 0
+  break-if-<=
+  var data-ah/eax: (addr handle array value) <- get stack, data
+  var data/eax: (addr array value) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  top <- decrement
+  var dest-offset/edx: (offset value) <- compute-offset data, top
+  var target-val/edx: (addr value) <- index data, dest-offset
+  # stitch target-val into caller-stack
+  push-value-stack caller-stack, target-val
+}
+
+# pop args from the caller-stack and bind them to successive args
+# implies: function args are stored in reverse order
+fn bind-args _callee: (addr function), _caller-stack: (addr value-stack), table: (addr table) {
+  var callee/ecx: (addr function) <- copy _callee
+  var curr-arg-ah/eax: (addr handle word) <- get callee, args
+  var curr-arg/eax: (addr word) <- lookup *curr-arg-ah
+  #
+  var curr-key-storage: (handle array byte)
+  var curr-key/edx: (addr handle array byte) <- address curr-key-storage
+  {
+    compare curr-arg, 0
+    break-if-=
+    # create binding
+    word-to-string curr-arg, curr-key
+    {
+      # pop target-val from caller-stack
+      var caller-stack/esi: (addr value-stack) <- copy _caller-stack
+      var top-addr/ecx: (addr int) <- get caller-stack, top
+      compare *top-addr, 0
+      break-if-<=
+      decrement *top-addr
+      var data-ah/eax: (addr handle array value) <- get caller-stack, data
+      var data/eax: (addr array value) <- lookup *data-ah
+      var top/ebx: int <- copy *top-addr
+      var dest-offset/ebx: (offset value) <- compute-offset data, top
+      var target-val/ebx: (addr value) <- index data, dest-offset
+      # create binding from curr-key to target-val
+      bind-in-table table, curr-key, target-val
+    }
+    #
+    var next-arg-ah/edx: (addr handle word) <- get curr-arg, next
+    curr-arg <- lookup *next-arg-ah
+    loop
+  }
+}
+
+# Copy of 'simplify' that just tracks the maximum stack depth needed
+# Doesn't actually need to simulate the stack, since every word has a predictable effect.
+fn max-stack-depth first-word: (addr word), final-word: (addr word) -> _/edi: int {
+  var curr-word/eax: (addr word) <- copy first-word
+  var curr-depth/ecx: int <- copy 0
+  var result/edi: int <- copy 0
+  $max-stack-depth:loop: {
+    $max-stack-depth:process-word: {
+      # handle operators
+      {
+        var is-add?/eax: boolean <- word-equal? curr-word, "+"
+        compare is-add?, 0
+        break-if-=
+        curr-depth <- decrement
+        break $max-stack-depth:process-word
+      }
+      {
+        var is-sub?/eax: boolean <- word-equal? curr-word, "-"
+        compare is-sub?, 0
+        break-if-=
+        curr-depth <- decrement
+        break $max-stack-depth:process-word
+      }
+      {
+        var is-mul?/eax: boolean <- word-equal? curr-word, "*"
+        compare is-mul?, 0
+        break-if-=
+        curr-depth <- decrement
+        break $max-stack-depth:process-word
+      }
+      # otherwise it's an int (do we need error-checking?)
+      curr-depth <- increment
+      # update max depth if necessary
+      {
+        compare curr-depth, result
+        break-if-<=
+        result <- copy curr-depth
+      }
+    }
+    # if curr-word == final-word break
+    compare curr-word, final-word
+    break-if-=
+    # curr-word = curr-word->next
+    var next-word-ah/edx: (addr handle word) <- get curr-word, next
+    curr-word <- lookup *next-word-ah
+    #
+    loop
+  }
+  return result
+}
diff --git a/linux/tile/surface.mu b/linux/tile/surface.mu
new file mode 100644
index 00000000..2e353022
--- /dev/null
+++ b/linux/tile/surface.mu
@@ -0,0 +1,412 @@
+# A surface is a large 2-D grid that you can only see a subset of through the
+# screen.
+# Imagine a pin going through both surface and screen. As we update the
+# surface contents, the pinned point stays fixed, providing a sense of
+# stability.
+
+type surface {
+  screen: (handle screen)
+  data: (handle array screen-cell)
+  nrows: int
+  ncols: int
+  screen-nrows: int
+  screen-ncols: int
+  pin-row: int  # 1-indexed
+  pin-col: int  # 1-indexed
+  pin-screen-row: int  # 1-indexed
+  pin-screen-col: int  # 1-indexed
+}
+
+# intended mostly for tests; could be slow
+fn initialize-surface-with _self: (addr surface), in: (addr array byte) {
+  var self/esi: (addr surface) <- copy _self
+  # fill in nrows, ncols
+  var nrows/ecx: int <- num-lines in
+  var dest/eax: (addr int) <- get self, nrows
+  copy-to *dest, nrows
+  var ncols/edx: int <- first-line-length in  # assume all lines are the same length
+  dest <- get self, ncols
+  copy-to *dest, ncols
+  # fill in data
+  var len/ecx: int <- copy nrows
+  len <- multiply ncols
+  var out/edi: (addr surface) <- copy _self
+  var data/eax: (addr handle array screen-cell) <- get out, data
+  populate data, len
+  var data-addr/eax: (addr array screen-cell) <- lookup *data
+  fill-in data-addr, in
+  # fill in screen-nrows, screen-ncols
+  {
+    var screen-ah/eax: (addr handle screen) <- get self, screen
+    var _screen-addr/eax: (addr screen) <- lookup *screen-ah
+    var screen-addr/edi: (addr screen) <- copy _screen-addr
+    var nrows/eax: int <- copy 0
+    var ncols/ecx: int <- copy 0
+    nrows, ncols <- screen-size screen-addr
+    var dest/edi: (addr int) <- get self, screen-nrows
+    copy-to *dest, nrows
+    dest <- get self, screen-ncols
+    copy-to *dest, ncols
+  }
+}
+
+fn pin-surface-at _self: (addr surface), r: int, c: int {
+  var self/esi: (addr surface) <- copy _self
+  var dest/ecx: (addr int) <- get self, pin-row
+  var tmp/eax: int <- copy r
+  copy-to *dest, tmp
+  dest <- get self, pin-col
+  tmp <- copy c
+  copy-to *dest, tmp
+}
+
+fn pin-surface-to _self: (addr surface), sr: int, sc: int {
+  var self/esi: (addr surface) <- copy _self
+  var dest/ecx: (addr int) <- get self, pin-screen-row
+  var tmp/eax: int <- copy sr
+  copy-to *dest, tmp
+  dest <- get self, pin-screen-col
+  tmp <- copy sc
+  copy-to *dest, tmp
+}
+
+fn render-surface _self: (addr surface) {
+#?   print-string-to-real-screen "render-surface\n"
+  var self/esi: (addr surface) <- copy _self
+  # clear screen
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  clear-screen screen
+  #
+  var nrows/edx: (addr int) <- get self, screen-nrows
+  var ncols/ebx: (addr int) <- get self, screen-ncols
+  var screen-row/ecx: int <- copy 1
+  {
+    compare screen-row, *nrows
+    break-if->
+    var screen-col/eax: int <- copy 1
+    {
+      compare screen-col, *ncols
+      break-if->
+#?       print-string-to-real-screen "X"
+      print-surface-cell-at self, screen-row, screen-col
+      screen-col <- increment
+      loop
+    }
+#?     print-string-to-real-screen "\n"
+    screen-row <- increment
+    loop
+  }
+}
+
+fn print-surface-cell-at _self: (addr surface), screen-row: int, screen-col: int {
+  var self/esi: (addr surface) <- copy _self
+  var row/ecx: int <- screen-row-to-surface self, screen-row
+  var col/edx: int <- screen-col-to-surface self, screen-col
+  var data-ah/edi: (addr handle array screen-cell) <- get self, data
+  var _data-addr/eax: (addr array screen-cell) <- lookup *data-ah
+  var data-addr/edi: (addr array screen-cell) <- copy _data-addr
+  var idx/eax: int <- surface-screen-cell-index self, row, col
+  # if out of bounds, print ' '
+  compare idx, 0
+  {
+    break-if->=
+    var space/ecx: grapheme <- copy 0x20
+    var screen-ah/edi: (addr handle screen) <- get self, screen
+    var screen/eax: (addr screen) <- lookup *screen-ah
+    print-grapheme screen, space
+    return
+  }
+  # otherwise print the appropriate screen-cell
+  var offset/ecx: (offset screen-cell) <- compute-offset data-addr, idx
+  var src/ecx: (addr screen-cell) <- index data-addr, offset
+  var screen-ah/edi: (addr handle screen) <- get self, screen
+  var screen/eax: (addr screen) <- lookup *screen-ah
+  print-screen-cell screen, src
+}
+
+# print a cell with all its formatting at the cursor location
+fn print-screen-cell screen: (addr screen), _cell: (addr screen-cell) {
+  var cell/esi: (addr screen-cell) <- copy _cell
+  reset-formatting screen
+  var fg/eax: (addr int) <- get cell, color
+  var bg/ecx: (addr int) <- get cell, background-color
+  start-color screen, *fg, *bg
+  var tmp/eax: (addr boolean) <- get cell, bold?
+  {
+    compare *tmp, 0
+    break-if-=
+    start-bold screen
+  }
+  {
+    tmp <- get cell, underline?
+    compare *tmp, 0
+    break-if-=
+    start-underline screen
+  }
+  {
+    tmp <- get cell, reverse?
+    compare *tmp, 0
+    break-if-=
+    start-reverse-video screen
+  }
+  {
+    tmp <- get cell, blink?
+    compare *tmp, 0
+    break-if-=
+    start-blinking screen
+  }
+  var g/eax: (addr grapheme) <- get cell, data
+  print-grapheme screen, *g
+#?   var g2/eax: grapheme <- copy *g
+#?   var g3/eax: int <- copy g2
+#?   print-int32-hex-to-real-screen g3
+#?   print-string-to-real-screen "\n"
+}
+
+fn surface-screen-cell-index _self: (addr surface), row: int, col: int -> _/eax: int {
+  var self/esi: (addr surface) <- copy _self
+#?   print-int32-hex-to-real-screen row
+#?   print-string-to-real-screen ", "
+#?   print-int32-hex-to-real-screen col
+#?   print-string-to-real-screen "\n"
+  var result/eax: int <- copy -1
+  {
+    compare row, 1
+    break-if-<
+    compare col, 1
+    break-if-<
+    var nrows-addr/ecx: (addr int) <- get self, nrows
+    var nrows/ecx: int <- copy *nrows-addr
+    compare row, nrows
+    break-if->
+    var ncols-addr/ecx: (addr int) <- get self, ncols
+    var ncols/ecx: int <- copy *ncols-addr
+    compare col, ncols
+    break-if->
+  #?   print-string-to-real-screen "!\n"
+    result <- copy row
+    result <- subtract 1
+    result <- multiply ncols
+    result <- add col
+    result <- subtract 1
+  }
+  return result
+}
+
+fn screen-row-to-surface _self: (addr surface), screen-row: int -> _/ecx: int {
+  var self/esi: (addr surface) <- copy _self
+  var result/ecx: int <- copy screen-row
+  var tmp/eax: (addr int) <- get self, pin-row
+  result <- add *tmp
+  tmp <- get self, pin-screen-row
+  result <- subtract *tmp
+  return result
+}
+
+fn max _a: int, b: int -> _/eax: int {
+  var a/eax: int <- copy _a
+  compare a, b
+  {
+    break-if->
+    return b
+  }
+  return a
+}
+
+fn min _a: int, b: int -> _/eax: int {
+  var a/eax: int <- copy _a
+  compare a, b
+  {
+    break-if->
+    return a
+  }
+  return b
+}
+
+fn screen-col-to-surface _self: (addr surface), screen-col: int -> _/edx: int {
+  var self/esi: (addr surface) <- copy _self
+  var result/edx: int <- copy screen-col
+  var tmp/eax: (addr int) <- get self, pin-col
+  result <- add *tmp
+  tmp <- get self, pin-screen-col
+  result <- subtract *tmp
+  return result
+}
+
+fn surface-row-to-screen _self: (addr surface), row: int -> _/ecx: int {
+  var self/esi: (addr surface) <- copy _self
+  var result/ecx: int <- copy row
+  var tmp/eax: (addr int) <- get self, pin-screen-row
+  result <- add *tmp
+  tmp <- get self, pin-row
+  result <- subtract *tmp
+  return result
+}
+
+fn surface-col-to-screen _self: (addr surface), col: int -> _/edx: int {
+  var self/esi: (addr surface) <- copy _self
+  var result/edx: int <- copy col
+  var tmp/eax: (addr int) <- get self, pin-screen-col
+  result <- add *tmp
+  tmp <- get self, pin-col
+  result <- subtract *tmp
+  return result
+}
+
+# assumes last line doesn't end in '\n'
+fn num-lines in: (addr array byte) -> _/ecx: int {
+  var s: (stream byte 0x100)
+  var s-addr/esi: (addr stream byte) <- address s
+  write s-addr, in
+  var result/ecx: int <- copy 1
+  {
+    var done?/eax: boolean <- stream-empty? s-addr
+    compare done?, 0/false
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme s-addr
+    compare g, 0xa/newline
+    loop-if-!=
+    result <- increment
+    loop
+  }
+  return result
+}
+
+fn first-line-length in: (addr array byte) -> _/edx: int {
+  var s: (stream byte 0x100)
+  var s-addr/esi: (addr stream byte) <- address s
+  write s-addr, in
+  var result/edx: int <- copy 0
+  {
+    var done?/eax: boolean <- stream-empty? s-addr
+    compare done?, 0/false
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme s-addr
+    compare g, 0xa/newline
+    break-if-=
+    result <- increment
+    loop
+  }
+  return result
+}
+
+fn fill-in _out: (addr array screen-cell), in: (addr array byte) {
+  var s: (stream byte 0x100)
+  var out/edi: (addr array screen-cell) <- copy _out
+  var s-addr/esi: (addr stream byte) <- address s
+  write s-addr, in
+  var idx/ecx: int <- copy 0
+  {
+    var done?/eax: boolean <- stream-empty? s-addr
+    compare done?, 0/false
+    break-if-!=
+    var g/eax: grapheme <- read-grapheme s-addr
+    compare g, 0xa/newline
+    loop-if-=
+    var offset/edx: (offset screen-cell) <- compute-offset out, idx
+    var dest/edx: (addr screen-cell) <- index out, offset
+    var dest2/edx: (addr grapheme) <- get dest, data
+    copy-to *dest2, g
+    idx <- increment
+    loop
+  }
+}
+
+# pin (1, 1) to (1, 1) on screen
+fn test-surface-pin-at-origin {
+  var s: surface
+  var s-addr/esi: (addr surface) <- address s
+  # surface contents are a fixed grid with 8 rows and 6 columns
+  # (strip vowels second time around to break vertical alignment of letters)
+  initialize-surface-with-fake-screen s-addr, 3, 4, "abcdef\nghijkl\nmnopqr\nstuvwx\nyzabcd\nfghjkl\nmnpqrs\ntvwxyz"
+  pin-surface-at s-addr, 1, 1  # surface row and column
+  pin-surface-to s-addr, 1, 1  # screen row and column
+  render-surface s-addr
+  var screen-ah/eax: (addr handle screen) <- get s-addr, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "abcd", "F - test-surface-pin-at-origin"
+  check-screen-row screen-addr, 2, "ghij", "F - test-surface-pin-at-origin"
+  check-screen-row screen-addr, 3, "mnop", "F - test-surface-pin-at-origin"
+}
+
+# pin (1, 1) to (2, 1) on screen; screen goes past edge of the universe
+fn test-surface-pin-2 {
+  var s: surface
+  var s-addr/esi: (addr surface) <- address s
+  # surface contents are a fixed grid with 8 rows and 6 columns
+  # (strip vowels second time around to break vertical alignment of letters)
+  initialize-surface-with-fake-screen s-addr, 3, 4, "abcdef\nghijkl\nmnopqr\nstuvwx\nyzabcd\nfghjkl\nmnpqrs\ntvwxyz"
+  pin-surface-at s-addr, 1, 1  # surface row and column
+  pin-surface-to s-addr, 2, 1  # screen row and column
+  render-surface s-addr
+  var screen-ah/eax: (addr handle screen) <- get s-addr, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  # surface edge reached (should seldom happen in the app)
+  check-screen-row screen-addr, 1, "    ", "F - test-surface-pin-2"
+  check-screen-row screen-addr, 2, "abcd", "F - test-surface-pin-2"
+  check-screen-row screen-addr, 3, "ghij", "F - test-surface-pin-2"
+}
+
+# pin (2, 1) to (1, 1) on screen
+fn test-surface-pin-3 {
+  var s: surface
+  var s-addr/esi: (addr surface) <- address s
+  # surface contents are a fixed grid with 8 rows and 6 columns
+  # (strip vowels second time around to break vertical alignment of letters)
+  initialize-surface-with-fake-screen s-addr, 3, 4, "abcdef\nghijkl\nmnopqr\nstuvwx\nyzabcd\nfghjkl\nmnpqrs\ntvwxyz"
+  pin-surface-at s-addr, 2, 1  # surface row and column
+  pin-surface-to s-addr, 1, 1  # screen row and column
+  render-surface s-addr
+  var screen-ah/eax: (addr handle screen) <- get s-addr, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "ghij", "F - test-surface-pin-3"
+  check-screen-row screen-addr, 2, "mnop", "F - test-surface-pin-3"
+  check-screen-row screen-addr, 3, "stuv", "F - test-surface-pin-3"
+}
+
+# pin (1, 1) to (1, 2) on screen; screen goes past edge of the universe
+fn test-surface-pin-4 {
+  var s: surface
+  var s-addr/esi: (addr surface) <- address s
+  # surface contents are a fixed grid with 8 rows and 6 columns
+  # (strip vowels second time around to break vertical alignment of letters)
+  initialize-surface-with-fake-screen s-addr, 3, 4, "abcdef\nghijkl\nmnopqr\nstuvwx\nyzabcd\nfghjkl\nmnpqrs\ntvwxyz"
+  pin-surface-at s-addr, 1, 1  # surface row and column
+  pin-surface-to s-addr, 1, 2  # screen row and column
+  render-surface s-addr
+  var screen-ah/eax: (addr handle screen) <- get s-addr, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  # surface edge reached (should seldom happen in the app)
+  check-screen-row screen-addr, 1, " abc", "F - test-surface-pin-4"
+  check-screen-row screen-addr, 2, " ghi", "F - test-surface-pin-4"
+  check-screen-row screen-addr, 3, " mno", "F - test-surface-pin-4"
+}
+
+# pin (1, 2) to (1, 1) on screen
+fn test-surface-pin-5 {
+  var s: surface
+  var s-addr/esi: (addr surface) <- address s
+  # surface contents are a fixed grid with 8 rows and 6 columns
+  # (strip vowels second time around to break vertical alignment of letters)
+  initialize-surface-with-fake-screen s-addr, 3, 4, "abcdef\nghijkl\nmnopqr\nstuvwx\nyzabcd\nfghjkl\nmnpqrs\ntvwxyz"
+  pin-surface-at s-addr, 1, 2  # surface row and column
+  pin-surface-to s-addr, 1, 1  # screen row and column
+  render-surface s-addr
+  var screen-ah/eax: (addr handle screen) <- get s-addr, screen
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  check-screen-row screen-addr, 1, "bcde", "F - test-surface-pin-5"
+  check-screen-row screen-addr, 2, "hijk", "F - test-surface-pin-5"
+  check-screen-row screen-addr, 3, "nopq", "F - test-surface-pin-5"
+}
+
+fn initialize-surface-with-fake-screen _self: (addr surface), nrows: int, ncols: int, in: (addr array byte) {
+  var self/esi: (addr surface) <- copy _self
+  # fill in screen
+  var screen-ah/eax: (addr handle screen) <- get self, screen
+  allocate screen-ah
+  var screen-addr/eax: (addr screen) <- lookup *screen-ah
+  initialize-screen screen-addr, nrows, ncols
+  # fill in everything else
+  initialize-surface-with self, in
+}
diff --git a/linux/tile/table.mu b/linux/tile/table.mu
new file mode 100644
index 00000000..9c03117b
--- /dev/null
+++ b/linux/tile/table.mu
@@ -0,0 +1,165 @@
+fn initialize-table _self: (addr table), n: int {
+  var self/esi: (addr table) <- copy _self
+  var data-ah/eax: (addr handle array bind) <- get self, data
+  populate data-ah, n
+}
+
+fn deep-copy-table _src: (addr table), _dest: (addr table) {
+#?   print-string 0, "deep-copy-table\n"
+  var src/eax: (addr table) <- copy _src
+  var src-data-ah/eax: (addr handle array bind) <- get src, data
+  var _src-data/eax: (addr array bind) <- lookup *src-data-ah
+  var src-data/esi: (addr array bind) <- copy _src-data
+  var n/ecx: int <- length src-data
+  var dest/eax: (addr table) <- copy _dest
+  initialize-table dest, n
+  var dest-data-ah/eax: (addr handle array bind) <- get dest, data
+  var _dest-data/eax: (addr array bind) <- lookup *dest-data-ah
+  var dest-data/edi: (addr array bind) <- copy _dest-data
+  var i/eax: int <- copy 0
+  {
+    compare i, n
+    break-if->=
+#?     print-string 0, "iter\n"
+    $deep-copy:element: {
+      var offset/edx: (offset bind) <- compute-offset src-data, i
+      var src-bind/ecx: (addr bind) <- index src-data, offset
+      var dest-bind/edx: (addr bind) <- index dest-data, offset
+      var src-key-ah/ebx: (addr handle array byte) <- get src-bind, key
+      var src-key/eax: (addr array byte) <- lookup *src-key-ah
+      compare src-key, 0
+      break-if-=
+      # copy key
+      var dest-key-ah/eax: (addr handle array byte) <- get dest-bind, key
+      copy-object src-key-ah, dest-key-ah
+      # deep copy value
+      var src-val-ah/eax: (addr handle value) <- get src-bind, value
+      var _src-val/eax: (addr value) <- lookup *src-val-ah
+      var src-val/ecx: (addr value) <- copy _src-val
+      var dest-val-ah/eax: (addr handle value) <- get dest-bind, value
+      allocate dest-val-ah
+      var dest-val/eax: (addr value) <- lookup *dest-val-ah
+#?       print-string 0, "deep copy value {\n"
+      deep-copy-value src-val, dest-val
+#?       print-string 0, "}\n"
+    }
+    i <- increment
+    loop
+  }
+#?   print-string 0, "end deep-copy-table\n"
+}
+
+fn bind-in-table _self: (addr table), key: (addr handle array byte), val: (addr value) {
+  var self/esi: (addr table) <- copy _self
+  var data-ah/esi: (addr handle array bind) <- get self, data
+  var _data/eax: (addr array bind) <- lookup *data-ah
+  var data/esi: (addr array bind) <- copy _data
+  var next-empty-slot-index/eax: (offset bind) <- next-empty-slot data, key
+  var dest/eax: (addr bind) <- index data, next-empty-slot-index
+  make-binding dest, key, val
+}
+
+# manual test: full array of binds
+fn next-empty-slot _data: (addr array bind), key: (addr handle array byte) -> _/eax: (offset bind) {
+  var data/esi: (addr array bind) <- copy _data
+  var len/ecx: int <- length data
+  var i/edx: int <- copy 0
+  var result/eax: (offset bind) <- copy 0
+  $next-empty-slot:loop: {
+    result <- compute-offset data, i
+    compare i, len
+    break-if->=
+    {
+      var target/esi: (addr bind) <- index data, result
+      var target2/esi: (addr handle array byte) <- get target, key
+      var target3/eax: (addr array byte) <- lookup *target2
+      compare target3, 0
+      break-if-= $next-empty-slot:loop
+      # TODO: how to indicate that key already exists? we don't want to permit rebinding
+    }
+    i <- increment
+    loop
+  }
+  return result
+}
+
+fn make-number-binding _self: (addr bind), key: (addr handle array byte), _val: float {
+  var self/esi: (addr bind) <- copy _self
+  var dest/eax: (addr handle array byte) <- get self, key
+  copy-object key, dest
+  var dest2/eax: (addr handle value) <- get self, value
+  allocate dest2
+  var dest3/eax: (addr value) <- lookup *dest2
+  var dest4/eax: (addr float) <- get dest3, number-data
+  var val/xmm0: float <- copy _val
+  copy-to *dest4, val
+}
+
+fn make-binding _self: (addr bind), key: (addr handle array byte), val: (addr value) {
+  var self/esi: (addr bind) <- copy _self
+  var dest/eax: (addr handle array byte) <- get self, key
+  copy-object key, dest
+  var dest2/eax: (addr handle value) <- get self, value
+  allocate dest2
+  var dest3/eax: (addr value) <- lookup *dest2
+  copy-object val, dest3
+}
+
+fn lookup-binding _self: (addr table), key: (addr array byte), out: (addr handle value) {
+  var self/esi: (addr table) <- copy _self
+  var data-ah/esi: (addr handle array bind) <- get self, data
+  var _data/eax: (addr array bind) <- lookup *data-ah
+  var data/esi: (addr array bind) <- copy _data
+  var len/edx: int <- length data
+  var i/ebx: int <- copy 0
+  $lookup-binding:loop: {
+    compare i, len
+    break-if->=
+    {
+      var offset/edx: (offset bind) <- compute-offset data, i
+      var target-bind/esi: (addr bind) <- index data, offset
+      var target2/edx: (addr handle array byte) <- get target-bind, key
+      var target3/eax: (addr array byte) <- lookup *target2
+      compare target3, 0
+      break-if-= $lookup-binding:loop
+      var is-match?/eax: boolean <- string-equal? target3, key
+      compare is-match?, 0/false
+      break-if-=
+      # found
+      var target/eax: (addr handle value) <- get target-bind, value
+      copy-object target, out
+      break $lookup-binding:loop
+    }
+    i <- increment
+    loop
+  }
+}
+
+fn dump-table _self: (addr table) {
+  var self/esi: (addr table) <- copy _self
+  var data-ah/esi: (addr handle array bind) <- get self, data
+  var _data/eax: (addr array bind) <- lookup *data-ah
+  var data/esi: (addr array bind) <- copy _data
+  var len/edx: int <- length data
+  var i/ebx: int <- copy 0
+  {
+    compare i, len
+    break-if->=
+    var offset/edx: (offset bind) <- compute-offset data, i
+    var target-bind/esi: (addr bind) <- index data, offset
+    var key-ah/edx: (addr handle array byte) <- get target-bind, key
+    var key/eax: (addr array byte) <- lookup *key-ah
+    compare key, 0
+    break-if-=
+    print-string 0, key
+    print-string 0, ": "
+    var val-ah/eax: (addr handle value) <- get target-bind, value
+    var val/eax: (addr value) <- lookup *val-ah
+    var type/eax: (addr int) <- get val, type
+    print-int32-hex 0, *type
+    print-string 0, "\n"
+    i <- increment
+    loop
+  }
+  print-string 0, "\n"
+}
diff --git a/linux/tile/value-stack.mu b/linux/tile/value-stack.mu
new file mode 100644
index 00000000..886b4037
--- /dev/null
+++ b/linux/tile/value-stack.mu
@@ -0,0 +1,149 @@
+# support for non-int values is untested
+
+type value-stack {
+  data: (handle array value)
+  top: int
+}
+
+fn initialize-value-stack _self: (addr value-stack), n: int {
+  var self/esi: (addr value-stack) <- copy _self
+  var d/edi: (addr handle array value) <- get self, data
+  populate d, n
+  var top/eax: (addr int) <- get self, top
+  copy-to *top, 0
+}
+
+fn clear-value-stack _self: (addr value-stack) {
+  var self/esi: (addr value-stack) <- copy _self
+  var top/eax: (addr int) <- get self, top
+  copy-to *top, 0
+}
+
+fn push-number-to-value-stack _self: (addr value-stack), _val: float {
+  var self/esi: (addr value-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  var data-ah/edx: (addr handle array value) <- get self, data
+  var data/eax: (addr array value) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var dest-offset/edx: (offset value) <- compute-offset data, top
+  var dest-addr/edx: (addr value) <- index data, dest-offset
+  var dest-addr2/eax: (addr float) <- get dest-addr, number-data
+  var val/xmm0: float <- copy _val
+#?   print-float-decimal-approximate 0, val, 3
+  copy-to *dest-addr2, val
+  increment *top-addr
+  var type-addr/eax: (addr int) <- get dest-addr, type
+  copy-to *type-addr, 0/number
+}
+
+fn push-string-to-value-stack _self: (addr value-stack), val: (handle array byte) {
+  var self/esi: (addr value-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  var data-ah/edx: (addr handle array value) <- get self, data
+  var data/eax: (addr array value) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var dest-offset/edx: (offset value) <- compute-offset data, top
+  var dest-addr/edx: (addr value) <- index data, dest-offset
+  var dest-addr2/eax: (addr handle array byte) <- get dest-addr, text-data
+  copy-handle val, dest-addr2
+  var dest-addr3/eax: (addr int) <- get dest-addr, type
+#?   print-string 0, "setting type to 1: "
+#?   {
+#?     var foo/eax: int <- copy dest-addr3
+#?     print-int32-hex 0, foo
+#?   }
+#?   print-string 0, "\n"
+  copy-to *dest-addr3, 1/string
+  increment *top-addr
+}
+
+fn push-array-to-value-stack _self: (addr value-stack), val: (handle array value) {
+  var self/esi: (addr value-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  var data-ah/edx: (addr handle array value) <- get self, data
+  var data/eax: (addr array value) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var dest-offset/edx: (offset value) <- compute-offset data, top
+  var dest-addr/edx: (addr value) <- index data, dest-offset
+  var dest-addr2/eax: (addr handle array value) <- get dest-addr, array-data
+  copy-handle val, dest-addr2
+  # update type
+  var dest-addr3/eax: (addr int) <- get dest-addr, type
+  copy-to *dest-addr3, 2/array
+  increment *top-addr
+}
+
+fn push-value-stack _self: (addr value-stack), val: (addr value) {
+  var self/esi: (addr value-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  var data-ah/edx: (addr handle array value) <- get self, data
+  var data/eax: (addr array value) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var dest-offset/edx: (offset value) <- compute-offset data, top
+  var dest-addr/edx: (addr value) <- index data, dest-offset
+  copy-object val, dest-addr
+  increment *top-addr
+}
+
+fn pop-number-from-value-stack _self: (addr value-stack) -> _/xmm0: float {
+  var self/esi: (addr value-stack) <- copy _self
+  var top-addr/ecx: (addr int) <- get self, top
+  {
+    compare *top-addr, 0
+    break-if->
+    var minus-one/eax: int <- copy -1
+    var minus-one-f/xmm0: float <- convert minus-one
+    return minus-one-f
+  }
+  decrement *top-addr
+  var data-ah/edx: (addr handle array value) <- get self, data
+  var data/eax: (addr array value) <- lookup *data-ah
+  var top/edx: int <- copy *top-addr
+  var dest-offset/edx: (offset value) <- compute-offset data, top
+  var result-addr/eax: (addr value) <- index data, dest-offset
+  var result-addr2/eax: (addr float) <- get result-addr, number-data
+  return *result-addr2
+}
+
+fn value-stack-empty? _self: (addr value-stack) -> _/eax: boolean {
+  var self/esi: (addr value-stack) <- copy _self
+  var top/eax: (addr int) <- get self, top
+  compare *top, 0
+  {
+    break-if-!=
+    return 1/true
+  }
+  return 0/false
+}
+
+fn value-stack-length _self: (addr value-stack) -> _/eax: int {
+  var self/esi: (addr value-stack) <- copy _self
+  var top-addr/eax: (addr int) <- get self, top
+  return *top-addr
+}
+
+fn save-lines in-h: (handle array (handle array byte)), _out-ah: (addr handle array value) {
+  var _in/eax: (addr array (handle array byte)) <- lookup in-h
+  var in/esi: (addr array (handle array byte)) <- copy _in
+  var len/ecx: int <- length in
+  var out-ah/edi: (addr handle array value) <- copy _out-ah
+  populate out-ah, len
+  var out/eax: (addr array value) <- lookup *out-ah
+  # copy in into out
+  var i/ebx: int <- copy 0
+  {
+    compare i, len
+    break-if->=
+#?     print-int32-hex 0, i
+#?     print-string 0, "\n"
+    var src/ecx: (addr handle array byte) <- index in, i
+    var dest-offset/edx: (offset value) <- compute-offset out, i
+    var dest-val/edx: (addr value) <- index out, dest-offset
+    var dest/eax: (addr handle array byte) <- get dest-val, text-data
+    copy-object src, dest
+    var type/edx: (addr int) <- get dest-val, type
+    copy-to *type, 1/string
+    i <- increment
+    loop
+  }
+}
diff --git a/linux/tile/value.mu b/linux/tile/value.mu
new file mode 100644
index 00000000..8bd01676
--- /dev/null
+++ b/linux/tile/value.mu
@@ -0,0 +1,424 @@
+fn render-value-at screen: (addr screen), row: int, col: int, _val: (addr value), top-level?: boolean {
+  move-cursor screen, row, col
+  var val/esi: (addr value) <- copy _val
+  var val-type/ecx: (addr int) <- get val, type
+  # per-type rendering logic goes here
+  compare *val-type, 1/string
+  {
+    break-if-!=
+    var val-ah/eax: (addr handle array byte) <- get val, text-data
+    var val-string/eax: (addr array byte) <- lookup *val-ah
+    compare val-string, 0
+    break-if-=
+    var orig-len/ecx: int <- length val-string
+    var truncated: (handle array byte)
+    var truncated-ah/esi: (addr handle array byte) <- address truncated
+    substring val-string, 0, 0xc, truncated-ah
+    var truncated-string/eax: (addr array byte) <- lookup *truncated-ah
+    var len/edx: int <- length truncated-string
+    start-color screen, 0xf2, 7
+    print-code-point screen, 0x275d/open-quote
+    print-string screen, truncated-string
+    compare len, orig-len
+    {
+      break-if-=
+      print-code-point screen, 0x2026/ellipses
+    }
+    print-code-point screen, 0x275e/close-quote
+    reset-formatting screen
+    return
+  }
+  compare *val-type, 2/array
+  {
+    break-if-!=
+    var val-ah/eax: (addr handle array value) <- get val, array-data
+    var val-array/eax: (addr array value) <- lookup *val-ah
+    render-array-at screen, row, col, val-array
+    return
+  }
+  compare *val-type, 3/file
+  {
+    break-if-!=
+    var val-ah/eax: (addr handle buffered-file) <- get val, file-data
+    var val-file/eax: (addr buffered-file) <- lookup *val-ah
+    start-color screen, 0, 7
+    # TODO
+    print-string screen, " FILE "
+    return
+  }
+  compare *val-type, 4/screen
+  {
+    break-if-!=
+#?     print-string 0, "render-screen"
+    var val-ah/eax: (addr handle screen) <- get val, screen-data
+    var val-screen/eax: (addr screen) <- lookup *val-ah
+    render-screen screen, row, col, val-screen
+#?     print-string 0, "}\n"
+    return
+  }
+  # render ints by default for now
+  var val-num/eax: (addr float) <- get val, number-data
+  render-number screen, *val-num, top-level?
+}
+
+# synaesthesia
+# TODO: right-justify
+fn render-number screen: (addr screen), val: float, top-level?: boolean {
+  # if we're inside an array, don't color
+  compare top-level?, 0
+  {
+    break-if-!=
+    print-float-decimal-approximate screen, val, 3
+    return
+  }
+  var val-int/eax: int <- convert val
+  var bg/eax: int <- hash-color val-int
+  var fg/ecx: int <- copy 7
+  {
+    compare bg, 2
+    break-if-!=
+    fg <- copy 0
+  }
+  {
+    compare bg, 3
+    break-if-!=
+    fg <- copy 0
+  }
+  {
+    compare bg, 6
+    break-if-!=
+    fg <- copy 0
+  }
+  start-color screen, fg, bg
+  print-grapheme screen, 0x20/space
+  print-float-decimal-approximate screen, val, 3
+  print-grapheme screen, 0x20/space
+}
+
+fn render-array-at screen: (addr screen), row: int, col: int, _a: (addr array value) {
+  start-color screen, 0xf2, 7
+  # don't surround in spaces
+  print-grapheme screen, 0x5b/[
+  increment col
+  var a/esi: (addr array value) <- copy _a
+  var max/ecx: int <- length a
+  var i/eax: int <- copy 0
+  {
+    compare i, max
+    break-if->=
+    {
+      compare i, 0
+      break-if-=
+      print-string screen, " "
+    }
+    var off/ecx: (offset value) <- compute-offset a, i
+    var x/ecx: (addr value) <- index a, off
+    render-value-at screen, row, col, x, 0
+    {
+      var w/eax: int <- value-width x, 0
+      add-to col, w
+      increment col
+    }
+    i <- increment
+    loop
+  }
+  print-grapheme screen, 0x5d/]
+}
+
+fn render-screen screen: (addr screen), row: int, col: int, _target-screen: (addr screen) {
+  reset-formatting screen
+  move-cursor screen, row, col
+  var target-screen/esi: (addr screen) <- copy _target-screen
+  var ncols-a/ecx: (addr int) <- get target-screen, num-cols
+  print-upper-border screen, *ncols-a
+  var r/edx: int <- copy 1
+  var nrows-a/ebx: (addr int) <- get target-screen, num-rows
+  {
+    compare r, *nrows-a
+    break-if->
+    increment row  # mutate arg
+    move-cursor screen, row, col
+    print-string screen, " "
+    var c/edi: int <- copy 1
+    {
+      compare c, *ncols-a
+      break-if->
+      print-screen-cell-of-fake-screen screen, target-screen, r, c
+      c <- increment
+      loop
+    }
+    print-string screen, " "
+    r <- increment
+    loop
+  }
+  increment row  # mutate arg
+  move-cursor screen, row, col
+  print-lower-border screen, *ncols-a
+}
+
+fn hash-color val: int -> _/eax: int {
+  var quotient/eax: int <- copy 0
+  var remainder/edx: int <- copy 0
+  quotient, remainder <- integer-divide val, 7  # assumes that 7 is always the background color
+  return remainder
+}
+
+fn print-screen-cell-of-fake-screen screen: (addr screen), _target: (addr screen), _row: int, _col: int {
+  start-color screen, 0, 0xf6
+  var target/esi: (addr screen) <- copy _target
+  var row/ecx: int <- copy _row
+  var col/edx: int <- copy _col
+  # if cursor is at screen-cell, add some fancy
+  {
+    var cursor-row/eax: (addr int) <- get target, cursor-row
+    compare *cursor-row, row
+    break-if-!=
+    var cursor-col/eax: (addr int) <- get target, cursor-col
+    compare *cursor-col, col
+    break-if-!=
+    start-blinking screen
+    start-color screen, 0, 1
+  }
+  var g/eax: grapheme <- screen-grapheme-at target, row, col
+  {
+    compare g, 0
+    break-if-!=
+    g <- copy 0x20/space
+  }
+  print-grapheme screen, g
+  reset-formatting screen
+}
+
+fn print-upper-border screen: (addr screen), width: int {
+  print-code-point screen, 0x250c/top-left-corner
+  var i/eax: int <- copy 0
+  {
+    compare i, width
+    break-if->=
+    print-code-point screen, 0x2500/horizontal-line
+    i <- increment
+    loop
+  }
+  print-code-point screen, 0x2510/top-right-corner
+}
+
+fn print-lower-border screen: (addr screen), width: int {
+  print-code-point screen, 0x2514/bottom-left-corner
+  var i/eax: int <- copy 0
+  {
+    compare i, width
+    break-if->=
+    print-code-point screen, 0x2500/horizontal-line
+    i <- increment
+    loop
+  }
+  print-code-point screen, 0x2518/bottom-right-corner
+}
+
+fn value-width _v: (addr value), top-level: boolean -> _/eax: int {
+  var v/esi: (addr value) <- copy _v
+  var type/eax: (addr int) <- get v, type
+  {
+    compare *type, 0/int
+    break-if-!=
+    var v-num/edx: (addr float) <- get v, number-data
+    var result/eax: int <- float-size *v-num, 3
+    return result
+  }
+  {
+    compare *type, 1/string
+    break-if-!=
+    var s-ah/eax: (addr handle array byte) <- get v, text-data
+    var s/eax: (addr array byte) <- lookup *s-ah
+    compare s, 0
+    break-if-=
+    var result/eax: int <- length s
+    compare result, 0xd/max-string-size
+    {
+      break-if-<=
+      result <- copy 0xd
+    }
+    # if it's a nested string, include space for quotes
+    # we don't do this for the top-level, where the quotes will overflow
+    # into surrounding padding.
+    compare top-level, 0/false
+    {
+      break-if-!=
+      result <- add 2
+    }
+    return result
+  }
+  {
+    compare *type, 2/array
+    break-if-!=
+    var a-ah/eax: (addr handle array value) <- get v, array-data
+    var a/eax: (addr array value) <- lookup *a-ah
+    compare a, 0
+    break-if-=
+    var result/eax: int <- array-width a
+    return result
+  }
+  {
+    compare *type, 3/file
+    break-if-!=
+    var f-ah/eax: (addr handle buffered-file) <- get v, file-data
+    var f/eax: (addr buffered-file) <- lookup *f-ah
+    compare f, 0
+    break-if-=
+    # TODO: visualizing file handles
+    return 4
+  }
+  {
+    compare *type, 4/screen
+    break-if-!=
+    var screen-ah/eax: (addr handle screen) <- get v, screen-data
+    var screen/eax: (addr screen) <- lookup *screen-ah
+    compare screen, 0
+    break-if-=
+    var ncols/ecx: (addr int) <- get screen, num-cols
+    var result/eax: int <- copy *ncols
+    result <- add 2  # left/right margins
+    return *ncols
+  }
+  return 0
+}
+
+# keep sync'd with render-array-at
+fn array-width _a: (addr array value) -> _/eax: int {
+  var a/esi: (addr array value) <- copy _a
+  var max/ecx: int <- length a
+  var i/eax: int <- copy 0
+  var result/edi: int <- copy 0
+  {
+    compare i, max
+    break-if->=
+    {
+      compare i, 0
+      break-if-=
+      result <- increment  # for space
+    }
+    var off/ecx: (offset value) <- compute-offset a, i
+    var x/ecx: (addr value) <- index a, off
+    {
+      var w/eax: int <- value-width x, 0
+      result <- add w
+    }
+    i <- increment
+    loop
+  }
+  # we won't add 2 for surrounding brackets since we don't surround arrays in
+  # spaces like other value types
+  return result
+}
+
+fn value-height _v: (addr value) -> _/eax: int {
+  var v/esi: (addr value) <- copy _v
+  var type/eax: (addr int) <- get v, type
+  {
+    compare *type, 3/file
+    break-if-!=
+    # TODO: visualizing file handles
+    return 1
+  }
+  {
+    compare *type, 4/screen
+    break-if-!=
+    var screen-ah/eax: (addr handle screen) <- get v, screen-data
+    var screen/eax: (addr screen) <- lookup *screen-ah
+    compare screen, 0
+    break-if-=
+    var nrows/ecx: (addr int) <- get screen, num-rows
+    var result/eax: int <- copy *nrows
+    result <- add 2  # top and bottom border
+    return result
+  }
+  return 1
+}
+
+fn deep-copy-value _src: (addr value), _dest: (addr value) {
+#?   print-string 0, "deep-copy-value\n"
+  var src/esi: (addr value) <- copy _src
+  var dest/edi: (addr value) <- copy _dest
+  var type/ebx: (addr int) <- get src, type
+  var y/ecx: (addr int) <- get dest, type
+  copy-object type, y
+  compare *type, 0   # int
+  {
+    break-if-!=
+#?     print-string 0, "int value\n"
+    var src-n/eax: (addr float) <- get src, number-data
+    var dest-n/ecx: (addr float) <- get dest, number-data
+    copy-object src-n, dest-n
+    return
+  }
+  compare *type, 1/string
+  {
+    break-if-!=
+#?     print-string 0, "string value\n"
+    var src-ah/eax: (addr handle array byte) <- get src, text-data
+    var src/eax: (addr array byte) <- lookup *src-ah
+    var dest-ah/edx: (addr handle array byte) <- get dest, text-data
+    copy-array-object src, dest-ah
+    return
+  }
+  compare *type, 2/array
+  {
+    break-if-!=
+#?     print-string 0, "array value\n"
+    var src-ah/eax: (addr handle array value) <- get src, array-data
+    var _src/eax: (addr array value) <- lookup *src-ah
+    var src/esi: (addr array value) <- copy _src
+    var n/ecx: int <- length src
+    var dest-ah/edx: (addr handle array value) <- get dest, array-data
+    populate dest-ah, n
+    var _dest/eax: (addr array value) <- lookup *dest-ah
+    var dest/edi: (addr array value) <- copy _dest
+    var i/eax: int <- copy 0
+    {
+      compare i, n
+      break-if->=
+      {
+        var offset/edx: (offset value) <- compute-offset src, i
+        var src-element/eax: (addr value) <- index src, offset
+        var dest-element/ecx: (addr value) <- index dest, offset
+        deep-copy-value src-element, dest-element
+      }
+      i <- increment
+      loop
+    }
+    copy-array-object src, dest-ah
+    return
+  }
+  compare *type, 3/file
+  {
+    break-if-!=
+#?     print-string 0, "file value\n"
+    var src-filename-ah/eax: (addr handle array byte) <- get src, filename
+    var _src-filename/eax: (addr array byte) <- lookup *src-filename-ah
+    var src-filename/ecx: (addr array byte) <- copy _src-filename
+    var dest-filename-ah/ebx: (addr handle array byte) <- get dest, filename
+    copy-array-object src-filename, dest-filename-ah
+    var src-file-ah/eax: (addr handle buffered-file) <- get src, file-data
+    var src-file/eax: (addr buffered-file) <- lookup *src-file-ah
+    var dest-file-ah/edx: (addr handle buffered-file) <- get dest, file-data
+    copy-file src-file, dest-file-ah, src-filename
+    return
+  }
+  compare *type, 4/screen
+  {
+    break-if-!=
+#?     print-string 0, "screen value\n"
+    var src-screen-ah/eax: (addr handle screen) <- get src, screen-data
+    var _src-screen/eax: (addr screen) <- lookup *src-screen-ah
+    var src-screen/ecx: (addr screen) <- copy _src-screen
+    var dest-screen-ah/eax: (addr handle screen) <- get dest, screen-data
+    allocate dest-screen-ah
+    var dest-screen/eax: (addr screen) <- lookup *dest-screen-ah
+    copy-object src-screen, dest-screen
+    var dest-screen-data-ah/ebx: (addr handle array screen-cell) <- get dest-screen, data
+    var src-screen-data-ah/eax: (addr handle array screen-cell) <- get src-screen, data
+    var src-screen-data/eax: (addr array screen-cell) <- lookup *src-screen-data-ah
+    copy-array-object src-screen-data, dest-screen-data-ah
+    return
+  }
+}
diff --git a/linux/tile/vimrc.vim b/linux/tile/vimrc.vim
new file mode 100644
index 00000000..348fe364
--- /dev/null
+++ b/linux/tile/vimrc.vim
@@ -0,0 +1,2 @@
+" when opening files in this directory, load vimrc from cwd (top-level)
+source vimrc.vim
diff --git a/linux/tile/word.mu b/linux/tile/word.mu
new file mode 100644
index 00000000..b4f5000b
--- /dev/null
+++ b/linux/tile/word.mu
@@ -0,0 +1,573 @@
+fn initialize-word _self: (addr word) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  allocate data-ah
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  initialize-gap-buffer data
+}
+
+## some helpers for creating words. mostly for tests
+
+fn initialize-word-with _self: (addr word), s: (addr array byte) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  allocate data-ah
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  initialize-gap-buffer-with data, s
+}
+
+fn allocate-word-with _out: (addr handle word), s: (addr array byte) {
+  var out/eax: (addr handle word) <- copy _out
+  allocate out
+  var out-addr/eax: (addr word) <- lookup *out
+  initialize-word-with out-addr, s
+}
+
+# just for tests for now
+# TODO: handle existing next
+# one implication of handles: append must take a handle
+fn append-word-with self-h: (handle word), s: (addr array byte) {
+  var self/eax: (addr word) <- lookup self-h
+  var next-ah/eax: (addr handle word) <- get self, next
+  allocate-word-with next-ah, s
+  var next/eax: (addr word) <- lookup *next-ah
+  var prev-ah/eax: (addr handle word) <- get next, prev
+  copy-handle self-h, prev-ah
+}
+
+# just for tests for now
+# TODO: handle existing prev
+fn prepend-word-with self-h: (handle word), s: (addr array byte) {
+  var self/eax: (addr word) <- lookup self-h
+  var prev-ah/eax: (addr handle word) <- get self, prev
+  allocate-word-with prev-ah, s
+  var prev/eax: (addr word) <- lookup *prev-ah
+  var next-ah/eax: (addr handle word) <- get prev, next
+  copy-handle self-h, next-ah
+}
+
+## real primitives
+
+fn move-word-contents _src-ah: (addr handle word), _dest-ah: (addr handle word) {
+  var dest-ah/eax: (addr handle word) <- copy _dest-ah
+  var _dest/eax: (addr word) <- lookup *dest-ah
+  var dest/edi: (addr word) <- copy _dest
+  var src-ah/eax: (addr handle word) <- copy _src-ah
+  var _src/eax: (addr word) <- lookup *src-ah
+  var src/esi: (addr word) <- copy _src
+  cursor-to-start src
+  var src-data-ah/eax: (addr handle gap-buffer) <- get src, scalar-data
+  var src-data/eax: (addr gap-buffer) <- lookup *src-data-ah
+  var src-stack/ecx: (addr grapheme-stack) <- get src-data, right
+  {
+    var done?/eax: boolean <- grapheme-stack-empty? src-stack
+    compare done?, 0/false
+    break-if-!=
+    var g/eax: grapheme <- pop-grapheme-stack src-stack
+#?     print-grapheme 0, g
+#?     print-string 0, "\n"
+    add-grapheme-to-word dest, g
+    loop
+  }
+}
+
+fn copy-word-contents-before-cursor _src-ah: (addr handle word), _dest-ah: (addr handle word) {
+  var dest-ah/eax: (addr handle word) <- copy _dest-ah
+  var _dest/eax: (addr word) <- lookup *dest-ah
+  var dest/edi: (addr word) <- copy _dest
+  var src-ah/eax: (addr handle word) <- copy _src-ah
+  var src/eax: (addr word) <- lookup *src-ah
+  var src-data-ah/eax: (addr handle gap-buffer) <- get src, scalar-data
+  var src-data/eax: (addr gap-buffer) <- lookup *src-data-ah
+  var src-stack/ecx: (addr grapheme-stack) <- get src-data, left
+  var src-stack-data-ah/eax: (addr handle array grapheme) <- get src-stack, data
+  var _src-stack-data/eax: (addr array grapheme) <- lookup *src-stack-data-ah
+  var src-stack-data/edx: (addr array grapheme) <- copy _src-stack-data
+  var top-addr/ecx: (addr int) <- get src-stack, top
+  var i/eax: int <- copy 0
+  {
+    compare i, *top-addr
+    break-if->=
+    var g/edx: (addr grapheme) <- index src-stack-data, i
+    add-grapheme-to-word dest, *g
+    i <- increment
+    loop
+  }
+}
+
+fn word-equal? _self: (addr word), s: (addr array byte) -> _/eax: boolean {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: boolean <- gap-buffer-equal? data, s
+  return result
+}
+
+fn word-length _self: (addr word) -> _/eax: int {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: int <- gap-buffer-length data
+  return result
+}
+
+fn final-word _in: (addr handle word), out: (addr handle word) {
+  var curr-h: (handle word)
+  var curr-ah/esi: (addr handle word) <- address curr-h
+  copy-object _in, curr-ah
+  var curr/eax: (addr word) <- copy 0
+  var next/edi: (addr handle word) <- copy 0
+  {
+    curr <- lookup *curr-ah
+    next <- get curr, next
+    curr <- lookup *next
+    compare curr, 0
+    break-if-=
+    copy-object next, curr-ah
+    loop
+  }
+  copy-object curr-ah, out  # modify 'out' right at the end, just in case it's same as 'in'
+}
+
+fn first-grapheme _self: (addr word) -> _/eax: grapheme {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: grapheme <- first-grapheme-in-gap-buffer data
+  return result
+}
+
+fn grapheme-before-cursor _self: (addr word) -> _/eax: grapheme {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: grapheme <- grapheme-before-cursor-in-gap-buffer data
+  return result
+}
+
+fn add-grapheme-to-word _self: (addr word), c: grapheme {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  add-grapheme-at-gap data, c
+}
+
+fn cursor-at-start? _self: (addr word) -> _/eax: boolean {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: boolean <- gap-at-start? data
+  return result
+}
+
+fn cursor-at-end? _self: (addr word) -> _/eax: boolean {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: boolean <- gap-at-end? data
+  return result
+}
+
+fn cursor-left _self: (addr word) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var dummy/eax: grapheme <- gap-left data
+}
+
+fn cursor-right _self: (addr word) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var dummy/eax: grapheme <- gap-right data
+}
+
+fn cursor-to-start _self: (addr word) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  gap-to-start data
+}
+
+fn cursor-to-end _self: (addr word) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  gap-to-end data
+}
+
+fn cursor-index _self: (addr word) -> _/eax: int {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: int <- gap-index data
+  return result
+}
+
+fn delete-before-cursor _self: (addr word) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  delete-before-gap data
+}
+
+fn pop-after-cursor _self: (addr word) -> _/eax: grapheme {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: grapheme <- pop-after-gap data
+  return result
+}
+
+fn delete-next _self: (addr word) {
+  var self/esi: (addr word) <- copy _self
+  var next-ah/edi: (addr handle word) <- get self, next
+  var next/eax: (addr word) <- lookup *next-ah
+  compare next, 0
+  break-if-=
+  var next-next-ah/ecx: (addr handle word) <- get next, next
+  var self-ah/esi: (addr handle word) <- get next, prev
+  copy-object next-next-ah, next-ah
+  var new-next/eax: (addr word) <- lookup *next-next-ah
+  compare new-next, 0
+  break-if-=
+  var dest/eax: (addr handle word) <- get new-next, prev
+  copy-object self-ah, dest
+}
+
+fn print-word screen: (addr screen), _self: (addr word) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  render-gap-buffer screen, data
+}
+
+fn print-words-in-reverse screen: (addr screen), _words-ah: (addr handle word) {
+  var words-ah/eax: (addr handle word) <- copy _words-ah
+  var words-a/eax: (addr word) <- lookup *words-ah
+  compare words-a, 0
+  break-if-=
+  # recurse
+  var next-ah/ecx: (addr handle word) <- get words-a, next
+  print-words-in-reverse screen, next-ah
+  # print
+  print-word screen, words-a
+  print-string screen, " "
+}
+
+# Gotcha with some word operations: ensure dest-ah isn't in the middle of some
+# existing chain of words. There are two pointers to patch, and you'll forget
+# to do the other one.
+fn copy-words _src-ah: (addr handle word), _dest-ah: (addr handle word) {
+  var src-ah/eax: (addr handle word) <- copy _src-ah
+  var src-a/eax: (addr word) <- lookup *src-ah
+  compare src-a, 0
+  break-if-=
+  # copy
+  var dest-ah/edi: (addr handle word) <- copy _dest-ah
+  copy-word src-a, dest-ah
+  # recurse
+  var rest: (handle word)
+  var rest-ah/ecx: (addr handle word) <- address rest
+  var next-src-ah/esi: (addr handle word) <- get src-a, next
+  copy-words next-src-ah, rest-ah
+  chain-words dest-ah, rest-ah
+}
+
+fn copy-words-in-reverse _src-ah: (addr handle word), _dest-ah: (addr handle word) {
+  var src-ah/eax: (addr handle word) <- copy _src-ah
+  var _src-a/eax: (addr word) <- lookup *src-ah
+  var src-a/esi: (addr word) <- copy _src-a
+  compare src-a, 0
+  break-if-=
+  # recurse
+  var next-src-ah/ecx: (addr handle word) <- get src-a, next
+  var dest-ah/edi: (addr handle word) <- copy _dest-ah
+  copy-words-in-reverse next-src-ah, dest-ah
+  #
+  copy-word-at-end src-a, dest-ah
+}
+
+fn copy-word-at-end src: (addr word), _dest-ah: (addr handle word) {
+  var dest-ah/edi: (addr handle word) <- copy _dest-ah
+  # if dest is null, copy and return
+  var dest-a/eax: (addr word) <- lookup *dest-ah
+  compare dest-a, 0
+  {
+    break-if-!=
+    copy-word src, dest-ah
+    return
+  }
+  # copy current word
+  var new: (handle word)
+  var new-ah/ecx: (addr handle word) <- address new
+  copy-word src, new-ah
+  # append it at the end
+  var curr-ah/edi: (addr handle word) <- copy dest-ah
+  {
+    var curr-a/eax: (addr word) <- lookup *curr-ah  # curr-a guaranteed not to be null
+    var next-ah/ecx: (addr handle word) <- get curr-a, next
+    var next-a/eax: (addr word) <- lookup *next-ah
+    compare next-a, 0
+    break-if-=
+    curr-ah <- copy next-ah
+    loop
+  }
+  chain-words curr-ah, new-ah
+}
+
+fn append-word-at-end-with _dest-ah: (addr handle word), s: (addr array byte) {
+  var dest-ah/edi: (addr handle word) <- copy _dest-ah
+  # if dest is null, copy and return
+  var dest-a/eax: (addr word) <- lookup *dest-ah
+  compare dest-a, 0
+  {
+    break-if-!=
+    allocate-word-with dest-ah, s
+    return
+  }
+  # otherwise append at end
+  var curr-ah/edi: (addr handle word) <- copy dest-ah
+  {
+    var curr-a/eax: (addr word) <- lookup *curr-ah  # curr-a guaranteed not to be null
+    var next-ah/ecx: (addr handle word) <- get curr-a, next
+    var next-a/eax: (addr word) <- lookup *next-ah
+    compare next-a, 0
+    break-if-=
+    curr-ah <- copy next-ah
+    loop
+  }
+  append-word-with *curr-ah, s
+}
+
+fn copy-word _src-a: (addr word), _dest-ah: (addr handle word) {
+  var dest-ah/eax: (addr handle word) <- copy _dest-ah
+  allocate dest-ah
+  var _dest-a/eax: (addr word) <- lookup *dest-ah
+  var dest-a/eax: (addr word) <- copy _dest-a
+  initialize-word dest-a
+  var dest/edi: (addr handle gap-buffer) <- get dest-a, scalar-data
+  var src-a/eax: (addr word) <- copy _src-a
+  var src/eax: (addr handle gap-buffer) <- get src-a, scalar-data
+  copy-gap-buffer src, dest
+}
+
+# one implication of handles: append must take a handle
+fn append-word _self-ah: (addr handle word) {
+  var saved-self-storage: (handle word)
+  var saved-self/eax: (addr handle word) <- address saved-self-storage
+  copy-object _self-ah, saved-self
+#?   {
+#?     print-string 0, "self-ah is "
+#?     var foo/eax: int <- copy _self-ah
+#?     print-int32-hex 0, foo
+#?     print-string 0, "\n"
+#?   }
+  var self-ah/esi: (addr handle word) <- copy _self-ah
+  var _self/eax: (addr word) <- lookup *self-ah
+  var self/ebx: (addr word) <- copy _self
+#?   {
+#?     print-string 0, "0: self is "
+#?     var self-ah/eax: (addr handle word) <- copy _self-ah
+#?     var self/eax: (addr word) <- lookup *self-ah
+#?     var foo/eax: int <- copy self
+#?     print-int32-hex 0, foo
+#?     print-string 0, "\n"
+#?   }
+  # allocate new handle
+  var new: (handle word)
+  var new-ah/ecx: (addr handle word) <- address new
+  allocate new-ah
+  var new-addr/eax: (addr word) <- lookup new
+  initialize-word new-addr
+#?   {
+#?     print-string 0, "new is "
+#?     var foo/eax: int <- copy new-addr
+#?     print-int32-hex 0, foo
+#?     print-string 0, "\n"
+#?   }
+  # new->next = self->next
+  var src/esi: (addr handle word) <- get self, next
+#?   {
+#?     print-string 0, "src is "
+#?     var foo/eax: int <- copy src
+#?     print-int32-hex 0, foo
+#?     print-string 0, "\n"
+#?   }
+  var dest/edi: (addr handle word) <- get new-addr, next
+  copy-object src, dest
+  # new->next->prev = new
+  {
+    var next-addr/eax: (addr word) <- lookup *src
+    compare next-addr, 0
+    break-if-=
+#?     {
+#?       print-string 0, "next-addr is "
+#?       var foo/eax: int <- copy next-addr
+#?       print-int32-hex 0, foo
+#?       print-string 0, "\n"
+#?     }
+    dest <- get next-addr, prev
+#? #?     {
+#? #?       print-string 0, "self-ah is "
+#? #?       var foo/eax: int <- copy _self-ah
+#? #?       print-int32-hex 0, foo
+#? #?       print-string 0, "\n"
+#? #?       print-string 0, "2: self is "
+#? #?       var self-ah/eax: (addr handle word) <- copy _self-ah
+#? #?       var self/eax: (addr word) <- lookup *self-ah
+#? #?       var foo/eax: int <- copy self
+#? #?       print-int32-hex 0, foo
+#? #?       print-string 0, "\n"
+#? #?     }
+#?     {
+#?       print-string 0, "copying new to "
+#?       var foo/eax: int <- copy dest
+#?       print-int32-hex 0, foo
+#?       print-string 0, "\n"
+#?     }
+    copy-object new-ah, dest
+#?     {
+#?       print-string 0, "4: self is "
+#?       var self-ah/eax: (addr handle word) <- copy _self-ah
+#?       var self/eax: (addr word) <- lookup *self-ah
+#?       var foo/eax: int <- copy self
+#?       print-int32-hex 0, foo
+#?       print-string 0, "\n"
+#?     }
+  }
+  # new->prev = saved-self
+  dest <- get new-addr, prev
+#?   {
+#?     print-string 0, "copying "
+#?     var self-ah/esi: (addr handle word) <- copy _self-ah
+#?     var self/eax: (addr word) <- lookup *self-ah
+#?     var foo/eax: int <- copy self
+#?     print-int32-hex 0, foo
+#?     print-string 0, " to "
+#?     foo <- copy dest
+#?     print-int32-hex 0, foo
+#?     print-string 0, "\n"
+#?   }
+  var saved-self-ah/eax: (addr handle word) <- address saved-self-storage
+  copy-object saved-self-ah, dest
+  # self->next = new
+  dest <- get self, next
+  copy-object new-ah, dest
+}
+
+fn chain-words _self-ah: (addr handle word), _next: (addr handle word) {
+  var self-ah/esi: (addr handle word) <- copy _self-ah
+  var _self/eax: (addr word) <- lookup *self-ah
+  var self/ecx: (addr word) <- copy _self
+  var dest/edx: (addr handle word) <- get self, next
+  var next-ah/edi: (addr handle word) <- copy _next
+  copy-object next-ah, dest
+  var next/eax: (addr word) <- lookup *next-ah
+  compare next, 0
+  break-if-=
+  dest <- get next, prev
+  copy-object self-ah, dest
+}
+
+fn emit-word _self: (addr word), out: (addr stream byte) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  emit-gap-buffer data, out
+}
+
+fn word-to-string _self: (addr word), out: (addr handle array byte) {
+  var self/esi: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  gap-buffer-to-string data, out
+}
+
+fn word-is-decimal-integer? _self: (addr word) -> _/eax: boolean {
+  var self/eax: (addr word) <- copy _self
+  var data-ah/eax: (addr handle gap-buffer) <- get self, scalar-data
+  var data/eax: (addr gap-buffer) <- lookup *data-ah
+  var result/eax: boolean <- gap-buffer-is-decimal-integer? data
+  return result
+}
+
+# ABSOLUTELY GHASTLY
+fn word-exists? _haystack-ah: (addr handle word), _needle: (addr word) -> _/ebx: boolean {
+  var needle-name-storage: (handle array byte)
+  var needle-name-ah/eax: (addr handle array byte) <- address needle-name-storage
+  word-to-string _needle, needle-name-ah  # profligate leak
+  var _needle-name/eax: (addr array byte) <- lookup *needle-name-ah
+  var needle-name/edi: (addr array byte) <- copy _needle-name
+  # base case
+  var haystack-ah/esi: (addr handle word) <- copy _haystack-ah
+  var curr/eax: (addr word) <- lookup *haystack-ah
+  compare curr, 0
+  {
+    break-if-!=
+    return 0/false
+  }
+  # check curr
+  var curr-name-storage: (handle array byte)
+  var curr-name-ah/ecx: (addr handle array byte) <- address curr-name-storage
+  word-to-string curr, curr-name-ah  # profligate leak
+  var curr-name/eax: (addr array byte) <- lookup *curr-name-ah
+  var found?/eax: boolean <- string-equal? needle-name, curr-name
+  compare found?, 0
+  {
+    break-if-=
+    return 1/true
+  }
+  # recurse
+  var curr/eax: (addr word) <- lookup *haystack-ah
+  var next-haystack-ah/eax: (addr handle word) <- get curr, next
+  var result/ebx: boolean <- word-exists? next-haystack-ah, _needle
+  return result
+}
+
+fn word-list-length words: (addr handle word) -> _/eax: int {
+  var curr-ah/esi: (addr handle word) <- copy words
+  var result/edi: int <- copy 0
+  {
+    var curr/eax: (addr word) <- lookup *curr-ah
+    compare curr, 0
+    break-if-=
+    {
+      var word-len/eax: int <- word-length curr
+      result <- add word-len
+      result <- add 1/inter-word-margin
+    }
+    curr-ah <- get curr, next
+    loop
+  }
+  return result
+}
+
+# out-ah already has a word allocated and initialized
+fn parse-words in: (addr array byte), out-ah: (addr handle word) {
+  var in-stream: (stream byte 0x100)
+  var in-stream-a/esi: (addr stream byte) <- address in-stream
+  write in-stream-a, in
+  var cursor-word-ah/ebx: (addr handle word) <- copy out-ah
+  $parse-words:loop: {
+    var done?/eax: boolean <- stream-empty? in-stream-a
+    compare done?, 0/false
+    break-if-!=
+    var _g/eax: grapheme <- read-grapheme in-stream-a
+    var g/ecx: grapheme <- copy _g
+    # if not space, insert
+    compare g, 0x20/space
+    {
+      break-if-=
+      var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+      add-grapheme-to-word cursor-word, g
+      loop $parse-words:loop
+    }
+    # otherwise insert word after and move cursor to it
+    append-word cursor-word-ah
+    var cursor-word/eax: (addr word) <- lookup *cursor-word-ah
+    cursor-to-start cursor-word  # reset cursor in each function
+    cursor-word-ah <- get cursor-word, next
+    loop
+  }
+}
diff --git a/linux/translate b/linux/translate
new file mode 100755
index 00000000..b2e37b5d
--- /dev/null
+++ b/linux/translate
@@ -0,0 +1,8 @@
+#!/bin/sh
+# Translate a given Mu program into an ELF binary on Linux.
+
+set -e
+
+cat $* [0-9]*.mu    |./mu    > a.subx
+
+./translate_subx [0-9]*.subx mu-init.subx a.subx
diff --git a/linux/translate_debug b/linux/translate_debug
new file mode 100755
index 00000000..17b55e29
--- /dev/null
+++ b/linux/translate_debug
@@ -0,0 +1,11 @@
+#!/bin/sh
+# Translate given Mu files with debug information on Linux.
+#
+# (You _could_ do something similar on other platforms using emulation. But I
+# often find that to be too slow.)
+
+set -e
+
+cat $* [0-9]*.mu    |./mu    > a.subx
+
+./translate_subx_debug [0-9]*.subx mu-init.subx a.subx
diff --git a/linux/translate_emulated b/linux/translate_emulated
new file mode 100755
index 00000000..931a489f
--- /dev/null
+++ b/linux/translate_emulated
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Translate a Mu program using emulated mode on Linux or BSD or Mac.
+
+set -e
+set -v
+
+cat $* [0-9]*.mu    |bootstrap/bootstrap run ./mu           > a.subx
+
+./translate_subx_emulated [0-9]*.subx mu-init.subx a.subx
diff --git a/linux/translate_subx b/linux/translate_subx
new file mode 100755
index 00000000..1f6c21da
--- /dev/null
+++ b/linux/translate_subx
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Translate given SubX files by running the self-hosted translator natively on
+# Linux.
+
+set -e
+
+cat $*          |./braces      > a.braces
+
+cat a.braces    |./calls       > a.calls
+
+cat a.calls     |./sigils      > a.sigils
+
+cat a.sigils    |./tests       > a.tests
+
+cat a.tests     |./assort      > a.assort
+
+cat a.assort    |./dquotes     > a.dquotes
+
+# A little hack. We want translate_subx to always emit identical binaries to
+# the C++ translator. The C++ translator assorts segments before it processes
+# string literals, so we follow the same order above.
+#
+# However, dquotes currently emits a separate data segment for string literals.
+# So we need to run assort a second time to clean up after it.
+#
+# Potential solutions:
+#   a) modify C++ translator to process string literals before assorting.
+#   b) clean up dquotes to assume assorted segments, and append to the
+#   existing data segment.
+cat a.dquotes   |./assort      > a.assort2
+
+cat a.assort2   |./pack        > a.pack
+
+cat a.pack      |./survey_elf  > a.survey
+
+cat a.survey    |./hex         > a.elf
+
+chmod +x a.elf
diff --git a/linux/translate_subx_debug b/linux/translate_subx_debug
new file mode 100755
index 00000000..e18eca31
--- /dev/null
+++ b/linux/translate_subx_debug
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Translate given SubX files with debug information on Linux.
+#
+# Mu provides 3 canonical ways to translate unsafe SubX programs:
+#   0. The C++ translator 'bootstrap translate' can generate traces for
+#   debugging on Linux or BSD or Mac, but doesn't support any syntax sugar.
+#   1. The self-hosted translator can be run natively on Linux using
+#   'translate_subx'. It is fast and supports all syntax sugar, but you get no
+#   trace for debugging.
+#   2. The self-hosted translator can be run emulated on Linux or BSD or Mac
+#   using 'translate_subx_emulated'. It supports all syntax sugar. However, it
+#   can be slow if you generate traces.
+#
+# This script fills in the gap above by stitching together aspects from
+# multiple approaches. It translates syntax sugar natively, but emulates lower
+# levels using the C++ translator. The result is complete and relatively fast
+# even when generating traces.
+#
+# The cost: it needs Linux. There is no script to generate traces while
+# running emulated on BSD or Mac. That's often impractically slow.
+
+set -e
+
+cat $*          |./braces          > a.braces
+cat a.braces    |./calls           > a.calls
+cat a.calls     |./sigils          > a.sigils
+
+bootstrap/bootstrap --debug translate a.sigils -o a.elf
+
+chmod +x a.elf
diff --git a/linux/translate_subx_emulated b/linux/translate_subx_emulated
new file mode 100755
index 00000000..78c564d9
--- /dev/null
+++ b/linux/translate_subx_emulated
@@ -0,0 +1,21 @@
+#!/bin/sh
+# Translate given SubX files by running the self-hosted translator in emulated
+# mode on Linux or BSD or Mac.
+#
+# We _could_ generate traces here, but that's often extremely slow.
+
+set -e
+set -v
+
+cat $*              |bootstrap/bootstrap run ./braces       > a.braces
+cat a.braces        |bootstrap/bootstrap run ./calls        > a.calls
+cat a.calls         |bootstrap/bootstrap run ./sigils       > a.sigils
+cat a.sigils        |bootstrap/bootstrap run ./tests        > a.tests
+cat a.tests         |bootstrap/bootstrap run ./assort       > a.assort
+cat a.assort        |bootstrap/bootstrap run ./dquotes      > a.dquotes
+cat a.dquotes       |bootstrap/bootstrap run ./assort       > a.assort2
+cat a.assort2       |bootstrap/bootstrap run ./pack         > a.pack
+cat a.pack          |bootstrap/bootstrap run ./survey_elf   > a.survey
+cat a.survey        |bootstrap/bootstrap run ./hex          > a.elf
+
+chmod +x a.elf
diff --git a/linux/tui.mu b/linux/tui.mu
new file mode 100644
index 00000000..c58a82c6
--- /dev/null
+++ b/linux/tui.mu
@@ -0,0 +1,34 @@
+# Test some primitives for text-mode.
+#
+# To run:
+#   $ ./translate_mu apps/tui.mu
+#   $ ./a.elf
+
+fn main -> _/ebx: int {
+  var nrows/eax: int <- copy 0
+  var ncols/ecx: int <- copy 0
+  nrows, ncols <- screen-size 0
+  enable-screen-grid-mode
+  move-cursor 0/screen, 5/row, 0x22/col
+  start-color 0/screen, 1/fg, 0x7a/bg
+  start-blinking 0/screen
+  print-string 0/screen, "Hello world!"
+  reset-formatting 0/screen
+  move-cursor 0/screen, 6/row, 0x22/col
+  print-string 0/screen, "tty dimensions: "
+  print-int32-hex 0/screen, nrows
+  print-string 0/screen, " rows, "
+  print-int32-hex 0/screen, ncols
+  print-string 0/screen, " rows\n"
+
+  print-string 0/screen, "press a key to see its code: "
+  enable-keyboard-immediate-mode
+  var x/eax: grapheme <- read-key-from-real-keyboard
+  enable-keyboard-type-mode
+  enable-screen-type-mode
+  print-string 0/screen, "You pressed "
+  var x-int/eax: int <- copy x
+  print-int32-hex 0/screen, x-int
+  print-string 0/screen, "\n"
+  return 0
+}